NGHIÊN CỨU HỆ MẬT RSA VỚI SỐ MŨ GIẢI MÃ LỚN VÀ ỨNG DỤNG CHO CHỮ KÝ SỐ

26 637 1
NGHIÊN CỨU HỆ MẬT RSA VỚI SỐ MŨ GIẢI MÃ LỚN VÀ ỨNG DỤNG CHO CHỮ KÝ SỐ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - Tô Danh Dũng NGHIÊN CỨU HỆ MẬT RSA VỚI SỐ MŨ GIẢI Mà LỚN VÀ ỨNG DỤNG CHO CHỮ KÝ SỐ Chuyên ngành: Truyền liệu mạng máy tính Mã số: 60.48.15 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2013 Luận văn hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS Nguyễn Khắc Lịch Phản biện 1: …………………………………………………………………………… Phản biện 2: ………………………………………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thông Vào lúc: ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thông HÀ NỘI - 2013 MỞ ĐẦU Lý chọn đề tài Trong mật mã vấn đề bảo mật đôi với vấn đề xác 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 đề xác thực người ta đưa cách vừa đơn giản vừa hiệu sử dụng chữ ký số Việc sử dụng chữ ký số ngày có ứng dụng nhiều thực tế, không ứng dụng nghành công nghệ thông tin, nghành mật mã mà áp dụng số lĩnh vực khác lĩnh vực ngân hàng để xác thực người gửi, người nhận, lĩnh vực viễn thông để sử dụng thẻ thông minh RSA thường sử dụng ứng dụng mà vấn đề bảo mật ưu tiên hàng đầu Bên cạnh RSA nhóm phân tích nhằm tìm mức không an toàn Các phân tích chủ yếu minh họa cho mối nguy hiểm việc sử dụng RSA không cách Thật an toàn sử dụng RSA nhiệm vụ không tầm thường Một cách công cổ điển đến RSA hệ mật không an toàn d < n1/4 (d số mũ giải mã) Trong nhữ năm gần nhà nghiên cứu hệ RSA không an toàn số mũ giải mã có kích thước ngắn công Boneh-Durffe hệ mật thực không an toàn số mũ giải mã d < n 0,292 Vậy để RSA an toàn ta phải có số mũ giải mã d lớn tốt tình giải mã chậm Làm để có d lớn? ta biết RSA để mã hóa người ta chọn ngẫu nhiên p, q hai số nguyên tố lớn phân biệt; xác định modulus n = p.q ; tính φ(n)= (p-1)(q1) thông qua tham số tính e ( thường chọn e nhỏ để trình mã hóa đơn giản); sau tính d theo công thức de = + k.φ(n)và thường e nhỏ d có nhỏ Muốn tìm d lớn người ta làm ngược lại chọn e, tìm p,q thỏa mãn điều kiện đủ cho với cách ta có d có kích thước gần modulus n Luận văn nghiên cứu hệ mật RSA với số mũ giải mã lớn ứng dụng cho chữ ký số để chữ ký số an toàn bảo mật Mục đích nghiên cứu Phân tích tính an toàn hệ mật RSA Đưa giải pháp nhằm tăng tính an toàn cho chữ ký số RSA : chọn số mũ giải mã lớn ứng dụng vào chữ ký số Đối tượng phạm vi nhiên cứu - Hệ mật RSA đối tượng nghiên cứu đề tài nhằm phát phương pháp công , bẻ gẫy RSA ; qua ứng dụng thử nghiệm chữ ký số RSA với thuật toán chọn số mũ giải mã lớn - Phạm vi nghiên cứu: đề tài nghiên cứu cách ngăn ngừa kiểu công trường hợp sử dụng số mũ giải mã d nhỏ Sau xây dựng cài đặt thật toán thử nghiệm chữ ký số giúp tăng tính an toàn cho ký số RSA Giả thiết khoa học Cài đặt thuật toán thành công cho ta số mũ giải mã lớn; điều chống lại cách công M.Wiener[8] Boneh Durfee[3] làm tăng tính an toàn cho hệ mật RSA chữ ký số RSA Phạm vi đề tài - Nghiên cứu chế hoạt động hệ mật RSA - Các cách công bẻ gẫy RSA - Xây dựng, cài đặt thuật toán có số mũ giải mã lớn nhằm nâng cao an toàn cho chữ ký số RSA Phương pháp nghiên cứu - Phân tích thuật toán mã hóa RSA Tìm hiểu cách công RSA Từ lựa chọn giải pháp nhằm tăng tính an toàn cho chữ ký số RSA - Kết hợp với toán học lý thuyết tính toán giải pháp lựa chọn đắn - Thu thập tài liệu, báo tạp chí khoa học nước, nước ngoài, tài liệu mạng internet có liên quan đến nội dung nghiên cứu - Tham khảo, vận dụng kế thừa thuật toán, mã có Các nội dung trình bày: Chương 1: TỔNG QUAN VỀ LÝ THUYẾT MẬT Mà Ở chương luận văn tìm hiểu khái niệm mật mã, sở toán học mật mã Chương 2: HỆ MẬT KHÓA CÔNG KHAI RSA Ở chương luận văn tìm hiểu nghiên cứu hệ mật RSA, khả công bẻ gẫy RSA, thuật toán RSA với số mũ giải mã lớn Chương 3: THỬ NGHIỆM CHỮ KÝ SỐ RSA VỚI SỐ MŨ GIẢI Mà LỚN Trong chương giới thiệu chữ ký số áp dụng lý thuyết tìm hiểu chương trước để xây dựng chữ ký số RSA với số mũ giải mã lớn KẾT LUẬN VÀ KIẾN NGHỊ Tổng kết kết đạt mong muốn, kiến nghị để phát triển hệ thống CHƯƠNG 1: TỔNG QUAN VỀ LÝ THUYẾT MẬT Mà 1.1 Các khái niệm Trong lý thuyết mật mã có số thuật ngữ sau: Bản rõ (PlainText): nội dung thông điệp cần gửi yêu cầu đảm bảo an toàn Bản mã (CipherText): thông điệp gửi mã hóa Mã hóa (Encryption): trình chuyển đổi thông tin từ rõ sang mã Trong trình thông tin rõ ẩn bất kỹ người đọc thông điệp không hiểu trừ trường hợp người giải mã (PlainText → CipherText) Giải mã (Decryption): tình giải mã để lấy lại thông tin ban đầu, ngược với trình mã hóa (CipherText → PlainText) Trong luận văn có sử dụng thêm kí hiệu sau: A, B: Hai người muốn trao đổi thông tin Mm: Kẻ thù muốn lấy cắp thông tin Khái niệm hệ mật mã Một hệ mật gồm thành phần (P, C, K, E, D) với: P (PlainText): Tập hợp hữu hạn rõ C (CipherText): Tập hợp hữu hạn mã K (Key): Tập hợp khóa E: Tập quy tắc mã hóa D: Tập quy tắc giải mã Hệ mật đại cần phải đáp ứng yêu cầu sau: - Tính bảo mật (Confidentiality): đảm bảo liệu truyền cách an toàn không bị lộ cố tình muốn có thông điệp gốc ban đầu Chỉ người phép có khả đọc nội dung thông tin ban đầu - Tính xác thực (Authentication): giúp cho người nhận thông điệp định chắn thông điệp mà họ nhận thông điệp gốc ban đầu Kẻ giả mạo giả dạng người khác hay nói cách khác mạo danh để gửi thông điệp Người nhận có khả kiểm tra nguồn gốc thông điệp mà họ nhận - Tính toàn vẹn (Integrity): người nhận thông điệp kiểm tra thông điệp không bị thay đổi trình truyền Kẻ giả mạo có khả thay liệu ban đầu liệu giả mạo - Tính chối bỏ (Non – repudation): người gửi, người nhận chối bỏ sau gửi nhận thông điệp 1.2 Phân loại hệ mật mã Công nghệ thông tin phát triển, việc sử dụng máy tính gia tăng với tốc độ phát triển mạnh mẽ Internet làm tăng nguy bị đánh cắp thông tin độc quyền Với mối đe dọa có nhiều biện pháp để đối phó song mã hóa phương pháp để bảo vệ giá trị thông tin điện tử Có thể nói mã hóa công cụ tự động, quan trọng cho an ninh mạng truyền thông Có hai hình thức mã hóa sử dụng phổ biến mã hóa đối xứng (symmetric – key cryptography) mã hóa bất đối xứng (asymmetric key cryptography) 1.2.1 Mã hóa đối xứng Là phương thức mã hóa mà người gửi người nhận sử dụng chung khóa để mã hóa giải mã thông điệp hoặc, phổ biến hơn, người gửi người nhận sử dụng khóa khác mối liên hệ chúng dễ dàng tính toán 1.2.2 Mã hóa bất đối xứng Định nghĩa mã hóa bất đối xứng: hệ mật mã bao gồm tập hợp phép biến đổi mã hóa {Ee} tập hợp phép biến đổi giải mã {Dd} gọi mật mã khóa công khai mật mã bất đối xứng với cặp khóa (e, d) khóa mã hóa e gọi khóa công khai (có giá trị mà biết), khóa giải mã d gọi khóa riêng hay khóa bí mật Hệ mật mã phải đảm bảo an toàn để khả tính d từ e Nguyên tắc hoạt động: Người nhận B sinh cặp khóa gồm: khóa công khai Kp khóa bí mật Kr Sau B gửi Kp cho A khóa công khai biết A dùng Kp để mã hóa thông điệp gửi thông điệp mã hóa cho B Lúc này, B Kr để giải mã thông điệp mà A gửi 1.3 Một số khái niệm toán học Trong phần luận văn trình bày lại lý thuyết kết lí thuyết số có liên quan đến mật mã Ký hiệu: Z: Tập hợp số nguyên N: Tập hợp số tự nhiên {0,1,2……} 1.3.1 Ước số chung lớn GCD() Ước số chung lớn số nguyên dương a, b kí hiệu GCD(a,b), số nguyên lớn mà a, b chia hết cho Và gcd (a,0) = gcd(0,a) = a gcd (a,b) = gcd( a , b ) Ví dụ: gcd (15,9) = 1.3.2 Số nguyên tố nguyên tố Số nguyên tố số nguyên lớn 1, không chia hết cho số nguyên dương Số nguyên lớn số nguyên tố gọi hợp số Hệ mật mã thường sử dụng số nguyên tố lớn 10150 Hai số a b gọi nguyên tố nhau, ước số chung lớn chúng Ký hiệu: gcd (a, b) = 1.3.3 Hàm Ф Euler Định nghĩa: Cho n ≥ 1, Ф (n)là số lượng số nguyên nằm đoạn [1,n] mà nguyên tố với n Hàm Ф gọi hàm Euler 1.3.4 Thuật toán Euclid Euclid mở rộng Thuật toán Euclid sau: Input: số nguyên không âm a b với a ≥ b Output: gcd (a, b) While b ≠ r ← a mod b, a ← b, b ← r return (a) Thuật toán Euclid mở rộng Input: số nguyên không âm a ba với a ≥ b Output: gcd(a,b) số nguyên x, y thỏa mãn ax + by = d -1 If b=0 then d ← a, x ← 1, y ← return (d, x, y) x2 ← 1, x1 ← 0, y2 ← 0, y1 ← While b > 3.1 q ← ⎣a / b⎦ , r ← a- q.b, x ← x2 – q.x1, y ← y2 – q.y1 3.2 a ← b, b ← r, x2 ← x1, x1 ← x, y2 ← y1, y1 ← y d ← a, x ← x2, y ← y2, return (d, x, y) Thuật toán Euclid mở rộng có độ phức tạp O((lg n)2) phép toán bit 1.3.5 Các phép toán không gian Modulo Toán tử modulo gọi toán tử mod; a mod n phần dư a chia n kí hiệu r = a mod n, nói cách khác a = q*n + r q số nguyên, r thuộc tập số nguyên {0, 1, 2, ……, n-1} Định nghĩa đồng dư: Cho a b số nguyên, a gọi đồng dư với b theo modulo n, ký hiệu a ≡ b (mod n) a-b = k*n với k số nguyên (hay a-b chia hết cho n) 1.3.6 Thặng dư bậc hai Định nghĩa 1: Cho a ∈ Zn*, a gọi thặng dư bậc hai modulo n tồn số x ∈ Zn* thỏa mãn x2 ≡ a (mod n) Nếu không tồn số x a gọi không thặng dư bậc hai modulo n Tập tất giá trị thặng dư bậc hai modulo n kí hiệu Qn tập tất giá trị không thặng dư bậc hai modulo n kí hiệu Qn 1.3.7 Các thuật toán Zn Thuật toán tính nghịch đảo nhân Zn [9]: Input: a ∈ Zn Output: a-1 mod n; a khả nghịch -1 Sử dụng thuật toán Euclid mở rộng để tìm x, y thỏa mãn d = ax + ny d = gcd (a,n) Nếu d > a-1 mod n không tồn Ngược lại, return (x) Thuật toán bình phương nhân để tích lũy thừa Zn[9] Input: a ∈ Zn k nguyên ≤ k < n; biểu diễn nhị phân k gồm t bít có dạng k t = ∑k t =0 i i 20 k 21 k 2t k ak = (a ) (a ) (a ) t Output: ak mod n -1 b ← If k = then return(b) A ← a If k0 = then b ← a For i: = to t A ← A2 mod n If ki = then b ← A b mod n return(b) 1.4 Độ phức tạp tính toán 1.4.1 Khái niệm Định nghĩa 1: Kích thước đầu vào số lượng bit cần thiết dùng để biểu diễn liệu đầu vào Định nghĩa 2: Thời gian thực thuật toán liệu đầu vào số lượng phép toán “các bước” thực 1.4.2 Kí hiệu tiệm cận Một số định nghĩa: (i) f(n)= O (g(n)) tồn số c dương số nguyên dương n0 thỏa mãn ≤ f(n) ≤ c.g(n)với n ≥ n0 10 CHƯƠNG 2: HỆ MẬT Mà KHÓA CÔNG KHAI RSA 2.1 Hệ mật RSA Độ an toàn RSA dựa hai toán lớn: Bài toán phân tích thừa số nguyên tố nguyên tố lớn ( The integer Factorization Problem (IFP)): “ Cho trước nguyên tố n ∈ N, tìm số nguyên tố Pj, j = 1, 2, …, r ∈ N, với P1 r < P2 n1.5 [5] vấn đề xẩy số d nhỏ công thực Nhưng điều bất tiện số e lớn tăng thời gian mã hóa Kỹ thuật thứ hai: sử dụng định lý số dư Trung Hoa ( Chinese Remainder Theorem – (CRT)) Một cách tiếp cận khác sử dụng định lý đồng dư trung hoa (Chinese Remainder Theorem - CRT) Ta chọn số d cho dp = d mod (p - 1) dp =d mod (q - 1) nhỏ 128 bits Mặt khác ta biết điều xẩy vấn đề an ninh Chúng ta biết thông qua công hữu hiệu Wiener Định lý gần cải thiện Boneh Durfee [3], họ số với d < n0.292, kẻ công tính d từ (n,e) Kết ranh giới Wiener không rõ ràng Nó d< n0.5, toán mở 14 2.2.3 Tấn công với số mũ công khai nhỏ Người sử dụng hệ mật RSA muốn giảm thời gian mã hóa chứng thực chữ ký họ thường sử dụng số mũ công khai e nhỏ, thông thường số mũ công khai chọn 216 + = 65537 Khi giá trị 216 + chọn việc chứng thực chữ kí yêu cầu 17 phép nhân lên đến 1000 giá trị e ngẫu nhiên sử dụng (e < ϕ (n)) Và số mũ công khai nhỏ rõ m ngắn, hàm RSA dễ dàng tính nghịch đảo Không giống công Wiener, công với e nhỏ làm cho RSA bị sập hoàn toàn Sau vài minh họa công kiểu 2.2.3.1 Tấn công quảng bá Hastad Định lý (Hastad)[2]: Cho n1, , nk số nguyên tố tập nmin = mini(ni) đôi Với gi ∈ ZNi[x], k đa thức có giá trị nhỏ d Tồn m < nmin thỏa mãn: gi(m) = m mod ni với tất i = 1,…,k Giả thiết k > d, tìm m cho (ni,gi(x))ki =1 Định lý hệ thống đồng biến với đa thức nguyên tố hỗn hợp giải hiệu quả, giả thiết hàm cung cấp đầy đủ Bằng cách cài đặt gi = fiei – ci mod ni, thấy Marvin tìm M từ mã cho với số thành viên d, d giá trị lơn eideg(fi) với i = 1,…,k Chúng ta lưu ý để chống lại công broadcast sử dụng cặp số ngẫu nhiên thay gắn cứng vào giá trị 2.2.3.2 Tấn công thông điệp có quan hệ tuyến tính với (Franklin Reiter Related Message Attack ) Hệ (FR): Giả sử với e =3 (n,e) khóa công khai RSA Cho m1 ≠ m2 ∈ Z*n thỏa mãn m1 = f(m2) mod n f = ax + b ∈ Z*n đa thức tuyến tính với b ≠ Khi cho trước (n, e, c1, c2, f), Marvin tìm m1, m2 với thời gian đa thức bậc hai log n 2.2.3.3 Tấn công với khóa để lộ phần (Partial Key Exposure Attack) Định lý 3: cho n = p*q modulus RSA n-bit, với e ≥ 1, d ≤ ϕ(n) thỏa mãn ed ≡ mod ϕ(n) Tồn thuật toán mà cho trước n/4 bit có nghĩa nhỏ d, kẻ công khôi phục toàn d thời gian đa thức bậc n e 15 2.2.4 Tấn công cài đặt 2.2.4.1 Tấn công dựa thời gian Vào năm 1996, Kocher mô tả kiểu công lên RSA kẻ thù xác định khóa bí mật cách theo dõi thời gian máy tính giải mã Tấn công thông minh Kocher cho thấy phương pháp lựa chọn thời gian xác để giải mã (hoặc ký số) RSA smartcard, Marvin nhanh chóng tìm thành phần giải mã riêng d Giải pháp khắc phục: 1) Đơn giản tăng độ trễ định để trình mũ hóa thời gian định 2) Rivest đưa dựa chế bịt kẽ hở (blinding) 2.2.4.2 Tấn công dựa lỗi ngẫu nhiên Quá trình cài đặt giải mã ký số RSA thường sử dụng định lý đồng dư trung hoa ( Chinese Remainder Theorem) nhằm cải thiện tốc độ tính toán md mod n Boneh, DeMillo, Lipton [10] quan sát thấy có lỗi nguy hiểm sử dụng phương pháp CRT Vấn đề sinh chữ ký mà máy tính Bob hoạt động không nguyên nhân gây nên lỗi tính toán Hay nói cách khác copy ghi, bit dòng bít bị thất lạc (Sự hoạt động không nguyên nhân xung đột điện từ sâu phần cứng, lỗi sớm tìm thầy phiên chíp Pentium) Được cung cấp chữ ký lỗi, kẻ công Marvin dẽ dàng phân tích thành nhân tử modul N 2.3 Hệ mật RSA với số mũ giải mã lớn Nếu làm theo bước thuật toán RSA : - Chọn số nguyên tố lớn phân biệt p, q Tính n = p*q ϕ(n)= (p -1)*(q - 1) - Chọn e > cho gcd(ϕ(n),e ) = ; e thường chọn nhỏ để trình mã hóa nhanh - d xác định thỏa mãn e*d = mod e(ϕ(n)) Thì ta không hy vọng có số mũ giải mã d lớn Do đó, [2], nhóm tác giả Hernández Encinas, J.Munoz MasQué A.Queiruga Dios đề xuất thuật toán để có số mũ giải mã d lớn, có kích thước gần modunlus n cách : số mũ công khai e 16 chọn trước ; Chọn hai số nguyên tố p, q thỏa mãn điều kiện đủ đảm bảo d có kích thước gần kích thước n, với cách ta đủ điều kiện để tránh công 2.3.1 Thuật toán có số mũ giải mã d lớn Thuật toán tác giả Vũ Huy Hoàng Hồ Thuần báo cáo [1] đưa sau: Bước 1: chọn số mũ mã hóa e ≥ 3, số nguyên dương lẻ Bước 2: Chọn ngẫu nhiên r ∈ T(e) với T(e) = { r ∈ Z*e |(r -1) ∈ Z*e} Tạo sinh số nguyên tố ngẫu nhiên p đủ lớn cho p = cp.e + rp , (tồn theo định lý Dirichlet) Bước 3: Tính số nguyên tố lớn q = r(r -1)-1(mod e) + k.e; với k thuộc N Bước 4: Tính n = p*q, ϕ(n)= (p - 1)*(q - 1) kiểm tra điều kiện < e < ϕ(n), gcd(e, ϕ(n)) = Nếu thỏa mãn chuyển sang Bước ngược lại quay Bước Bước 5: Tính trực tiếp số mũ giải mã d theo công thức d = ϕ ( n ) − ϕ (n) − e , nghịch đảo nhân e ∈ Z*e |(r -1) ∈ ∈ Z*e |(r(r -1)) ∈ Trong thuật toán có đưa tập T(e) định nghĩa T(e) = { r Z*e} T(e) cách định nghĩa khác tập S(e) = { r Z*e} điều chứng minh [1] 17 Sau kết demo với Input giá trị cần mã hóa; kết Ouput hình: Hình 2.1 : Thuật toán có số mũ giải mã d lớn (e nhỏ) Hình 2.2 : Thuật toán có số mũ giải mã d lớn (e lớn) 2.3.2 Đánh giá thuật toán số mũ giải mã d lớn Đối với thuật toán RSA thông thường, xác suất cho việc chọn ngẫu nhiên d lớn cao, xác suất có giá trị e tương ứng lớn cao Trong thực tế, người sử dụng muốn chọn giá trị e nhỏ(một giá trị xác định trước) ví dụ 216 + để cải thiện nâng cao hiệu trình mã hóa Điều thú vị thuật toán trình bày số mũ mã hóa e chọn tùy ý ta có giá trị d tương ứng lớn(có kích thước kích thước modulus n ) Và giá trị e chọn việc chọn p 18 q cần thỏa mãn: rp, rq thuộc T(e) rq = rp/( rp – 1) rp, rq phần dư tương ứng p q chia cho e Cuối cùng, thuật toán trên, việc chọn rp, rq thuộc T(e) không làm tăng thời gian việc sinh khóa 19 CHƯƠNG 3: THỬ NGHIỆM CHỮ KÝ SỐ RSA VỚI SỐ MŨ GIẢI Mà LỚN 3.1 Chữ ký số RSA 3.1.1 Đặt vấn đề Trên thực tế, chữ ký điện tử (Digital Signature) ứng dụng rộng rãi ứng dụng mạng Một ứng dụng quan trọng chữ ký điện tử đảm bảo an toàn liệu truyền mạng 3.1.2 Định nghĩa sơ đồ ký điện tử Một sơ đồ chữ ký S năm S = (P , A , K , S , V) Trong đó: P tập hữu hạn thông báo có, A tập hữu hạn chữ ký có, K tập hữu hạn khoá, khoá K ∈ K gồm có hai phần K=(K’,K''), K' khoá bí mật dành cho việc ký, K'' khoá công khai dành cho việc kiểm thử chữ ký Với K =(K’,K''), S có thuật toán ký sigk’ : P → A , V có thuật toán kiểm thử verk” : PxA → {đúng,sai} thoả mãn điều kiện sau thông báo x ∈ P chữ ký y ∈ A : verk” (x, y) = ↔ y = sigk’ (x ) 3.1.3 Sơ đồ chữ ký RSA Sơ đồ chữ ký RSA cho năm S = (P , A , K , S , V) Trong : P = A =Zn , với n =p.q tích hai số nguyên tố lớn p,q K tập cặp khoá K =(K’,K''), với K’ = a K'' = (n,b) a b hai số thuộc Z* n thoả mãn a.b ≡ 1(modφ (n)) 20 3.1.4 Sơ đồ chữ ký Elgamal Sơ đồ chữ ký ElGamal đề xuất năm 1985, gần đồng thời với sơ đồ hệ mật mã ElGamal, dựa độ khó toán lôgarit rời rạc Sơ đồ thiết kế đặc biệt cho mục đích ký văn điện tử, mô tả hệ: S = (P , A , K , S , V) Trong P = Z*p , A = Z*p x Zp-1, với p số nguyên tố cho toán tính lôgarit rời rạc Z*p khó Tập hợp K gồm cặp khoá K=(K’,K''), với K’=a số thuộc Z*p , K'' =(p, α , β), α phần tử nguyên thuỷ Z*p , β=αamodp K’ khoá bí mật dùng để ký, K'' khoá công khai dùng để kiểm thử chữ ký 3.1.5 Sơ đồ chữ ký DSS Sơ đồ chữ ký DSS cho năm S = (P , A , K , S , V) Trong P = Z*p , A = Z*q x Z*q p số nguyên tố lớn có độ dài biểu diễn 512 ≤ lp ≤ 1024 bit (với l bội 64) cho toán tính logarit rời rạc Zp khó q ước số nguyên tố p -1 có lq biểu diễn cỡ 160 bit 3.2 Chữ ký số chối bỏ Một sơ đồ chữ ký chối bỏ có phần: ™ Một thuật toán ký ™ Một giao thức kiểm thử ( giao thức xác nhận ) ™ Một giao thức chối bỏ 3.3 Vấn đề ký số đại diện văn Khái niệm : Việc sử dụng hệ mật mã sơ đồ chữ ký số thường mã hóa ký số bit thông tin, thời gian để mã hóa ký tỷ lệ thuận với dung lượng thông tin Thêm vào xảy trường hợp với nhiều thông điệp đầu vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống ( khác ) cho kết mã, ký số giống Điều dẫn đến số rắc rối sau cho việc xác thực thông tin 21 3.3.1 Sơ lược hàm băm (Hash Function) 3.3.1.1 Giới thiệu Theo sơ đồ chữ ký chữ ký thông điệp có độ dài độ dài thông điệp, điều bất tiện Ta mong muốn trường hợp chữ ký viết tay, chữ ký có độ dài ngắn hạn chế cho dù văn có độ dài Vì chữ ký số ký cho bit thông điệp, muốn chữ ký có độ dài hạn chế thông điệp có độ dài tuỳ ý ta phải tìm cách rút gọn độ dài thông điệp Nhưng thân thông điệp rút ngắn được, nên cách tìm cho thông điệp thông điệp thu gọn có độ dài hạn chế thay việc ký thông điệp, ta ký thông điệp thu gọn 3.3.1.2 Định nghĩa hàm Hash Hàm Hash hàm tính toán có hiệu ánh xạ dòng nhị phân có độ dài tuỳ ý thành dòng nhị phân có độ dài cố định 3.3.1.3 Tính chất hàm băm 3.3.1.4 Thuật toán MD5 Thuật toán MD5 Ron Rivest đưa vào năm 1991 Đầu vào thuật toán khối có độ dài 512 bit đầu băm đại diện cho văn gốc có độ dài 128bit 3.4 Xác thực Xác thực : Là thủ tục nhằm kiểm tra thông báo nhận xem chúng có đến từ người gửi hợp lệ có bị sửa đổi hay không Xác thực kiểm tra trình tự tính lúc Chữ ký số kỹ thuật xác thực 3.5 Mô tả hệ thống cài đặt Các bước thực chương trình a Phát sinh khóa: Từ số mũ mã hóa e > = số nguyên dương lẻ ban đầu, chương trình thực tính toán để đưa cặp khóa công khai (e, n) khóa bí mật (d, n) Sau khóa công khai tiết lộ công cộng, khóa bí mật giữ lại 22 b Ký chữ ký điện tử: Khi người muốn gửi cho văn quan trọng, đòi hỏi văn phải ký xác nhận danh người gửi văn bản, người gửi văn làm thực quy trình ký chữ ký điện tử c Xác thực ký điện tử: Sau nhận văn có đính kèm chữ ký người gửi, người nhận văn phải giải mã trở lại văn kiểm tra xem văn bị thay đổi người thứ ba chưa, chữ ký đính kèm văn có người gửi hay không (kiểm tra “chính danh”) Cài đặt chương trình minh họa ngôn ngữ C#: Giao diện chương trình: Hình 3.5 : Ký văn 23 + Quá trình xác nhận chữ ký: Hình 3.6 : Chữ toàn vẹn Hình 3.7: Chữ ký không toàn vẹn 24 KẾT LUẬN Các kết đạt được: Đề tài bước đầu đưa giải pháp tránh kiểu công lên hệ mật RSA với số mũ giải mã d nhỏ áp dụng vào chữ ký số Đề tài phân tích cụ thể hóa bước thuật toán [6] Sau kết hợp với nhận xét, cải tiến trong[1] sử dụng công cụ có ngôn ngữ lập trình c# để cài đặt thành công thuật toán nêu vào chữ ký số Thuật toán chạy thử nghiệm cho số mũ giải mã d có kích thước kích thước modulus n Như bước đề tài đạt mục đích đề Chương trình thử nghiệm chữ ký số hoàn thiện có đầu tư nhiều thời gian công sức đề tài hoàn thiện áp dụng vào thực tế Hướng phát triển đề tài Có thể nghiên cứu sâu vấn đề đưa thực hoàn thiện chức chương trình để ứng dụng vào đời sống, phục vụ nhu cầu mục đích người sử dụng Với kết có đề tài phát triển theo hướng sau: - Chọn d trước xác định p, q thỏa mãn điều kiện đủ cho e nhỏ - Hoàn thiện kết luận văn áp dụng vào môi trường mobile [...]... đưa ra được giải pháp tránh được kiểu tấn công lên hệ mật RSA với số mũ giải mã d nhỏ và áp dụng vào chữ ký số Đề tài đã phân tích và cụ thể hóa từng bước của thuật toán trong [6] Sau đó kết hợp với các nhận xét, cải tiến trong[1] và sử dụng các công cụ hiện có của ngôn ngữ lập trình c# để cài đặt thành công thuật toán nêu trên vào chữ ký số Thuật toán chạy thử nghiệm luôn cho số mũ giải mã d có kích... phần dư tương ứng của p và q khi chia cho e Cuối cùng, thuật toán trên, việc chọn rp, rq thuộc T(e) không làm tăng thời gian của việc sinh khóa 19 CHƯƠNG 3: THỬ NGHIỆM CHỮ KÝ SỐ RSA VỚI SỐ MŨ GIẢI Mà LỚN 3.1 Chữ ký số RSA 3.1.1 Đặt vấn đề Trên thực tế, chữ ký điện tử (Digital Signature) đã được ứng dụng rộng rãi trong các ứng dụng trên mạng Một trong những ứng dụng quan trọng của chữ ký điện tử là... tố 2 Bài toán RSA: cho số nguyên dương n, n = p*q với p, q là các số nguyên tố phân biệt, cho trước một số nguyên c và e sao cho số nguyên e thỏa mãn gcd(e, (p - 1)*(q 1)) = 1 tìm một số nguyên m sao cho me ≡ c ( mod n) 2.1.1 Tạo khóa cho hệ mật RSA Mỗi người sử dụng đều có thể tạo ra một khóa RSA công khai và một khóa bí mật tương ứng theo các bước sau: 1 Tạo 2 số nguyên tố lớn p và q ngẫu nhiên,... được chứng minh trong [1] 17 Sau đây là kết quả demo với Input là giá trị cần mã hóa; kết quả Ouput trên màn hình: Hình 2.1 : Thuật toán có số mũ giải mã d lớn (e nhỏ) Hình 2.2 : Thuật toán có số mũ giải mã d lớn (e lớn) 2.3.2 Đánh giá thuật toán số mũ giải mã d lớn Đối với thuật toán RSA thông thường, xác suất cho việc chọn ngẫu nhiên d lớn là khá cao, nhưng khi đó xác suất có giá trị e tương ứng lớn. .. ước số nguyên tố của p -1 có lq biểu diễn cỡ 160 bit 3.2 Chữ ký số không thể chối bỏ Một sơ đồ chữ ký không thể chối bỏ có 3 phần: ™ Một thuật toán ký ™ Một giao thức kiểm thử ( giao thức xác nhận ) ™ Một giao thức chối bỏ 3.3 Vấn đề ký số trên đại diện văn bản Khái niệm : Việc sử dụng các hệ mật mã và các sơ đồ chữ ký số thường là mã hóa và ký số trên từng bit của thông tin, thời gian để mã hóa và ký. .. B sẽ giải mã thông điệp là m = 35 2.2 Các khả năng tấn công lên hệ mật RSA Hệ mật RSA là hệ mật phổ biến nhất hiện nay, nó được triển khai và ứng dụng trong nhiều hệ thống thương mại nhằm cung cấp tính bảo mật cũng như xác thực của dữ liệu Từ khi được công bố, RSA đã được phân tích tính an toàn bởi nhiều nhà khoa học Và đã có một số cuộc tấn công lên hệ mật RSA xong chúng chủ yếu là minh họa cho việc... mãn điều kiện sau đây đối với mọi thông báo x ∈ P và mọi chữ ký y ∈ A : verk” (x, y) = đúng ↔ y = sigk’ (x ) 3.1.3 Sơ đồ chữ ký RSA Sơ đồ chữ ký RSA được cho bởi bộ năm S = (P , A , K , S , V) Trong đó : P = A =Zn , với n =p.q là tích của hai số nguyên tố lớn p,q K là tập các cặp khoá K =(K’,K''), với K’ = a và K'' = (n,b) a và b là hai số thuộc Z* n thoả mãn a.b ≡ 1(modφ (n)) 20 3.1.4 Sơ đồ chữ ký. .. thuận với dung lượng của thông tin Thêm vào đó có thể xảy ra trường hợp với nhiều bức thông điệp đầu vào khác nhau, sử dụng hệ mật mã, sơ đồ ký số giống nhau ( có thể khác nhau ) thì cho ra kết quả bản mã, bản ký số giống nhau Điều này sẽ dẫn đến một số rắc rối về sau cho việc xác thực thông tin 21 3.3.1 Sơ lược về hàm băm (Hash Function) 3.3.1.1 Giới thiệu Theo các sơ đồ chữ ký ở trên thì chữ ký của... p*q và φ = (p-1)*(q-1) 3 Chọn ngẫu nhiên một nguyên tố e, 1< e < φ, thỏa mãn gcd(e,φ) = 1 11 4 Sử dụng thuật toán Euclid mở rộng để tính số nguyên d duy nhất, 1 < d < φ thỏa mãn ed ≡ 1(mod φ) 5 Khi đó căp khóa công khai là(n,e) và khóa bí mật là d Số nguyên e và d được tạo ra trong thuật toán trên được gọi là số mũ mã hóa và số mũ giải mã còn n được gọi là modulus của RSA 2.1.2 Quá trình mã hóa RSA. .. thiện bởi Boneh và Durfee [3], họ chỉ ra rằng số với d < n0.292, kẻ tấn công có thể tính được d từ (n,e) Kết quả này chỉ ra ranh giới của Wiener là không rõ ràng Nó có vẻ như là d< n0.5, đây là một bài toán mở 14 2.2.3 Tấn công với số mũ công khai nhỏ Người sử dụng hệ mật RSA muốn giảm thời gian mã hóa hoặc chứng thực chữ ký họ thường sử dụng số mũ công khai e nhỏ, thông thường số mũ công khai chọn

Ngày đăng: 04/05/2016, 22:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan