2007/17 – 21.4.2007
Radioaktivní rozpad a náhodná čísla Bc. Petr Jančář e-mail:
[email protected] Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Tento článek věnuje pozornost problematice vytváření zcela náhodných čísel (bitů) pro kryptografické účely. Jako zdroje náhody je využito nepředvídatelných vlastností kvantových jevů, konkrétně radioaktivního rozpadu. Radioaktivní rozpad a další kvantové jevy patří v současné době k jediným pravým zdrojům nedeterministické náhody.
1. ÚVOD Generátor náhodných bitů je zařízení sestrojené k produkci posloupnosti statisticky nezávislých a rovnoměrně rozdělených binárních náhodných veličin. Generátory náhodných čísel se dělí do tří základních skupin: fyzikální, algoritmické a smíšené. Fyzikální generátor (TRNG – True Random Number Generator) narozdíl od algoritmického (PRNG - Pseudo Random Number Generator) obsahuje fyzikální zdroj náhodných informací. U algoritmického generátoru je zdrojem náhodných informací matematický algoritmus, který nikdy nebude zkonstruován takovým způsobem, aby zajistil nepředvídatelnost vygenerovaných čísel. Velice známým zdrojem náhody ve fundamentálně náhodných fyzikálních generátorech je radioaktivní rozpad. Nepredikovatelnost radioaktivního rozpadu se manifestuje v neurčitosti časového intervalu mezi dvěma registrovanými rozpady. Spektrum časových intervalů popisuje Poissonovo rozložení, ale přesná předpověď následujícího radioaktivního rozpadu není možná. Rozpad radionuklidu není závislý na teplotě, vlhkosti, tlaku, elektrickém nebo magnetickém poli, apod. a proto je vynikajícím zdrojem náhody. Generátor založený na tomto kvantovém jevu je tedy daleko odolnější vůči vlivům prostředí i vůči snahám modifikace jeho funkce než generátor, založený na měření elektrického šumu například v polovodičích. Obrázek č.1 znázorňuje nejzákladnější obecné schéma radioaktivní přeměny. Jádro A , zvané mateřské, se spontánně (tj. bez vnějšího zásahu - jen vlivem vnitřních sil a mechanismů působících v jádře) přemění na "o něco menší" jádro B zvané dceřinné, přičemž vylétá částice C zvaná záření. Tato částice záření odnáší rozdíl energií a složení mezi jádry A a B .
C, rozpad
A
spontánní přeměna
mateřské jádro
B dceřinné jádro
17-1
2007/17 – 21.4.2007 Obr. 1: Obecné schéma radioaktivní přeměny. Radioaktivní rozpad je tedy definován jako jev, kdy se jádra atomů určitého prvku samovolně přeměňují na jádra jiného prvku, přičemž je emitováno vysokoenergetické záření. Pro detekci vysokoenergetického záření, se používají speciální typy detektorů, především to jsou elektronické. Elektronické detektory převádějí část energie ionizujícího záření na elektrický signál. Mezi nejpoužívanější elektronické detektory patří ionizační, scintilační, polovodičové.
2. SESTAVA GENERÁTORU Hlavní části generátoru tvoří zdroj ionizujícího záření a scintilační detektor. Scintilační detektor registruje průchod gama záření, tedy záření o kmitočtu vyšším než 2,42 × 1018 Hz a převádí jej na slabý elektrický signál, který je pomocí operačního zesilovače zesílen na požadovanou úroveň. Další důležitou částí je diskriminátor, neboli šumová brána, která propustí pouze signály překračující určitou minimální amplitudu. Propuštěné signály se dále tvarují na unipolární NRZ signál, kde logická jedna je registrovaný radioaktivní rozpad. Konverzi tohoto digitálního signálu na posloupnost náhodných bitů obstarává osobní počítač. VN zdroj
zdroj
0101010 1001010
zdroj záření
scintilační detektor
zesilovač
diskriminátor
RS-232-C
PC
Obr. 2: Bloková struktura generátoru náhodných bitů. 241 Jako zdroj záření je použit radionuklidový zářič Americium 241 ( 95 Am ). Existuje 18 243 izotopů rozpadové řady, z nichž je nejstabilnější Am s poločasem rozpadu 7370 let a Am241 s poločasem 432 let. Všechny zbývající radioaktivní izotopy mají poločas rozpadu méně něž 51 hodin a mnohé z nich dokonce méně než 100 minut. Všechny izotopy americia jsou radioaktivní. Americium 241 vyzařuje α a χ záření s energií 59.5 keV (obrázek č. 3) a je proto nutno s ním manipulovat za dodržování bezpečnostních opatření pro práci s radioaktivními materiály.
17-2
2007/17 – 21.4.2007
Energetické spektrum radionuklidu Am
241
1,0E+08
N [imp]
1,0E+06
1,0E+04
1,0E+02
1,0E+00 0
200
400
600
800
1000
E [keV]
Obr. 3: Energetické spektrum radionuklidu Am241 změřené analyzátorem Silena. Scintilační detektor převádí absorbovanou energii ionizujícího záření na energii fotonů náležejících zpravidla do viditelné krátkovlnné nebo blízké ultrafialové oblasti spektra. Jeho výhoda spočívá vedle dobrých spektrometrických vlastností také v tom, že detekční médium, scintilátor, může mít značné rozměry a téměř libovolný tvar. Scintilační detektor dává rovněž výstupní signál, jehož další zpracování nevyžaduje použití velmi citlivých zesilovačů. Vzhledem k rychlé odezvě uplatňují se scintilační detektory tam, kde je rozhodujícím činitelem zpracování velkých četností. záření
reflektor
scintilátor
fotokatoda
optický kontakt
světlotěsný obal
dynoda
elektrický signál
anoda
Obr. 4: Struktura scintilačního detektoru. Vlastní čidlo detektoru představuje scintilátor, v němž dopadající zařízení způsobuje ionizaci a excitaci jeho atomů a molekul. Jejich návrat do základního stavu je doprovázen emisí světelného záření, jehož intenzita odpovídá energii detekované částice. Aby se mohly světelné
17-3
2007/17 – 21.4.2007 fotony maximálně využit, obklopuje se scintilátor reflektorem. Sebrané fotony po průchodu optickým kontaktem působí pak na fotokatodu fotonásobiče. Nejlepší přenos světelné energie nastává tehdy, je-li prostor mezi scintilátorem a fotonásobičem vyplněn prostředím s velkou světelnou vodivostí. Dobré optické vazby se nejčastěji dosáhne minerálními nebo silikonovými oleji, které na rozhraní krystalu a vstupního skleněného okna fotonásobiče vytvoří velmi tenkou transparentní vrstvu. Použitý scintilátor je NaITl (jodid sodný aktivovaný thaliem), který dosahuje nejlepší energetické rozlišovací schopnosti ze všech známých anorganických scintilátorů. Vlnová délka maxima emise je 410 nm. Jelikož je hydroskopický, vyžaduje vzduchotěsné pouzdro. Popis jednotlivých dílčích částí použitého scintilačního detektoru v TRNG je na následujícím obrázku (obrázek č. 5).
VN BNC konektor dělič vysokého napětí
scintilátor NaITl
fotonásobič 61PK501
patice B13B
světlotěsné pouzdro
Obr. 5: Použitý scintilační detektor v TRNG - Tesla NKC 331. Fotony po dopadu na fotokatodu uvolňují fotoelektrony, které se po urychlení elektrickým polem dostávají na první dynodu. Povrch dynod je pokryt materiálem s velkým součinitelem sekundární emise. Vlivem toho se počet elektronů opouštějících každou následující dynodu neustále zvětšuje. Zesílení fotonásobiče bývá v rozsahu 10 6 až 10 9 . Postupně od fotokatody po anodu rostoucí kladný potenciál, nutný k dodání nezbytné energie elektronům, obstarává odporový dělič vysokého napětí (obrázek č. 6). Celkový odpor děliče pro spektrometrické aplikace fotonásobiče je maximálně do 10 MΩ. Poslední dynody před anodou musí být blokovány kapacitory, aby jejich velký impulsní proud nezatěžoval dělič.
17-4
2007/17 – 21.4.2007
Obr. 6: Odporový dělič předepsaný výrobcem fotonásobiče 61PK501.
3. ZPŮSOBY KONVERZE Schématické znázornění převodu registrovaného radioaktivního rozpadu na logickou hodnotu nula nebo jedna je na obrázku č. 7. Vytvarovaný elektrický signál vstupuje přes rozhraní RS-232-C do počítače, kde se jeho náběžná hrana porovná se stavem FLIP - FLOP registru, který se s hodinovou frekvencí počítače neustále překlápí z logické hodnoty jedna na nula a naopak. Tedy podle toho, v jakém stavu registru se náběžná hrana signálu nachází je vygenerována logická hodnota. Náhodné bity jsou akumulovány v blocích délky 20 000 bitů a jsou podrobeny testům náhodnosti podle normy FIPS PUB 140-1.
signál ze scintilačního detektoru
čas signál za diskriminátorem
čas flip-flop registr „1“ „0“
čas
1 0 0 1 1 0
výstupní datový tok čas
Obr. 7: Konverze registrovaného rozpadu na logickou hodnotu „1“ nebo „0“.
Tato testovací baterie obsahuje čtyři statistické testy, jimiž jsou: test četnosti jedniček, poker test, test úseků stejných znaků (tzv. runů) a test nejdelšího runu.
17-5
2007/17 – 21.4.2007 Testy podle této normy jsou jakýmisi základními zkouškami, které mají ukázat, zda při generování náhodné posloupnosti nenastaly v generátoru nějaké chyby a to jak hardwarové tak i softwarové. Generátor těmto testům plně vyhověl.
Test četnosti jedniček – modul vyhověl testu, pokud počet jedniček X ve vygenerované posloupnosti 20000 bitů je v rozmezí 9654 < X < 10346. Poker test – posloupnost 20000 bitů je neřetězovitě rozdělena na 5000 čtyřbitových úseků, které reprezentují hodnotu i = 0..15 . Počet úseků s hodnotou i označíme f (i ) . Vypočítáme testovací hodnotu X = [16 / 5000] × [ f (0) 2 + f (1) 2 + ... + f (15) 2 ] − 5000 .
Test úseků stejných znaků (runů) – termínem run se označuje úsek dané posloupnosti, který je složen ze samých nul (pak se nazývá gap) nebo jedniček (v tom případě se nazývá blok). Například v posloupnosti 00101111100000001 je na začátku gap délky 1, blok délky 5, gap délky 7 atd. Při testu spočítáme v dané posloupnosti počet gapů a počet bloků délky 1, 2, 3, 4, 5, 6 a více. Všech 12 vypočítaných čísel musí ležet v následujících intervalech: Délka runu 1 2 3 4 5 6 a více
Interval 2267 – 2733 1079 – 1421 502 – 748 223 – 402 90 – 223 90 – 223
Tab. 1: Toleranční intervaly statistického testu úseků stejných runů.
Test nejdelšího runu – v posloupnosti se sleduje, zda některý z gapů nebo bloků nedosáhl délky 34 nebo více, tj. zda posloupnost obsahuje podposloupnost 34 nebo více nul za sebou nebo podposloupnost 34 nebo více jedniček za sebou. Pokud ano, modul tomuto testu nevyhověl.
4. PROGRAMOVÉ VYBAVENÍ Programy pro ovládání sériového rozhraní využívají ke zprostředkování komunikace nejrůznější knihovny. Tyto knihovny sice usnadňují programování, ve skutečnosti však také zakrývají skutečný postup přístupu k sériovému portu. Proto je lepší využít systémových API funkcí pro obsluhu sériových portů, kde nemusíme znát jejich fyzické adresy. API je zkratka anglických slov application programming interface, což znamená rozhraní pro programování aplikací. Jde o sbírku procedur, funkcí či tříd nějaké knihovny (ale třeba i jiného programu nebo jádra operačního systému), které může využívat programátor. API určuje, jakým způsobem se funkce knihovny mají volat ze zdrojového kódu programu. Příkladem mohou být grafická API jako OpenGL a DirectX. Vývojový diagram na obrázku č. 8 představuje řešení obslužného programu generátoru.
17-6
2007/17 – 21.4.2007
Obr. 8: Vývojový diagram obslužného programu TRNG. Obslužný program generátoru nejdříve otevře daný sériový port, ověří zda je generátor připojen a provede detekci přítomnosti radionuklidového zářiče. Jestli je všechno v pořádku program pokračuje a čeká na signál z generátoru, jenž představuje radioaktivní rozpad. V okamžiku příchodu signálu je zjištěna hodnota časovače v osobním počítači. Pokud je tato hodnota lichá je přidána do výstupního bufferu logická hodnota „0“, v případě že hodnota je sudá je přidána logická „1“. Výhodou tohoto řešení je skutečnost, že každý registrovaný radioaktivní rozpad je konvertován na jednu ze dvou logických hodnot. Jakmile výstupní buffer obsahuje posloupnost 20 000 bitů, jsou provedeny statistické testy kvality a náhodná posloupnost je uložena do souboru. Celý proces pokračuje dokud není naplněn soubor na požadovanou velikost. Účinnost použitého scintilačního detektoru se pohybuje kolem 15%, což při použití 100 kBq zářiče představuje rychlost generování 15 000 bitů za vteřinu.
17-7
2007/17 – 21.4.2007 Obslužný program je napsán v programovacím jazyku Borland C++ Builder 6. Okno programu je vidět na následujícím obrázku (obrázek č. 9).
Obr. 9: Softwarová podpora generátoru.
5. ZÁVĚR V článku byla prezentována možnost využití rozpadu radionuklidového prvku při tvorbě opravdu náhodných čísel. Pro detekci ionizujícího záření, tedy zdroje náhody, je využit scintilační detektor. V článku je vysvětlen princip scintilačního detektoru spolu s popisem konverze registrovaného radioaktivního rozpadu na logický stav nula nebo jedna. Výstupní binární datový tok fyzikálního generátoru je často kombinován s výstupem pseudonáhodného generátoru. Tato operace se nazývá kryptografická úprava, jenž dále nezvyšuje entropii výstupních náhodných dat, ale má za úkol ještě více „zamíchat“ náhodné bity. Bývá realizována lineárními posuvnými registry se zpětnou vazbou (LFSR). Velmi často se u fyzikálních generátorů používá filtr von Neumanna (i u populárních generátorů postavených na principu přenosu světelného kvanta přes polopropustné zrcadlo). Generátory využívající radioaktivního rozpadu jako zdroje náhody se používají zejména v kryptografických aplikacích vyžadujících velký stupeň zabezpečení – např. při výrobě kryptografických klíčů (certifikační autority, …).
17-8
2007/17 – 21.4.2007
Obr. 10: Celkový pohled na experimentální sestavu generátoru.
5. POUŽITÁ LITERATURA [1]
FUKÁTKO, T. Detekce a měření různých druhů záření. BEN 2006, 192 stran, ISBN 80-7300-193-4.
[2]
KAINKA, B. Využití rozhraní PC. HEL 1993, 133 stran, ISBN 80-902059-3-3.
[3]
KNOLL, G. F. Radiation Detection and Measurement. Wiley, 3 edition, 816 stran, 1979, ISBN 0471073385.
[4]
KLÍMA, V. Generátory náhodných čísel: Život je jen náhoda, Časopis Chip, březen 1998, strana 62 - 63.
[5]
KREJČÍ, V. Scintilační detektory [online], 2002. URL: <www.pf.jcu.cz/stru/katedry/fyzika/prof/Svadlenkova/Scintilacni%20detektory.pdf>
[6]
ŘEHÁK, M. Photomultiplier Tubes See the Light [online], 1996.
[7]
URL:
SMOLÍK, L. Radioaktivní rozpad a kryptografické klíče [online], 2001.
[8]
URL: ULLMANN, V. Detekce a spektrometrie ionizujícího záření [online]. URL:
17-9
2007/17 – 21.4.2007 Další internetové zdroje:
[9]
http://www.cs.wikipedia.org
[10]
http://www.fi.muni.cz
[11]
http://www.ftdichip.com
[12]
http://www.kod.vslib.cz
[13]
http://www.onsemi.com
[14]
http://www.ortodoxism.ro
[15]
http://www.utc-ic.com/
V článku jsou uvedeny poznatky, které byly získány při řešení diplomové práce Generování náhodných čísel založené na radioaktivním rozpadu. Poděkování patří společnosti a.s. Černá Hora, za poskytnutí radiochemické laboratoře a jejím pracovníkům, zvláště pak PhDr. Aleši Jančářovi, Ing. Janu Lukášovi, Ing. Janu Binkovi a Mgr. Petru Borkovi.
17-10