3. Aritmetika nad F p a F 2 m Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze c Martin Novotný, 2011 MI-BHW Bezpečnost a technické prostředky LS 2010/11, 3. přednáška Evropský sociální fond. Praha & EU: Investujeme do vaaí budoucnosti Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 1 / 27
Obsah přednášky Eliptické křivky nad F p a F 2 m, shrnutí operací Aritmetické operace nad F p Aritmetické operace nad F 2 m s polynomiální bází Aritmetické operace nad F 2 m s normální bází Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 2 / 27
Eliptické křivky nad F p a F 2 m EC nad F p Weierstrassova rovnice y 2 x 3 + ax + b mod p kde 4a 3 + 27b 2 / 0 mod p EC nad F 2 m Weierstrassova rovnice y 2 + xy x 3 + ax + b mod F(α) kde b 0 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 3 / 27
EC nad F p sčítání bodu (základní operace) Pro bod R = P + Q, kde R = [x R, y R ], P = [x P, y P ] a Q = [x Q, y Q ], platí kde s = Potřebné operace nad F p sčítání, odčítání násobení x R = s 2 x P x Q y R = (x Q x R )s y Q mod p mod p y P y Q x P x Q mod p pokud P Q (sčítání) 3xQ 2 + a 2y Q mod p pokud P = Q (zdvojování) inverze (dělení je násobení inverzním prvkem) druhá mocnina pomocí násobení Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 4 / 27
EC nad F 2 m sčítání bodu (základní operace) Pro bod R = P + Q, kde R = [x R, y R ], P = [x P, y P ] a Q = [x Q, y Q ], platí x R = a + s 2 + s + x P + x Q kde s = y R = (x Q + x R )s + x R + y Q y P + y Q x P + x Q x Q + y Q x Q pokud P Q (sčítání) pokud P = Q (zdvojování) Potřebné operace nad F 2 m sčítání násobení inverze (dělení je násobení inverzním prvkem) druhá mocnina vyplatí se speciální obvod Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 5 / 27
Sčítání nad F p : C = A + B mod p A B Σ -p Σ 0 1 C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 6 / 27
Odčítání nad F p : C = A B mod p A -B Σ p Σ 1 0 C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 7 / 27
Klasická LSB násobička Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 8 / 27
Algoritmus Double-and-Add MSB násobení A 13 = A 1101 2 = (((1A 2) + 1A) 2 + 0A) 2 + 1A A 13 = A 1101 2 = 1A }{{} 2 + 1A 2 + 0A 2 + 1A 1 A }{{} 3 A }{{} 6 A } {{ } 13 A Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 9 / 27
Násobení nad F p : MSB násobička Vstup: A, B, p, kde 0 A, B p 1. Výstup: C = A B mod p k: počet bitů B b i : i-tý bit B 1. C = 0; 2. for i = k 1 downto 0 3. C = C 2 + b i A; 4. if C p then 5. C = C p; 6. end if; 7. if C p then 8. C = C p; 9. end if; 10. end for; B A << Σ -p Σ 0 1 -p Σ 0 1 C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 10 / 27
Násobení nad F p : MSB násobička modifikace B << A Σ -p -2p Σ Σ 0 1 0 1 C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 11 / 27
Výpočet inverzního prvku nad F p Rozšířený Euklidův algoritmus (bude později) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 12 / 27
Extension field F p m F p m se nazývá extension field nad tělesem F p. V kryptografii zpravidla pracujeme s binárními tělesy (binary field) F 2 m Prvky tělesa reprezentujeme bud jako polynomy nebo jako vektory (jsou to dva možné zápisy téhož) Příklad: některé prvky tělesa F 2 4 s polynomiální bází A = α 3 + α 2 = (1100) B = α 2 + α + 1 = (0111) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 13 / 27
Sčítání nad F 2 m: C = A B Sčítání v binárním tělese je vždy bit-wise XOR (bez ohledu na bázi tělesa) a m-1 b m-1 a 1 b 1 a 0 b 0 c m-1 c 1 c 0 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 14 / 27
Násobení nad F 2 m Algoritmus násobení je závislý na použité bázi (to je rozdíl oproti sčítání, které je vždy XOR) V praxi se používá polynomiální báze (polynomial basis) normální báze (normal basis) duální báze (dual basis) Polynomiální báze Báze Prvek tělesa {α m 1, α m 2,..., α 2, α, 1} A = a m 1 α m 1 + + a 2 α 2 + a 1 α + a 0 = (a m 1... a 2 a 1 a 0 ) Nerozložitelný polynom (irreducible polynomial) F(α) = α m + g m 1 α m 1 + + g 2 α 2 + g 1 α + g 0 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 15 / 27
Algoritmus Double-and-Add MSB násobení Stejný algoritmus jako pro aritmetické násobení ( A 13 = A 1101 2 = A 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0) = = (((1A 2) + 1A) 2 + 0A) 2 + 1A můžeme použít i pro násobení polynomů ( ) ( A α 3 + α 2 + 1 = A 1α 3 + 1α 2 + 0α 1 + 1α 0) = = (((1A α) + 1A) α + 0A) α + 1A Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 16 / 27
Lineární zpětnovazební posuvný registr (LFSR) LFSR (Linear feedback shift register) implementuje operaci A := Aα mod F(α) Příklad: LFSR pro F 2 16 m = 16 F(α) = α 16 + α 5 + α 3 + α 1 + 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 17 / 27
Násobení nad F 2 m s polynom. bází: MSB násobička Vstup: A, B F 2 m; B = m 1 i=0 b i α i Výstup: C A B mod F(α) A A B B 1. C = 0; 2. for i = m 1 downto 0 3. C = C α mod F (α) + b i A; 4. end for; LFSR C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 18 / 27
Příklad: MSB násobička v F 2 6 s polynomiální bází A C B F(α) = α 6 + α + 1 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 19 / 27
Příklad: MSB násobička v F 2 163 s polynomiální bází F(x) = x 163 + x 7 + x 6 + x 3 + 1 (zdroj: Guajardo, Gueneysu, Kumar, Paar, Pelzl: Efficient Hardware Implementation of Finite Fields with Applications to Cryptography) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 20 / 27
Násobení nad F 2 m s polynom. bází: LSB násobička C A B mod F(α) ( A b 0 + b 1 α + b 2 α 2 + + b m 1 α m 1) mod F(α) A b 0 + A b 1 α + A b 2 α 2 + + A b m 1 α m 1 mod F(α) b 0 A + b 1 Aα + b 2 Aα 2 + + b m 1 Aα m 1 mod F(α) b 0 A + b 1 (Aα mod F(α)) + b 2 (Aα 2 mod F(α)) + + + b m 1 (Aα m 1 mod F(α)) b 0 A + b 1 (Aα mod F(α)) + b 2 ((Aα)α mod F(α)) + + + b m 1 ((Aα m 2 )α mod F (α)) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 21 / 27
Násobení nad F 2 m s polynom. bází: LSB násobička Vstup: A, B F 2 m; B = m 1 i=0 b i α i Výstup: C A B mod F(α) A A LFSR B B 1. C = 0; 2. for i = 0 to m 1 3. C = C + b i A; 4. A = A α mod F(α); 5. end for; C Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 22 / 27
Příklad: LSB násobička v F 2 6 s polynomiální bází F(α) = α 6 + α + 1 A C B Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 23 / 27
Výpočet inverzního prvku nad F 2 m s polynomiální bází Rozšířený Euklidův algoritmus (bude později) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 24 / 27
Druhá mocnina nad F 2 m s polynomiální bází C A 2 mod F(α) (a m 1 α 2(m 1) + a m 1 α 2(m 2) + + a 1 α 2 + a 0 ) mod F(α) Příklad: Druhá mocnina v F 2 3 A = (a 2 a 1 a 0 ) = a 2 α 2 + a 1 α + a 0 A 2 = (a 2 α 2 + a 1 α + a 0 )(a 2 α 2 + a 1 α + a 0 ) = = a 2 α 4 + a 1 a 2 α 3 + a 0 a 2 α 2 + a 2 a 1 α 3 + a 1 α 2 + a 0 a 1 α + +a 2 a 0 α 2 + a 1 a 0 α + a 0 = = a 2 α 4 + 2a 1 a 2 α 3 + 2a 0 a 2 α 2 + a 1 α 2 + 2a 0 a 1 α + a 0 = = a 2 α 4 + a 1 α 2 + a 0 = (a 2 0a 1 0a 0 ) Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 25 / 27
Druhá mocnina nad F 2 m s polynomiální bází Příklad A = (a m 1 a m 1... a 2 a 1 a 0 ) A 2 = (a m 1 0a m 1 0... 0a 2 0a 1 0a 0 ) Redukcí A 2 obdržíme relativně jednoduchý výraz. Namísto počítání druhé mocniny v násobičce (m taktů) se vyplatí vysyntetizovat dedikovanou umocňovačku (1 takt): polynom F(α) # XOR kritická cesta α 131 + α 8 + α 3 + α 2 + 1 205 3 α 163 + α 7 + α 6 + α 3 + 1 246 3 α 193 + α 15 + 1 96 2 Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 26 / 27
Syntéza umocňovačky F 2 m s polynomiální bází Stačí popsat algoritmus, syntéza to vyhodnotí a zminimalizuje. SQUARER : process(a) variable A2 : std_logic_vector(2*m-1 downto 0); begin A2 := (others=> 0 ); for i in M-1 downto 0 loop -- A^2 A2(i*2) := A(i); end loop; for i in 2*M-1 downto M loop -- reduction if A2(i) = 1 then A2(i downto i-m) := A2(i downto i-m) xor F; end if; end loop; A_SQUARE <= A2(M-1 downto 0); end process; Martin Novotný (ČVUT FIT, 2011) 3. Aritmetika nad F p a F 2 m MI-BHW, 2011, 3. přednáška 27 / 27