Bài tiểu luận chi tiết về thuật toán elgamal từ đó ứng dụng áp dụng xây dựng sơ đồ chữ kí số elgamal. Trong đó có đánh giá về độ an toàn của các thuât toán mã hóa và thám mã
Mục Lục Mở đầu Mật mã học vấn đề quan trọng lĩnh vực bảo mật an tồn thơng tin Trên giới, mật mã học đời từ thời La Mã cổ đại ngày nghiên cứu, phát triển đạt thành tựu to lớn Trong mật mã học, vấn đề bảo mật đôi với vấn đề xá thực thông tin, đặc biệt hệ thống mã hóa khóa cơng khai vấn đề xác thực vơ quan trọng Để giải vấn đề người ta đưa cách giải hiệu quả, chữ kí số Với bùng nổ mạng Internet nay, mạng máy tính ngày đóng vai trò thiết yếu lĩnh vực hoạt động tồn xã hội, trở thành phương tiện điều hành hệ thống nhu cầu bảo mật thông tin đặt lên hàng đầu Việc sử dụng chữ kí số giải pháp hữu hiệu hiện, ngày ứng dụng nhiều thực tế, không giới hạn ngành công nghệ thông tin, mật mã học mà áp dụng nhiều lĩnh vực ngân hàng, viễn thông, … Mật mã học khóa cơng khai tạo chữ ký số ứng dụng vào tài liệu Hệ mã hóa ELGAMAL – hệ mã hóa điển hình mật mã công khai với hàm băm mật mã học chiều cơng cụ việc tạo chữ kí số điện tử Khi nói đến chữ ký số, ln lấy mục tiêu an toàn lên hàng đầu Một chữ ký số thực áp dụng thực tế chứng minh khơng thể giả mạo Mục tiêu lớn kẻ công sơ đồ chữ ký giả mạo chữ ký, điều có nghĩa kẻ cơng sinh chữ ký người ký lên thông điệp, mà chữ ký chấp nhận người xác nhận Trong thực tế hành vi công chữ ký điện tử đa dạng Vì tiểu luận em xin phép nghiên cứu vấn đề: Phân tích xây dựng sơ đồ chữ ký số Elgamal cách thám mã Nội Dung Tổng quan chữ ký số 1.1 Giới thiệu chung Trong đời sống hàng ngày, chữ kí văn minh chứng “bản quyền” tán đồng, thừa nhận nội dung văn Chẳng hạn việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng, … Chữ ký viết tay tay người ký nên khơng thể chụp Thông thường chữ ký viết tay văn dùng để xác nhận người ký Những yếu tố làm nên sức thuyết phục nó? Ta xem xét yếu tố sau: - Chữ ký chứng thể người ký có chủ định ký văn - Chữ ký thể chủ quyền, làm cho người nhận văn biết người ký văn - Văn ký thay đổi - Chữ ký giả mạo thứ khơng thể chối bỏ Trong đời sống bình thường, việc tạo mơ hình lý tưởng khơng dễ việc ký văn giấy giả mạo chữ ký, với khả kiểm định sát việc làm thay đổi khơng phải dễ Tuy nhiên giới máy tính vấn đề ký thực tế gặp phải nhiều khó khăn: dòng thơng tin máy tính thay đổi dễ dàng, hình ảnh chữ ký tay người dễ dàng sang truyền từ văn sang văn khác, việc thay đổi nội dung văn điện tử chẳng để lại dấu vết phương diện tẩy, xóa Để có đặc tính trên, giao thức kí giới điện tử cần phải có hỗ trợ cơng nghệ mã hóa Sơ đồ chữ ký số phương pháp ký thông báo lưu dạng điện tử Giao thức chữ ký số dựa ý tưởng Diffie Hellman: - Người gửi ký văn cách mã hóa với khóa bí mật - Người gửi chuyển văn cho người nhận - Người nhận văn kiểm tra chữ ký việc sử dụng chìa khóa cơng khai người gửi để giải mã văn Khái niệm: Chữ ký số mơ hình sử dụng kỹ thuật mã hóa mật mã để gắn với người sử dụng cặp khóa cơng khai-bí mật qua ký văn điện tử trao đổi thơng tin mật Khóa cơng khai thường phân phối thơng qua chứng thực khóa cơng khai 1.2 Vị trí, vai trò chữ kí số Xu hướng quốc tế hóa tồn cầu hóa ảnh hưởng đến phát triển giới Việc trao đổi thơng tin từ u cầu nhanh gọn, xác đặc biệt phải an toàn Việc trao đổi thông tin, chứng thực thông tin theo phong cách truyền thống làm giảm tốc độ, xác thơng tin Những cơng việc mang tính chất thủ công gây chậm chễ thiếu xác trao đổi Chính khó khăn nảy sinh phát triển mạnh mẽ công nghệ thông tin cơng nghệ mã hóa Hiện tất nước phát triển phát triển, mạng máy tính ngày đóng vai trò thiết yếu lĩnh vực hoạt động toàn xã hội nhu cầu bảo mật thông tin đặt lên hàng đầu Điển hình việc mã hóa bảo mật thông tin số doanh nghiệp, dùng chữ ký số xác thực email trao đổi thơng tin, kiểm sốt truy cập vào sàn thương mại điện tử đơn đặt hàng, ngân hàng điện tử, mua sắm trực tuyến… mà vai trò chủ yếu chữ kí số điện tử Trên thực tế chữ kí số khơng thực cho giao dịch điện tử mạng internet mà qua hệ thống mạng viễn thông di động Đặc biệt, nhiều nước giới không triển khai ứng dụng chữ ký số mạng máy tính mà áp dụng mạng điện thoại di động để thực giao dịch điện tử Hướng giúp đẩy nhanh giao dịch, đơn giản hóa mua sắm trực tuyến giúp người dùng truy cập lúc nơi Sự đời chữ kí số khẳng định lợi ích to lớn chiến lược kinh tế, đồng thời vấn đề liên quan đến chữ kí số chủ đề quan trọng mật mã học 1.3 Sơ đồ 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ý N K × K' Thuật tốn hiệu để tạo nên khóa Gen: , 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 toán kiểm tra chữ ký Verify: Đối với khóa tạo chữ ký điện ký hiệu: sk ∈ K M × K × K ' {True , False} tin s ← Signsk (m) m∈M lệnh ký Biểu thức đọc sau: s-là chữ ký tin m tạo nhờ thuật tốn Sign khóa mật sk Đối với khóa mật chữ ký cộng để kiểm tra chữ ký mãn điều kiện sau: pk ∈ K ' sk ∈ K , tin , tương ứng với khóa cơng m∈M chữ ký s∈S cần thỏa True , if Verify pk ( m, s ) = False, if s = Sign sk ( 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 ln cho chiều dài xác định Hàm hash xem chương sau Có nhiều cách để tạo chữ kí Ta sử dụng sơ đồ 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 Sơ đồ chữ ký số Elgamal 2.1 Hệ mã Elgamal Hệ mật Elgamal xây dựng toán logarithm rời rạc Bài toán logarithm rời rạc Zp Đặc trương tốn: I = (p,α,β) Trong p số nguyên tố, α ∈ Zp phần tử nguyên thuỷ , β ∈ Zp* Mục tiêu: Hãy tìm số nguyên a, ≤ a ≤ p-2 cho: a α ≡ β (mod p) Ta xác định số nguyên a logα β Hệ mật khoá công khai Elgamal Zp* Cho p số nguyên tố cho toán logarithm rời rạc Zp khó giải Cho α ∈ Zp* phần tử nguyên thuỷ.Giả sử P = Zp* ,C = Zp* × Zp* Ta định nghĩa: K = {(p, α,a,β): β ≡ αa (mod p)} Các giá trị p, α,β cơng khai, a giữ kín Với K = (p, α,a,β) số ngẫu nhiên bí mật k ∈ Zp-1, ta xác định: ek (m,k) = (y1 ,y2 ) y1 = αk mod p y2 = mβk mod p với y1 ,y2 ∈ Zp* ta xác định: m=dk(y1 ,y2 ) = y2 (y1a )-1 mod p 2.2 Sơ đồ chữ ký số Elgamal 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ố Tuy nhiên tư tưởng tương tự hệ mã elgamal 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ử ngun thủy, chọn mật tính khóa cơng cộng yA= α x A (mod p) xA < p − số nguyên làm khóa Tạo chữ ký: ∈ Z N* k Để ký lên điện m Alice tạo số ngẫu nhiên thỏa mãn UCLN(k,p-1)=1 hình thành nên chữ ký cặp (r,s), k < p −1 r ← α k (mod p ), s ← k −1 (m − x A r )(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 = α xA ⋅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 Sử dụng sơ đồ chữ kí số ta xây dựng lại cho sơ đồ chữ kí số Elgamal Ví dụ: Giả sử Alice chọn p=467, α =2 ,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: 132292951 ≡ 189(mod 467) 2100 ≡ 189(mod 467) Vậy chữ ký hợp lệ Code: a, Sinh khóa import random,math def gcd(a,b): r=0 while (b>0): r=a%b a=b;b=r return a def pt(a): kq=[]; m=math.ceil(pow(a,0.5)); i=2; if (prime(a)==1):i=m+1; while (i1):kq.append((int)(a)); return kq; def prime(p): if (p==2)|(p==3): return if (p 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) r ' ≡ ru (mod p − 1) Tính r’, thỏa mãn điều kiện thể làm nhờ áp dụng định lý phần dư Trung Hoa r ' ≡ r (mod p ) Điều có 18 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(p-1) Cảnh báo 2: Cảnh báo hình thành Bleichenbacher Alice cần phải lựa Z *p α chọn phần tử ngẫu nhiên từ nhóm 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 áp dụng hàm tạo số giả ngẫu nhiên) số ngẫu nhiên (điều α 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ố nguyên 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 tốn logarith độ lớn y Aq khó khoăn Logarith rời rạc mãn đồng dư thức sau: theo số αq z ≡ x A (mod b) không tạo nên , có nghĩa thỏa y Aq = (α q ) z (mod p) 19 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ý: y Ar r s ≡ y Acq ( β t )( m − cqz ) ≡ α cqzα m − cqz ≡ α m (mod p ) 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 x A (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 3: 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 toá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 m1 m2, mà hai điện thỏa mãn tính s sơ đồ chữ ký có: m1 ≠ m2 (mod p − 1) l ( s1 − s2 ) ≡ m1 − m2 (mod p − 1) Bởi l −1 (mod p − 1) , từ phương trình 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) , 20 l −1 Có nghĩa 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 3.2 Thám mã Để thám mã cơng chữ kí số thực chất ta giải toán logarithm rời rạc tính logab(mod p) Ta sử dụng số thuật toán sau: 3.2.1 Thuật toán Shank a, Thuật toán Ta tìm a thỏa mãn beta=alphaa (mod p) Đặt [ ] m := p1 / + Bước 1: Tính alphamj mod p với 0