Nghiên cứu khoa học công nghệ 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 45
VỀ MỘT SỐ LƯU Ý ĐỐI VỚI LƯỢC ĐỒ CHỮ KÝ SỐ 
Triệu Quang Phong*, Trần Duy Lai 
Tóm tắt: Trong các chuẩn chữ ký số hiện như ECDSA, GOST R 34.10-2012, 
ECGDSA, EC-Schnorr, , thuật toán ký thường kèm theo một số bước kiểm tra xem 
giá trị hàm băm, hoặc một trong các thành phần của chữ ký số có giá trị bằng 0 hay 
không. Tuy nhiên, không có nhiều nghiên cứu nhằm giải thíchsự cần thiếtcủa các 
bước này. Trong bài báo này, chúng tôi sẽ phân tíchý nghĩa của các bước kiểm tra 
như vậy trong các chuẩn chữ ký số trên. 
Từ khóa: Lược đồ chữ ký số, Cặp chữ ký số- thông điệp, Ttấn công sử dụng thông điệp đơn giản, Phá vỡ hoàn 
toàn, Giả mạo vạn năng, Dễ uốn. 
1. GIỚI THIỆU 
Chữ ký số là một thành phần thực sự quan trọng trong các giao dịch điện tử hiện 
nay. Trên thế giới đã có nhiều chuẩn liên quan đến chữ ký số như: lược đồ ECDSA 
của Mỹ, lược đồ GOST R 34.10-2012 (ECRDSA) của Nga, lược ECGDSA của 
Đức, Các lược đồ này đều có mặt trong chuẩn quốc tế ISO/IEC 14888-3 [[1]]. 
Thông thường, một chữ ký số trên thông điệp   nào đó sẽ được ký hiệu là 
( ,  ). Điểm chung của các lược đồ chữ ký số như ECDSA, GOST R 34.10-2012, 
ECGDSA, là nếu xuất hiện   = 0 hoặc   = 0 trong thuật toán ký thì quá trình 
sinh chữ ký số cần được thiết lập lại. Ngoài ra, trong lược đồ chữ ký số GOST R 
34.10-2012, thuật toán ký cần kèm theo bước kiểm tra giá trị băm ℎ của thông điệp 
ký theo modulo   có bằng 0 hay không (với   là cấp của nhóm cơ sở). 
Tuy nhiên, lý do vì sao mà các lược đồ chữ ký số đó cần các bước kiểm tra như 
vậy lại chưa được bàn bạc nhiều. Cụ thể, qua khảo sát, chúng tôi thấy rằng chỉ có: 
công trình [[2]], [[6]] giải thích vì sao   phải khác 0 trong lược đồ chữ ký số DSA, 
và có thể áp dụng để giải thích cho ECDSA; [[7]] đưa ra một kiểu tấn công giả 
mạo khi yêu cầu  ≠ 0 trong thuật toán ký của ECDSA bị bỏ qua, tuy nhiên, tấn 
công này lại yêu cầu tham số miền được lựa chọn bởi kẻ tấn công; Và công trình 
[[3]] bàn luận về việc giá trị băm của thông điệp ký phải khác 0 cho GOST R 
34.10-94, và có thể áp dụng cho GOST R 34.10-2012. 
Theo đó, trong bài báo này, mục tiêu của chúng tôi là khảo sát và phân tích sự 
cần thiết của các bước kiểm tra “ ,   có bằng 0 hay không” trên các lược đồ chữ ký 
số ECDSA, GOST R 34.10-2012, ECGDSA, EC-Schnorr trong chuẩn ISO/IEC 
14888-3 [[1]]. Trong đó, chúng tôi chỉ ra một tấn công giả mạo (khác trong [[7]]) 
khi yêu cầu  ≠ 0 trong thuật toán ký của ECDSA bị bỏ qua, ở đó tham số miền 
không phụ thuộc vào việc lựa chọn của kẻ tấn công. Ngoài ra, chúng tôi cũng xem 
xét ảnh hưởng đối với các lược đồ chữ ký số trên trong trường hợp giá trị băm ℎ 
của thông điệp ký bằng 0, mặc dù trường hợp này không được xem xét trong hầu 
hết các chuẩn chữ ký số đó (ngoại trừ GOST R 34.10-2012). 
Phần còn lại của bài viết sẽ được bố cục như sau: Mục 2 sẽ trình bày các ký 
hiệu và khái niệm sẽ được sử dụng. Mục 3, 4, 5 và 6 sẽ lần lượt mô tả và trình bày 
việc khảo sát lược đồ ECDSA, GOST R 34.10-2012, ECGDSA, EC-Schnorr. Cuối 
cùng, phần kết luận của bài báo sẽ được trình bày trong Mục 7. 
Công nghệ thông tin 
T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.” 46 
2. CÁC KÝ HIỆU VÀ KHÁI NIỆM 
2.1. Các ký hiệu 
Các lược đồ chữ ký số được khảo sát trong bài báo này đều là các lược đồ chữ 
ký số trên đường cong elliptic. Trước khi xem xét chúng một cách cụ thể, chúng 
tôi trình bày các ký hiệu sẽ được sử dụng. 
  Số nguyên tố 
   Trường hữu hạn có đặc số   
      Đường cong elliptic được định nghĩa trên trường    
#      Số điểm thuộc đường cong       
  Điểm tại vô cùng của đường cong elliptic       
  Số nguyên tố thỏa mãn  |#      là cấp của nhóm cơ sở 
  Điểm cơ sở thuộc đường cong       có cấp bằng   
  Hàm băm được sử dụng trong lược đồ chữ ký số 
ℎ Giá trị băm của thông điệp 
  Người ký 
∈  Phép lấy ngẫu nhiên đều 
  Khóa ký (khóa bí mật) của   
  Khóa công khai của   
  Giá trị bí mật tức thời được sinh ngẫu nhiên trong quá trình ký 
  Thông điệp cần ký 
( ,  ) Chữ ký số, trong đó   là thành phần thứ nhất của chữ ký số và   là 
thành phần thứ hai của chữ ký số 
  ,    Tương ứng là hoành độ và tung độ của điểm   thuộc       
2.2. Các khái niệm 
Như đã đề cập ở phần giới thiệu, bài viết này sẽ khảo sát tầm quan trọng của các 
bước kiểm tra   = 0,   = 0, hoặc ℎ = 0       bằng cách xem xét ảnh hưởng đối 
với lược đồ chữ ký số khi các bước kiểm tra này bị loại bỏ. Do đó, chúng tôi giả sử 
rằng một trong các trường hợp trên sẽ xảy ra trong quá trình thực thuật toán ký lên 
thông điệp   nào đó, và kẻ tấn công biết được cặp chữ ký số- thông điệp này. Điều 
này tương đương với việc một tấn công sử dụng thông điệp đơn giản (plain 
known-message attack) được xem xét (nghĩa là, kẻ tấn công có quyền truy cập vào 
một danh sách các thông điệp đã được ký nhưng không được lựa chọn chúng). 
Bên cạnh đó, chúng tôi sẽ sử dụng các khái niệm liên quan đến một số mối đe 
dọa đối với lược đồ chữ ký số được trình bày trong [[4]] và [[5]]. Các khái niệm 
được phát biểu như sau. 
- Phá vỡ hoàn toàn (total break)[[5]]: Kẻ tấn công có khả năng tìm được khóa 
bí mật của người ký. Đây là mối đe dọa nguy hiểm nhất đối với một lược đồ chữ 
ký số. 
- Giả mạo vạn năng (universal forgery)[[5]]: Kẻ tấn công có thể xây dựng một 
thuật toán hiệu quả mà có thể ký lên bất kỳ thông điệp nào. 
- Dễ uốn (malleability)[[4]]: Từ một cặp chữ ký số- thông điệp, người ta có thể 
suy ra chữ ký số thứ hai trên thông điệp đó. 
Nghiên cứu khoa học công nghệ 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 47
Chúng ta có thể dễ dàng nhận ra, các độ nguy hiểm của các mối đe dọa đối với 
lược đồ chữ ký số được sắp xếp theo thứ tự tăng dần là tính dễ uốn, giả mạo vạn 
năng, phá vỡ hoàn toàn. 
3. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ ECDSA 
3.1. Mô tả lược đồ ECDSA 
- Thuật toán sinh khóa cho người dùng  : 
1. Khóa bí mật của người gửi   là số nguyên   ∈  [1,   − 1] 
2. Tính   =    
3. Khóa công khai của người gửi   là tổ hợp       ,  ,  ,    
- Thuật toán ký (của   trên thông điệp  ): Bằng cách sử dụng khóa bí mật của 
mình,   sinh chữ ký số cho thông điệp   qua các bước sau đây. 
1. Chọn số nguyên  ∈  [1,   − 1] 
2. Tính    = (  ,   ) và   =   mod  ; nếu   = 0, thì quay về bước 1 
3. Tính ℎ =  ( ) 
4. Tính   =    (ℎ +   )mod  ; nếu   = 0, thì quay về bước 1 
5. Chữ ký số của   đối với thông điệp   là cặp số nguyên ( ,  ) 
- Thuật toán xác minh (chữ ký số( ,  ) của   trên thông điệp  ): 
1. Xác minh rằng giá trị   và   thuộc khoảng [1,   − 1] 
2. Tính   =    mod   
3. Tính ℎ =  ( ) 
4. Tính    = ℎ  mod   
5. Tính    =          
6. Tính     +     = (  ,   ) 
7. Tính   =          
8. Chữ ký số đối với thông điệp   được xác minh là hợp lệ chỉ nếu   =   
Lưu ý: Do thuật toán ký của lược đồ chữ ký số ECDSA quy định rằng các giá trị 
 ,   cần được tính theo modulo   và phải khác 0, nên hiển nhiên rằng chúng ta phải 
kiểm tra điều kiện   và   thuộc khoảng [1,   − 1] trong thuật toán xác minh của 
lược đồ chữ ký số này. Tuy nhiên, mục đích chính của bài báo này là phân tích ý 
nghĩa của việc “ ,   phải khác 0” trong thuật toán ký đối với các lược đồ chữ ký 
số, nên chúng tôi sẽ sử dụng điều kiện  ,  cần thuộc khoảng [0,   − 1] trong thuật 
toán xác minh (của lược ECDSA và các lược đồ chữ ký số tiếp theo) thay cho điều 
kiện trong mô tả gốc. 
3.2. Khảo sát bước lặp trong thuật toán ký của ECDSA 
Trong lược đồ chữ ký ECDSA, giá trị băm ℎ của thông điệp   được biểu diễn 
bởi  ( ). Đối việc kiểm tra chữ ký số( ,  ) trên thông điệp  , chúng ta cần tính 
điểm (  ,   ) =  ( ) 
    +       và sau đó kiểm tra đẳng thức   =         . 
Vì vậy, phương trình xác minh đối với chữ ký số( ,   ) trên thông điệp   trong 
ECDSA thực chất là   ( )           =        . Theo đó, chúng tôi sẽ khảo sát 
sự cần thiết của các bước kiểm tra   = 0,   = 0, hoặc  ( ) = 0       đối với 
thuật toán ký ECDSA. 
Công nghệ thông tin 
T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.” 48 
Trường hợp   =  . Chúng tôi nhận thấy rằng, nếu một chữ ký số ECDSA dạng 
(0,  ) được chấp nhận là hợp lệ trên một thông điệp   nào đó (mà  ( ) ≠
0      ), chúng ta sẽ luôn tạo ra được một chữ ký số dạng (0,   ) trên một thông 
điệp    bất kỳ. Thật vậy, chúng ta có kết quả sau. 
Kết quả 1. Giả sử (0,  ) là chữ ký hợp lệ trên văn bản   (mà  ( ) ≠ 0      ) 
và thông điệp  ’ là thông điệp bất kỳ, thì (0,   ) với 
   =  (  ) ( )          
là chữ ký hợp lệ trên   . 
Chứng minh: Do (0,  ) là chữ ký số hợp lệ trên thông điệp  , nên ta có 
  ( )     = 0      . 
Khi đó, với thông điệp   bất kỳ, và    =  (  ) ( )         , thì 
 
         
  
   ⋅    
  
 
=  
         
  
 
=  
            ( )    
  
 
 =   ( )     = 0      . 
Do đó (0,   ) là một chữ ký số hợp lệ trên   . ■ 
Như vậy, trong trường hợp này, lược đồ ECDSA bị giả mạo vạn năng. 
Trường hợp   =  . Có hai lý do cho việc kiểm tra   = 0 trong thuật toán ký 
ECDSA. Lý do thứ nhất theo [[2]](cho lược đồ DSA, và cũng có thể áp dụng cho 
ECDSA) là nếu một chữ ký số dạng ( , 0) được sinh ra trong thuật toán ký, thì 
khóa bí mật của người ký sẽ bị lộ bởi công thức   = −ℎ         . Điều này dẫn 
đến lược đồ ECDSA bị phá vỡ hoàn toàn. Một lý do hiển nhiên khác được chỉ ra 
trong [[6]] là thuật toán xác minh của ECDSA sẽ không thể kiểm tra chữ ký số tính 
hợp lệ của chữ ký số( ,  ) khi   = 0, bởi nó yêu cầu việc tính nghịch đảo    . 
Trường hợp ( ) =        . Mặc dù đối với lược đồ ECDSA không yêu cầu 
bước kiểm tra  ( ) = 0       trong thuật toán ký, tuy nhiên, theo chúng tôi việc 
xem xét điều kiện này là cần thiết. Thật vậy, chúng ta nhắc lại một kết quả quen 
thuộc liên quan đến tính dễ uốn đối lược đồ chữ ký ECDSA như sau. 
Khẳng định 2 [[8]]. Nếu( ,  ) là chữ ký hợp lệ trên   trong lược đồ chữ ký 
ECDSA, thì ( , − ) cũng là chữ ký hợp lệ trên   trong lược đồ chữ ký này. 
Đối với nhược điểm này của ECDSA, chúng ta có thể dễ dàng loại bỏ nó bằng 
cách chỉ xem ( ,  ) và ( , − ) như một chữ ký. Ví dụ, thành phần thứ hai của chữ 
ký ECDSA được gán giá trị min{ ,   −  } thay cho giá trị   trong mô tả gốc; Và 
thành phần này cần được kiểm tra thuộc [1,  /2] trong thuật toán xác minh. Tuy 
nhiên, trong trường hợp  ( ) = 0      , tính dễ uốn vẫn tồn tại trên lược đồ 
chữ ký ECDSA ngay cả khi có sửa đổi trên. 
Thật vậy, giả sử (  ,   ) là chữ ký số cho trước được sinh theo thuật toán ký 
ECDSA trên thông điệp   mà có  ( ) = 0      , chúng ta có thể sinh ra một 
họ vô hạn chữ ký số hợp lệ trên thông điệp này mà không cần biết khóa bí mật 
của người ký. Thật vậy, do (  ,   ) là chữ ký số hợp lệ của   nên ta có đẳng 
thức    =  
           , hay   =      
        . Khi đó, với   là số nguyên 
bất kỳ, tính 
   =                 
   =       
         
Nghiên cứu khoa học công nghệ 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 49
thì    ,     cũng là chữ ký số hợp lệ trên thông điệp   do 
  ( )              =          =               
  
 
 =           =         . 
Như vậy, trong trường hợp này, lược đồ ECDSA là dễ uốn. 
4. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ GOST R 34.10-2012 
4.1. Mô tả lược đồ GOST R 34.10-2012 
- Thuật toán sinh khóa cho người dùng  : Thuật toán này được mô tả tương tự 
như thuật toán sinh khóa trong lược đồ ECDSA. 
- Thuật toán ký (của   trên thông điệp  ): 
1. Tính ℎ =  ( ). 
2.   = ℎ      . Nếu   = 0, thì gán   = 1. 
3. Chọn số nguyên   ∈  [1,   − 1]. 
4. Tính    = (  ,   ), và   =         , nếu   = 0 quay về bước 3. 
5. Tính   =    +         ; nếu   = 0, quay lại bước 3. 
6. Chữ ký số của   trên thông điệp   là ( ,  ). 
- Thuật toán xác minh (chữ ký số( ,  ) của   trên thông điệp  ): 
1. Xác minh  ,   có thuộc [1,   − 1] hay không 
2. Tính ℎ =  ( ) 
3.   = ℎ      . Nếu   = 0, thì gán   = 1 
4. Tính   =           
5. Tính    =          và    = −         
6. Tính     +     = (  ,   ) và tính   =          
7. Chữ ký số được xác minh chỉ khi   =   
4.2. Khảo sát bước lặp trong thuật toán ký của GOST R 34.10-2012 
Trong lược đồ chữ ký GOST R 34.10-2012, giá trị băm ℎ của thông điệp   
được biểu diễn bởi  ( ). Đối việc kiểm tra chữ ký số ( ,   ) trên thông điệp  , 
phương trình xác minh của GOST R 34.10-2012 thực chất là 
   ( )      ( )    =        . Theo đó, chúng tôi sẽ khảo sát sự ảnh hưởng đối 
với lược đồ chữ ký số này khi các bước kiểm tra   = 0,   = 0 hoặc  ( ) =
0       bị lược bỏ. 
Trường hợp   =  . Tương tự trường hợp của ECDSA, nếu một chữ ký sốGOST R 
34.10-2012 dạng (0,  ) được chấp nhận là hợp lệ trên một thông điệp   nào đó, 
chúng ta sẽ luôn tạo ra được một chữ ký số dạng (0,   ) trên một thông điệp    bất 
kỳ. Thật vậy, chúng ta có kết quả sau. 
Kết quả 3. Giả sử (0,  ) là chữ ký hợp lệ trên văn bản   (mà  ( ) ≠ 0      ) 
và thông điệp  ’ là thông điệp bất kỳ, thì (0,   ) với 
   =  (  ) ( )          
là chữ ký hợp lệ trên   . 
Chứng minh: Do(0,  ) là chữ ký số hợp lệ trên thông điệp  , nên ta có 
   ( )    = 0      . 
Khi đó, với thông điệp    bất kỳ, và    =  (  ) ( )         , thì 
Công nghệ thông tin 
T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.” 50 
 
      
  
   ⋅     
  
 
=  
      
  
 
=  
       ( )         
  
 
 =    ( )    = 0      . 
Do đó (0,   ) là một chữ ký số hợp lệ trên   . ■ 
Như vậy, trong trường hợp này, lược đồ GOST R 34.10-2012 bị giả mạo vạn năng. 
Trường hợp   =  . Đối với trường hợp   = 0, chúng tôi chưa tìm thấy bất cứ ảnh 
hưởng nào lên lược đồ chữ ký số này. 
Trường hợp  ( ) =        . Tương tự như trường hợp   = 0 đối với lược đồ 
chữ ký số ECDSA, có hai lý do cho việc xem xét  ( ) = 0       trong thuật 
toán ký của GOST R 34.10-2012. Nghĩa là, trong trường hợp này lược đồ GOST R 
34.10-2012 bị phá vỡ hoàn toàn (được chỉ ra trong [3]) và không thực hiện được 
thuật toán xác minh. 
5. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ ECGDSA 
5.1. Mô tả lược đồ chứ ký ECGDSA 
- Thuật toán sinh khóa cho người dùng  : 
1. Chọn khóa bí mật của thực thể gửi   là số nguyên   ∈  [1,   − 1] 
2.   ←       
3. Khóa công khai của thực thể gửi   là tổ hợp       ,  ,  ,    
- Thuật toán ký (của   trên thông điệp  ): 
1. Chọn số nguyên   không dự đoán được và duy nhất trong khoảng 
[1,   − 1] 
2.    = (  ,   ), trong đó    là số nguyên 
3.   =         ; nếu   = 0, thì quay về bước 1 
4. ℎ =  ( ), 
5.   = (   − ℎ)       ; nếu   = 0, thì quay về bước 1 
6. Chữ ký số của   đối với thông điệp   là cặp số nguyên ( ,  ) 
- Thuật toán xác minh (chữ ký số( ,  ) của   trên thông điệp  ): 
1. Xác minh rằng các giá trị   và   thuộc khoảng [1,   − 1] 
2.   =           
3. ℎ =  ( ), 
4.    = ℎ        
5.    =          
6. (  ,   ) =     +     
7.   =          
8. Chữ ký số đối với thông điệp   được xác minh chỉ nếu   =  . 
5.2. Khảo sát bước lặp trong thuật toán ký của ECGDSA 
Trong lược đồ chữ ký ECGDSA, giá trị băm ℎ của thông điệp   được biểu diễn 
bởi  ( ). Đối với việc kiểm tra chữ ký số( ,   ) trên thông điệp  , phương trình 
xác minh của ECGDSA thực chất là   ( )           =        . Theo đó, chúng 
tôi sẽ khảo sát sự ảnh hưởng đối với lược đồ chữ ký số này khi các bước kiểm tra 
  = 0,   = 0 hoặc  ( ) = 0       bị lược bỏ. 
Nghiên cứu khoa học công nghệ 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 51
Trường hợp   =  . Tương tự trường hợp   = 0 đối với ECDSA và  ( ) =
0       đối với GOST R 34.10-2012, cũng có hai lý do tương tự cho việc kiểm 
tra   = 0 trong thuật toán ECGDSA. Nghĩa là, trong trường hợp nàylược đồ 
ECGDSAbị phá vỡ hoàn toàn và không thực hiện được thuật toán xác minh. 
Trường hợp   =  . Đối với trường hợp   = 0, chúng tôi chưa tìm thấy bất cứ ảnh 
hưởng nào lên lược đồ chữ ký số này. 
Trường hợp  ( ) =        . Tương tự như trường hợp đối với lược đồ chữ ký 
số ECDSA, khi bước kiểm tra  ( ) = 0       trong lược đồ chữ ký số 
ECGDSA bị bỏ qua, chúng tôi sẽ xây dựng được một họ vô hạn chữ ký số 
ECGDSA lên thông điệp   có  ( ) = 0 từ một chữ ký số ( ,  ) cho trước mà 
được tạo ra theo thuật toán ký. Thật vậy, do ( ,  ) là chữ ký số hợp lệ của   nên ta 
có đẳng thức   =          , hay   =              . Khi đó, với   là số 
nguyên bất kỳ, tính    =              , và    =      
        , thì    ,     cũng 
là chữ ký số hợp lệ trên thông điệp   do 
  ( )             =          =             
  
 
