II. Bố cục của luận văn
3. Một số sơ đồ chữ ký cơ bản
3.2. Sơ đồ chữ ký DSA (Digital Signature Standard)
Trong phần này nội dung chớnh là nghiờn cứu cỏc sơ đồ chữ ký điện tử DSA và lớp cỏc chữ ký tƣơng tự, đặc điểm của những giải thuật này là đều sử dụng chữ ký theo kiểu chọn lựa ngẫu nhiờn. Tất cả cỏc sơ đồ DSA kốm thụng điệp đều cú thể cải biến thành cỏc sơ đồ ký khụi phục thụng điệp .Đặc biệt, sẽ đi sõu vào chuẩn chữ ký điện tử DSS(Digital Signature Standard) do khả năng cài đặt thực tế của nú
a. Giới thiệu
Sơ đồ chữ ký DSS dựa trờn giảI thuật ký điện tử DSA (Digital Signature Algorithm). Chữ ký dạng DSS là một dạng chữ ký kốm thụng điệp, điều đú cú nghĩa là chữ ký phải đƣợc gửi kốm với thụng điệp mà bản thõn chữ ký khụng chứa (hoặc khụng sinh ra) thụng điệp, thụng thƣờng nhƣng chữ ký dạng này đều đũi hỏi cú một hàm băm trờn thụng điệp (do nội dung thụng điệp cú độ dài khụng xỏc định). Hàm băm này đƣợc sử dụng trong quỏ trỡnh sinh chữ ký để xõy dựng một dạng nộn của dữ liệu (condensed version of data). Dữ liệu này gọi là đại diện văn bản (message digest). Phần đại diện văn bản này là đầu vào của giải
thuật sinh chữ ký. Ngƣời xỏc nhận chữ ký cũng sử dụng hàm băm này để xõy dựng phƣơng phỏp xỏc nhận chữ ký. Đối với sơ đồ chữ ký DSS hàm băm là security Hash Algorithm (SHA) đƣợc miờu tả trong FIPS 186, hàm băm này tạo ra một giỏ trị số nguyờn 160 bớt đặctrƣng cho một thụng điệp, điều này làm hạn chế một trong cỏc giỏ trị tham số của DSS phảI là 160 bit. Ngoài ra, chuẩn này yờu cầu việc sinh chữ ký phải sử dụng một khúa riờng cho mỗi ngƣời ký, ngƣợc
lại để xỏc nhận chữ ký, ngƣời xỏc nhận phải cú một khúa cụng khai tƣơng ứng với khúa riờng của ngƣời gửi
Hỡnh 13:Chữ ký DSA
b. Cỏc giải thuật cơ bản của DSA
Thuật toỏn sinh khúa
Mỗi thực thể tạo một khúa cụng khai và một khúa mật tƣơng ứng theo cỏch sau: 1. Chọn một số nguyờn tố q sao cho 2159 < q < 2160
2. Chọn một số nguyờn tố p sao cho 2511+64t < p < 2512+64tở đú t [0,8] 3. Chọn số nhƣ sau:
• Chọn g là một số nguyờn bất kỳ nhỏ hơn p, =g(p-1)/q mod p • khỏc 1
4. Chọn số nguyờn a sao cho: 1aq1
5. Tớnh a mod p
6. Khúa riờng của thực thể là a, khúa cụng khai là bộ (p,q, )
Thuật toỏn sinh chữ ký
Khi cần sinh chữ ký cho một thụng điệp x thực thể phảI làm những việc nhƣ sau:
1. Chọn một số nguyờn mật k, 0 < k <q-1 2. T ớnh =(akmod p ) mod q.
3. Tớnh k -1 mod q.
4. Tớnh =k-1 (h(x)+a ) mod q
5. Chữ ký của thực thể cho x là cặp ( , )
Khi cần xỏc nhận chữ kớ cho một thụng điệp m thực thể phải làm những việc nhƣ sau:
1. Dành lấy khoỏ cụng khai của thực thể kớ (p, q, a, ũ)
2. Nếu điều kiện: 0 < d,? < q khụng thoả món thỡ từ chối chữ kớ
3. Tớnh w = d-1 mod q và h(x)
4. Tớnh e1 = w.h(x) mod q và e2 =?w mod q 5. Tớnh v = (ae1.ũe2 mod p) mod q
6. Nếu v = ? thỡ chấp nhận chữ kớ ngoài ra thỡ từ chối.
c. Túm tắt lƣợc đồ chữ kớ số DSS
Vớ dụ:
Gỉa sử q = 101, p = 78q + 1 = 7879
3 là phần tử nguyờn thuỷ trong Z7879nờn ta cú thể lấy: a = 378 mod 7879 = 170
Gỉa sử a = 75, khi đú ũ = aa mod 7879 = 4576
Muốn kớ bức điện x = 1234, ta chọn số ngóu nhiờn k = 50 Vỡ thế cú k -1mod 101 = 99, khi đú cú:
? = (17030 mod 7879) mod 101 = 2518 mod 101
= 94
Và d = (1234 + 75*94)*99 mod 101 = 96
Chữ kớ (94, 97) trờn bức điện 1234 đƣợc xỏc minh bằng cỏc tớnh toỏn sau:
d-1 = 97-1 mod 101 = 25
e1 = 1234*25 mod 101 = 45 e2 = 94*25 mod 101 = 27
Cú (17045.456727 mod 7879) mod 101 = 2518 mod 101 = 94
Giả sử p là số nguyờn tố 512 bớt sao cho bài toỏn logarit rời rạc trong Zp là khú giải.
Cho p là số nguyờn tố160 bớt là ƣớc của (p-1). Gỉa thiết a? Zp là căn bậc q của một modulo p Cho p thuộc Zp và a = Zq ỡ Zp và định nghĩa:
A = {(p, q , a, a, ũ ): ũ trựng a a (mod p)} Cỏc số p, q , a, ũ cụng khai, cú a mật.
Với K = (p, q , a, a, ũ ) và với một số ngẫu nhiờn (mật) k, 1 = k = q -1, ta định nghĩa:
Qỳa trỡnh kớ số sigk (x, k) = (?,dδ) trong đú: ? = (ak mod p) mod q và
d = (x + a ?)k-1 mod q với x? Zp và?, d ? Zq Qỳa trỡnh xỏc minh sẽ hoàn thành sau cỏc tớnh toỏn:
e1 = xd-1 mod q e2 =?d-1 mod q
Vỡ thế chữ kớ hợp lệ.
d. Tớnh chất của chữ kớ DSA Độ an toàn
Độ an toàn của chữ kớ phụ thuộc vào độ bớ mật của khoỏ riờng. Ngƣời sử dụng phải đƣợc bảo vệ trƣớc về khoỏ riờng của mỡnh. Nếu khoỏ riờng đảm bảo an toàn tuyệt đối thỡ chữ kớ cũng cú mức độ an toàn hầu nhƣ tuyệt đối. Mặt khỏc, với khoỏ riờng là cụng khai, chữ kớ DSA là an toàn khi từ khoỏ cụng khai khụng thể tỡm đƣợc khoỏ riờng. Thật vậy, ta cú:
Cho p là một số nguyờn tố rất lớn, phƣơng trỡnh toỏn học sau là khụng thể giải đƣợc: y = ax mod p (1) với y, a = g(p-1)/qvà khỏc 1. Để xem xột điều này trƣớc hết ta nhận xột phƣơng trỡnh (1) cú nghiệm x duy nhất thuộc khoảng [1, q]. Thật vậy, giả sử cú hai nghiệm x1 và x2, từ (1) ta cú:
y = ax1 mod p và y = ax2 mod p
Khụng mất tớnh tổng quỏt ta giả sử x1 < x2từ đõy ta suy ra:
ax1chia hết cho p (khụng thoả món do p nguyờn tố)
Tồn tại k nhỏ hơn p sao cho ak 1 (mod p). Với giỏ trị a cú dạng
a = g(p-1)/qthỡ điều này khụng thể xảy ra khi g < p.
Trong nhiều trƣờng hợp, thụng điệp cú thể mó và giải mó chỉ một lần nờn nú phự hợp cho việc dựng với hệ mật bất kỡ (an toàn tại thời điểm đƣợc mó). Song trờn thực tế, nhiều khi một bức điện đƣợc làm một tài liệu đối chứng, chẳng hạn nhƣ bản hợp đồng hay một chỳc thƣ và vỡ thế cần xỏc minh chữ kớ sau nhiều năm kể từ khi bức điện đƣợc kớ. Bởi vậy, điều quan trọng là cú phƣơng ỏn dự phũng liờn quan đến sự an toàn của sơ đồ chữ kớ khi đối mặt với hệ thống mó. Vỡ sơ đồ Elgamal khụng an toàn hơn bài toỏn logarithm rời rạc nờn cần dựng modulo p lớn hơn chẳng hạn 512 bit trở lờn. Tuy nhiờn độ dài chữ kớ theo sơ đồ Elgamal là gấp đụi số bit của p mà với nhiều ứng dụng dựng thẻ thụng minh thỡ cần chữ kớ ngắn hơn nờn giải phỏp sửa đổi là: một mặt dựng p với độ dài biểu diễn từ 512 đến 1024 bit, mặt khỏc trong chữ kớ (?,dδ), cỏc số?, d cú độ dài biểu biễn ngắn, chẳng hạn là
160 bit – Khi đú độ dài chữ kớ là 320 bit. Điều này thực hiện bằng cỏch dựng nhúm con Cyclic Zq* của Zp* thay cho chớnh bản thõn Zp*, do đú mọi tớnh toỏn vẫn đƣợc thực hiện trong Zp* nhƣng dữ liệu và thành phần chữ kớ lại thuộc Zq*.
Tớnh hợp lệ:
Tớnh hợp lệ của chữ kớ DSA dựa trờn hai định lớ sau:
Định lớ 1: Cho p, q là hai số nguyờn tố thoả món điều kiện q \ (p - 1).
h là một số nguyờn dƣơng bất kỡ thoả món h < p. Nếu:
Thật vậy gq (h(p - 1)/q)q hp – 1 mod p (theo định lớ Fecma nhỏt). Định lớ 2: Với g, p, q xỏc định nhƣ trờn ta luụn cú:
nếu m n mod p thỡ gm gn mod p.
Thật vậy khụng mất tớnh tổng quỏt ta đặt m = n + kq Thỡ gm gn + kq (gn mod p).(gkq mod p) gn mod p
điều phải chứng minh.
Nhƣợc điểm:
Một ý kiến cho rằng, việc xử lớ lựa chọn của NIST là khụng cụng khai. Tiờu chuẩn đó đƣợc cục an ninh quốc gia phỏt triển mà khụng cú sự tham gia của khối cụng nghiệp Mỹ. Cũn những chỉ trớch về mặt kĩ thuật thỡ chủ yếu là về kớch thƣớc modulo p cố định = 512 bớt. Nhiều ngƣời đó muốn kớch thƣớc này cú thể thay đổi đƣợc nếu cần, cú thể dựng kớch cỡ lớn hơn. Đỏp ứng những điều kiện này, NIST đó chọn tiờu chuẩn cho phộp cú nhiều kớch cỡ modulo bất kỡ chia hếtcho 64 trong phạm vi từ 512 đến 1024 bớt.
Một phàn nàn nữa về DSA là chữ kớ đƣợc tạo ra nhanh hơn việc xỏc minh nú. Trong khi đú, nếu dựng RSA làm sơ đồ chữ kớ với số mũ xỏc minh cụng khai nhỏ hơn (chẳng hạn = 3) thỡ cú thể xỏc minh nhanh hơn nhiều so với việc lập chữ kớ. Điều này dẫn đến hai vấn đề liờn quan đến những ứnh dụng của sơ đồ chữ kớ:
Bức điện chỉ đƣợc kớ một lần, xong nhiều khi lại phải xỏc minh chữ kớ nhiều lần trong nhiều năm. Điều này tạo gợi ý nhu cầu cú thuật toỏn xỏc minh nhanh hơn.
Những kiểu mỏy tớnh nào cú thể dựng để kớ và xỏc minh? Nhiều ứng dụng, chẳng hạn cỏc thẻ thụng minh cú khả năng xử lớ hạn chế liờn lạc với mỏy tớnh nhanh hơn. Vỡ thế cú nhu cầu nhƣng thiết kế một sơ đồ để cú thể thực hiện trờn thẻ một số tớnh toỏn. Tuy nhiờn cú một số tỡnh huống cần hệ thống minh tạo chữ kớ, trong những tỡnh huống khỏc lại cần thẻ thụng minh xỏc minh chữ kớ. Vỡ thế cú thể đƣa ra giải phỏp xỏc định ở đõy.
Sự đỏp ứng của NIST đối với yờu cầu về số lần tạo xỏc minh chữ kớ thực ra khụng cú yờu cầu gỡ ngoài yờu cầu về tốc độ, miễn là cả hai thể thực hiện
nhanh.
4. Cỏc sơ đồ chữ kớ số khả thi
Trong cỏc sơ đồ chữ kớ điện tử ngƣời ta thƣờng sử dụng hai sơ đồ chữ kớ là DSA và RSA bởi vỡ một số nguyờn nhõn sau:
Cả hai sơ đồ đều đƣợc chớnh phủ Mỹ thụng qua trong Chuẩn chữ kớ số (DSS) . Cả hai giải thuật DSA và RSA đều đƣợc cụng bố trong Hồ sơ
trong liờn bang (FIPS) vào ngày 19/5/94 và đƣợc đƣa ra làm chuẩn chớnh thức của chữ kớ điện tử vào 1/12/94 mặc dự nú đó đƣợc đề xuất từ 8/91.
Cỏc sơ đồ chữ kớ này đều là cỏ sơ đồ chữ kớ dựa trờn cỏc phƣơng phỏp mó hoỏ khoỏ khoỏ cụng khai vadf đều cú độ bảo mật rỏt cao.
Cỏc bộ số liệu để kiểm nghiệm sự đỳng đắn trong việc cài đặt cỏc chữ kớ này đều đƣợc cụng khai. Nếu trong quỏ trỡnh thử nghiệm cỏc chữ kớ này đều đảm bảo đỳng với bộ số liệu thỡ chữ kớ đƣợc coi là an toàn.
Cả hai sơ đồ chữ kớ đều cú thể chuyển đổi từ cỏc chữ kớ kốm thụng điệp thành chữ kớ khụi phục thụng điệp khụng mấy khú khăn với việc tớch hợp thờm cỏc hàm cú độ dƣ R (Redundancy Function).
Trong thực tế khi đƣa ra hệ thống CA server, phớa đối tỏc quyết định lựa chọn sơ đồ chữ ki DSA là chữ kớ chớnh thức cho toàn bộ cỏc giao dịch.
Thời gian xỏc nhận chữ kớ của cả hai loại chữ kớ này đều ngắn và chấp nhận đƣợc trong mụi trƣờng mạng cụng cộng.