1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ mã rsa trên vành end (zn x znm)

56 34 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 0,93 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH Lê Thị Kim Nga XÂY DỰNG HỆ MÃ RSA TRÊN VÀNH 𝑬𝒏𝒅(ℤ𝒏 × ℤ𝒏𝒎 ) LUẬN VĂN THẠC SĨ MÁY TÍNH Thành phố Hồ Chí Minh – 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH Lê Thị Kim Nga XÂY DỰNG HỆ MÃ RSA TRÊN VÀNH 𝑬𝒏𝒅(ℤ𝒏 × ℤ𝒏𝒎 ) Chuyên ngành: Khoa học máy tính Mã số: 8480101 LUẬN VĂN THẠC SĨ MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRẦN ĐÌNH LONG PGS.TS NGUYỄN ĐÌNH THÚC Thành phố Hồ Chí Minh - 2018 LỜI CAM ĐOAN Tôi xin khẳng định tất kết trình bày luận văn kết nghiên cứu riêng hướng dẫn TS Trần Đình Long PGS TS Nguyễn Đình Thúc Nếu có điều khơng trung thực, tơi xin chịu hồn tồn trách nhiệm Học viên Lê Thị Kim Nga LỜI CẢM ƠN Đầu tiên em xin chân thành cảm ơn thầy Phịng Sau đại học Khoa Công nghệ Thông tin, người hết lòng hỗ trợ, hướng dẫn giảng dạy em suốt thời gian học Cao học trường Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến thầy Trần Đình Long thầy Nguyễn Đình Thúc tận tình hướng dẫn em suốt thời gian thực luận văn Nếu khơng có lời hướng dẫn, dạy bảo giúp đỡ hai thầy em khó hồn thành luận văn Em xin gửi lời cám ơn đến gia đình, bạn bè người ln bên cạnh, ủng hộ giúp đỡ em trình học tập làm việc Mặc dù cố gắng, song chắn luận văn khơng tránh khỏi thiếu sót Em mong nhận thông cảm bảo tận tình q thầy bạn Xin chân thành cảm ơn! MỤC LỤC Trang phụ bìa Lời cam đoan Lời cảm ơn Mục lục Danh mục kí hiệu, từ viết tắt Danh mục hình ảnh Danh mục bảng biểu MỞ ĐẦU Chương KIẾN THỨC CƠ SỞ 1.1 Nhóm (group) 1.1.1 Phép tốn hai ngơi 1.1.2 Nửa nhóm (monoid) 1.1.3 Nhóm 1.2 Vành (Ring) 1.2.1 Định nghĩa vành 1.2.2 Iđêan (Ideal) 1.2.3 Vành thương (quotient ring) 1.3 Đồng dư số học 1.3.1 Phép đồng dư 1.3.1 Phần tử nghịch đảo phép nhân đồng dư 1.4 Thuật toán lũy thừa nhanh Chương TỔNG QUAN VỀ RSA 11 2.1 Hệ mã RSA gốc 12 2.2 Thám mã RSA 12 2.2.1 Phân tích số nguyên lớn 12 2.2.2 Khóa bí mật có số mũ nhỏ 13 2.2.3 Khóa cơng khai có số mũ nhỏ 13 2.2.4 Tấn công thực thi 14 2.2.5 Tấn công dàn 15 2.3 Một số biến thể RSA 16 2.3.1 RSA vành thương đa thức 16 2.3.2 RSA vành thương số nguyên Gauss 17 2.3.3 RSA nhóm nhân ma trận khả nghịch 18 2.3.4 RSA nhóm đường cong elliptic 19 2.3.5 RSA vành Bergman 20 2.3.6 Nhận xét biến thể 21 Chương XÂY DỰNG HỆ MÃ RSA TRÊN VÀNH 𝑬𝒏𝒅(ℤ𝒏 × ℤ𝒏𝒎 ) 23 3.1 Giới thiệu vành 𝐸𝑛𝑑(ℤ𝑝 × ℤ𝑝𝑚 ) 24 3.1.1 Đặc điểm vành 𝐸𝑛𝑑(ℤ𝑝 × ℤ𝑝𝑚 ) 24 3.1.2 Phần tử khả nghịch 𝐸𝑛𝑑(ℤ𝑝 × ℤ𝑝𝑚 ) 25 3.2 Xây dựng hệ mã RSA vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) 28 3.2.1 Xây dựng vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) 28 3.2.2 Xây dựng hệ mã RSA vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) 33 3.3 Cài đặt đánh giá hệ mã 35 3.3.1 Cài đặt hệ mã 35 3.3.2 Đánh giá hệ mã 41 Chương KẾT LUẬN 44 4.1 Kết đạt 44 4.2 Hướng phát triển 44 TÀI LIỆU THAM KHẢO 46 Danh mục kí hiệu, từ viết tắt Kí hiệu Ý nghĩa CRT Định lý phần dư Trung hoa (Chinese Remainder Theorem) gcd Ước chung lớn (Greatest Common Divisor) lcm Bội chung nhỏ (Least Common Multiple) Danh mục hình ảnh Hình 3.1 Giao diện tổng quan hệ mã 36 Hình 3.2 Chức sinh khóa 36 Hình 3.3 Thơng báo nhập giá trị 𝑚 không hợp lệ 37 Hình 3.4 Thơng báo nhập nội dung mã hóa 38 Hình 3.5 Chức mã hóa 38 Hình 3.6 Chức Mã hóa file văn 39 Hình 3.7 Thơng báo nhập nội dung giải mã 40 Hình 3.8 Chức giải mã 40 Hình 3.9 Chức Giải mã file văn 41 Danh mục bảng biểu Bảng 2.1 Độ dài mơ-đun số phép tính biến thể RSA 21 MỞ ĐẦU Hệ mã RSA số hệ mã công khai sử dụng phổ biến Hệ mã giới thiệu vào 1978 ba tác giả Ron Rivest, Adi Shamir Len Adleman Khi nghiên cứu hệ mã RSA, giới có hai xu hướng, là: phát triển biến thể RSA thám mã RSA Sự phát triển biến thể RSA chia làm hai hướng Hướng thứ tập trung vào hệ mã RSA gốc cải tiến thuật tốn mã hóa giải mã nhằm giảm độ phức tạp tính tốn xây dựng RSA vành ℤ𝑛 với 𝑛 có dạng phức tạp thay tích hai số nguyên tố phân biệt Trong hướng thứ hai, biến thể RSA xây dựng cấu trúc đại số phức tạp Một số biến thể RSA xây dựng theo hướng thứ hai sau:  RSA vành thương đa thức [1]  RSA vành thương số nguyên Gauss [1]  RSA nhóm nhân ma trận [2]  RSA nhóm đường cong elliptic [3]  RSA vành Bergman [4] Có thể thấy, số biến thể RSA xây dựng cấu trúc khác nhau, thường nhóm vành thương vành Euclide Các phép toán cấu trúc phải rõ ràng để lập trình máy tính Một cách đơn giản để tạo cấu trúc xét vành tự đồng cấu 𝐸𝑛𝑑(𝐺) với 𝐺 nhóm biết Một ví dụ điển hình vành tự đồng cấu 𝐸𝑛𝑑 (𝐺 ) vành Bergman 𝐸𝑛𝑑(ℤ𝑝 × ℤ𝑝2 ) với 𝑝 số nguyên tố Vành Bergman giới thiệu [5] vào năm 1974 phép toán vành khó nắm bắt nên khơng có hệ mã xây dựng Mãi đến năm 2011, Climent 33 Định lý 3.5 Cho 𝑀 = [ 𝑎 𝑛 𝑚−1 𝑐 𝑛 𝑚−1 𝑏 ] ∈ 𝐸𝑛,𝑛𝑚 , 𝑢𝑚−1 + ⋯ + 𝑛𝑢1 + 𝑢0 ∗ ∗ 𝜇(𝑀) ∈ 𝐸𝑝,𝑝 𝑚 𝜂 (𝑀 ) ∈ 𝐸𝑞,𝑞 𝑚 gcd(𝑎, 𝑛 ) = gcd(𝑢0 , 𝑛 ) = ∗ Chứng minh Theo định lý 3.1, ta có 𝜇(𝑀) ∈ 𝐸𝑝,𝑝 𝑚 ∗ gcd(𝑎, 𝑝) = gcd(𝑢0 , 𝑝) = 𝜂(𝑀) ∈ 𝐸𝑞,𝑞 𝑚 gcd(𝑎, 𝑞 ) = gcd(𝑢0 , 𝑞) = ∗ ∗ Do đó, 𝜇(𝑀) ∈ 𝐸𝑝,𝑝 𝑚 𝜂 (𝑀 ) ∈ 𝐸𝑞,𝑞 𝑚 gcd(𝑎, 𝑝) = gcd(𝑎, 𝑞) = gcd(𝑢0 , 𝑝) = gcd(𝑢0 , 𝑛) = Điều kiện cuối có nghĩa gcd(𝑎, 𝑛) = gcd(𝑢0 , 𝑛) = Từ định lý 3.4 3.5 nhận thấy phần tử 𝑀 ∈ 𝐸𝑛,𝑛𝑚 thỏa mãn điều kiện gcd(𝑎, 𝑛) = gcd(𝑢0 , 𝑛) = phương trình 𝑀𝑒𝑑 = 𝑀 đúng, 𝑒, 𝑑 số nguyên thỏa 𝑒𝑑 ≡ (𝑚𝑜𝑑 𝐿) với 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) Nhờ vào điều đó, chúng tơi hồn tồn xây dựng lược đồ mã hóa tựa RSA, cụ thể trình bày phần 3.2.2 bên 3.2.2 Xây dựng hệ mã RSA vành 𝑬𝒏𝒅(ℤ𝒏 × ℤ𝒏𝒎 ) Với giả thiết trên, xây dựng lược đồ mã hóa tựa RSA sau: Lược đồ mã hóa tựa RSA ba chương trình ngẫu nhiên thời gian đa thức RSA_like(KeyGen(), Encryption(), Decryption())  KeyGen(𝜆) nhận tham số an tồn 𝜆 sinh cặp khóa (𝑝𝑘, 𝑠𝑘) với 𝑝𝑘 = (𝑛, 𝑚, 𝑒) khóa cơng khai 𝑠𝑘 = 𝑑 khóa bí mật  Encryption(𝑝𝑘, 𝑏, 𝐶) nhận rõ 𝑏 sử dụng khóa cơng khai 𝑝𝑘 để sinh mã 𝐶  Decryption(𝑠𝑘, 𝐶, 𝑏) nhận mã 𝐶 sử dụng khóa bí mật 𝑠𝑘 để phục hồi lại rõ 𝑏 Cụ thể lược đồ sau: 34  Tạo khóa (KeyGen())  Chọn hai số nguyên tố phân biệt 𝑝, 𝑞 Tính 𝑛 = 𝑝𝑞  Chọn số nguyên 𝑚 ≥  Tính 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 )  Chọn số nguyên 𝑒 cho gcd(𝐿, 𝑒) = (1 < 𝑒 < 𝐿)  Tính 𝑑 ≡ 𝑒 −1 (𝑚𝑜𝑑 𝐿)  Cơng bố khóa cơng khai 𝑛, 𝑚 𝑒, giữ khóa bí mật 𝑑  Mã hóa (Encryption())  Các rõ phần tử 𝑏 ∈ ℤ𝑛  Chọn ngẫu nhiên 𝑎, 𝑐, 𝑢𝑚−1 , 𝑢𝑚−2 , … , 𝑢1 , 𝑢0 cho gcd(𝑎, 𝑛) = gcd(𝑢0 , 𝑛) =  Sau đó, 𝑏 mã hóa cách tính 𝐶 = 𝑀𝑒 𝑀 = 𝑎 𝑏 [ 𝑚−1 ] ∈ 𝐸𝑛,𝑛𝑚 𝑚−1 𝑛 𝑐 𝑛 𝑢𝑚−1 + ⋯ + 𝑛𝑢1 + 𝑢0  Giải mã (Decryption())  𝑏 giải mã cách tính 𝐶 𝑑 , 𝑏 phần tử vị trí (1,2) 𝐶 𝑑 Để hiểu rõ hơn, xem xét ví dụ sau đây:  Tạo khóa       Chọn 𝑝 = 5, 𝑞 = nên 𝑛 = 35 Chọn 𝑚 = Tính 𝑠 = 𝑝𝑚+1 (𝑝 − 1)2 = 55 (5 − 1)2 = 50000 Tính 𝑡 = 𝑞𝑚+1 (𝑞 − 1)2 = 75 (7 − 1)2 = 605052 𝐿 = 𝑙𝑐𝑚(𝑠, 𝑡) = 𝑙𝑐𝑚(50000,605052) = 7563150000 Chọn 𝑒 = 1487690009 với < 𝑒 < 𝐿 𝑔𝑐𝑑(𝑒, 𝐿) = 𝑑 = 𝑒 −1 (𝑚𝑜𝑑 𝐿) = 596098889  Mã hóa  Giả sử cần mã hóa số 𝑏 = 17, ta chọn 𝑎, 𝑐, 𝑢3 , 𝑢2 , 𝑢1 , 𝑢0 ∈ ℤ35 cho gcd(𝑎, 35) = gcd(𝑢0 , 35) = tính 𝐶 = 𝑀𝑒 𝑀 = 𝑎 𝑏 [ 𝑚−1 ] 𝑚−1 𝑛 𝑐 𝑛 𝑢𝑚−1 + ⋯ + 𝑛𝑢1 + 𝑢0  Chọn 𝑎 = 19, 𝑐 = 4, 𝑢3 = 27, 𝑢2 = 11, 𝑢1 = 18, 𝑢0 = 𝑀 = 19 17 [ ] 171500 1171736 35 24  Sau đó, 𝐶 = 𝑀𝑒 = [ 814625  Giải mã ] mã 523466  Để khôi phục lại giá trị 𝑏 từ M, ta tính 𝐶 𝑑 = 𝐶 596098889 = 19 17 [ ] nhận giá trị 𝑏 = 17 vị trí (1,2) 171500 1171736 ma trận kết rõ Trong bước mã hóa hệ mã, chọn giá trị khác cho 𝑎, 𝑐, 𝑢3 , 𝑢2 , 𝑢1 𝑢0 ma trận mã hóa 𝐶 nhận giá trị khác Chẳng hạn, ví dụ trên, ta chọn 𝑎 = 23, 𝑐 = 9, 𝑢3 = 30, 𝑢2 = 5, 𝑢1 = 8, 𝑢0 = 13 ma 23 17 trận 𝑀 trở thành 𝑀 = [ ] Còn ma trận mã 𝐶 nhận 385875 1292668 18 33 giá trị 𝐶 = 𝑀𝑒 = [ ] 42875 1412718 3.3 Cài đặt đánh giá hệ mã 3.3.1 Cài đặt hệ mã Chúng xây dựng chương trình minh họa cho hệ mã xây dựng ngôn ngữ C# môi trường lập trình Visual Studio 2017 Giao diện tổng quan hệ mã sau: 36 Hình 3.1 Giao diện tổng quan hệ mã Chương trình minh họa hệ mã có ba chức sinh khóa, mã hóa giải mã  Chức Sinh khóa Chức cho phép người dùng nhập vào giá trị số mũ 𝑚 tự động sinh khóa 𝑝, 𝑞, 𝑛, 𝑒 𝑑 người dùng nhấn nút “Sinh khóa” Hình 3.2 Chức sinh khóa Cụ thể, người dùng nhập giá trị số mũ 𝑚 vào khung “Nhập m (m>=2)” nhấn nút nút “Sinh khóa” Chương trình kiểm tra số mũ 𝑚 có thỏa điều kiện 𝑚 ≥ hay không Nếu điều kiện khơng thỏa mãn xuất thơng báo sau: 37 Hình 3.3 Thơng báo nhập giá trị 𝒎 khơng hợp lệ Cịn điều kiện thỏa mãn thực sinh giá trị khóa 𝑝, 𝑞 số ngun tố Sau đó, chương trình tính 𝑛 = 𝑝 𝑞 giá trị 𝐿 theo công thức 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) Tiếp theo, chương trình chọn số nguyên 𝑒 cho gcd(𝐿, 𝑒) = (1 < 𝑒 < 𝐿) tính 𝑑 ≡ 𝑒 −1 (𝑚𝑜𝑑 𝐿) thuật toán Euclide Tuy nhiên, nhận thấy giá trị 𝐿 lớn nhiều so với giá trị 𝑝 𝑞 Đồng thời, giá trị số mũ 𝑚 lớn giá trị 𝐿 tương ứng tăng theo Nhưng phạm vi giá trị kiểu liệu máy tính có giới hạn, để tránh tình trạng bị tràn liệu chương trình lập trình sau: Khi giá trị số mũ 𝑚 lớn giá trị 𝑝 𝑞 tương ứng giảm  Chức Mã hóa Trong phần này, chúng tơi xây dựng hai chức năng: Mã hóa văn Mã hóa file văn Trong chức Mã hóa văn bản: Người dùng nhập nội dung văn vào khung “Nhập nội dung cần mã hóa” Tuy nhiên, tất văn nhập vào phần mã hóa độ dài tối đa văn chúng tơi thiết đặt 32767 kí tự (kể kí tự khoảng trắng) Sau nhấn nút “Mã hóa”, chương trình kiểm tra xem người dùng nhập mã vào hay chưa Nếu người dùng nhập mã q trình mã hóa văn thực Ngược lại, chương trình xuất thơng báo sau: 38 Hình 3.4 Thơng báo nhập nội dung mã hóa Trong q trình mã hóa, nội dung văn mã hóa nhiều lần, lần 𝑚 + kí tự hết Ở lần mã hóa cuối cùng, số kí tự khơng đủ 𝑚 + chương trình tự động thêm vào kí tự khoảng trắng cho đủ số kí tự Ở lần mã hóa, chương trình tự sinh thêm giá trị 𝑎 𝑢0 thỏa điều kiện gcd(𝑎, 𝑛) = gcd(𝑢0 , 𝑛) = Còn 𝑚 + kí tự gán giá trị cho biến 𝑢1 , 𝑢2 , … , 𝑢𝑚−1 , 𝑏, 𝑐 Như vậy, kết lần mã hóa 𝑚 + kí tự 𝑚 + giá trị Các giá trị biểu diễn dạng hexa số phân cách dấu phẩy Hình 3.5 Chức mã hóa 39 Trong chức mã hóa file văn bản: Người dùng chọn tệp lưu văn cách nhấn nút “Chọn file” Tuy nhiên, chức cho phép mã hóa tệp có phần mở rộng txt Tiếp theo, người dùng chọn thư mục lưu tệp tin sau mã hóa cách nhấn nút “Chọn folder lưu” Sau đó, để mã hóa tệp tin, người dùng nhấn nút “Mã hóa” q trình mã hóa thực tương tự chức Mã hóa văn Khi mã hóa hồn tất, đường dẫn tệp tin mã hóa hiển thị khung “File kết quả” Hình 3.6 Chức Mã hóa file văn  Chức Giải mã Chương trình xây dựng hai chức giải mã tương ứng với hai chức mã hóa nêu là: Giải mã văn Giải mã file văn Trong chức Giải mã văn bản, người dùng nhập nội dung mã hóa vào khung “Nhập nội dung cần giải mã” nhấn nút “Giải mã” Khi đó, chương trình kiểm tra người dùng nhập mã hay chương Nếu người dùng chưa nhập chương trình xuất thơng báo sau: 40 Hình 3.7 Thông báo nhập nội dung giải mã Ngược lại, người dùng nhập trình giải mã bắt đầu việc tách số hexa đưa vào mảng Sau đó, 𝑚 + giá trị giải mã Tuy nhiên, kết ta lấy 𝑚 + giá trị, bỏ hai giá trị 𝑎 𝑢0 (do hai giá trị ta thêm vào lúc mã hóa) Hình 3.8 Chức giải mã Còn chức Giải mã file văn bản, người dùng tương ứng chọn tệp nơi lưu tệp giải mã cách nhấn chọn nút “Chọn file” “Chọn folder lưu” Sau đó, người dùng nhấn nút Giải mã trình giải mã hoàn tất, đường dẫn tệp giải mã hiển thị khung “File kết quả” 41 Hình 3.9 Chức Giải mã file văn 3.3.2 Đánh giá hệ mã Trong hệ mã xây dựng mục 3.2.2, rõ 𝑏 nằm vị trí (1,2) 𝑎 ma trận 𝑀 = [ 𝑚−1 𝑛 𝑐 𝑛 𝑚−1 𝑏 ] Tuy nhiên, thay 𝑢𝑚−1 + ⋯ + 𝑛𝑢1 + 𝑢0 chọn ngẫu nhiên giá trị 𝑐 𝑢1 , 𝑢2 , … , 𝑢𝑚−1 sử dụng giá trị để mã hóa rõ, đó, mã hóa lúc tối đa 𝑚 + giá trị rõ Như vậy, so với hệ mã RSA gốc lần mã hóa hệ mã chúng tơi mã hóa nhiều 𝑚 giá trị rõ Mặt khác, với giá trị rõ, ta chọn nhiều giá trị khác cho 𝑎 𝑢0 nên ma trận 𝑀 = [ 𝑎 𝑛 𝑚−1 𝑐 𝑛 𝑚−1 𝑏 ] 𝐶 = 𝑀𝑒 𝑢𝑚−1 + ⋯ + 𝑛𝑢1 + 𝑢0 có nhiều giá trị khác Cịn hệ mã RSA gốc rõ có giá trị mã Do đó, hệ mã chúng tơi tránh công văn tốt so với hệ mã RSA gốc Với hệ mã nhóm nhân ma trận, người gởi phải xác nhận tính khơng suy biến ma trận rõ Cịn hệ mã chúng tơi, người gửi khơng cần phải xác nhận điều Bởi điều kiện gcd(𝑎, 𝑛) = gcd(𝑢0 , 𝑛) = đảm bảo khơng để rị rỉ thông tin 𝑝 𝑞 42 Trong hệ mã RSA, cách công dàn đem đến hiệu định Sau đây, lập luận cách công dàn vào hệ mã xây dựng theo cách tương tự cách công vào hệ mã RSA gốc Thông thường để tránh việc phân tích mơ-đun 𝑛 𝑝, 𝑞 cân nên 𝜑(𝑛) = 𝑛 + 𝑂(√𝑛) Ước lượng 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) = 𝑝𝑚+1 𝑞𝑚+1 𝑙𝑐𝑚((𝑝 − 1)2 , (𝑞 − 1)2 ) < 𝑛𝑚+2 𝜑(𝑛) Phương trình 𝑒𝑑 ≡ 𝑚𝑜𝑑 𝐿 cho thấy tồn 𝑘 = 𝑂(𝑑) cho 𝑒𝑑 = + 𝑘𝐿 < 𝑘𝑛𝑚+2 (𝑛 + 𝑂(√𝑛)), 𝑒𝑑 − 𝑘𝑛𝑚+3 < 𝑘𝑛𝑚+2 𝑂(√𝑛) Đặt 𝑙 = 𝑒𝑑 − 𝑘𝑛𝑚+3 𝑙 = 𝑂(𝑑𝑛𝑚+2 √𝑛) Xét dàn hai chiều 𝐻 ⊂ ℝ2 có hai sở 𝑣1 = (𝑒, 𝑛𝑚+2 √𝑛) 𝑣2 = (𝑛𝑚+3 , 0) 𝐻 chứa vectơ 𝑡 = 𝑑𝑣1 − 𝑘𝑣2 = (𝑑𝑒 − 𝑘𝑛𝑚+3 , 𝑑𝑛𝑚+2 √𝑛) có chuẩn ‖𝑡‖ = √(𝑑𝑒 − 𝑘𝑛𝑚+3 )2 + (𝑑𝑛𝑚+2 √𝑛) ≈ 𝑑𝑛𝑚+2 √𝑛 (𝑣𝑜𝑙(𝐻))2 = √‖𝑣1 ‖ ‖𝑣2 ‖ = √𝑛𝑚+2 √𝑛 𝑛𝑚+3 = 𝑛 𝑑𝑛𝑚+2 √𝑛 < 𝑛 4𝑚+11 4𝑚+11 Vậy 𝑡 vectơ ngắn 𝐻 hay 𝑑 < 𝑛4 Khi đó, ta áp dụng thuật tốn Gauss để tìm 𝑡 từ khơi phục khóa riêng 𝑑 Trong hệ mã RSA gốc, phạm vi 𝑑 từ đến (𝑝 − 1)(𝑞 − 1) cịn phạm vi khóa 𝑑 yếu để công dàn < 𝑑 < 𝑛4 , xác suất để cơng dàn thành cơng 𝑛4 (𝑝−1)(𝑞−1) ≈ Cịn hệ mã 𝑛4 chúng tôi, phạm vi 𝑑 từ đến 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) > 𝑛𝑚+1 xác suất để công dàn thành công 𝑛4 𝑛𝑚+1 = 4𝑚+3 𝑛 Do đó, giá trị 𝑚 lớn xác suất cơng dàn thành công càn thấp thấp nhiều so với xác suất công thành công vào hệ mã RSA gốc Tuy nhiên, giá trị 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) lớn nhiều so với (𝑝 − 1)(𝑞 − 1) nên việc mã hóa giải mã hệ mã chúng tơi tốn nhiều chi phí tính tốn so với hệ mã RSA vành số nguyên Cụ thể, ước lượng 𝐿 = 𝑙𝑐𝑚(𝑝𝑚+1 (𝑝 − 1)2 , 𝑞𝑚+1 (𝑞 − 1)2 ) ≈ (𝑝 − 43 1)𝑚+2 (𝑞 − 1)𝑚+2 nên giá trị 𝐿 giá trị tích 𝑒𝑑 lớn xấp xỉ 𝑚 + lũy thừa so với giá trị 𝜑(𝑛) = (𝑝 − 1)(𝑞 − 1) giá trị tích 𝑒𝑑 tương ứng hệ mã RSA vành số nguyên Với 𝑀 cho trước, áp dụng thuật tốn bình phương nhân để tính 𝑀𝑒𝑑 độ phức tạp 𝑂(log 𝑒𝑑), hệ mã chúng tơi có độ phức tạp gấp 𝑚 + lần 44 Chương KẾT LUẬN Trong chương này, chúng tơi trình bày kết đạt hướng phát triển tương lai đề tài 4.1 Kết đạt Trong thời gian thực luận văn, chúng tơi cố gắng thực hiện, hồn thành mục đích đề đạt số kết định Bằng nỗ lực thân với hướng dẫn tận tình thầy Trần Đình Long thầy Nguyễn Đình Thúc, đề tài “Xây dựng hệ mã RSA vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 )” hồn thành Chúng tơi nhận thấy rằng, việc luận văn xây dựng thành công hệ mã RSA vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) góp phần chứng minh hồn tồn xây dựng hệ mã RSA cấu trúc đại số khác với vành ℤ𝑛 hệ mã RSA gốc Mặt khác, luận văn đạt số kết sau:  Tìm hiểu vành 𝐸𝑛𝑑(ℤ𝑝 × ℤ𝑝𝑚 ) để từ xây dựng vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛 𝑚 )  Từ vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) xây dựng, xây dựng thành công hệ mã RSA đưa số so sánh với hệ mã RSA gốc Chúng nhận thấy rằng, hệ mã vừa xây dựng có ưu điểm tránh số cách công tốt so với hệ mã gốc Tuy nhiên, nhược điểm hệ mã vừa xây dựng độ phức tạp tính tốn lớn nhiều so với hệ mã RSA gốc  Từ lý thuyết hệ mã RSA vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) xây dựng, thực nghiệm chương trình ngơn ngữ C# có chức mã hóa giải mã văn 4.2 Hướng phát triển  So sánh hệ mã xây dựng với biến thể khác RSA 45  Liệu mở rộng vành 𝐸𝑛𝑑(ℤ𝑛 × ℤ𝑛𝑚 ) hay khơng? Và mở rộng vành liệu xây dựng hệ mã RSA vành mở rộng hay khơng? Đó vấn đề mà người đọc có hứng thú với hướng tìm hiểu phát triển thêm 46 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] A N El-Kassar, R Haraty, and Y A Awad, "Modified RSA in the domains of Gausian integers and polynomials over finite fields," Proc Intl Conf Computer Science, Software Engineering, Information Technology, e-Business and Applications (CSITeA’04), 2004 V Varadharajan and R Odoni, "Extension of RSA Cryptosystems to Matrix Rings," Cryptologia, vol 9, no 2, pp 140-153, 1985 N Demytko, "A New Elliptic Curve Based Analogue of RSA," EUROCRYPT’93, Lecture Notes in Computer Science, vol 765, pp 40-49, 1993 L D Tran, T D Tran, and T D Nguyen, "A Bergman ring based cryptosystem analogue of RSA," International Conference on IT Convergence and Security, IEEE Ebook, pp 377-380, 2013 G M Bergman, "Some examples in PI ring theory," Israel Journal of Mathematics, vol 18, pp 257-277, 1974 J.-J Climent, P R Navarro, and L Tortosa, "On the arithmetic of the endomorphisms ring End(Z_p x Z_p^2)," Applicable Algebra in Engineering, Communication and Computing, vol 22, no 2, pp 91-108, 2011 X Liu and H Liu, "On the arithmetic of the endomorphism ring End(Z_p × Z_p^m)," p https://arxiv.org/pdf/1605.00805.pdf R Rivest, A Shamir, and L Adleman, "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems," Communications of the ACM, vol 21 (2), pp 120-126, 1978 A Nitaj and T Rachidi, "Factoring RSA Moduli with Weak Prime Factors," Codes, Cryptology, and Information Security, pp 361-374, 2015 A K Lenstra and J H W Lenstra, "The development of the number field sieve," in Lecture Notes in Mathematics, vol 1554Springer Verlag, Berlin, 1993 M J Wiener, "Cryptanalysis of Short RSA Secret Exponents," IEEE Transactions on Information Theory, vol 36, pp 553-558, 1990 D Boneh and G Durfee, "Cryptanalysis of RSA with Private Key d Less than N^0.292," Proc of Crypto’99, LNCS, 1999 D Coppersmith, M Franklin, J Patarin, and M Reiter, "Low-exponent RSA with related messages," EUROCRYPT '96, Lecture Notes in Computer Science, vol 1070, pp 1-9, 1996 D Boneh, "Twenty Years of Attacks on the RSA Cryptosystem," Notices of the AMS, vol 46, pp 203-213, 1999 D Boneh, G Durfee, and Y Frankel, "An attack on RSA given a small fraction of the private key bits," AsiaCrypt '98, Lecture Notes in Computer Science, vol 1514, pp 25-34, 1998 P Kocher, "Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems," CRYPTO '96, Lecture Notes in Computer Science, vol 1109, pp 104-113, 1996 47 [17] [18] [19] D Boneh, R DeMillo, and R Lipton, "On the importance of checking cryptographic protocols for faults," EUROCRYPT '97, Lecture Notes in Computer Science, vol 1233, pp 37-51, 1997 P Q Nguyen, "Public key cryptanalysis," Recent trends in cryptography, Contemporary Mathematics series, AMS-RSME, 2008 L D Tran, T D Tran, D Choi, and T D Nguyen, "RSA-type Algebra Structures," KSII TRANSACTIONS ON INTERNET AND INFORMATION SYSTEMS, vol 10, 2016 ... nghịch 3.2 X? ?y dựng hệ mã RSA vành

Ngày đăng: 31/12/2020, 14:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w