BEAN je symetrický algoritmus synchronního šifrování toku založený na algoritmu Grain . Jedná se o zástupce tzv. „lightweight“ šifer, to znamená, že jsou zaměřeny na hardwarovou implementaci uvnitř zařízení s omezeným výpočetním výkonem, nízkou pamětí a nízkou spotřebou energie (například RFID tagy nebo senzorové sítě ). Byl navržen v roce 2009 Navi Kumar , Srikanta Oiha , Kritika Jain a Sangita Lal [1] .
V symetrických proudových algoritmech dochází k šifrování (nebo dešifrování) pomocí gama , to znamená "překrytí" náhodné sekvence bitů (gama) na holém textu (nebo šifrovaném textu). "Překryv" odkazuje na operaci XOR na gama a textových bitech. Herní sekvence, které se také říká keystream (key stream), se získává pomocí generátorů pseudonáhodných čísel [2] .
Stejně jako Grain se BEAN skládá ze dvou 80bitových posuvných registrů a výstupní funkce. Ale zatímco Grain používá jeden registr lineární zpětné vazby (LFSR) a jeden registr nelineární zpětné vazby (NFSR), BEAN používá dva posuvné registry s přenosovou zpětnou vazbou (FCSR) [3] . LFSR se používá v Grain pro větší období sekvence a NFSR pro nelinearitu. FCSR v BEAN kombinuje obě tyto vlastnosti a přitom zůstává kompaktní na hardwarové úrovni [4] .
V obou registrech je další bit, který se má zapsat, roven součtu modulo 2 všech odboček buněk registru. Taková implementace se nazývá Fibonacciho konfigurace . Zatímco v Grain jsou registry implementovány podle konfigurace Galois , to znamená, že poslední 79. bit je zapsán beze změny na 0. místo a součet modulo 2 předchozí th a tap 79. buňky je zapsán do každého dalšího th. buňka [5] .
Oba registry jsou dlouhé 80 bitů. Označme je jako FCSR-I a FCSR-II a jejich stavy na -tém cyklu jako [6] :
FCSR-I
Zpětnovazební funkce FCSR-I je dána primitivním polynomem 80. stupně [7] :
to znamená, že aktualizace stavu FCSR-I v dalším cyklu vypadá takto [6] :
FCSR II
Podobně pro FCSR-II je funkce zpětné vazby [8] :
Aktualizace stavu [6] :
Pro generování gama se používá booleovská funkce . Autoři algoritmu jej nastavili pomocí S-boxu , který jako vstup bere 6 bitů (2 bity definují řádek a 4 bity definují sloupec) a vrací slovo o 4 bitech [9] . Ale protože je ze slova převzat pouze poslední bit, lze jej reprezentovat jako Zhegalkinův polynom [6] :
Gamma bity se nacházejí následovně [10] :
V jednom cyklu jsou tedy generovány dva bity najednou.
Inicializace probíhá načtením 80bitového klíče do registrů FCSR-I a FCSR-II:
Nosné registry jsou inicializovány na nulu: .
Poté FCSR provede 81 nečinných cyklů, po kterých začne generování gama [11] .
BEAN vytváří dobrou rovnováhu mezi bezpečností, rychlostí a náklady na implementaci. Grain může generovat dva gama bity na takt pomocí dalšího hardwaru. Zatímco BEAN se s tímto úkolem vypořádá bez dalšího vybavení [12] .
Podle autorů algoritmu [13] je generování bitů pomocí BEAN v průměru 1,5krát rychlejší než pomocí Grain a spotřeba paměti je snížena o 10 %.
Důležitým cílem při vývoji kryptografického algoritmu je dosáhnout lavinový efekt , který spočívá v tom, že když se změní jeden bit klíče (prostý text), změní se alespoň polovina bitů gama (šifrového textu). Pro srovnání BEAN a Grain bylo odebráno 1 000 000 náhodných 80bitových klíčů a 80 bitů gama bylo vygenerováno pro každý klíč pomocí obou algoritmů. Podle autorů v BEANu pro 65,3 % klíčů vyhovují přijaté bity podmínkám lavinového efektu, zatímco v Grain je tento podíl 63,1 % [11] .
Algoritmus byl také testován na statistických testech NIST , které neukázaly odchylku generovaného klíčového proudu od náhodné sekvence [14] .
V roce 2011 Martin Agren a Martin Hell ve svém článku poukázali na neoptimálnost inferenční funkce. Navrhli účinný diskriminační algoritmus pro BEAN, stejně jako algoritmus pro obnovení klíče , který je poněkud rychlejší než vyčerpávající vyhledávání ( vs. vyčerpávající vyhledávání v navrhovaném algoritmu ) a není náročný na paměť [15] .
V roce 2013 stejní autoři ve spolupráci s Hui Wongem a Thomasem Johanssonem objevili nové korelace mezi klíčovými bity a gama bity, které vedly k ještě účinnějšímu algoritmu útoku na obnovu klíče ( ). Kromě toho byla navržena některá vylepšení FCSR a také účinnější funkce odvození, které jsou odolné vůči známým metodám útoku [16] .
Stejně jako mnoho „odlehčených“ kryptografických algoritmů může BEAN najít uplatnění v RFID značkách, bezdrátových senzorových sítích a také ve vestavěných systémech [17] .