Chương 9: Chữ ký số, trong chương này sẽ tìm hiểu tổng quan về chữ ký số, sơ đồ chữ ký số RSA, sơ đồ chữ ký Rabin, sơ đồ chữ ký Elgama, họ sơ đồ chữ ký Elgama, sơ đồ chữ ký trên cơ sỡ đường cong Elliptíc, chữ ký mờ Chaum.
Chương CHỮ KÝ SỐ 9.1 Tổng quan chữ ký số Chúng ta hiểu nơm na chữ ký số điện tử sau: thông tin kèm với liệu nhằm xác định chủ người gởi Chữ ký số điện tử bao gồm thành phần: thuật tốn tạo khóa, hàm tạo chữ ký hàm kiểm tra chữ ký Hàm tạo chữ ký hàm tính tốn chữ ký sở khóa mật liệu cần ký Hàm kiểm tra chữ ký hàm kiểm tra xem chữ ký cho có với khóa cơng cộng khơng Khóa người có quyền truy cập người kiểm tra chữ ký Định nghĩa: Sơ đồ chữ ký bao gồm thành phần sau Không gian rõ M Khơng gian chữ ký S Khơng gian khóa K để tạo nên chữ ký, khơng gian khóa K’ để kiểm tra chữ ký Thuật toán hiệu để tạo nên khóa Gen: N K × K ' , K K’ tương ứng với không gian khóa mật khóa cơng cộng Thuật tốn tạo chữ ký Sign: M × K S Thuật tốn kiểm tra chữ ký Verify: M × K × K ' {True , False} Đối với khóa tạo chữ ký sk ∈ K tin m ∈ M lệnh ký điện ký hiệu: s ← Signsk (m) Biểu thức đọc sau: s- chữ ký tin m tạo nhờ thuật toán Sign khóa mật sk Đối với khóa mật chữ ký sk ∈ K , tương ứng với khóa cơng cộng để kiểm tra chữ ký pk ∈ K ' , tin m ∈ M chữ ký s ∈ S cần thỏa mãn điều kiện sau: True , if Verify pk ( m, s ) = False, if s = Signsk ( m ) s ≠ Signsk ( m ) Bởi tài liệu cần ký thường có chiều dài dài Một biện pháp để ký chia tài liệu đoạn nhỏ sau ký lên đoạn ghép lại Nhưng phương pháp có nhược điểm chữ ký lớn, thứ hai ký chậm hàm ký hàm mũ, thứ ba chữ ký bị đảo loạn vị trí khơng đảm tính ngun vẹn tài liệu Chính điều mà ký người ta ký lên giá trị hàm hash tài liệu, giá trị hàm hash cho chiều dài xác định Hàm hash xem chương sau Chức chữ ký số điện tử: Xác thực nguồn gốc tài liệu : Tuy thuộc vào tin mà thêm thơng tin nhận dạng, tên tác giả, nhản thời gian…vv Tính tồn vẹn tài liệu Vì có thay vơ tình hay cố ý lên điện gía trị hàm hash bị thay đổi kết kiểm tra điện không Chống từ chối điện Vì có chủ điện có khóa mật để ký điện Các khả công chữ ký điện tử: Tội phạm giả mã mạo chữ ký tương ứng với văn chọn Tội phạm thử chọn điện mà tương ứng với chữ ký cho Tội phạm ăn trộm khóa mật ký điện muốn giống chủ khóa mật Tội phạm dã mạo ơng chủ ký điện Tội phạm đổi khóa cơng cộng khóa 9.2 Sơ đồ chữ ký số RSA Sơ đồ chữ ký RSA Diffie-Hellman đề xuất Ronald Linn Rivest, Adi Shamir Leonard Adleman thực Sơ đồ chữ ký RSA Tạo khóa: Q trình tạo khóa cho sơ đồ chữ ký RSA giống q trình hình thành khóa hệ mật RSA, tức là: Alice chọn cặp số nguyên tố đủ lớn p q, với q ≈ p , tính N=pq Chọn số nguyên e thỏa mãn UCLN (e,φ ( N )) = Alice xác định số nguyên d, thỏa mãn phương trình ed ≡ 1(mod φ ( N )) Số d khóa mật Alice Tạo chữ ký: Để tạo chữ ký số điện m ∈ Z N Alice tạo số * s = Signd (m) ← m d (mod N ) Thẩm tra chữ ký: Để thẩm tra chữ ký s có phải Alice ký khơng Bob kiểm chứng thủ tục sau: Verify(N,e)(m,s)=TRUE, m ≡ s e (mod N ) Rõ ràng thấy qúa trình tạo chữ ký thẩm tra chữ ký giống với trình mã giải mã hệ mật RSA khác trình tạo chữ ký Alice dùng khóa mật cịn q trình thẩm tra Bob dùng khóa cơng cộng Bàn luận độ an toàn sơ đồ chữ ký số RSA: Nếu sơ đờ ký số thực đơn giản tội phạm (Oscar) dễ dàng lừa Ví dụ * Oscar chọn ngẫu nhiên s ∈ Z N tính tốn độ lớn: m ≡ s e (mod N ) Thì rõ ràng trình thẩm tra (m,s) hoàn toàn Ngoài tính chất nhân hàm RSA, tức có hai điện m m2 tương ứng với chữ ký s s2 dễ dàng hình thành chữ ký thứ ba s1s2 với điện thứ ba m1m2: (m1m2 ) d = m1d ⋅ m2d = s1s2 Để chống lại giả mạo chữ ký theo phương pháp phương pháp đơn giản thêm thông tin phụ vào điện M, có nghĩa m=M||I, I dấu hiệu nhận dạng ví dụ I=”tên tác giả” Ngoài kết hợp với việc ký lên giá trị hàm hash điện, tức ký lên giá trị: m=hash(M) tính chất hàm hash chống lại khả giả mạo trừ xác suất nhỏ, khó tìm điện mà giá trị hash trùng với giá trị hàm hash cho 9.3 Sơ đồ chữ ký Rabin Sơ đồ chữ ký Rabin giống sơ đồ chữ ký RSA Sự khác chúng nằm trình thẩm tra chữ ký Trong sơ đồ chữ ký RSA tham số e số lẻ thỏa mãn điều kiện gcd(e, φ (N ) )=1, φ (N ) số chẳn, sơ đồ Rabin e=2 Chúng ta xem cụ thể trình ký sơ đồ Rabin Sơ đồ chữ ký Rabin: Tạo khóa: Q trình tạo khóa sơ đồ chữ ký Rabin giống q trình tạo khóa sơ đồ chữ ký RSA Tức chọn hai số nguyên tố khác p q có độ lớn gần tính N=pq Số N khóa mở Alice, cịn số p, q khóa mật Tạo chữ ký: * Để tạo chữ ký cho điện m ∈ Z N Alice tính giá trị: s ← m1 / (mod N ) thấy để tạo nên chữ ký s m phải thuộc QR N Alice chọn chế thích hợp để tạo nên m Chú ý có đến ¼ số phần tử nhóm Z N* thuộc QRN nên Alice hình thành m khơng khó Thẩm tra chữ ký: Để thẩm tra chữ ký Bob xem thủ tục sau: Verify(N)(m,s)=TRUE, m ≡ s (mod N ) Sơ đồ chữ ký Rabin có ưu điểm so với sơ đồ RSA Thứ giả mạo chữ ký phức tạp phân tích số nguyên thừa số nguyên tố Thứ hai việc thẩm tra chữ ký hoàn thành nhanh hịan tồn thuận lợi thực thi ứng dụng Và để chống lại cách cơng RSA q trình ký thêm nhứng thông tin phụ sử dụng hàm hash 9.4 Sơ đồ chữ ký Elgama Sơ đồ chữ ký Elgamal giới thiệu năm 1985 Sơ đồ thiết kế dành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho hệ thống mã công khai chữ ký số Sơ đồ chữ ký số Elgamal: Tạo khóa: Q trình tạo khóa giống qúa trình tạo khóa hệ mật Elgamal, tức Alic chọn * số nguyên tố p đủ lớn để toán logarith rời rạc Z p khó giải, chọn α ∈ Z p phần tử nguyên thủy, chọn x A < p − số nguyên làm khóa mật tính khóa cơng cộng yA= α x (mod p ) A Tạo chữ ký: Để ký lên điện m ∈ Z N* Alice tạo số ngẫu nhiên k thỏa mãn k < p − UCLN(k,p-1)=1 hình thành nên chữ ký cặp (r,s), r ← α k (mod p), s ← k −1 (m − x Ar )(mod p − 1) Thẩm tra chữ ký: Để thẩm tra chữ ký (r,s) Bob xem kết hàm kiểm tra: Verify( α ,yA,p)(m,(r,s))=TRUE, r < p y Ar r s ≡ α m (mod p ) Chúng ta xem đắn phương trình thẩm tra chữ ký: y Ar r s = α x A ⋅rα k ⋅k −1 (m− x Ar ) (mod p ) = α m (mod p ) Chúng ta thấy Alice hình thành chữ ký với khóa mật x A số nguyên ngẫu nhiên k Việc thẩm tra chữ ký thông tin công khai Ví dụ: Giả sử Alice chọn p=467, α = ,xA=127 Alice tính khóa cơng khai yA y A = α x A (mod p ) =2127 mod 467=132 Alice muốn ký lên điện m=100, Alice chọn số ngẫu nhiên k, ví dụ Alice chọn k=213 (UCLN(213,467)=1) tính 213-1(mod 466)=431 Khi đó: r=2213 mod 467=29 s=431(100-127.29) mod 466=51 Bob hay thẩm tra chữ ký cách: 13229 2951 ≡ 189(mod 467) 2100 ≡ 189(mod 467) Vậy chữ ký hợp lệ Chúng ta đánh giá độ an toàn sơ đồ chữ ký Elgamal qua số cảnh báo sau Cánh báo Đầu tiên để kiểm tra chữ ký cần phải kiểm tra bất đẳng thức r < p Nếu r > p có khả bị cơng, cách đề xuất Bleichenbacher Giả sử (r,s) chữ ký điện m Tội phạm giã mạo chữ ký với điện m’ cách hình thành sau: u ← m' m −1 (mod p − 1) s ' = su (mod p − 1) Tính r’, thỏa mãn điều kiện r ' ≡ ru (mod p − 1) r ' ≡ r (mod p) Điều làm nhờ áp dụng định lý phần dư Trung Hoa Chúng ta thấy điện m’ với chữ ký (r’,s’) thỏa mãn điều kiện: y Ar 'r 's ' = y Aru r su ≡ ( y Ar r s )u ≡ α mu ≡ α m ' (mod p ) Tấn công kiểu r < p, trường hợp giá trị r’ tính tốn theo bước ứng dụng định lý phần dư Trung Hoa theo modulo p(p1) Cảnh báo Cảnh báo hình thành Bleichenbacher Alice cần phải lựa chọn phần tử * ngẫu nhiên α từ nhóm Z p Nếu tham số không lựa chọn Alice (điều có thể, hệ thống người sử dụng có tham số mở α p), cần phải kiểm tra số lần α số ngẫu nhiên (điều áp dụng hàm tạo số giả ngẫu nhiên) Giả sử tham số mở α p lựa chọn tội phạm Oscar Tham số p hình thành sở phương pháp chuẩn: Giả sử p-1=bq, với q số nguyên tố đủ lớn, b có thừa số ngun tố nhỏ, tính tốn logarithm nhóm bậc b khơng khó) Oscar hình thành tham số α theo cách sau: α = β t (mod p) , Với β = cq c < b Chúng ta biết việc tính tốn logarith rời rạc khóa mở y A tốn khó Thế tính toán logarith độ lớn y Aq theo số α q khơng tạo nên khó khoăn Logarith rời rạc z ≡ x A (modb) , có nghĩa thỏa mãn đồng dư thức sau: y Aq = (α q ) z (mod p ) Khi tính giá trị z Oscar giả mạo chữ ký Alice lệnh sau đây: r ← β = cq, s ← t (m − cqz )(mod p − 1) Chúng ta xem việc thẩm tra chữ ký: t ( m − cqz ) y Ar r s ≡ y cq ≡ α cqzα m − cqz ≡ α m (mod p ) A (β ) Rõ ràng thấy cặp (r,s) chữ ký điện m, việc tạo thành chữ ký khơng có tham gia khóa mật xA (mà có tham gia số xA (mod b)) Chú ý trình hình thành chữ ký giả mạo số q ước số r Dẫn đên cách cơng Bleichenbacher ngăn chặn lúc kiểm tra Bob kiểm tra điều kiện q không ước số r (giả sử trình lựa chon p q tham số mở) Cảnh báo Trong cảnh báo liên quan đến chiều dài tham số k Tạo chữ ký theo sơ đồ Elgamal thuật tốn ngâu nhiên tham số k hình thành ngẫu nhiên Alice khơng dùng khóa để ký điện khác có thời gian sống ngắn Nếu tham số k sử dụng trở lại chữ ký hai điện m m2, mà hai điện thỏa mãn m1 ≠ m2 (mod p − 1) , từ phương trình tính s sơ đồ chữ ký có: l ( s1 − s2 ) ≡ m1 − m2 (mod p − 1) Bởi l −1 (mod p − 1) tồn tại, từ bất đẳng thức m1 ≠ m2 (mod p − 1) dẫn đến: l −1 ≡ ( s1 − s2 ) /( m1 − m2 )(mod p − 1) , Có nghĩa l −1 bị lộ Nhưng quan trọng khóa mật Alice x A tính tốn từ cơng thức hình thành s, suy xA theo cơng thức: x A ≡ (m1 − ls1 ) / r (mod p − 1) Điều cho thấy sử dụng tham số k lần Ngăn chặn công giả mạo Existential forgery Đây cách công dựa vào điện không bao gồm thông tin phụ để nhận dạng Chúng ta tìm hiểu số cách hình thành điện chữ ký giả mạo Cách thứ Giả sử u v số nguyên bất kỳ, nhỏ p-1 thỏa mãn điều kiện UCLN(v, p-1)=1 Chúng ta hoàn thành số lệnh sau: r ← α u y vA (mod p) s ← −rv −1 (mod p − 1) m ← − ruv −1 (mod p − 1) Chúng ta xem (m,(r,s)) chữ ký Alice thực hiện, cách kiểm tra phương trình sau: −1 −1 −1 −1 −1 y r r s ≡ y Ar r − rv ≡ y Ar (α u y vA ) − rv ≡ y Ar (α u ) − rv ( y vA ) − rv ≡ y Ar α − ruv y A− r ≡ α − ruv −1 ≡ α m (mod p ) Cách thứ hai Oscar bắt đầu điện Alice ký trước Giả sử (r,s) chữ ký hợp lệ m Khi Oscar có ký lên nhiều điện khác Giả sử số i, j, h số nguyên, thỏa mãn ≤ h, i, j ≤ p − UCLN(hr-j,p-1)=1 Ta thực tính tốn sau: λ = r hα i y A j (mod p ) µ = sλ (hr − js ) −1 (mod p − 1) m' = λ (hm + is )(hr − js ) −1 (mod p − 1) Và dễ dàng kiểm tra rằng: y Aλ λµ ≡ α m ' Vì ( λ , µ ) chữ ký hợp lệ chữ ký m’ Để ngăn ngừa công theo kiểu giả mạo giống sơ đồ RSA Rabin thêm thông tin phụ vào điện ký lên giá trị hàm hash điện 9.5 Họ sơ đồ chữ ký Elgama Sau đăng sơ đồ chữ ký Elgamal, sau số cải tiến sơ đồ xuất Quan trọng số sơ đồ chữ ký Schnorr chuẩn chữ ký DSS (Digital Signature Standard) 9.5.1 Sơ đồ chữ ký Schnorr Đây sơ đồ chữ ký thuộc họ Elgamal có tính chất tốt so với sơ đồ Elgamal Sơ đồ chữ ký cho Thiết lập tham số hệ thống: Chọn hai số nguyên tố p q, thỏa mãn điều kiện q|p-1 Và số chọn cho kích thước p = 1024 q = 160 * Lựa chọn phần tử g ∈ Z p có bậc q (Để làm điều cần phải lấy phần tử f ∈ Z *p thực lệnh g ← f ( p −1) / q (mod p ) Nếu g=1 lặp lại lệnh đên g ≠ ) * Lựa chọn hàm hash H: { 0,1} Z q (Ví dụ chọn SHA-1) Các tham số (p,q,g,H) phân bố người dùng hệ thống Hình thành khóa mật khóa cơng cộng: * Alice tạo số ngẫu nhiên x ∈ Z p thực lệnh: y ← g − x (mod p ) Các tham số công cộng (p,q,g,y,H) cịn x khóa mật Tạo chữ ký: Để ký lên điện m ∈ { 0,1} * , Alice tạo số ngẫu nhiên l ∈ Z q hình thành cặp (e,s), đây: r ← g l (mod p), e ← H (m || r ), s ← l + xe(mod q) Thẩm tra chữ ký: Để thẩm tra chữ ký, Bob thực bước sau: r ' ← g s y e (mod p ), e' ← H ( m || r ' ), Verify(p,q,g,y,h)(m,(s,e))=TRUE, e’=e Chú ý tạo tham số hệ thống, việc tạo phần tử sinh g xác định nhanh q|p-1 Việc thẩm tra chữ ký cặp (m,(s,e)) cặp “bức điện- chữ ký”, tạo Alice Nghĩa là: r ' ≡ g s y e ≡ g xe + l y e ≡ y − e g l y e ≡ g l ≡ r (mod p ) Như thấy việc ứng dụng nhóm bậc q nhóm Z p cho phép trình ký sơ đồ Schonorr nhanh nhiều so với sơ đồ Elgamal: Để chuyển chữ ký Schonorr cần 2|q| bít, để chuyển chữ ký Elgamal cần 2|p| bít Chữ ký ngắn nhiều cho phép giảm số lệnh cần thiết để hình thành chữ ký thẩm định chữ ký: sơ đồ Schonorr tốn O( log q log p ) , sơ đồ Elgamal cần O( log3 p ) 9.5.2 Chuẩn chữ ký DSS Đây phiên cải tiến Elgamal Nó để xuất năm 1991, nhiên chấp nhận làm chuẩn từ 01/12/1994 Giống sơ đồ chữ ký Schnorr, chuẩn chữ ký DSS có ưu điểm so với Elgamal Sơ đồ chữ ký miêu tả sau: Thiết lập tham số hệ thống: Các tham số hệ thống giống sơ đồ chữ ký Schnorr Và chuẩn DSS chọn hàm hash SHA-1 Các tham số hệ thống (p,q,g,H) xem sơ đồ Schnorr Tạo khóa: Alice tạo số ngẫu nhiên x ∈ Z p khóa mật tính khóa cơng cộng: y ← g x (mod p ) Tham số cơng khai Alice bao gồm (p,q,g,y,H) cịn x tham số mật Hình thành chữ ký Để ký lên điện m ∈ { 0,1} * , Alice tạo số ngẫu nhiên l ∈ Z p hình thành nên cặp (r,s), với r ← ( g l (mod p ))(mod q ), s ← l −1 ( H (m) + xr )(mod q ) Thẩm tra chữ ký Để thẩm tra chữ ký, Bob dùng cặp (m,(r,s)) cho tính tốn sau w ← s −1 (mod q ), u1 ← H (m) w(mod q ), u2 ← rw(mod q ), Verify(p,q,g,y,h)(m,(r,s))=TRUE, r = ( g u y u (mod p ))(mod q ) Chúng ta xem việc kiểm tra chữ ký hợp lý: Đặt v = ( g u y u (mod p ))(mod q ) = [ g H ( m ) s v = [( g s −1 ( H ( m ) + xr )(mod q ) −1 (mod q ) g xrs −1 (mod q ) )(mod p )](mod q ) )(mod p )](mod q ) = [ g l (mod p )](mod q ) = r Nhứng ưu điểm, ý tương tự sơ đồ chữ ký Schnorr 9.5.3 Chuẩn chữ ký Liên Xô Gost 34-10.94 Sơ đồ đời sau chuẩn DSS Mỹ nên kề thừa bổ sung ưu việt Sơ đồ chuẩn chữ ký GOST 3410.94 Hình thành tham số hệ thống: Cho p số nguyên tố, kích thước từ 509 đến 512 bít, q số nguyên tố cho q|p-1 Số g < p-1 có bậc q, nghĩa g q ≡ 1(mod p ) Hình thành khóa: Alice chọn x < q khóa mật, Alice tính khóa cơng khai: y = g x (mod p ) Các tham số (p,q,g,y) tham số cơng khai Q trình ký: Alice muốn ký lên điện M, Alice thực bước sau: Lựa chọn số ngẫu nhiên k Tính r = [ g k (mod p )](mod q ) Tính s = ( Mk + xr )(mod q ) Chữ ký tin M cặp (r,s) Quá trình thẩm tra chữ ký: Bob muốn kiểm tra chữ ký (r,s) có tương ứng với tin M tham số mở (p,q,g,y) khơng, Bob thực bước tính sau: Tính v v = M q − (mod q ) Tính z1 = (( sv)(mod q ) Tính z2 = ((q − r )v)(mod q ) Tính u = [( g z y z )(mod p )](mod q ) Và Bob kiểm tra đẳng thức sau: Verify(p,q,g,y)(m,(r,s)=TRUE, u=r Chúng ta xem hàm kiểm tra chữ ký hợp lý dãy biến đổi sau: u = [( g z1 y z )(mod p )](mod q ) = = [( g ( xr + kM ) M = [( g xrM q −2 q −2 (mod q ) + x ( q − r ) M q − (mod q ) (mod q ) + k − xrM q−2 (mod q ) )(mod p )](mod q ) = )(mod p )](mod q ) = = [ g k (mod p )](mod q ) = r 9.6 Sơ đồ chữ ký sỡ đường cong Elliptíc 9.6.1 Chuẩn ANSI X9F1 IEEE P1363 Thuật toán ECDSA (Elliptic Curve Digest Signature Algorithm) tiếp nhận làm chuẩn ANSI X9F1 IEEE P1363 Ở Đức ECDSA chuẩn quốc gia Ở Nga tạo sơ đồ chữ ký chuẩn sở ECDSA, phần xem xét Sơ đồ chữ ký ECDSA Q trình hình thành khóa Lựa chọn đường cong Eliptic E xác định Z p Số điểm đường cong cần phải chia hết cho số nguyên lớn n Lựa chọn điểm P ∈ E(Zp) có bậc n Chọn số ngẫu nhiên d ∈ [1,n-1] Tính Q=dP Khóa mật d, khóa cơng khai (E,P,n,Q) Q trình hình thành chữ ký: Alice muốn ký tin M chữ ký Alice thực bước sau Chọn số ngẫu nhiên k ∈ [1,n-1] Tính kP=(x1,y1) r=x1 (mod n) Nếu r ≠ chuyển sang bước 3, ngược lại quay bước Tính k-1(mod n) Tính s=[k-1(h(M)+dr] (mod n) Nếu s ≠ chuyển bước 5, ngược lại quay bước Chữ ký tin M cặp số (r,s) Chú ý: 1) Trong chuẩn ANSI X9F1 IEEE P1363 sử dụng hàm Hash SHA-1 2) Khi r=0 kết tính tốn s khơng phụ thuộc vào khóa mật d 3) Nếu s=0 cần để kiểm tra chữ ký tính s-1(mod n) khơng tồn Q trình thẩm tra chữ ký: Bob muốn kiểm tra chữ ký có Alice ký tương ứng với tin M khóa mở (E,P,n,Q) (r,s) khơng, Bob thực bước sau: Nếu r s số nguyên khoảng [1,n-1] chuyển sang bước 2, ngược lại kết thẩm tra sai Tính w=s-1(mod n) h(M) Tính u1=h(M)w (mod n) u2=rw (mod n) Tính u1P+u2Q=(x0,y0) v=x0 (mod n) Bức điện v=r 9.6.2 Chuẩn chữ ký số Nga GOST 34.10.2001 Để nâng cao suất thiết bị tính tốn đại hóa thuật tốn tính tốn logarith trường hữu hạn nhằm nâng cao độ an toàn chữ ký trước kiểu công khác Và chuẩn chữ ký GOST 34.10-2001 đời nhằm thay cho GOST 31.10-94 Trong chuẩn sử dụng nhóm lệnh đường cong Eliptic Chúng ta xem sơ đồ chữ ký miêu tả sau: Hình thành tham số hệ thống: Chọn p làm modulo cho đường cong Eliptic, với p > 2255 Chọn hệ số a , b cho đường cong Eliptic E a b thỏa mãn: a ≡ 3k (mod p ), b ≡ 2k (mod p ) Với k ≡ J (E) (mod p ) , 1728 − J ( E ) J ( E ) ≡ 1728 4a (mod p ) , 4a + 27b J ( E ) ≠ 1728 hay J (E) ≠ Gọi m bậc đường cong Eliptic E Chọn số nguyên tố q, q bậc nhóm cyclic nhóm đường cong Eliptíc E, q thỏa mãn điều kiện: m = nq, n ∈ Z , n ≥ 1, 254 ≤ q ≤ 256 4 Chọn P(xp,yp) điểm khởi tạo, cho P thỏa mãn: P ≠ O P có bậc q, nghĩa qP=O Chọn hàm băm Hash chuẩn GOST 34.11-94 Hàm có đầu véc tơ dài 256 bít Hình thành khóa cho sơ đồ: Để ký điện mình, Alice chọn d làm tham số mật, thỏa mãn điều kiện: < d < q Alice tính khóa cơng khai Q(xq,yq), với Q=dP Các tham số công khai (E,p,q,Q,m) Quá trình ký: Để ký lên tin M, Alice thực bước sau: Tính giá trị hàm hash tin M: h’=h(M) Từ véc tơ nhị phân h’ ta chuyển hệ thập phân số nguyên α Xác định số e thỏa mãn: e ≡ α (mod q) Nếu nhu e=0 gán e=1 Tạo số nguyên ngẫu nhiên k, thỏa mãn bất đẳng thức: < k < q Tính điểm C(xc,yc) đường cong Eliptíc, với C=kP tính tiếp r ≡ xc (mod q ) Nếu r=0 quay lại bước Tính giá trị s ≡ (rd + ke)(mod q ) Nếu nhu s=0 quay lại bước Chữ ký tương ứng với tin M cặp (r,s) Quá trình thẩm tra chữ ký: Bob muốn kiểm tra chữ ký (r,s) có tương ứng với tin M hay không, dựa tham số công khai, Bob thực bước sau: Tính giá trị hàm hash M h’=h(M) Từ véc tơ nhị phân h’ ta chuyển hệ thập phân số nguyên α Xác định số e thỏa mãn: e ≡ α (mod q) Nếu nhu e=0 gán e=1 Tính giá trị v ≡ e −1 (mod q ) Tính giá trị z1 ≡ sv (mod q ), z ≡ −rv(mod q ) Tính điểm đường cong C = z1 P + z Q xác định R ≡ xc (mod q) , xc tung độ điểm C Chữ ký R=r 9.7 Chữ ký mờ Chaum Định nghĩa Giao thức chữ ký mờ giao thức trao đổi tin Alice Bob, kết tra đổi Bob nhận chữ ký từ Alice ký lên điện mà Bob cần, Alice ta ký Chữ ký mờ có loạt ứng dụng quan trọng thực tế, bầu cử điện tử, tiền điện tử Một sơ đồ tiếng sơ đồ chữ ký mờ Chaum Sơ đồ hình thành sở sơ đồ chữ ký RSA Nó miêu tả sau: Những tham số hình thành hệ giống hệ mật RSA Bob chọn số ngẫu nhiên r, cho UCLN(r,n)=1 Bob gởi cho Alice M ' = M ⋅ r e (mod n) , tin để Alice ký, Alice biết tin M’ Alice ký lên lên M’ gởi cho Bob: s ' = M ' d = M d ⋅ r ed (mod n) = r ⋅ M d (mod n) Đến Alice biết giá trị M d mã s’ mã khóa r Nếu Alice biết M d ta dễ dàng biết M cách: ( M d ) e = M (mod n) Bob dùng thuật tốn mở rộng Euclide để tính r −1 khôi phục chữ ký cho tin M, cách: s = k −1 s' = k −1 ⋅ k ⋅ M d = M d (mod n) Như thấy, mục đích để Bob nhận chữ ký tin M 9.8 Chữ ký không chối Chaum-Antwerpen Sơ đồ chữ ký không chối Chaum- Antwerpen đưa năm 1989 Chúng ta thấy điểm yếu chữ ký tượng nhân chữ ký Alice, phân phối chữ ký phương pháp điện tử mà khơng có đồng ý Alice Để tránh trường hợp dùng giao thức “hỏi trả lời”, tức có tham gia Alice để xác minh chữ ký Nhưng có trường hợp xảy Alice tuyên bố chữ ký hợp lệ giả mạo từ chối xác minh thực giao thức theo cách để chữ ký xác minh Để ngăn chặn tình xãy ra, sơ đồ chữ ký không chối kết hợp với giao thức từ chối, theo giao thức này, Alice chứng với người chữ ký giả mạo, điều đồng nghĩa với việc Alice không nhận tham gia vào giao thức từ chối, chứng chứng tỏ chữ ký thật Sơ đồ chữ ký khơng chối gồm ba phần: thuật tốn ký, giao thức xác minh giao thức từ chối Chúng ta xem sơ đồ miêu tả sau Hình thành tham số cho sơ đồ Sờ đồ thực Z P , nhóm G Z P* , với G có bậc nguyên tố Chọn p=2q+1, q số nguyên tố toán logarith Z P không giải Chọn α ∈ Z P* có bậc q Alice chọn tham số mật a, với ≤ a ≤ q − tính giá trị cơng khai β = α a (mod p ) Hình thành chữ ký Alice muốn ký lên điện x ∈ G , cô ta hình thành chữ ký khóa mật mình: y=xa (mod p) Và gởi cho Bob Xác minh chữ ký Để xác minh chữ ký Alice, Bob thực qua giao thức sau: Bob chọn ngẫu nhiên e1 , e2 ∈ Z P* Bob tính c = y e β e (mod p ) gởi c cho Alice Alice tính d = c a −1 (mod q ) (mod p ) gởi cho Bob Bob kiểm tra đẳng thức sau, Bob đồng ý chữ ký Alice: d ≡ x e1α e2 (mod p) Giao thức từ chối Giao thức từ chối gồm hai lần thực giao thức xác minh, miêu tả sau: * Bob chọn e1 , e2 ∈ Z q Bob tính c = y e β e (mod p ) gởi c cho Alice Alice tính d = c a −1 (mod q ) (mod p ) gởi cho Bob Bob xác minh điều sau có khơng: d ≠ x e α e (mod p) , Bob thực bước * Bob chọn f1 , f ∈ Z q Bob tính C = y f β f (mod p ) gởi c cho Alice Alice tính D = C a −1 (mod q ) (mod p ) gởi cho Bob Bob xác minh điều sau có khơng: D ≠ x f α f (mod p ) Bob thực bước 9 Bob kết luận chữ ký y giả mạo khi: (dα − e2 ) f1 ≡ ( Dα − f ) e1 (mod p ) Chúng ta chứng minh thủ tục kiểm tra chữ ký giao thức từ chối hợp lý Chúng ta thấy: −1 d ≡ c a (mod p ) −1 ≡ ( y e1 β e2 ) a (mod p ) −1 −1 ≡ y e1a β e2a (mod p) Mà β ≡ α a (mod p ) ⇒ β a −1 ≡ α (mod p ) Và −1 y ≡ a x (mod p ) ⇒ y a ≡ x(mod p ) Nên ta có: d ≡ x e α e (mod p) Như giao thức kiểm tra hợp lý Bây xem thủ tực từ chối Ở bước (4) bước (8), thỏa mãn, điều có nghĩa chữ ký không đúng, tức là: y ≠ x a (mod p) Có nghĩa cần chứng tỏ y ≠ x a (mod p) (dα − e ) f ≡ ( Dα − f ) e (mod p ) , tức bước (9) thủ tục hợp 2 lý Triển khai vế trái đẳng thức: −1 (dα − e2 ) f1 ≡ (c a α − e2 ) f1 (mod p) ≡ (( y e1 β e2 ) a −1 f1 α −e2 f1 (mod p ) ≡ y e1 f1 (mod p ) Tương tự ta triển khai vế phải đẳng thức, thu e ( Dα − f ) e1 ≡ y f1 (mod p) Vậy (dα − e ) f ≡ ( Dα − f ) e (mod p ) 2 ... phương trình ed ≡ 1(mod φ ( N )) Số d khóa mật Alice Tạo chữ ký: Để tạo chữ ký số điện m ∈ Z N Alice tạo số * s = Signd (m) ← m d (mod N ) Thẩm tra chữ ký: Để thẩm tra chữ ký s có phải Alice ký. .. Sơ đồ chữ ký Rabin Sơ đồ chữ ký Rabin giống sơ đồ chữ ký RSA Sự khác chúng nằm trình thẩm tra chữ ký Trong sơ đồ chữ ký RSA tham số e số lẻ thỏa mãn điều kiện gcd(e, φ (N ) )=1, φ (N ) số chẳn,... 9.4 Sơ đồ chữ ký Elgama Sơ đồ chữ ký Elgamal giới thiệu năm 1985 Sơ đồ thiết kế dành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho hệ thống mã công khai chữ ký số Sơ đồ chữ ký số Elgamal: