Với mục đích tìm một sơ đồ chữ ký an toànvề mặt tính toán ngời ta đề xuất sử
dụng hệ RSA dùng trong mục đích trên nh sau :
Với hệ RSA nh trình bày ở phần trớc thì hàm giải mã đợc dùng làm hàm ký
Sig, chữ ký chính là giá trị y x
d
mod n hàm kiểm tra Ver(x,y) = true khi va
chỉ khi x y
e
mod n.
Hiển nhiên sơ trên thoả mãn yêu cầu về một sơ chữ ký và đợc gọi là sơ đồ chữ
ký RSA.
2/. Tạo dãy số giả ngẫu nhiên RSA.
Một ứng dụng ít phổ biến hơn nhng cũng khá quan trọng là việc tạo ra các xâu
bit giả ngẫu nhiên trong mật mã bằng hệ RSA.
Trớc hết chúng ta da ra định nghĩa về việc tạo dãy ngẫu nhiên nh sau.
Dịnh nghĩa 3.1..cho k,l là các số nguyên dơng sao cho l>k+l. Một bộ tạo bit
ngẫu nhiên (k,l) là hàm f : Z
2
k
Z
l
2
tính đợc trong thời gian đa thức (nh một
hàm của k ).
Giá trị đầu vào S
0
Z
k
2
dợc gọi là mầm và giá trị đầu ra F( S
0
) là một xâu các
bit ngẫu nhiên.
Nh chúng ta đã quen thuộc thì để tạo đợc hệ mật có khoá hoàn thiện thì các
dùng phải một lần và là xâu bit ngẫu nhiên cùng độ dài với xâu bit ngẫu nhiên
cùng độ dài với xâu bit biểu diễn bản rõ với mã pháp là phép cộng mod 2 các
bit tơng ứng của rất rõ và xâu khoá. Phơng pháp tạo xâu bit ngẫu nhiên có thể
giải quyết vấn đề trên trong các sơ đồ mật mã khoá sinh tự động.
Trong sơ đồ trên ngời gửi và ngời nhận thoả thuận với nhau cùng một bộ sinh
khoá giả ngẫu nhiên và thông báo cho nhau về mầm khoá trên một kênh bảo
mật. Nh vậy mầm khoá có chức năng nh khoá mật thông thờng và bộ sinh (k,l)
có chức năng tạo khoá dùng cho hệ mật dòng quen thuộc.
Với mục đích trên ngời ta đã đề xuất xây dựng một bộ tạo dãy ngẫu nhiên dựa
trên cơ sở loại bài toán phân tích số trong hệ mật RSA nh sau:
p và q là các số k/2bít, n=p*q.
chọn e với (e,(n))=1, trong đó (n)=(p-1)*(q-1).
Công khai e,n. (dùng để đồng bộ tạo dãy)
Chọn ngẫu nhiên S
0
Z
*
n
có k bít.
Luật sinh f đợc xác định nh sau:
F(S
0
)= (t
1
,t
2
,...,t
l
)
Với t
i
=S
i
mod s còn S
i
đợc tính theo công thức S
i
(S
i-1
)
b
mod n.
Dãy đầu ra của luật sinh trên với một số điều kiện nào đó của mầm S
0
đã đợc
chứng tỏ là các dãy giả ngẫu nhiên tốt đợc dùng trong mật mã tyu nhiên việc
sinh dãy này còn gặp một nhợc điểm đó là thời gian sinh dãy quá lâu nên khó
lòng đợc sử dụng trong các hệ mật dòng tự động.
3. Vấn đề phân phối khoá tự động và xác thực ngời nhận.
Việc phân phối khoá tự động thực chất là một yêu cầu mà từ đó dẫn đến sự ra
đời của các hệ mật khoá công khai nói chung và của hệ RSA nói riêng. Do để
có thể truyền một thông tin mật nào đó đến một ngời nào đó thì theo cách xây
dựng hệ mật RSA chúng ta thấy rằng ngời gửi chỉ cần biết khoá công khai của
ngời nhận là đủ. Khoá ở đây đợc hiểu là quy ớc thông thờng để đồng bộ quá
trình mã dịch của cá hệ mật truyền thống. Vấn đề đợc đặt ra một cách tự nhiên
là việc truyền khoá phải thoả mãn yêu cầu:
Ngời nhận dễ dàng tính đợc thông tin cần truyền đến cho mình
Bất cứ ngời nào (tất nhiên ngời gửi và ngời nhận) đều không tính đợc thông
tin truyền trên.
Hai yêu cầu trên đợc phát biểu nh một bài toán về xác thực chủ quyền của ng-
ời nhận. Về việc thoả mãn các yêu cầu nêu trên là hiển nhiên vì nó chính là
yêu cầu đầu tiên của hệ mật khoá công khai nói chung và của hệ mật RSA nói
riêng.
Kết luận.
Với những u việt đã biết trong các lĩnh vực: Thiết kế hệ mật khoá công khai,
chữ ký số, tạo bít giả ngẫu nhiên... Với độ bền mật mã có tính thức tế của các
hệ mật RSA nh đã trình bày, việc tìm hiểu, xây dựng và thực thi một số tính
năng RSA là một nhu cầu cấp bách. Với đề tài này do khả năng có hạn nên em
đặt mục tiêu đầu tiên là thiết kế một qui trình phân phối mầm khoá tự động
RSA bao gồm cả xác thực của hai phía (ngời gửi và ngời nhận) và thực hiện
việc mã dịch văn bản bằng một biến dạng của việt tạo dãy giả ngẫu nhiên bằng
hệ mật RSA nói trên. Việc lập trình mô phỏng quá trình đó trên PASCAL và
các phân tích liên quan đế các thuật toán tính toán trên các số lớn sẽ đợc trình
bày lần lợt ở các chơng sau.
Cuối cùng em trình bày một mạng liên lạc mật, có các khả năng phân phối
khoá tự động, xác thực ngời nhận, xác thực ngời nhận theo sơ đồ RSA mà em
sẽ lập trình mô phỏng nh sau.
Việc thiết lập mạng liên lạc giống nh đã đựơc trình bày ở phần trên tuy nhiên
thuật mã hoá và giả mã đợc tiến hành nh sau:
Thông tin x (đồng thời là mầm khoá và chữ ký mật) đợc A (với khoá công
khai (e
A
,n
A
) và khoá mật (d
A
,n
A
) gửi cho B ( với khoá công khai (e
B
,n
B
) và khoá
mật (d
B
,n
B
) trớc hết phải Z
n
với n=min(n
A
,n
B
) đợc mã hoá thành y tính bằng
công thức:
y (x
dA
mod n
A
)
eB
mod n
B
. Trong trờng hợp n
A
< n
B
và bằng công thức:
y (x
eB
mod n
B
)
dA
mod n
A
. Trong trờng hợp ngợc lại.
B sẽ khôi phục lại mầm khoá đồng thời cũng là thông tin để chứng minh B là
ngời gửi cho mình x bằng công thức:
x (y
dB
mod n
B
)
eA
mod n
A
. Trong trờng hợp n
A
< n
B
và bằng công thức.
x (y
dA
mod n
A
)
eB
mod n
B
. Trong trờng hợp ngợc lại.