An Algorithm for Inversion in GF(2m) Suitable for Implementation Using a Polynomial Multiply Instruction on GF(2)
- K. Kobayashi, N. Takagi, and K. Takagi
Graduate School of Information Science, Nagoya University
An Algorithm for Inversion in GF(2 m ) Suitable for Implementation - - PowerPoint PPT Presentation
An Algorithm for Inversion in GF(2 m ) Suitable for Implementation Using a Polynomial Multiply Instruction on GF(2) K. Kobayashi, N. Takagi, and K. Takagi Graduate School of Information Science, Nagoya University Outline Background and
Graduate School of Information Science, Nagoya University
– p.1
– p.2
– p.3
– p.4
rs rt HI LO
– p.5
▽ – p.6
– p.6
▽ – p.7
▽ – p.7
▽ – p.7
▽ – p.7
▽ – p.7
▽ – p.7
– p.7
– p.8
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
▽ – p.9
S(x) := G(x); R(x) := A(x); δ := 0; for i = 1 to 2m do if rm = 0 then R(x) := x × R(x); δ := δ + 1; else if sm = 1 then S(x) := S(x) − R(x); end if S(x) := x × S(x); if δ = 0 then R(x) ↔ S(x); δ := δ + 1; else δ := δ − 1; end if end if end for
– p.9
– p.10
▽ – p.11
▽ – p.11
– p.11
– p.12
– p.13
– p.14
5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000
▽ – p.15
5000 10000 15000 20000 25000 30000 35000 40000 45000 50000 55000
for large m The proposed algorithm is fast
– p.15
5000 10000 15000 20000 25000 30000
▽ – p.16
5000 10000 15000 20000 25000 30000
The proposed algorithm is fast for large m about the half #
▽ – p.16
5000 10000 15000 20000 25000 30000
The proposed algorithm is very fast when both m and the word size are large
– p.16
– p.17
– p.18