=         =         . 
Như vậy, trong trường hợp này, lược đồ ECGDSA là dễ uốn. 
6. KHẢO SÁT LƯỢC ĐỒ CHỮ KÝ SỐ EC-SCHNORR 
6.1. Mô tả lược đồ EC-Schnorr 
- Thuật toán sinh khóa cho người dùng  : Thuật toán này được mô tả tương tự 
như thuật toán sinh khóa trong lược đồ ECDSA. 
- Thuật toán ký (của   trên thông điệp  ): 
1.   ∈  [1,   − 1] 
2.   =    = (  ,   ) 
3.   =  ( ‖  ), nếu   = 0      , quay lại bước 1. 
4.   =   −          , nếu   = 0      , quay lại bước 1. 
5. Đưa ra chữ ký số( ,  ). 
- Thuật toán xác minh (chữ ký số( ,  ) của   trên thông điệp  ): 
1. Xác minh xem   thuộc miền giá trị của hàm băm   và   trong khoảng 
[1,   − 1]. 
2.    +    = (  ,   ). Nếu   =  , đưa ra “chữ ký số không hợp lệ” và 
dừng lại. 
3.   =  ( ‖  ). 
4. Đưa ra “chữ ký số hợp lệ” nếu   =  ; ngược lại trả về “chữ ký số không 
hợp lệ”. 
6.2. Khảo sát bước lặp trong thuật toán ký của EC-Schnorr 
Trong lược đồ chữ ký EC-Schnorr, giá trị băm ℎ của thông điệp   và thành 
phần của chữ ký   được biểu diễn bởi  ( ||  ), với   =    và   là giá trị bí mật 
tức thời được sinh ngẫu nhiên trong quá trình ký. Do đó, vai trò của thành phần của 
chữ ký số và giá trị băm trong lược đồ chữ ký số Schnorr là như nhau, nên trong 
phần này chúng tôi chỉ xem xét bước kiểm tra   = 0       và   = 0 trong thuật 
toán ký của lược đồ Schnorr. 
Công nghệ thông tin 
T. Q. Phong, T. D. Lai, “Về một số lưu ý đối với lược đồ chữ ký số.” 52 
Trường hợp   =  . Chúng tôi nhận thấy rằng nếu một chữ ký số Schnorr ( ,  ) mà 
  = 0       được sinh ra trong thuật toán ký lên thông điệp   nào đó thì dễ dàng 
nhận được một chữ ký số khác trên thông điệp   mà không cần dùng tới khóa bí 
mật của người ký – cụ thể, chữ ký số này có dạng ( , − ). Thật vậy, với ( ,  ) là 
chữ ký số trên thông điệp  , ta có đẳng thức 
0 =    ||        =    ||     =    ||      =    || (  )           . 
Do đó, ( , − ) cũng là chữ ký số hợp lệ trên thông điệp này. Như vậy, lược đồ 
chữ ký số Schnorr là dễ uốn nếu trường hợp   = 0 xảy ra. 
Trường hợp   =  . Giống như trường hợp của ECGDSA và GOST R 34.10-2012, 
chúng tôi chưa tìm thấy điểm yếu gì trên lược đồ Schnorr khi bỏ qua việc kiểm tra 
  = 0. 
7. KẾT LUẬN 
Như vậy, trong bài báo này, chúng tôi đã khảo sát và phân tích sự cần thiết của 
các bước kiểm tra   = 0,   = 0, hoặc  ( ) = 0 trong thuật toán ký của lược đồ 
chữ ký số ECDSA, GOST R 34.10-2012, ECGDSA, và EC-Schnorr trong chuẩn 
ISO/IEC 14888-3 [[1]]. 
Công việc của chúng tôi được thực hiện thông qua việc xem xét các mối đe dọa 
về việc phá vỡ hoàn toàn, giả mạo vạn năng và tính dễ uốn đối với lược đồ chữ ký 
số bởi tấn công sử dụng thông điệp đơn giản. Kết quả mà chúng tôi thu được có 
thể được tóm tắt qua bảng 1. 
Theo đó, vấn đề còn lại của chúng tôi là lý do vì sao   cần phải khác 0 trong thuật 
toán ký của GOST R 34.10-2012, ECGDSA và EC-Schnorr. Ngoài ra, chúng tôi cũng 
tìm hiểu về lý do vì sao  ,   cần phải khác 0 trong lược đồ chữ ký số ECKCDSA 
(chuẩn chữ ký số của Hàn Quốc), tuy nhiên, chúng tôi chưa thu được kết quả nào. Do 
đó, những vấn đề này sẽ được quan tâm trong những nghiên cứu tiếp theo. 
Bảng 1. Tóm tắt kết quả khảo sát. 
 ECDSA GOST R 34.10-
