Hệ mật RSA và các vấn đề phân tích thừa số
Phần I : Giới thiệu về mật m khoá công khaiã
Chơng I Tổng quan về hệ mật
1. Giới thiệu về các hệ mật sử dụng khoá mật.
Trong mô hình mật mã cổ điển mà cho tới nay vẫn còn đang đợc
nghiên cứu Alice ( ngời gửi) và Bob (ngời nhận) bằng cách chọn một
khoá bí mật K. Sau đó Alice dùng khoá K để mã hoá theo luật e
K
và Bod
dùng khoá K đó để giải mã theo luật giải d
K
. Trong hệ mật này, d
K
hoặc
giống nh e
K
hoặc dễ dàng nhận đợc từ nó vì quá trình giải mã hoàn toàn
tơng tự nh quá trình mã, nhng thủ tục khoá thì ngợc lại. Nhợc điểm lớn
của hệ mật này là nếu ta để lộ e
K
thì làm cho hệ thống mất an toàn,
chính vì vậy chúng ta phải tạo cho các hệ mật này một kênh an toàn mà
kinh phí để tạo một kênh an toàn không phải là rẻ.
2. Giới thiệu về hệ mật mã khoá công khai
ý tởng xây dựng một hệ mật khoá công khai là tìm một hệ mật không
có khả năng tính toán để xác định d
K
nếu biết đợc e
K
. Nừu thực hiện đợc
nh vậy thì quy tắc mã e
K
có thể đợc công khai bằng cách công bố nó
trong danh bạ, và khi Alice (ngời gửi) hoặc bất cứ một ai đó muốn gửi
một bản tin cho Bob (ngời nhận) thì ngời đó không phải thông tin trớc
với Bob (ngời nhận) về khoá mật, mà ngời gửi sẽ mã hoá bản tin bằng
cách dùng luật mã công khai e
K
. Khi bản tin này đợc chuyển cho Bob
(ngời nhận) thì chỉ có duy nhất Bob mới có thể giải đợc bản tin này bằng
cách sử dụng luật giải mã bí mật d
K
.
ý tởng về hệ mật khoá công khai đã đợc Diffie và Heliman đa ra vào
năm 1976. Còn việc thực hiện hệ mật khoá công khai thì lại đợc Rivest.
Shamin và Adieman đa ra đầu tiên vào năm 1977. Họ đã tạo nên hệ mật
RSA nổi tiếng. Kể từ đó đã có một số hệ mật đợc công bố, độ mật của
từng hệ dựa trên các bài toán tính toán khác nhau. Trong đó quan trọng
nhất là các hệ mật sau:
Hệ mật RSA
Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa số
nguyên tố các số nguyên tố lớn.
Hệ mật xếp balô Merkle Heliman.
Hệ này và các hệ có liên quan dựa trên tính khó giải của bài toán tổng
các tập con.
Hệ mật McEliece
Hệ mật nanỳ dựa trên lý thuyết mã đại số và vẫn đợc coi là an toàn.
Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính.
Hệ mật ElGamal
Hệ ElGamal dựa trên tính khó giải của bài toán Logarit rời rạc trên
các trờng hữu hạn.
Hệ mật Chor Rivest
Hệ mật Chor Rivest cũng đợc xem nh một loại hệ mật xếp balô.
Tuy nhiên hệ mật này vẫn còn đợc coi là hệ mật an toàn.
Hệ mật trên các đờng cong Elliptic.
Các hệ này là biến tớng của hệ mật khác, chúng làm việc trên các đ-
ờng cong Elliptic chứ không phải trên các trờng hữu hạn. Hệ mật này
đảm bảo độ mật vơíi khoá số nhỏ hơn các hệ mật khoá công khai khác.
Một chú ý quan trọng là một hệ mật khoá công khai không bao giờ có
thể bảo đảm đợc độ mật tuyệt đối (an toàn vô điền kiện). Sở dĩ vậy vì đối
phơng nghiên cứu một bản mã C có thể mã lần lợt các bản rõ có thể
bằng luật mã công khai e
K
cho tới khi anh ta tìm đợc một bản rõ duy
nhất P bảo đảm C = e
K
(P). Bản rõ P này chính là kết quả giải mã của C.
Bởi vậy ta chỉ nghiên cứu độ mật về mặt tính toán của hệ này.
Một chú ý quan trọng và có ý ích khi nghiên cứu nữa là khái niệm về
hàm cửa sập một chiều. Ta định nghĩa khái niệm này một cách không
hình thức.
Hàm mã công khai e
k
của Bob phải là một hàm dễ tính toán. Song
việc tính hàm ngợc (tức là hàm giải mã) phải rất khó khăn (đối với bât
kỳ ai không phải là Bob). Đặc tính dễ tính toán nhng khó tính ngợc th-
ờng đợc gọi là đặc tính một chiều. Bởi vậy điều cần thiết là e
k
phải là
một hàm một chiều.
Các hàm một chiều đóng một vai trò trọng yếu trong mật mã học:
Chúng rất quan trọng trong việc xây dựng các hệ mật khoá công khai và
trong nhiều lĩnh vực khác. Đáng tiếc là, mặc dù có rất nhiều hàm đợc coi
là hàm một chiều nhng cho tới nay vẫn không tồn tại đợc một hàm nào
có thể chứng minh đợc là một hàm một chiều.
Sau đây là một ví dụ về một hàm đợc coi là hàm một chiều. Giả sử n
là tích của hai số nguyên p và q, giả sử b là một số nguyên dơng. Khi đó
ta xác định ánh xạ f:Z
n
Z
n
là
f(x)=x
b
mod n.
(với b và n đợc chọn thích hợp thì đây chính là hàm mã RSA. phần
sau em sẽ trình bày thêm về nó).
Để xây dựng một hệ mật khoá công khai thì việc tìm một hàm một
chiều vẫn cha đủ. Ta không muốn e
k
là một hàm một chiều đối với Bob
vì anh ta phải có khả năng giải mã các bản tin nhận đợc có hiệu quả.
Điều cần thiết là Bob phải có một cửa sập chứa thông tin bí mật cho
phép dễ dàng tìm ngợc của e
k
. Nh vậy Bob có thể giải mã một cách hữu
hiệu vì anh ta có một hiểu biết tuyệt mật nào đó về K. Bởi vậy một hàm
đợc gọi là cửa sập một chiều nếu nó là hàm một chiều và nó sẽ trở nên
dễ tính ngợc nếu biết một cửa sập nhất định.
Ta sẽ xét cách tìm một cửa sập đối với hàm f nêu ở trên trong phần hệ
mật RSA.