High speed rsa implementation chapter 1 3 5 2012

4 0 0
High speed rsa implementation   chapter 1   3 5 2012

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

Thông tin tài liệu

Chương 1 Hệ thống mật mã RSA 1 1 Thuật toán RSA Thuật toán RSA được đề xuất bởi Rivest, Shamir và Adleman [41] Gọi p và q là hai số nguyên tố lớn ngẫu nhiên phân biệt Mô đun n là tích của hai số nguyê[.]

Chương Hệ thống mật mã RSA 1.1 Thuật toán RSA Thuật toán RSA đề xuất Rivest, Shamir Adleman [41] Gọi p q hai số nguyên tố lớn ngẫu nhiên phân biệt Mô-đun n tích hai số nguyên tố này: n = pq Hàm phi Euler (Euler's totient function) n cho bởi: Chọn số cho tính d với sử dụng thuật toán Euclid mở rộng [19, 31] Ở đây, e số mũ công khai (public exponent) d số mũ bí mật (private exponent) Thơng thường, người ta chọn số mũ cơng khai nhỏ, ví dụ e = 216 + n e công khai Giá trị d hai số nguyên tố p q giữ bí mật Việc mã hóa thực cách tính với M rõ (plaintext) thỏa ≤ M < n Số C mã (ciphertext) tương ứng M Từ C, M tính Tính đắn thuật tốn RSA chứng minh định lý Euler sau: Cho n a hai số nguyên dương nguyên tố Khi đó, Do ed = mod , nghĩa ed = + K Cd với K nguyên, viết lại: (mod n) (mod n) (mod n) (mod n) (mod n) gcd(M,n) = Ngoại lệ gcd(M,n) > giải sau Theo định lý Carmichael với (n) hàm Carmichael có dạng đơn giản n = pq, cụ thể Chú ý (n) ước thật (proper divisor) (n) n tích số nguyên tố lẻ phân biệt; trường hợp này, (n) nhỏ (n) Giờ đây, quan hệ e d cho Do n tích số nguyên tố phân biệt nên điều với M, giúp đối phó với ngoại lệ gcd(M,n) > nêu định lý Euler Ví dụ, xây dựng hệ thống mã hóa RSA sau: Cho p = 11, q = 13, tính n =pq = 11  13 = 143, (n) = (p – 1)  (q – 1) = 10  12 = 120 Chúng ta tính hàm Carmichael n Số mũ cơng khai e chọn thỏa < e < (n) Ví dụ, e = 17 thỏa ràng buộc Số mũ bí mật d tính tính cách sử dụng thuật toán Euclid mở rộng hay thuật tốn khác để tính phần tử nghịch đảo mơ-đun Do đó, người dùng cơng bố số mũ cơng khai e mô-đun n: (e,n) = (13,143), giữ bí mật giá trị sau: d = 113, p = 11, q = 13 Một tiến trình mã hóa/giải mã tiêu biểu thực sau: Bản rõ: M = 50 Mã hóa: C := Me (mod n) C := 5017 (mod 143) C = 85 Bản mã: C = 85 Giải mã: M := Cd (mod n) M := 85113 (mod 143) M = 50 1.2 Trao đổi thơng điệp bí mật: Thư mục khóa cơng khai chứa cặp (e,n) cho người dùng Những người dùng muốn gởi thơng điệp bí mật đến người dùng khác tham khảo thư mục để nhận tham số Ví dụ, thư mục xếp sau: Người dùng Alice Bob Cathy … Các khóa cơng khai (ea,na) (eb,nb) (ec,nc) … Cặp na ea tương ứng mô-đun số mũ cơng khai cho Alice Như ví dụ, chúng tơi trình bày cách Alice gởi thơng điệp bí mật M cho Bob Trong ví dụ giao thức đơn giản chúng tôi, Alice thực bước sau đây: Alice xác định tên Bob thư mục nhận số mũ công khai vùng với môđun: (eb,nb) Alice tính Alice gởi C cho Bob thông qua mạng Bob tiếp nhận C Bob sử dụng số mũ bí mật mơ-đun anh ấy, tính thu M để 1.3 Ký văn điện tử Thuật toán RSA cung cấp tiến trình để ký văn điện tử kiểm tra chữ ký có xác thực khơng Việc ký văn điện tử khác với ký văn giấy, chỗ văn giấy dùng chữ ký Chữ ký điện tử khơng thể bất biến, hàm số văn điện tử tạo Sau chữ ký (chỉ phần nhỏ khác liệu điện tử) văn điện tử tạo ra, đính kèm vào văn muốn kiểm tra xác thực văn chữ ký Ở chúng tơi minh họa ngắn gọn tiến trình ký sử dụng hệ mã RSA Giả sử Alice muốn ký thơng điệp, Bob muốn có chứng thơng điệp ký Alice Trước tiên, Alice thực bước sau: Alice tạo thông điệp M tính Alice làm cho thơng điệp M chữ ký S sẵn sàng để xác thực Bob thực bước sau để xác thực chữ ký Alice văn M: Bob nhận M S, xác định tên Alice danh bạ để lấy thông số e n (ea, na) Bob tính Nếu M’ = M chữ ký xác thực Nếu khơng, thơng điệp gốc M chữ ký S bị sửa đổi, chữ ký khơng hợp lệ Chú ý ví dụ giao thức cho để minh họa, chúng giao thức ‘giáo khoa’ (‘textbook’); thực tế, giao thức thường phức tạp Ví dụ, kỹ thuật mã hóa khóa bí mật (secret-key) dùng để gởi thơng điệp bí mật Tương tự, việc ký áp dụng cho thơng điệp có độ dài tùy ý Chữ ký thường tính cách trước tiên tính giá trị băm thơng điệp dài sau ký giá trị băm Đọc giả tham khảo thêm báo cáo [42] Các Chuẩn Mã Hóa Khóa Công Khai [43] xuất RSA Data Security, để trả lời cho câu hỏi vấn đề 1.4 Tính lũy thừa Modulo Mỗi hệ mã RSA cài đặt, nghĩa mô-đun n, số mũ cơng khai e bí mật d xác định thành phần công khai công bố, người gửi người nhận thực thao tác đơn để ký, xác thực, mã hóa giải mã Thuật tốn RSA khía cạnh hệ mã đơn giản Thao tác bắt buộc tính Me (mod n), nghĩa lũy thừa modulo Phép lũy thừa modulo phép toán phổ biến để xáo trộn; dùng nhiều hệ mã Ví dụ, sơ đồ trao đổi khóa Diffe-Hellman địi hỏi phép lũy thừa modulo [8] Hơn nữa, sơ đồ chữ ký ElGamal Chuẩn Chữ Ký Số (DDS) đề xuất Viện Tiêu chuẩn Công nghệ Quốc gia [34] địi hỏi tính lũy thừa modulo Tuy nhiên, lưu ý q trình tính lũy thừa hệ mã dựa toán logarit rời rạc có chút khác biệt: Cơ sở (M) Mô-đun (n) biết trước Điều cho phép số tiền-tính tốn lũy thừa sở tính tốn trước lưu lại [6] Trong q trình tính lũy thừa thuật toán RSA, biết trước số mũ e mơ-đun n khơng biết sở; việc tối ưu hóa vẻ khơng phù hợp Trọng tâm báo cáo hệ mã RSA tiêu đề Trong chương tiếp theo, chúng tơi đánh giá kỹ thuật để cài đặt phép toán lũy thừa modulo máy tính thơng thường, máy tính cá nhân, vi xử lý, vi điều khiển, xử lý tính hiệu, máy trạm máy tính lớn Báo cáo khơng bao gồm đoạn mã thực sự; chủ yếu đề cập khía cạnh tốn học thuật tốn việc cài đặt phần mềm thuật tốn RSA Ngồi cịn có cấu trúc phần cứng để thực phép nhân lũy thừa mơ-đun, ví dụ, xem [40, 28, 46,15, 24, 25, 26, 50] Bản đánh giá tóm lược tìm thấy [5]

Ngày đăng: 11/04/2023, 11:01

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

Tài liệu liên quan