2012 
ECGDSA EC-Schnorr 
  = 0 
Bị giả mạo vạn 
năng 
Bị giả mạo vạn 
năng 
Bị phá vỡ hoàn 
toàn và không 
thực hiện được 
thuật toán xác 
minh 
Dễ uốn 
ℎ
= 0       
Dễ uốn 
Bị phá vỡ hoàn 
toàn và không 
thực hiện được 
thuật toán xác 
minh 
Dễ uốn Dễ uốn 
  = 0 
Bị phá vỡ hoàn 
toàn và không 
thực hiện được 
thuật toán xác 
minh 
Chưa tìm thấy 
mối đe dọa 
Chưa tìm thấy 
mối đe dọa 
Chưa tìm 
thấy mối đe 
dọa 
Nghiên cứu khoa học công nghệ 
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 53
TÀI LIỆU THAM KHẢO 
[1]. International standard ISO/IEC DIS 14888-3. Information technology -- 
Security techniques -- Digital signatures with appendix -- Part 3: Discrete 
logarithm based mechanisms. ISO/IEC JTC 1/SC 27, 2016. 
[2]. Ronald L. Rivest, Martin E. Hellman và John C. Anderson, “Responses to 
NIST’s Proposal”, Communications of the ACM, July 1992, Vol.35, No.7, pp. 
42-52. 
[3]. Markus Michels, David Naccache, and Holger Petersen, “GOST 34.10 – A 
Brief Overview of Russia’s DSA”, Computers & Security 15(8):725-732, 
1996. 
[4]. J. Stern, D. Pointcheval, J. Malone-Lee, N.P. Smart, “Flaws in Applying Proof 
Methodologies to Signature Schemes”, Annual International Cryptology 
Conference, CRYPTO 2002: Advances in Cryptology — CRYPTO 2002 pp 
93-110. 
[5]. D. Pointcheval, J. Stern. “Security arguments for digital signatures and blind 
signatures”. Journal of cryptology 13.3 (2000): 361-396. 
[6]. M. Braun, A. Kargl. “A Note on Signature Standards”. IACR Cryptology 
ePrint Archive 2007 (2007): 357. 
[7]. Ian F. Blake, G. Seroussi, and Nigel P. Smart, eds. “Advances in elliptic curve 
cryptography” (Chapter II). Vol. 317. Cambridge University Press, 2005. 
[8]. J. Stern, D. Pointcheval, J. Malone-Lee, Nigel P. Smart, “Flaws in Applying 
Proof Methodologies to Signature Schemes”, Annual International Cryptology 
Conference, CRYPTO 2002: Advances in Cryptology — CRYPTO 2002 pp 
93-110. 
ABSTRACT 
ON SOME NOTES FOR DIGITAL SIGNATURE SCHEME 
In the current digital signature standards such as ECDSA, GOST R 34.10-
2012, ECGDSA, EC-Schnorr, , the signing algorithm usually includes some 
steps for checking whether the value of the hash function or one of the 
signature components is equal 0 or not. However, there is not much research 
to explain the necessity of these steps. In this article, the signification of such 
test steps in the above digital signature standards will be analysed. 
Keywords: Digital signature scheme, Signature-message pair, Total break, Universal forgery, Malleability, 
The plain-known message attack. 
Nhận bài ngày 16 tháng 8 năm 2017 
Hoàn thiện ngày 26 tháng 11 năm 2017 
Chấp nhận đăng ngày 28 tháng 11 năm 2017 
Địa chỉ: Viện Khoa học-Công nghệ Mật mã, Ban Cơ yếu Chính phủ; 
 * Email: 
[email protected].