Slide lý thuyết mật mã - RSA - BKHN

27 1.6K 7
Slide lý thuyết mật mã - RSA - BKHN

Đ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

Hệ mật mã khóa công khai RSA Giảng viên hướng dẫn: Thầy Đỗ Trọng Tuấn Nhóm thực : Nhóm Mục Lục  I Giới thiệu chung hệ mật mã RSA 1.Lịch sử 2.Mô tả hoạt động  II Cấu trúc hệ mật Sơ đồ hệ mật Tạo khóa Mã hóa Giải mã  III Một số tính chất hệ mật mã RSA  IV Ưu - nhược điểm ứng dụng 1.Ưu – nhược điểm 2.Chuyển đổi văn rõ 3.Tạo chữ kí số Hàm băm mật mã I Giới thiệu chung hệ mật mã RSA Lịch sử -Thuật toán Ron Rivest, Adi Shamir Len Adleman mô tả lần vào thuật toán lấy từ chữ đầu tên tác giả năm 1977 Học viện Công nghệ Massachusetts (MIT) Tên -Thuật toán RSA MIT đăng ký sáng chế Hoa Kỳ vào năm 1983 (Số đăng ký 4.405.829) Bằng sáng chế hết hạn vào ngày 21 tháng năm 2000 Tuy nhiên, thuật toán công bố trước có đăng ký bảo hộ nên bảo hộ giá trị bên Hoa Kỳ Ngoài ra, công trình Clifford Cocks công bố trước sáng chế RSA đăng ký Mô tả hoạt động  Thuật toán RSA có hai khóa: - khóa công khai (Public Key) - khóa bí mật ( Private Key) - Mỗi khóa số cố định sử dụng trình mã hóa giải mã - Khóa công khai công bố rộng rãi cho người dùng để mã hóa - Khóa bí mật cá nhân giữ kín dùng để giải mã Ví dụ:  Bob muốn gửi cho Alice thông tin mật M mà Bob muốn Alice đọc Bod   (Mã hóa M Public Key A) Alice (Giải mã Private Key A đc M) II Cấu trúc hệ mật Sơ đồ hệ mật Tạo khóa:  Giả sử Alice Bob cần trao đổi thông tin bí mật thông qua kênh không an toàn (ví dụ Internet) Với thuật toán RSA, Alice cần tạo cho cặp khóa gồm khóa công khai khóa bí mật theo bước sau:  Các bước tạo khóa: B1 Chọn số nguyên tố lớn p q , với p≠ q, lựa chọn ngẫu nhiên độc lập B2 Tính: n = pq B3 Tính: giá trị hàm số Ơle ф(n) = (p-1)(q-1) B4 Chọn số tự nhiên e cho < e < ф(n), số nguyên tố với ф(n) B5 Tính: d cho d e≡ (mod ф(n).) Khóa công khai: (e, n) Khóa bí mật: (d, n) Một số lưu ý:  Các số nguyên tố thường chọn phương pháp thử xác suất  Các bước thực giải thuật Euclid mở rộng (xem thêm: số học môđun)  Bước viết cách khác:Tìm số tự nhiên x cho  Cũng số tự nhiên.Khi ta sử dụng d mod (p-1)(q-1)  Từ bước PKCS #v2.1 sử dụng thay cho  Khóa công khai bao gồm: -n, môđun, -e, số mũ công khai (cũng gọi số mũ mã hóa)  Khóa bí mật bao gồm: -n, môđun, xuất khóa công khai khóa bí mật, -d, số mũ bí mật (cũng gọi số mũ giải mã)  Một dạng khác khóa bí mật bao gồm: -p q, hai số nguyên tố chọn ban đầu, -d mod (p-1) d mod (q-1) (thường gọi dmp1 dmq1), -(1/q) mod p (thường gọi iqmp)   Mã hóa:  Giả sử Bob muốn gửi đoạn thông tin M cho Alice Đầu tiên Bob chuyển M thành số m < n theo hàm đảo ngược (từ m xác định lại M) thỏa thuận trước Quá trình nàyđược mô tả phần Chuyển đổi văn rõ Lúc Bob có m biết n e Alice gửi Bob tính c mã hóa m theo công thức: Hàm tính dễ dàng sử dụng phương pháp tính hàm mũ (môđun) phương pháp bình phương (exponentiation by squaring) Cuối Bob gửi c cho Alice 10 Ví dụ 1:  Ta chọn p=11, q=3  n = pq = 11.3 = 33  phi = (p-1)(q-1) = 10.2 = 20  e=  gcd(e, p-1) = gcd(3, 10) = ( ước chung lớn 10 )  gcd(e, q-1) = gcd(3, 2) =  Vì thế, gcd(e, phi) = gcd(e, (p-1)(q-1)) = gcd(3, 20) =  Tìm d cho ed ≡ (mod phi)  Giả sử ta tính toán d=e-1 mod phi = -1 mod 20  Ta tìm đước d với phi chia cho (ed-1) hay 20/(3d -1)  Chọn d= ( 1,2, 3…), lấy d= Ta có : ed-1 = 3.7 - = 20  Vậy khóa công khai là: (n, e) = (33, 3)  Khóa bí mật là: (n, d) = (33, 7) 13  Bây ta mã hóa thông báo là: m =7  Ta có: c = me mod n = 73 mod 33 = 343 mod 33 = 13  Lúc thông báo mã hóa là: c= 13  Và để kiểm tra giải mã, ta tính toán: m' = c d mod n = 137 mod 33 =  Chú ý ta không áp dụng tính với số 13 để có số mà ta tính toán theo cách sau :  m' = 137 mod 33 = 13(3+3+1) mod 33 = 133 133 13 mod 33  = (133 mod 33).(133 mod 33).(13 mod 33) mod 33  = (2197 mod 33).(2197 mod 33).(13 mod 33) mod 33  = 19.19.13 mod 33 = 4693 mod 33 =7  Nếu ta tính toán c từ m có giá trị ( 0, 32) ta có:  m 10 11 12 13 14 15 16  c 27 31 26 18 13 17 10 11 12 19  m 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32  c 29 24 28 14 21 22 23 30 16 20 15 25 32 14  Nhưng theo hệ thống Unicode nên ta bỏ không bí mật mà công khai ta mã hóa mà nguyên cũ Do phải loại bỏ ta chọn số khác Nếu ta muốn sử dụng hệ thống bảo mật ta cần chọn:  A=2, B=3, , Z=27  Chẳng hạn ta muốn chọn thông báo cần mã hóa có tên là:  "HELLOWORLD" thể dạng số nguyên m1, m2…  Ta có: {9, 6, 13, 13, 16, 24,16,19, 13, 5}  Và ta có thông báo mã hóa :  {3, 18, 19, 19, 4,30,4,28,19,26} 15 III Một số tính chất hệ mật mã RSA  Trong hệ mật mã RSA, tin mã hoá thời gian tuyến tính Đối với tin dài, độ dài số dùng cho khoá coi Tương tự vậy, nâng số lên luỹ thừa thực thời gian hằng, số không phép dài độ dài Thực tham số che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với số dài, chi phí phép toán thực yếu tố ngăn cản phổ biến ứng dụng phương pháp Phần quan trọng việc tính toán có liên quan đến việc mã hoá tin Nhưng chắn hệ mã hoá hết không tính khoá chúng số lớn 16  Các khoá cho hệ mã hoá RSA tạo mà tính toán nhiều  Một lần nữa, ta lại nói đến phương pháp kiểm tra số nguyên tố Mỗi số nguyên tố lớn phát sinh cách tạo số ngẫu nhiên lớn, sau kiểm tra số tìm số nguyên tố Một phương pháp đơn giản thực phép tính số ngấu nhiên, với xác suất 1/2 chứng minh số kiểm tra nguyên tố Bước cuối tính p dựa vào thuật toán Euclid  Như phần trình bày hệ mã hoá công khai khoá giải mã (private key) k B thừa số p,q giữ bí mật thành công phương pháp tuỳ thuộc vào kẻ địch có khả tìm giá trị k B hay không cho trước N KB Rất khó tìm kB từ KB cần biết p q, cần phân tích N thành thừa số để tính p q Nhưng việc phân tích thừa số việc làm tốn nhiều thời gian, với kỹ thuật đại ngày cần tới hàng triệu năm để phân tích số có 200 chữ số thừa số 17 Độ an toàn thuật toán RSA dựa sở khó khăn việc xác định thừa số nguyên tố số lớn Bảng cho biết thời gian dự đoán, giả sử phép toán thực micro giây Số chữ số số phân tích Thời gian phân tích 50 75 104 100 74 năm 200 4.000.000 năm 300 15 5×10 năm 500 25 4×10 năm 18 IV Ưu - nhược điểm ứng dụng Ưu điểm RSA  Có độ an toàn cao, sử dụng thông tin mật  Có mô tả toán học đơn giản, cấu trúc rõ ràng  Dễ dàng triển khai nhiều tảng khác  Chi phí triển khai thấp Nhược điểm RSA  Tốc độ mã hóa không cao  Phức tạp việc tạo khóa 19 Chuyển đổi văn rõ: -Trước thực mã hóa, ta phải thực việc chuyển đổi văn rõ (chuyển đổi từ M sang m) cho giá trị M tạo văn mã không an toàn -Nếu trình này, RSA gặp phải số vấn đề sau: -Nếu m = m = tạo mã có giá trị tương ứng -Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) m có giá trị nhỏ, giá trị me nhận giá trị nhỏ (so với n) Như phép môđun tác dụng dễ dàng tìmđược m cách khai bậc e c (bỏ qua môđun) -RSA phương pháp mã hóa xác định (không có thành phần ngẫu nhiên) nên kẻ công thực công lựa chọn rõ cách tạo bảng tra rõ mã Khi gặp mã, kẻ công sử dụng bảng tra để tìm rõ tươngứng 20  Trên thực tế, ta thường gặp vấn đề đầu gửi tin ASCII ngắn với m nhóm vài ký tự ASCII Một đoạn tin có ký tự NUL gán giá trị m = cho mã giá trị e N Tương tự, ký tự ASCII khác, SOH, có giá trị cho mã Với hệ thống dùng giá trị e nhỏ tất ký tự ASCII cho kết mã hóa không an toàn giá trị lớn m 255 2553 nhỏ giá trị n chấp nhận Những mã dễ dàng bị phá mã  Để tránh gặp phải vấn đề trên, RSA thực tế thường bao gồm hình thức chuyển đổi ngẫu nhiên hóa m trước mã hóa Quá trình chuyển đổi phải đảm bảo m không rơi vào giá trị không an toàn Sau chuyển đổi, rõ mã hóa cho số khả tập hợp mã Điều làm giảm tính khả thi phương pháp công lựa chọn rõ (một rõ tươngứng với nhiều mã tuỳ thuộc vào cách chuyển đổi) 21  Một số tiêu chuẩn, chẳng hạn PKCS, thiết k ế để chuyển đ ổi b ản rõ tr ước mã hóa b ằng RSA Các ph ương pháp chuy ển đ ổi bổ sung thêm bít vào M Các phương pháp chuyển đ ổi cần đ ược thi ết k ế c ẩn th ận đ ể tránh nh ững d ạng t ấn công ph ức t ạp t ận d ụng khả biết trước cấu trúc rõ Phiên b ản ban đ ầu PKCS dùng m ột ph ương pháp đ ặc ứng (ad-hoc) mà v ề sau đ ược bi ết không an toàn trước công lựa chọn rõ thích ứng (adaptive chosen ciphertext attack) Các ph ương pháp chuy ển đ ổi hi ện đ ại s dụng kỹ thuật chuyển đổi mã hóa bất đ ối xứng tối ưu (Optimal Asymmetric Encryption Padding - OAEP) đ ể ch ống l ại t ấn công dạng Tiêu chuẩn PKCS b ổ sung tính khác để đ ảm b ảo an toàn cho ch ữ ký RSA (Probabilistic Signature Scheme for RSA - RSA-PSS) 22 Tạo chữ kí số:  Thuật toán RSA dùng để tạo chữ ký số cho văn Giả sử Alice muốn gửi cho Bob văn có chữ ký c Để làm vi ệc này, Alice tạo một giá trị băm(hash value) văn cần ký tính giá trị mũ d mod n của (gi ống nh Alice th ực gi ải mã) Giá trị cuối chữ ký điện tử c văn b ản xét Khi Bob nh ận đ ược văn b ản v ới ch ữ ký ện t ử, tính giá tr ị mũ e mod n của chữ ký đồng thời với việc tính giá tr ị băm c văn b ản N ếu giá tr ị nh Bob bi ết r ằng ng ười t ạo ch ữ ký biết khóa bí mật Alice văn không b ị thay đ ổi sau ký  Cần ý phương pháp chuyển đổi rõ (như RSA-PSS) giữ vai trò quan trọng trình mã hóa chữ ký ện tử không dùng khóa chung cho đ ồng thời cho c ả hai m ục đích 23  Ngày nay, có ba hệ mã hóa thông dụng sử dụng đ ể xây dựng l ược đ ký ện t ử, h ệ mã hóa RSA, h ệ mã hóa d ựa toán logarit rời rạc hệ mã hóa dựa đ ường cong elliptic Các hàm m ột chi ều s dụng h ệ mã hi ện đ ược xem an toàn theo thừa nhận (tức thuật toán h ữu hi ệu đ ể tính hàm ng ược c chúng) Tuy nhiên, m ột v ấn đ ề c b ản c tính an toàn lược đồ ký điện tử lại tính không th ể gi ả mạo đ ược ch ữ ký điều không suy đ ược tr ực ti ếp t tính an toàn c hệ mã mà dựa vào  Trong khoảng mười năm gần đây, vấn đề thu hút nhi ều s ự quan tâm cộng đồng m ật mã th ế gi ới Ng ười ta c ố gắng đưa lược đồ ký cho tính không th ể giả mạo có th ể đ ược đánh giá thông qua đ ộ an toàn c hàm m ột chiều mà sử dụng Trong xem xét số lược đ ký s d ụng hàm m ột chi ều c h ệ mã RSA (đang đ ược xem ph ổ biến nay) 24  Giả sử A muốn gửi cho B văn có chữ ký Để làm việc này, A tạo giá tr ị băm (hash value) c văn b ản c ần ký tính giá trị mũ d mod n (giống A th ực hi ện gi ải mã) Giá tr ị cuối ch ữ ký ện t c văn b ản xét Khi B nhận văn với chữ ký điện tử, tính giá tr ị mũ e mod n c ch ữ ký đ ồng th ời v ới vi ệc tính giá tr ị băm c văn b ản N ếu giá trị Bbiết người tạo ch ữ ký bi ết khóa bí mật c A văn b ản không b ị thay đ ổi sau ký Ký ện t mô hình nguyên thủy 25 Hàm băm mật mã:  Người ta thường sử dụng hỗ trợ hàm băm mật mã trình Encoding lược đồ ký Một hàm băm với đầu vào văn (có độ dài bất kỳ), sinh cho ta xâu H có độ dài xác định, gọi mã băm Hàm băm mật mã phải thỏa mãn điều kiện sau: Là hàm chiều: Tức cho ta dễ dàng tính H=h(M) Nhưng có mã bămHthì khó tìmđược văn M cho H=h(M) (rất khó có nghĩa thuật toán hữu hiệu làm được)  Không tìm xung đột: Tức khó để tìm hai văn bảnM M’ có mã băm  Không tìm xung đột văn cho trước: Tức cho trước văn M khó để tìmđược văn M’có mã băm với văn M  Trong thực tế khó tìm hàm băm thỏa mãn nghiêm ngặt tính chất Hiện nay, ngày có kết thám mã mạnh công vào tính chất thứ hai Cho nên, lược đồ ký gần thường cố gắng tránh việc dựa trực tiếp vào tính chất 26 Thanks for watching ! 27

Ngày đăng: 12/10/2016, 22:33

Mục lục

  • Hệ mật mã khóa công khai RSA

  • I. Giới thiệu chung về hệ mật mã RSA

  • 2. Mô tả hoạt động

  • II. Cấu trúc hệ mật 1. Sơ đồ hệ mật

  • Một số lưu ý:

  • III. Một số tính chất của hệ mật mã RSA

  • IV. Ưu - nhược điểm và ứng dụng

  • 2. Chuyển đổi văn bản rõ:

  • 3. Tạo chữ kí số:

  • 4. Hàm băm mật mã:

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

Tài liệu liên quan