Một giải pháp cứng hóa phép nhân điểm Elliptic trên trường GF(p)

Journal of Science and Technology on Information Security  
M   g   pháp c    ó                
E                    GF(p)  
Nguyễn Văn Long, Hoàng Văn Thức  
Tóm tắtBài báo này mô tthut toán và  
cu trúc mch cho vic tính toán và thc thi phép  
tính nhân điểm đường cong Elliptic trên trường  
nguyên thu hn GF(p) có độ dài 256 bit. Cu  
trúc mạch được mô tbng ngôn ngVHDL và  
được thc thi trên nn tng chip Zynq xc7z030 và  
xc7z045.  
P                                  
phép tính k*P,        ó k    1            P là  
                                 E        
       ĩ              GF(p) [2].  
T                                    
       :  
AbstractThis paper describles an  
algorithm and structure for computing and  
implementation point multiplications on Elliptic  
cuvers defined GF(p) with 256 bits length. The  
circuits have been describled in VHDL in  
implemented on chip Zynq xc7z030 and xc7z045.  
Thuật toán 1:  
Đầ     :  
k (kt1,...,k1,k0 )2,PE(Fp )  
Đầ    : kP  
1.  
Q    
Từ khóa— FPGA; Đường cong elliptic trên  
trường GF(p); nhân điểm.  
2. cho i      t-1  ế  0         
2.1  
Q 2Q  
KeywordsFPGA; Elliptic cuvers over  
GF(p); Point multiplication.  
2 2  ế  ki=1 thì  
Q Q P  
I. GIỚI THIỆU VÀ MÔ TTHUT TOÁN  
NHÂN ĐIỂM  
3  T  ề Q  
Thuật toán 2:  
P                                        
                                          
                                      ố  
              V                           
      ,                                     
do                                         
                    . T            ó  
                   FPGA   ú              
                                      ,     
                                  ế Trong  
                   ú    ô    ì      ,           
                                    tài  
                 ô     ì                    ế  
    ,    ó                           
   ế   ế      ó                            
cong elliptic,                           
           ó : ECDH, ECHMQV,           ố  
ECDSA [1][7],     ó  ECIES [6].  
Đầ     :  
k (kt1,...,k1,k0 )2,PE(Fp )  
Đầ    : kP  
1.  
Q    
2. cho i      ừ 0  ế  t-1         
2 1 Nế  ki=1 thì  
Q Q P  
2.2  
P 2P  
3     ề Q  
Đố      T         1 [8],        ò         
     2 1    2 2                ế          ị  
Q  Kế                  2 1              
             2 2  D           ì           
                   ế   ế    ú       2 1        
 ế       2 2  T          ó, ở T         2,  
       ò              2  ế              
     2 1    Q    2 2 là P,                  
                           ô           
                         ó                  
                                        
T                   ú    ô                    
2     ế   ế      ó                        
            FPGA  
Bài báo         ngày 4/9/2018  B               
x                     vào ngày 28/10/2018 và          
     ă   vào ngày 8/11/2018. Bài báo        x      
              vào ngày 10/11/2018 và              
 ă      ngày 21/11/2018.  
T                             1         
     2     ò                             
52 Số 2.CS (08) 2018  
Nghiên cứu Khoa học và Công nghệ trong lĩnh vực An toàn thông tin  
         ô     . Hai phép tính           ể  
           :  
T               ô     :         
Nếu c1 = 0 và c2 = 0 thì z := z1 mod 2k;  
Không thì z := z2 mod 2k;  
Kết thúc.  
thì  
y
P(x1, y1)E(Fp ),P  P  
                :  
2P (x3, y3)  
c1  
k bit  
Bộ cộng  
2
2  
3x1 a  
2y1  
x3   
2x1  
Z1 mod 2k  
2k - p  
2
c2  
3x1 a  
2y1  
k bit  
Bộ cộng  
y3   
x x y  
3   
1
1
z2 mod 2k  
T                 :  
0
1
P (x1, y1)E(Fp ),Q (x2 , y2 )E(Fp ),  
P  Q  
z
   1  C     ú                      GF( )  
Thì  
                :  
B. Thiết kế cứng hóa phép trừ số lớn trên  
trường GF(p)  
P Q (x3, y3)  
2  
y2 y  
x2 x1  
1   
C   
    
 ố  
 ự  
      
x,  
y:  
x3   
y3   
x1 x2  
  T                     ị  
x, y  
p 1  
        x y trên  
       :  
y2 y1  
x2 x1  
x x y  
3   
1
1
. Ta có  
do  
z x y mod p  
p x y p  
 ó z                                 x - y  
    x - y + p  Từ        x                  ể  
tính toán z        :  
Trong p     ế                 , chúng tôi  
 ũ      ì                      ế    ú      
                                    
         ó                      Mụ  II    
Mụ  III  Cụ         ì                   
     Mụ  IV    Kế                    ù   
   Mụ  Kế       
T                          GF( )  
Tổng := x + (2k-y);  
z1 := Tổng mod 2k;  
z2 := z1 + p mod 2k;  
c1 := Tổng/2k;  
II. THIẾT KẾ CỨNG HÓA CÁC PHÉP TÍNH  
SỐ LỚN CƠ SỞ  
Nếu c1 = 0 thì z := z1;  
Không thì z := z2;  
Kết thúc.  
A. Thiết kế cứng hóa phép cộng số lớn trên  
trường GF(p)  
C   
    
 ố  
 ự  
      
x,y:  
  T                   
x, y  
p 1  
x
          x y trên  
       :  
2k y  
c1  
. Ta có 0 x y 2p do  
 ó z                                 x+  
    x+     Từ        x                  ể  
          z        :  
k bit  
Bộ cộng  
z x y mod p  
z1  
p
k bit  
Bộ cộng  
z2  
T                             GF( ):  
z1 := x + y;  
0
1
z
z2 := (z1 mod 2k) + (2k-p);  
c1 := z1/2k;  
c2 := z2/2k;  
   2  C     ú              trên GF(p)  
Số 2.CS (08) 2018 53  
Journal of Science and Technology on Information Security  
C. Thiết kế cứng hóa phép nhân số lớn trên                         GF( ),  
trường GF(p)  
P                     GF( )         
   ĩ         :  
z x.ymod p  
T                             GF( ):  
r := 0;  
C a.b mod p,  a,b p  
với i in 0 to k-1 lặp:  
r := (r +r) mod p;  
Để              ó                   
            GF( )                    ,      
                                     a b,  
                             ế         
         p.  
if x(k-i-1)=1 thì r := r + y mod p;  
kết thúc nếu;  
kết thúc lặp;  
kết quả := r;  
                               ể  
                              GF( ),        ố  
 ó  ó                               ,     
                 C                  
                  ế   ế               ì   
                                       
       AND,  OR,             , MU           
                            FPGA    
CLB     LUT   V                       ế         
 ó               ô                      
                                         
GF( ),        ó    ó                ố  
                     :  
y
0
1
Step_type  
ce_r  
p
x
y
p
Bộ cộng modulo p  
z
update  
load  
Shift  
Thanh ghi dịch  
256 - bit  
Mạch tổ  
hợp  
ce  
Thanh ghi 256-bit  
clear  
x(i)  
load  
load  
r
- P                        (multiply and  
z
then divide)  
   3  C     ú                      GF(p)  
- P                    x   (Interleaving)  
D. Thiết kế cứng hóa phép chia/nghịch đảo trên  
- P                M          (nhân  
Montgomery). H     , chúng tôi         
     ó                                  
    x  ,                                  
                                      
và phép nhân 2. T                        ú   
 ô                               ò      
P                    x        làm rõ     
trong                    x                  tài  
    [4], [5]. T                  x       trình  
bày        :  
trường GF(p)  
P                                     
                 a/b     a = 1  T  x          
            ,                 a, b:  
  T                   
a,b  
, p 1  
            a b trên  
       :  
. (1)  
z a / bmod p  
Để                   (1)  ó           
toán khác nhau (thuật toán Euclidean thuật toán  
nhị phân, thuật toán cộng-trừ và thuật toán tính  
nghịch đảo theo định lý Fermat’s Little) trong  
          ú    ô                           
    ế   ế                             
GF(p).  
C   
    
 ố  
 ự  
      
x,  
y:  
  T               
x, y..., p 1  
              x y trên  
       :  
.
Ta  
có  
z x.ymod p  
C   
a,b  
    
p 1  
 ố  
 ự  
      
a,  
b:  
x.y x .2k1 xk2.2k2 ...x .20 y  
k1  
0
(...(0.2 xk1y)2 xk2 y)2 ...x1y)2 x0 y  
- Nế               ,      ó     ó:  
GCD(a,b) = 2.GCD(a/2, b/2)  
                      ,                      ó  
                              ô       ó  
              ú      (     )          ế  
- Nế       ó          ,             ì  
GCD(a, b) = GCD(a, b/2).  
- Nế    ô    ó                 a b  
54 Số 2.CS (08) 2018  
Nghiên cứu Khoa học và Công nghệ trong lĩnh vực An toàn thông tin  
  ì      ó GCD(a,b) = GCD(a, a -b)        
 ó a b           
y2 y1  
x2 x1  
    
y3 (x x3) y1  
  
1
Lặ           ì                        m  
          ì           ố x       GCD(a ,b)  
= GCD( a p  
, 0)  Từ         ó   ể x            
a
z mod p  
          
       :  
b
T                                   
GF(p):  
a := p; b := y; c := 0; d := x;  
Trong khi a > 1 lặp  
Trong khi (b mod 2) = 0 lặp  
b := b/2; d := Divide_By_2(d, P);  
Kết thúc lặp;  
Nếu b >= a thì b := b-a; d := (d-c) mod  
P; Nếu không thì  
Old_b := b; b := a-b; a := Old_b;  
Old_d := d; d := (c-d) mod P; c := Old_d;  
Kết thúc nếu;  
   5  C     ú                                     
Kết thúc lặp;  
GF(p)  
Z := c;  
B. Thiết kế cứng hóa phép nhân đôi điểm  
b
a
a
d
p
d
c
c
d
c
d
a
b
b
Elliptic trên trường GF(p)  
Bộ cộng theo điều  
kiện  
Bộ trừ  
Bộ trừ  
Bộ trừ  
Bộ trừ  
b0  
P          ô                      ĩ      
              ó            
x              :  
d+b0p  
/2  
    
R 2P  
0
1
0
1
0
1
0
1
x3 2 2x1  
d2-1 mod p  
d-c/c-d  
;
c
0
p
a
y
b/2  
1
3x2 a  
a/b  
b-a/a-b  
x
1
    
1
y3 (x x3) y  
  
1
0
1
2
0
1
2
0
1
2
0
2
2y1  
ce  
ce  
ce  
ce  
ce  
Thanh ghi  
Thanh ghi  
Thanh ghi  
Thanh ghi  
k bit  
k bit  
k bit  
k bit  
a
b
d
z.c  
Hình 4. C u trúc phép chia/ngh    o theo thut  
toán nh              ng GF(p)  
III. THIT KCNG HÓA PHÉP NHÂN  
ĐIỂM ELLIPTIC TRÊN TRƯỜNG GF(p)  
A. Thiết kế cứng hóa phép cộng điểm Elliptic  
trên trường GF(p)  
P                                 ĩ  
                  ó            
R P Q  
    x              :  
   6  C     ú             ô               
            GF( )  
x3 2 x1 x2  
Số 2.CS (08) 2018 55  
Journal of Science and Technology on Information Security  
C. Thiết kế cứng hóa phép nhân điểm Elliptic  
IV. KẾT QUẢ THỰC HIỆN  
trên trường GF(p)  
M                                         
V        ó                              GF( )          ú    ô               02    
       GF( )          ì                      chip xc7z030    x 7z045                
      ế   ế      ó             ,       ú                          “N            ế  
                                            ế,   ế                         HSM,  
GF( )        :  
                                x   
      ô        D            ế            
                   02                
khác nhau  
K+ carry_reg  
(K+ carry)/2  
B   1. Kế                          
                        FPGA  
Cộng Điểm  
Initial: K  
Tầ   ố  
    
     
Tài  
nguyên  
   ế   ế  
T    
toán  
nhân  
    
C    
dài  
     
bit  
Chip  
FPGA  
Tạo cờ trạng thái  
(M  
Hz)  
(L  
UTs)  
Nhân Đôi  
Thanh ghi XQ, YQ  
Xc7z030  
Xc7z045  
136.1  
157.3  
34472  
34486  
Initial: Xp, Yp  
T    
toán 1  
256  
   7  C     ú                         
            GF( )  
V. KẾT LUẬN  
G                                     
                     GF( )          ô      ệ  
FPGA:  
T                        ó          ì   
             ,          ,                   
                                       
                                            
Để   ó                    ế   ế      ó  
phép tính              II và phép          
         III  T                            
FPGA     n ô       ô          HDL  
VHDL  Đ       ế                        
   ế   ế,                                02  
     FPGA x 7z030    x 7z045  Kế         
                    ,                   
   ,                                
“N            ế   ế,   ế                 
        HSM, ứ                       
         x         ô        
   8  G                             
                     GF( )  
56 Số 2.CS (08) 2018  
Nghiên cứu Khoa học và Công nghệ trong lĩnh vực An toàn thông tin  
TÀI LIỆU THAM KHẢO  
SƠ LƯỢC VỀ TÁC GIẢ  
KS. Nguyễn Văn Long  
[1]. American Bankers Association. ANSI X9.62-  
1998: Public Key Cryptography for the  
Financial Services Industry: The Elliptic Curve  
Digital Signature Algorithm (ECDSA).  
Đ     ô      : V   K        –  
           , B   C   ế  
        ủ  
[2]. N. Koblitz, S. Vastone, and A. Menezes. The  
State of Elliptic Curve Cryptography, Design,  
Codes and Cryptography, 19(2/3):173-193,  
March 2000.  
Email: longyenkk2@gmail.com  
Q     ì         : N        ỹ  
    ă  2014  
H                      : Cô            ,  
FPGA,  ô        ú   L   x  
[3]. J. Lutz. High Performance Elliptic Curve  
Cryptographic co-           M             ,  
University of Waterloo, 2003.  
TS. Hoàng Văn Thức  
[4]. Đề tài c   B   “N       u thiết kế, chế to  
module bo m       t an toàn, cng hóa các  
thut toán GOST (28147-89, R34.11-2012,  
R34.10-2012) da trên công nghệ FPGA”  B   
C   ếu Chính ph, Thc hin 2015- 2016. Chủ  
nhim Nguy  B    C      
Đ     ô   tác: V   K        -  
           , B   C   ế  
C       .  
Email: thuchv@yahoo.com  
Q     ì         : N           
 ă  1998    T    ĩ  ă  2004  
             Kỹ           ,  
[5]. SEC1. Elliptic Curve Cryptography: Standards  
for  
Eficient  
Cryptography  
Group,  
H       Kỹ             N       T ế   ĩ T    
   , V   K        -       q      ă  2012  
[6]. TC03-2:2015, “Thut toán chký sECDSA”,  
B       ếu Chính ph.  
H                      : K        -       ệ  
Mậ      
[7]. The FIPS 186-3 Elliptic Curve Digital Signature  
Algorithm Validation System (ECDSA2VS),  
January 17, 2012.  
[8]. Cryptographic Algorithms on Reconfigurable  
Hardware, Springer.  
Số 2.CS (08) 2018 57  
pdf 6 trang yennguyen 09/04/2022 5480
Bạn đang xem tài liệu "Một giải pháp cứng hóa phép nhân điểm Elliptic trên trường GF(p)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfmot_giai_phap_cung_hoa_phep_nhan_diem_elliptic_tren_truong_g.pdf