Tải bản đầy đủ (.doc) (73 trang)

Giải thuật mã hóa mật mã RSA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (836.62 KB, 73 trang )

Giải thuật mã hoá mật mã RSA
Chương I: Tổng quan
A. Mở đầu
I. Bảo mật :
Bảo mật thông tin đã sử dụng trong lòch sử thời đại La Mã trong việc
trao đổi thông tin và nhà quân sự chiến lược tài ba Cesar đã sử dụng nhằm
bảo vệ thông tin, không muốn kẻ đòch biết được mục đích của mình và ông
đã mã hóa các thông báo của mình và chỉ những người trong nhóm của ông
mới biết được quy tắc mã hóa và giải mã thông báo đó mà người khác
không thể nào biết được. Ngày nay, nhu cầu bảo mật các thông tin về kinh
tế, quân sự, ngoại giao càng tăng thì việc bảo vệ thông tin càng được nâng
cao. Các kênh truyền thông của những buổi ban đầu còn đơn giản, nó ít
được nhiều người quan tâm, và nó được truyền đi bởi “những người đưa tin”
được tin cậy tốt, thì ngày nay để tránh những rủi ro có thể xảy ra và sự linh
hoạt trong việc truyền đi những thông báo được an toàn hơn ngành mã hóa
mật mã được ứng dụng rộng rãi.
Thế kỷ 20, thế kỷ của thời đại thông tin, đã có rất nhiều thay đổi, con
người liên hệ trao đổi thông tin với nhau thông qua mạng toàn cầu Internet,
và chính việc tham gia này đã làm thay đổi rất nhiều trong vấn đề bảo mật.
Về dữ liệu, chúng ta cần quan tâm đến những yếu tố sau: tính bảo mật, tính
toàn vẹn và tính kòp thời. Các hệ thống máy tính bảo mật được phân chia
theo thời gian và các mạng máy tính có quan hệ chặt chẽ với việc bảo mật
các kênh truyền thông với nhau. Đặc tính của kênh truyền là môi trường
truyền thông truy xuất chung nên việc bảo mật về mặt vật lý được đề cập,
do đó phải thông qua ứng dụng của ngành bảo mật. Nhiệm vụ chính của bảo
mật là mã hoá. đây việc mã hóa được quan tâm ở mức độ là chuyển đổi
dữ liệu thành mật mã.
Cho đến cuối những năm 70 số học vẫn được xem như là một trong
những ngành lý thuyết thuần tuý nhất của toán học. Quan niệm đó thay đổi
khi nó được áp dụng để xây dựng những hệ mật mã khóa công khai. Các lý
thuyết mới của số học thuật toán được ứng dụng vào thực tiễn. Mật mã


không chỉ dùng trong bí mật quân sự, như thời kỳ của nhà quân sự thiên tài
Cesar đã áp dụng, mà còn dùng trong ngoại giao, kinh tế và thương mại.
Mật mã hiện đại có những đòi hỏi mới mang tính nguyên tắc hơn so với mật
mã thường dùng trước đây. Khác với hoạt động quân sự hoặc ngoại giao,
trong kinh doanh thì số lượng các đơn vò phải cùng trao đổi những thông tin
- 1 -
Giải thuật mã hoá mật mã RSA
mật rất lớn. Những hệ thống mật mã cũ khi biết được khoá lập mã của họ ta
dễ dàng tìm ra khoá giải mã. Hiển nhiên muốn gửi một thông báo mật cho
một đối tượng nào đó ta cần phải biết khóa lập mã của họ, vì vậy những
người cùng một hệ mã đều biết bí mật của nhau. Nhiều người cùng sử dụng
một hệ mã thì không còn là bí mật nữa. Các hệ thống mật mã hiện đại tức là
các hệ mật mã khóa công khai đã khắc phục được những nhược điểm đó:
người tham gia trong hệ thống chỉ cần giữ bí mật khóa giải mã riêng của
mình trong khi khóa lập mã được thông báo công khai. Việc biết khóa lập
mã không cho phép tìm ra khóa giải mã trong một thời gian chấp nhận được,
ngay cả khi sử dụng cả máy tính hiện đại với hàng tỉ phép tính trong một
giây.
II. Nhiệm vụ:
Nhiệm vụ của đề tài này là nghiên cứu về giải thuật mã hoá mật mã
RSA , xây dựng một chương trình dùng giải thuật RSA để mã hoá và giải
mã một tập tin.txt. Chương trình này chỉ giới hạn sử dụng trên máy đơn.
III. Bố cục:
Chương 1 : Tổng quan.
Chương 2 : Tìm hiểu về RSA.
Chương 3 : Giao diện của chương trình.
Chương 4 : Kết luận.
- 2 -
Giải thuật mã hoá mật mã RSA
B. Tìm hiểu mật mã.

1. Mật mã:
Mật mã là nghệ thuật của chữ viết bí mật được xuất phát từ chữ viết
của các từ Hy Lạp. Cái chính là mật mã có khả năng gửi thông tin giữa hai
người với nhau và ngăn chặn những người khác can thiệp vào. Mật mã được
dùng để bảo vệ bí mật thông tin khi thông tin được truyền đi.
Một văn bản được mã hóa được biểu thò bằng M hay là P. Nó có thể
là một chuỗi các bít, một tập tin văn bản, một ảnh, một chuỗi số hóa âm
thanh, một hình ảnh phim kỹ thuật số… và hơn thế nữa. Trong chừng mực
của một máy tính có liên quan đến, M là dữ liệu nhò phân đơn giản. Văn bản
được mã hóa có mục đích là truyền đi hay lưu trữ. Trong tình huống này, M
là thông báo phải được mã hóa.
Văn bản đã được mã hóa được biểu thò bằng C. Nó cũng là dữ liệu
nhò phân: đôi khi cùng kích thước với M, và cũng có lúc lớn hơn rất nhiều. E
được biểu thò cho công việc mã hóa và D dùng để thể hiện việc giải mã các
thông báo đã được mã hóa gửi đến.
Ta có:
E (M) = C
D (C) = M
D (E(M)) =M
Mật mã hiện đại giải quyết vấn đề với một khóa, khóa này được biểu
thò bằng K. Khóa này có thể là một trong những con số lớn có giá trò lớn.
Ta có:
E
K
(M) = C
D
K
(C) = M
D
K

(E
K
(M)) = M
- Quá trình mã hóa và giải mã dùng chung một khóa:
- 3 -
Giải thuật mã hoá mật mã RSA
- Quá trình mã hóa và giải mã sử dụng hai khóa khác nhau:
Ví dụ, một người muốn mã hóa những tập tin trên ổ cứng để ngăn
chặn những kẻ xâm nhập vào có thể đọc được dữ liệu. Trong một hệ thống
nhiều người sử dụng, việc mã hóa dữ liệu cho phép bảo mật thông tin trên
một kênh truyền không an toàn. Trong một ngữ cảnh thông thường: Lan
muốn gửi một thông báo cho Nam nhưng không muốn một ai khác ngoài
Nam có thể đọc được nó. Lan mã hóa dữ liệu với một khóa mã hóa, thông
báo đã mã hóa đã mã hóa gửi đi cho Nam. Nam giải mã thông báo đã mã
hóa đó với một khóa giải mã và đọc được nó. Một người cố lấy cho bằng
được khóa giải mã hoặc cố tình chuyển lại tình trạng cũ mà không cần phải
có khóa bảo mật. Trong một hệ thống mã hóa an toàn, thông tin đã mã hóa
không thể chuyển đổi lại thành thông tin ban đầu mà không có khóa giải
mã. Hệ thống mật mã đối xứng chỉ có một khóa duy nhất vừa là khóa mã
hóa vừa là khóa giải mã.
2. Giao thức mật mã
a. Giới thiệu về giao thức:
Mật mã giải quyết những vấn đề bao gồm tính bảo mật, tính xác
thực, tính toàn vẹn. Bạn có thể học tất cả về thuật toán và kỹ thuật mã hóa,
nhưng đó là những lý thuyết suông nếu bạn không thể giải quyết vấn đề. Đó
lý do chúng ta quan tâm đến các giao thức số nguyên tố.
Một giao thức là một chuỗi các bước bao gồm hai hay nhiều phần
được thiết kế để thực hiện một tác vụ. Một “chuỗi các bước “có nghóa là
giao thức có tính liên tục, từ lúc bắt đầu đến lúc kết thúc. Mỗi bước phải
được thực thi lần lượt và bước sau không thể thực thi khi bước trước chưa

thực thi xong.
Giao thức mật mã là một giao thức sử dụng mật mã. Giao thức mật
mã bao gồm vài giải thuật mật mã nhưng nhìn chung mục đích của giao thức
đơn giản chỉ là bảo mật.
- 4 -
Giải thuật mã hoá mật mã RSA
Bây giờ chúng ta hãy xem xét đến một giao thức được ứng dụng trong
mạng máy tính ARPA để xây dựng một kênh truyền dẫn ảo được bảo mật.
Chúng ta chọn lớp mạng của mô hình tham chiếu mạng hệ mở bảy tầng
(OSI).
Hình 1. Mô hình tham chiếu mạng hệ mở.
Sơ đồ tổng quát cho việc trao đổi thông tin của giao thức này được mô tả
theo hình ở sau.
- 5 -
Giải thuật mã hoá mật mã RSA
Hình 2: Chuyển đổi thông tin giữa hai người sử dụng là A và B.
Người sử dụng chương trình A dùng chương trình mã hoá, thông qua
hệ điều hành đến mạng truyền thông. Thông qua giao diện này, chương
trình qua hệ điều hành của người sử dụng chương trình B và người B sử
dụng chương trình mã hoá để cho ra thông điệp mà người A gửi đến.
b. Truyền thông sử dụng giao thức mã hóa đối xứng.
Mã đối xứng là hệ mật mã sử dụng cùng một khóa cho cả việc mã
hoá cũng như giải mã một thông điệp.
Những hệ thống mã hoá đối xứng có những vấn đề cho phép sau:
• Khóa phải được phân bổ một cách bí mật. Chúng có giá trò cho tất cả
các thông điệp được mã hoá, biết khóa có thể biết hết tất cả các thông điệp.
• Nếu khóa bò lấy cắp thì người thứ ba có thể giải mã được các thông
điệp đã được mã hóa với một khóa. Người này có thể ng tạo một phần và
tạo ra những thông điệp bò lỗi để lừa những người khác.
• Một khóa bí mật được sử dụng cho một cặp người tham gia trên một

mạng, tổng số những con số các khóa tăng một cách nhanh chóng khi số
lượng người sử dụng tăng lên. Một mạng của n người sử dụng yêu cầu n(n-
1)/2 khóa. Ví dụ, với 10 người sử dụng yêu cầu 45 khóa khác nhau để nói
chuyện với người khác và 100 người sử dụng cần 4950 khóa.
Giải thuật đối xứng giống như một két sắt. Khoá là chìa khoá duy
nhất để mở két sắt đó. Một người với một sự phối hợp có thể mở két sắt và
đưa dữ liệu ra ngoài. Nếu có khoá này, bạn có thể mở két sắt để đưa dữ liệu
vào và khoá két lại.
c. Hàm một chiều.
Hàm một chiều là hàm trọng tâm trong hệ mật mã dùng khóa công
khai. Hàm một chiều là một hàm cơ bản cho hầu hết những giao thức.
Hàm cửa bẫy một chiều là hàm một chiều đặc biệt, đóù là một cửa bẫy bí
mật. Hàm này dễ dàng tính toán theo một hướng nhất đònh và rất khó khăn
khi tính toán theo một hướng khác. Nhưng nếu bạn biết bí mật thì bạn có thể
tính toán các hàm theo hướng khác đó.
d. Hàm ánh xạ.
Hàm ánh xạ có nhiều tên: hàm giảm, hàm thu gọn… Hàm này là trọng
tâm của mật mã hiện đại. Hàm ánh xạ là một hàm cơ bản cho nhiều giao
thức. Hàm ánh xạ được sử dụng trong ngành khoa học máy tính trong một
- 6 -
Giải thuật mã hoá mật mã RSA
thời gian dài. Hàm ánh xạ làm việc theo một chiều, dễ dàng tính toán một
giá trò băm từ một hình ảnh trứơc đó.
Mã xác nhận thông tin (MAC), còn gọi là mã xác nhận dữ liệu, là
một hàm ánh xạ kèm theo một khóa bí mật. Bạn có thể tạo ra một MAC
ngoài một hàm ánh xạ hay một thuật giải mã hóa.
e. Truyền thông sử dụng nghi thức mã khóa công khai
Hệ mã khóa công khai hay còn gọi là hệ mã bất đối xứng.
Mã bất đối xứng là hệ mật mã sử dụng một cặp khóa trong đó một
khóa được công bố rộng rãi gọi là khoá công khai và một khóa được lưu giữ

bí mật gọi là khóa riêng. Cặp khóa này dùng để mã hoá cũng như giải mã
dữ liệu, trong đó khóa công khai sẽ dùng để mã hóa và khóa bí mật dùng để
giải mã dữ liệu đã được mã hóa.
Trong mạng có nhiều người sử dụng, hệ mã hoá khóa công khai mới
là giải pháp bảo mật tối ưu. Người sử dụng sở hữu một khóa công khai và
một khóa bí mật. Khóa công khai đó được phổ biến trong cơ sở dữ liệu ở
một số nơi.
Trên thực tế, giải thuật khóa công khai không phải là sự thay thế cho
giải thuật đối xứng. Chúng không được sử dụng để mã hóa thông tin, chúng
được sử dụng để mã hóa những khóa chẳng hạn như khoá DES.
Giải thuật khóa công khai thường chậm. Những giải thuật mã hóa đối
xứng nói chung nhanh hơn rất nhiều lần lần so với giải thuật mã hóa khóa
công khai. Với những máy tính có bộ xử lý cao và trong vòng những năm tới
có thể dùng giải thuật mật mã khóa công khai để mã hoá và giải mã dữ liệu
với tốc độ có thể so sánh với mật mã đối xứng ngày nay. Với băng thông
tăng lên và đó là điều cần thiết để mã hóa dữ liệu nhanh hơn mật mã khóa
công khai có thể quản lý.
3. Các chế độ mật mã.
Giải thuật mật mã khối mã hoá dữ liệu theo những khối. Kích thước
khối thông dụng nhất là 8 byte. Mật mã khối bảo mật cao hơn mật mã dòng,
tuy nhiên những giải thuật mật mã khối thực thi chậm hơn những mật mã
khác.
Những mật mã khối sử dụng cùng một giải thuật mã hoá cho mỗi
khối. Do đó, một khối văn bản thường trả về cùng một văn bản mật mã khi
mã hoá với cùng một khoá và một giải thuật.
- 7 -
Giải thuật mã hoá mật mã RSA
• CBC ( Cipher Block Chaining mode): chế độ mắc xích những khối mã
hóa.
Chế độ CBC giới thiệu về thông tin phản hồi. Trước khi mỗi khối văn

bản thường được mã hoá, nó kết hợp với văn bản mật mã của khối trước
bằng một thao tác OR đối với từng bít. Điều này đảm bảo rằng ngay cả khi
có nhiều khối văn bản thường giống nhau thì mỗi khối đó sẽ được mã hoá
sang những khối văn bản mật mã khác nhau. Khởi tạo được kết hợp với khối
văn bản thường số nguyên tố bằng thao tác OR cho từng bít trước khi khối
được mã hoá.
Nếu có một bít đơn của khối văn bản thường bò hư, khối văn bản
thường tương ứng cũng sẽ bò hư. Thêm vào đó, một bít trong khối theo sau, ở
cùng một vò trí như bít hư số nguyên tố sẽ bò hư.
Hình 3: Chế độ mắc xích những khối mã hóa.
• CFB (Cipher Feedback mode ): chế độ phản hồi mật mã.
Chế độ CFB này sử dụng một thanh ghi dòch từng khối nhỏ trong văn
bản và được chia thành nhiều phần, không xử lý nguyên một khối lớn. Ví
- 8 -
Giải thuật mã hoá mật mã RSA
dụ, nếu kích thước của khối là 8 byte, với 1 byte xử lý vào lúc đầu, thanh
ghi dòch được chia thành 8 phần và chế độ này xử lý 8 phần.
Nếu một bít trong văn bản mật bò hư thì một bít trong văn bản thường
cũng bò hư và thanh ghi dòch bò sai lạc. Điều này làm cho nhiều sự gia tăng
của văn bản thường bò hư cho đến khi bít hư bò dòch ra khỏi thanh ghi dòch.
• CTS (Cipher Text Stealing mode) chế độ sao chép nguyên văn mật
mã.
Chế độ CTS sử dụng một chiều dài bất kỳ của văn bản thường và tạo
ra văn bản mật mã có chiều dài với chiều dài của văn bản tónh. Chế độ này
thực thi cũng giống như chế độ CBC nhưng khác với hai khối cuối cùng của
văn bản thường.
• ECB ( Electronic Codebook mode): chế độ các ký hiệu điện tử
Chế độ ECB mã hoá mỗi khối một cách riêng lẻ. Nghóa là những
khối văn bản thường bất kỳ giống nhau và nằm trong cùng một thông báo
hoặc nằm trong một thông báo khác được mã hoá với cùng một khoá sẽ bò

biến đổi thành những khối văn bản mật mã giống nhau.
Hình 4: Quá trình di chuyển của các ký hiệu điện tử.
- 9 -
Giải thuật mã hoá mật mã RSA
Hình 5: Mô hình mã hóa bằng các ký hiệu điện tử.
Nếu văn bản thường được mã hoá bản sao quan trọng, nó sẽ làm cho
văn bản mật mã bò phá vỡ mỗi lúc một khối. Và kẻ đòch có thể thay đổi
hoặc trao đổi những khối riêng mà không cần phải dò tìm.
Nếu 1 bít trong khối văn bản mật mã bò hư, toàn bộ khối văn bản tónh tương
ứng cũng sẽ bò hư.
• OFB ( Output Feedback mode): chế độ phản hồi đầu ra.
Chế độ OFB tương tự như chế độ CFB, sự khác biệt duy nhất giữa hai
chế độ này là cách mà thanh ghi dòch được đưa vào.
Nếu một bít trong văn bản mật mã bò hư, bít tương đương của văn bản
thường cũng sẽ bò hư. Tuy nhiên, nếu có thêm hoặc mất những bít từ văn
bản mật mã, văn bản thường chỉ bò hư từ vò trí đó.
- 10 -
Giải thuật mã hoá mật mã RSA
4. Một số giải thuật mật mã:
4.1. Một số khái niệm trong thuật toán số học:
4.1.1. Số nguyên tố :
a. Đònh nghóa :
Số nguyên tố là số nguyên lớn hơn 1, không chia hết cho số nguyên
dương nào ngoài 1 và chính nó. Số nguyên lớn hơn một không phải là số
nguyên tố được gọi là hợp số.
b. Các tính chất:
- Mọi hợp số n đều có ước nguyên tố nhỏ hơn căn bậc 2 của n.
Thật vậy, vì n là một tập hợp số nên ta có thể viết n = a b, trong đó a và b
là các số nguyên với 1 < a ≤ b < n. Rõ ràng ta phải có a hoặc b không vượt
quá căn bậc hai của n.

- Mọi số nguyên lớn hơn một đều phân tích được một cách duy nhất
thành tích các số nguyên tố, trong đó các thừa số được viết với thứ tự không
giảm.
4.1.2. Phi hàm Euler :
a. Các đònh nghóa:
- Phi – hàm Euler þ( n ) là hàm số học có giá trò tại n bằng số các số
không vượt quá n và nguyên tố cùng nhau với n.
Ví dụ :
þ( 1 ) = 1, þ( 2 ) = 1, þ( 3 ) = 2, þ( 4 ) = 2, þ( 5 ) = 4, …
Từ đònh nghóa ta có hệ quả :
Số p là số nguyên tố khi và chỉ khi þ( p ) = p – 1.
- Hệ thặng dư thu gọn modulo n là tập hợp þ( n ) số nguyên sao cho
mỗi phần tử của tập hợp nguyên tố cùng nhau với n và không có hai phần tử
nào đồng dư với nhau modulo n.
Nói cách khác, trong hệ thặng dư đầy đủ modulo n, ta chỉ giữ lại những giá
trò nào nguyên tố cùng nhau với n.
- 11 -
Giải thuật mã hoá mật mã RSA
Ví dụ :
Các số 1, 2, 3, 4, 5, 6 lập thành hệ thặng dư thu gọn modulo 7. Đối
với modulo, có thể lấy tập hợp 1, 3, 5, 7.
b. Các tính chất:
- Nếu r
1,
r
2,
r
3
, …, r
þ(n)

là một hệ thặng dư thu gọn modulo n và a là số
nguyên dương, ( a, n ) = 1 thì tập hợp a r
1,
a r
2,
a r
þ(n)
cũng là hệ thặng dư thu
gọn modulo n.
- Nếu m là số nguyên dương và a nguyên tố cùng nhau với m thì
a
þ(m)
= 1 ( mod m ).
- Giả sử n = p
1
a
1
p
2
a
2
…p
k
a
k
là phân tích của n thành thừa số nguyên tố.
Khi đó ta có :
þ( n ) = n ( 1 – 1/ p
1
)( 1 – 1/p

2
) … ( n – 1/ p
k
)
4.1.3 Đònh lý Fermat:
Nếu p là số nguyên tố thì a
p-1


1 (mod p) với tất cả a

Z
p.
4.1.4. Đònh lý đệ quy ước số chung lớn nhất ( GCD):
Với bất kỳ một số nguyên không âm a và bất kỳ số nguyên dương b thì Gcd
(a, b)= gcd (b, a mod b)
4.2. Một số thuật giải sử dụng trong mã hoá.
Sự phát triển của xã hội ngày nay mật mã không chỉ dùng trong bí
mật quân sự như thời kỳ của nhà quân sự thiên tài Cesar đã áp dụng mà còn
dùng trong ngoại giao, kinh tế và thương mại. Người ta chia các hệ mã
thành hai loại chính là hệ mã cổ điển và hệ mã hiện đại. Với những hệ
thống mật mã cũ khi biết được khoá lập mã của họ ta dễ dàng tìm ra khoá
giải mã, hiển nhiên muốn gửi một thông báo mật cho một đối tượng nào đó
ta cần phải biết khóa lập mã của họ, vì vậy những người cùng một hệ mã
đều biết bí mật của nhau dẫn đến không còn là bí mật nữa. Các hệ thống
mật mã hiện đại tức là mật mã khóa công khai đã khắc phục được những
nhược điểm đó: người tham gia trong hệ thống chỉ cần giữ bí mật khóa giải
mã riêng của mình trong khi khóa lập mã được thông báo công khai. Việc
biết khóa lập mã không cho phép tìm ra khóa giải mã trong một thời gian
chấp nhận được ngay cả khi sử dụng cả máy tính hiện đại. Những mật mã

- 12 -
Giải thuật mã hoá mật mã RSA
khóa công khai số nguyên tố tìm thấy là những mật mã dùng đến các hàm
số học.
4.2.1. Mã Ceasar.
Mật mã Cesar là mật mã mà mỗi ký tự thứ i trong bảng chữ cái được
dòch tới ký tự thứ (i+j).
Ta có qui trình mật mã như sau :
Mã hóa : E : i ® i+j
Giải mã : D : i ® i-j
Mã Cesar chuyển các thông báo mật bằng cách sau đây:
Lập bảng tương ứng mỗi chữ cái một số. Nhờ bảng tương ứng đó ta có
thể chuyển một văn bản dạng chữ số.
Sau đó ta cộng thêm k vào mỗi chữ số nhận được, lại nhờ vào bảng tương
ứng giữa chữ và số ta biến đổi bảng chữ số mới này thành dạng chữ viết. Ta
đã nhận được một văn bản mật cần chuyển đi. Đây chính là quá trình mã
hóa.
Sau khi nhận được văn bản mật ta giải mã bằng cách chuyển các chữ
thành số nhờ vào bảng tương ứng chữ và số, sau đó ta trừ đi k ở mỗi chữ số
và lại chuyển nó về dạng chữ để có lại văn bản ban đầu. Quá trình trên là
quá trình giải mã.
Chú ý:
Khi phép cộng hoặc trừ đưa ta vượt qua khỏi giới hạn của bảng tương
ứng ta thay số đó bằng thặng dư dương bé nhất modulo số và chữ.

Ví dụ:
Ta lập bảng tương ứng các chữ cái theo bảng: ( Ở đây ta xét theo kiểu
chữ của Việt Nam nên xuất hiện các chữ có dấu, còn nếu khi ta chuyển mã
trên mạng thì ta sẽ đưa ra theo chuẩn của quốc tế.)
A Ă Â B C D Đ E Ê G

1 2 3 4 5 6 7 8 9 10
H I K L M N O Ô Ơ P
11 12 13 14 15 16 17 18 19 20
Q R S T U Ư V X Y
21 22 23 24 25 26 27 28 29
Số nguyên tố ta lập bảng tương ứng, từ đó ta chuyển văn bản sang
dạng chữ số. Sau đó ta cộng thêm 3 vào mỗi chữ số nhận được. Và thông
- 13 -
Giải thuật mã hoá mật mã RSA
qua bảng tương ứng chữ và số ta lại đưa ra dạng chữ viết. Ta nhận được một
văn bản mật cần phải mã hóa. Đó là quá trình mã hóa. Khi nhận được văn
bản mật ta giải mã bằng cách biến nó thành dạng chữ số và dựa vào bảng
tương ứng và sau đó ta trừ đi 3.
Chẳng hạn văn bản cần gửi đi là: MOI BAN DI CHOI.
Ta sẽ chuyển câu trên sang dạng chữ số dựa vào bảng tương ứng bên
trên: 15 17 12 4 1 16 7 12 5 11 17 12 (1)
Ta lập theo công thức sau:
C

P + 3(mod 29) (*)
( P là văn bản, C là chữ số tương ứng trong văn bản mật )
Ta cộng thêm 3 vào (1):
18 20 15 7 4 19 10 15 8 14 20 15
Chuyển trở lại dạng chữ ta được văn bản như sau:
ÔPMĐBƠGMELPM
 văn bản mật được mã hóa.
Theo (*) thì 3 là khóa của Cesar
Công thức tổng quát là: C

P + k(mod 29) k là số tùy ý giữa 1-29.

4.2.2. Mã khối.
Khác với hệ mã Cesar, ở đây không mã hóa từng chữ mà ta mã hóa
các khối chữ cái. Việc sử dụng mã khối đã nâng cao rất nhiều tính bảo mật
nhưng khóa của mã vẫn có thể bò dò ra do việc nghiên cứu tần số xuất hiện
của các khối chữ cái. Mã khối xuất hiện nhằm chống lại việc sử dụng tần
suất của các chữ cái trong văn bản để dò ra khóa giải mã.
Chuẩn mật mã mã hóa dữ liệu DES ( Data Encryption Standard)
Mã hoá dữ liệu chuẩn DES sử dụng cặp khóa đối xứng, mã hóa dữ
liệu theo từng khối.
Khóa đối xứng: Việc bảo mật trong một hệ thống mật mã có hai vấn
đề mà ta cần quan tâm. Đó là chiều dài của giải thuật và chiều dài khoá.
Nhưng nếu có được thì đối với ngưòi giải mã không còn cách nào khác tốt
hơn để phá vỡ hệ thống mật mã là thử lần lượt từng khoá bằng phương pháp
tấn công “sức mạnh tàn bạo”, đây là phương pháp giải quyết một bài toán
khó bằng cách lặp đi lặp lại nhiều lần một thủ tục đơn giản
Chuẩn này được đưa ra vào năm 1977, được sử dụng trong các ứng
dụng trên đất nước Mỹ, và chuẩn nâng cao hơn của chuẩn này là DAE. Một
số chính phủ của một số nước mong muốn được sử dụng chuẩn DEA này cho
- 14 -
Giải thuật mã hoá mật mã RSA
đất nước mình vào các mạng ngân hàng và thương mại tầm cỡ quốc tế.
Diffie và Hellman đã dự đoán chuẩn DEA này sẽ bò tấn công bởi những tin
tặc hay một máy chuyên dụng với một triệu con chip trò giá khoảng 20 triệu
dollar, và máy có thể tìm ra mã mật mã bất kỳ bằng cách tìm hết không
gian khóa trong một ngày. Và với tốc độ ngày nay thì việc phát triển ngày
càng cao của công nghệ phần cứng thì việc tìm ra khóa không còn là vấn đề
nữa.
DES mã hóa các khối dữ liệu 64 bít với khóa 56 bít.
Mã hoá dùng cặp khóa đối xứng theo từng khối.
Hình 6: Mã hóa dữ liệu với cặp khóa bảo mật đối xứng.

DES thực thi hiệu quả trong phần cứng nhưng trong phần mềm thì
DES thực thi không hiệu quả lắm. Mặc dù khó thực hiện những công việc
thực thi phần mềm, người ta vẫn khẳng đònh rằng DES được thiết kế chuyên
biệt cho công việc này có thể vì giới hạn việc sử dụng DES để các tổ chức
có thể có đủ những điều kiện dựa trên phần cứng hoặc cũng có thể DES dễ
dàng điều khiển tiếp can đến kỹ thuật. Những tiến bộ trong việc tạo ra các
CPU làm cho nó có thể thực hiện DES trong phần mềm. Những tiến bộ
trong việc tăng tốc độ chip và việc các khóa DES bò phá huỷ bằng một bít
thông minh và sự tra cứu toàn diện. Hiện nay đã có DES với chiều dài khóa
lên đến 128 bít để tăng thêm tính bảo mật trong thời đại bùng nổ của công
nghệ ngày càng nhanh.
4.2.3. Mã mũ.
Hệ mã này được Pohlig và Hellman đưa ra năm 1978.
Giả sử p là một số nguyên tố lẻ và khoá lập mã e là một số nguyên
dương sao cho (e, p-1)=1.
Sau đó ta nhóm thành từng nhóm 2m chữ số theo nguyên tắc sau: 2m
là số nguyên chẳn lớn nhất sao cho mọi số tương ứng với m chữ cái đều nhỏ
hơn p. Mỗi chữ được biểu diễn không quá 29. Một số có m chữ cái sẽ được
- 15 -
Giải thuật mã hoá mật mã RSA
biểu diễn không quá m lần số 29 viết liên tiếp nhau. Lập khối chữ tương
ứng trong văn bản mật theo công thức sau:
C

P
e
(mod p), 0

P< p
Văn bản mật sẽ chứa những khối chữ số các số nguyên nhỏ hơn p. Để

giải mã một khối C trong văn bản mật ta cần biết khóa giải mã d. Đó là số d
thỏa mãn de=1(mod p -1) có nghóa là nghòch đảo của e modulo p-1. Nghòch
đảo đó tồn tại do giả thuyết (e, p-1)=1. để tìm lại được khối P trong văn bản
ta nâng khối C lên luỹ thừa d modulo p.
Ta có: C
d


(P
e
)
d


P
de

P
k(p-1) +1

P(mod p)
Trong đó: de=k(p-1) +1 đối với số nguyên k nào đó.
a. Độ phức tạp của thuật toán lập mã và giải mã đối với mã mũ.
Với một khối P trong văn bản, mã hóa bằng cách tính P
e
(mod p), các
phép tính bít cần thiết là O((log
2
p)
3

). Ta tìm nghòch đảo d của e modulo p-1.
Sau đó ta tính thặng dư nguyên dương bé nhất của C
d
modulo p: số phép tính
đòi hỏi là O((log
2
p)
3
). Để giải mã một văn bản được mã hóa bằng mã mũ
không thể tính được nếu không biết khóa e.
b. Mã mũ và hệ thống có nhiều đối tượng tham gia.
Ưu điểm của hệ mã mũ là trong hệ thống có nhiều đối tượng tham gia
trao đổi thông tin từng cặp đối tượng hoặc từng nhóm có khả năng sử dụng
khóa mật mã đang dùng để tạo ra những khoá mật mã chung, bí mật với các
đối tượng còn lại. Giả sử p là một số nguyên tố lớn và a là số nguyên cùng
nhau với p. Mỗi đối tượng trong hệ thống chọn một số k nguyên tố cùng
nhau với p-1 để làm khóa cho mình. Khi hai đối tượng với các khóa k1, k2
muốn lập một khóa chung để trao đổi thông tin đối tượng thứ nhất gửi cho
đối tượng thứ hai số nguyên tố ý theo công thức:

1
y


1
k
a
(mod p) 0<
1
y

< p
Đối tượng thứ hai sẽ tìm khóa chung k bằng cách
k

2
1
k
y

21
kk
a
(mod p) 0 < k < p
Tương tự đối tượng thứ thể thứ hai gửi cho đối tượng thứ nhất số
nguyên
2
y
:
2
y


2k
a
(mod p) 0<
2
y
< p
- 16 -
Giải thuật mã hoá mật mã RSA

và đối tượng thứ nhất tìm ra khóa chung k theo công thức:
k

2
2
k
y

21
kk
a
(mod p)
4.2.4. Mã khóa công khai.
Với các hệ mã trên thì khóa lập mã phải được giữ bí mật, nếu chẳng
may khóa này bò tìm ra thì việc giải mã sẽ không gặp khó khăn lắm. Một
nguyên tắc mới được đưa ra là cho dù biết được khóa lập mã nhưng chưa
chắc đã tìm ra khóa giải mã trong một thời gian có thể chấp nhận. Mỗi đối
tượng giữ bí mật khóa giải mã riêng của mình trong lúc đó khoá lập mã
được thông báo công khai. Và nếu một vài đối tượng trong hệ thống bò mất
khóa giải mã thì các đối tượng còn lại có thể không bò ảnh hưởng. Đó chính
là hệ mã mũ, độ phức tạp trong việc tìm logarit modulo p là quá lớn.
Trong một hệ thống có nhiều đối tượng tham gia trao đổi thông tin và
mỗi đối tượng chọn cho mình một khóa lập mã k và một công thức mã hóa
công khai E(k). Tất cả những đối tượng có khóa lập mã công khai từ k
1
, k
2
,
…, k
n

. Khi đối tượng thứ i muốn gửi một thông điệp cho đối tượng thứ j, mỗi
chữ được chuyển đổi thành số và được nhóm thành từng khối với độ dài nào
đó. Sau đó, mỗi khối P trong văn bản được mã hóa bằng khóa lập mã E(k
j
)
của đối tượng thứj và gửi đi dưới dạng C= E(k
j
)(P). Giải mã thông điệp này
đối tượng thứ j chỉ việc dùng khóa giải mã D
kj
:
D
kj
(C) = D
kj
E
kj
(P) =P
Vì D
kj
và E
kj
là khóa giải mã và khóa lập mã của cùng đối tượng thứ
j. Các đối tượng nếu nhận được văn bản mật cũng không thể nào giải mã
được vì cho dù biết khóa lập mã E
kj
thì không hẳn là tìm ra khóa giải mã D
kj
.
4.2.5. Sơ lược về RSA.

RSA là hệ thống bảo mật khóa công khai cho cả mã hóa và việc xác
nhận; được phát minh vào năm 1977 bởi Ron Rivest, Adia và Leonard
Adleman. Được xây dựng trên cơ sở mã mũ trong đó khóa là cặp (e, n), gồm
mũ e và modulo n. Số n là tích hai số nguyên tố lớn nhất nào đó, n=pq, sao
cho (e,
φ
(n)) = 1, trong đó
φ
(n) là hàm Euler.
Những kỹ thuật đặc trưng sử dụng những thao tác toán học thành một
văn bản mã. Những thao này gọi là chức năng một chiều, chức năng tương
đối dễ thực hiện theo một hướng nhưng chuyển đổi theo hướng ngược lại thì
khó hơn nhiều.
Chế độ bảo mật của RSA dựa vào việc phân tích những số rất lớn ra
thừa số nguyên tố.
- 17 -
Giải thuật mã hoá mật mã RSA
Bảng tóm tắt quá trình mã hoá RSA:
Khoá chung Khoá riêng Mã hoá Giải mã
n, tích hai số
nguyên tố p, q
e, nguyên tố
cùng nhau với
(p-1)(q-1)
c = m
e
mod (p-1)(q-1) m = c
d
mod n
đây, vì thời gian có hạn chúng tôi tập trung tìm hiểu về giải thuật mã hoá

RSA và ứng dụng của giải thuật này.
4.3. Một số vấn đề liên quan đến việc sử dụng khóa:
a. Văn bằng chứng nhận sử dụng khoá:
Giấy chứng nhận là những văn bằng kỹ thuật số được chứng thực để
liên kết một khóa công khai với một cá nhân hay những thực thể khác. Cho
phép kiểm tra những yêu cầu đưa ra khóa công khai trên thực tế đưa đến
một cá nhân. Văn bằng chứng nhận ngăn chặn người nào đó từ một khóa giả
để thể hiện dưới dạng người khác nữa.
Văn bằng chứng nhận chứa một khóa chung và một cái tên. Chúng
chứa hạn sử dụng của khóa, tên của nơi cấp văn bằng chứng nhận có liên
quan đến văn bằng đó, số sản xuất của chứng nhận, và những thông tin khác
nữa. Hầu hết các văn bằng này được xác đònh bởi chuẩn Quốc tế CCITT
X.509; văn bằng có thể đọc hay viết bằng nhiều ứng dụng tuân theo chuẩn
X.509. Xa hơn nữa là cải tíên đã được tìm thấy trong chuẩn PKCS và chuẩn
PEM. Chi tiết về đònh dạng của văn bằng cũng được tìm thấy trong KEN.
Một văn bằng được ban hành bởi một nhà cung cấp bản quyền và được ký
với khóa bảo mật của nhà cung cấp này.
b. Văn bằng được sử dụng như thế nào?
Một văn bằng cốt lõi là phát sinh những bí mật có tính chất pháp lý
của khóa công khai. Người nào đó kiểm tra một chữ ký cũng có thể kiểm tra
văn bằng chứng nhận của người ký, để đảm bảo rằng không có sự giả mạo
hay lỗi được tìm thấy. Hầu hết bảo mật của chứng nhận thường bao gồm
- 18 -
Giải thuật mã hoá mật mã RSA
việc kèm theo một hay nhiều văn bằng chứng nhận và mỗi thông báo được
ký. Người nhận thông báo có thể kiểm tra văn bằng bằng cách sử dụng khóa
công khai của văn bằng và kiểm tra chữ ký của thông báo. Có nhiều văn
bằng kèm theo thông báo, đònh hình một loạt các chuỗi xích có trật tự, ở một
khía cạnh nào đó một văn bằng chứng thực cho việc xác nhận của những
văn bằng trước đó.

Nhiều người gửi thì cũng nhiều người nhận hơn, nhu cầu đó là gửi
kèm theo, kiểm tra, xác nhận. Chẳng hạn, nếu Alice gửi thông báo đến cho
Bob hàng ngày, Alice có thể gửi kèm một loạt các mắc xích văn bằng từ
những ngày đầu tiên mà Bob kiểm tra. Từ đó trở đi Bob chỉ cần lưu trữ khóa
công khai của Alice và không cần thiết phải kiểm tra văn bằng hay việc
kiểm tra văn bằng là không cần thiết.
Một người gửi là người của công ty thì cần biết người nhận có thể cần gửi
theo chỉ chỉ một văn bằng (ban hành bởi công ty đó), nhưng ngược lại một
người gửi thuộc công ty thì không nhận ra được người nhận cần gửi kèm
theo hai văn bằng. Thói quen tốt là gửi kèm theo phải nay đủ một loạt các
văn bằng chứng nhận để người ban hành của văn bằng có mức độ cao nhất
trong chuỗi đó được người nhận biết đến.
Theo như chuẩn PKCS cho hệ thống mã hoá dùng khóa công khai,
mỗi chữ ký chỉ đến một văn bằng chứng nhận đã phê chuẩn khóa công khai
của người ký. Đặc biệt mỗi chữ ký chứa tên của người ban hành văn bằng
và số sản xuất của văn bằng. Do đó cho dù không có văn bằng được gửi
kèm theo với thông báo người kểim tra có thể vẫn sử dụng một loạt các văn
bằng để kiểm tra tình trạng của khóa công khai.
c. Nhà cung cấp văn bằng.
Văn bằng chứng nhận được ban hành bởi nhà cung cấp văn bằng (gọi
tắt là CA), được sự ủy thác của nhà quản trò trung tâm sẵn sàng xác minh
các đặc tính của văn bằng. Một công ty có thể phát hành bằng chứng nhận
cho nhân viên của họ, một trường đại học cung cấp cho sinh viên, một thành
phố cung cấp cho công dân của họ. Để mà ngăn chặn việc giả mạo văn
bằng, khoá công khai của của CA đáng tin cậy: một CA không những phải
công khai khoá công khai của họ mà còn cung cấp một văn bằng từ ở mức
độ cao hơn để chứng nhận tính pháp lý của khóa công khai của họ. Sau đó
những giải quyết đưa đến cấp bậc cao hơn của CA.
Chẳng hạn như, Alice phát sinh cặp khoá cô ta sở hữu và gửi khóa
công khai đến cho CA với một sự chứng minh của giấy chứng minh của cô

ta. CA kiểm tra giấy chứng minh và đưa tra những bước cần thiết để đảm
bảo rằng những yêu cầu được đưa đến từ Alice và ròi gửi cho cô một văn
bằng chứng nhận chứng thực liên kết giữa cô ta và khóa công khai của cô ta,
- 19 -
Giải thuật mã hoá mật mã RSA
theo cùng với một mắc xích cấp bậc đến khi nào yêu cầu để chứng minh
tính hợp pháp của khóa công khai của cô ta.
Những CA khác có thể ban hành những văn bằng chứng nhận với
những mức độ khác nhau của những yêu cầu nhận diện. Một CA có thể nhất
đònh cần giấy đăng ký của người điều khiển, những CA khác muốn hình
thức yêu cầu văn bằng phải được công chứng nhưng cũng có cái phải bắt có
dấu chỉ điểm của người yêu cầu một văn bằng. Mỗi một CA cần được công
bố những chuẩn và những điều kiện chứng nhận mà nó sở hữu, vì vậy những
người kiểm tra cần kiểm tra vào những mức độ thích hợp riêng tư trong tên
chứng nhận – liên kết khóa.
Ví dụ một giao thức ban hành văn bằng chứng nhận là Apple
Computer's Open Collaborative Environment (OCE) (môi trường cộng tác
mở của máy tính Apple). Những người sử dụng Apple OCE cần phát sinh
một cặp khóa và rồi yêu cầu và nhận văn bằng chứng nhận cho khóa công
khai; văn bằng này yêu cầu phải có dấu chỉ điểm.
d. Chứng nhận đơn vò chữ ký CSU (Certificate Signing Unit)
Chứng nhận lưu trữ khóa bí mật là một điều vô cùng quan trọng,
những khóa bí mật của tổ chức chứng nhận đã được lưu trữ một cách bí mật,
bởi vì sự bàn bạc cho phép không kiểm tra việc giả mạo chữ ký. Việc bảo
mật phải được yêu cầu là lưu trữ khóa trong một hộp chống trộm cắp; hộp
đó được gọi là Certificate Signing Unit hay CSU. Cách tốt nhất là CSU triệt
phá những những gì bên trong nó nếu một khi nó bò mở và được bảo vệ để
chống lại những xâm nhập sử dụng bức xạ điện từ. Không bất kỳ nhân viên
nào của tổ chức chứng nhận có thể truy cập vào khóa riêng bí mật đó được,
nhưng chỉ có khả năng sử dụng khóa bí mật đó trong việc cấp văn bằng

chứng nhận.
Có nhiều thiết kế có thể thực hiện được cho CSU. CSU được hoạt hoá
bởi một chuỗi các khóa dữ liệu đó là những khóa vật lý có khả năng chứa
những thông tin kỹ thuật số. Những khoá dữ liệu sử dụng kỹ thuật chia sẻ
bảo mật do đó vài người phải dụng tất cả những khóa dữ liệu của họ để
được kích hoạt CSU. Điều này ngăn chặn nhân viên CA cung cấp văn bằng
giả.
Chú ý rằng nếu CSU bò phá, trong hoả hoạn, không bảo mật nào bò
xâm phạm. Văn bằng chứng nhận đã được ký bởi CSU có giá trò tồn tại mãi,
cho đến khi nào người kiểm tra sử dụng đúng khóa công khai.
- 20 -
Giải thuật mã hoá mật mã RSA
nh hưởng của những tấn công vào tổ chức cấp văn bằng:
Người ta có thể nói về nhiều vụ tấn công nhắm vào những tổ chức
cung cấp văn bằng chứng nhận, do đó những tổ chức này phải được chuẩn bò
để chống lại những tấn công đó.
Ta xem xét đến một tấn công sau. Giả sử rằng Bob muốn giả dạng
Alice. Nếu Bob có thể có được những thông báo ký như Alice, anh ta có thể
gửi thông báo vào ngân hàng của Alice và nói “ Tôi muôn rút ra 10000 $ từ
tài khoản của tôi. Gửi tiền cho tôi”. Để tấn công điều này, Bob phát sinh
một cặp khóa và gửi khóa đến nơi cung cấp văn bằng chứng nhận và nói
“Tôi là Alice. Đây là khóa công khai của tôi. Làm ơn gửi cho tôi một bằng
chứng nhận”. Nếu như CA bò lừa và gửi đến cho anh ta một văn bằng và anh
ta có thể lừa ngân hàng thì anh ta đã tấn công một cách thành công. Để
ngăn chặn việc tấn công này CA phải kiểm tra bằng chứng nhận yêu cầu
thực tế của người tạo ra nó, nghóa là nó phải thể hiện tính yêu cầu thích
đáng đó là Alice thật sự, người đang yêu cầu văn bằng chứng nhận. Với ví
dụ này CA có thể yêu cầu Alice xuất hiện và trình ra giấy tờ chứng minh
mình là Alice thể hiện ngày sinh của cô ta. Một vài CA yêu cầu một số
nhận dạng nhưng ngân hàng không cần những thông báo mang tính danh dự

với những bằng chứng nhận nhân cách thấp. Mỗi CA phải công bố tình
trạng bản thân nhận dạng yêu cầu và một số điều khoản, những cái khác có
thể kèm theo một mức độ thích hợp của bí mật của việc chứng nhận.
Một kẻ xâm nhập có thể phát hiện ra khóa bí mật riêng tư của một tổ
chức cấp bằng và rồi giả văn bằng. Với lý do này, một tổ chức cấp văn bằng
phải phòng ngừa từ xa để ngăn chặn những việc truy cập bất hợp pháp để
lấy khoá bí mật riêng tư. Khoá công khai của tổ chức cấp văn bằng phải bao
quát rộng rãi chống lại mọi tấn công. Với điều này, những CA phải sử dụng
rất nhiều khóa dài, tốt nhất là 1000 bít hay dài hơn, và cũng thay đổi khóa
một cách đều đặn. Những tổ chức cấp bằng hàng đầu có những ngoại trừ
không thực tế trong việc họ thay đổi khoá thường xuyên là vì khóa có thể
được viết trong phần mềm được sử dụng bởi một số rất lớn của những người
kiểm tra.
Trong những tình huống tấn công khác, Alice mua chuộc Bob, người
làm việc cho tổ chức cung cấp văn bằng, để cấp cho cô ta một văn bằng
chứng nhận với tên của Fred. Hiện giờ Alice có thể gửi những thông báo
được ký tên Fred và những người khác nhận những thông báo sẽ tin rằng
thông báo đó đáng tn cậy bởi vì một loạt các văn bằng đầy đủ và có thể
được kiểm tra sẽ đi kèm theo thông báo. Tấn công này có thể gây cản trở
bởi việc yêu cầu sự cộng tác chung của hai hay nhiều nhân viên để phát
sinh một văn bằng; bấy giờ kẻ tấn công hối lộ hai hay nhiều nhân viên nữa.
Chẳng hạn, trong vài CSU ngày nay, ba nhân viên phải đưa một khóa dữ
- 21 -
Giải thuật mã hoá mật mã RSA
liệu chứa thông tin bảo mật ủy quyền cho CSU để phát sinh văn bằng.
Không may, có nhiều cách để phát sinh ra văn bằng giả bởi việc hối lộ chỉ
một nhân viên. Nếu mỗi văn bằng chỉ yêu cầu kiểm tra bởi một nhân viên
thì nhân viên đó có thể bò hối lộ và nhét các yêu cầu sai vào trong một ngăn
xếp của những yêu cầu chứng nhận thật sự. Chú ý rằng những nhân viên
được hối lộ không để lộ ra khóa bí mật của tổ chức cấp văn bằng chứng

nhận đến khi nào nó có thể chứa một cách hợp lệ.
Những tấn công khác bao gồm việc giả mạo những tài liệu cũ. Alice
đã cố gắng tính toán môđun của tổ chức cấp bằng. Nó sẽ tiêu tốn của cô ta
khoảng 15 năm, nhưng cuối cùng cô cũng thành công, và hiện giờ cô ta có
cả những khóa bí mật cũ của tổ chức cấp văn bằng. Khoá này đã bò chặn vì
đã hết hạn, nhưng cô ta có thể giả mạo một văn bằng có ngày 15 năm trước
đó chứng minh một khóa công khai giả, cô ta có thể giả mạo một tài liệu với
chữ ký của Bob với ngày 15 năm trước đó, có lẽ sẽ di chuyển những thông
tin đến Alice. Những phát sinh được bắt nguồn với sự giả mạo cho những tài
liệu trước đó nhiều năm.
Chú ý rằng :
Những tấn công vào những tổ chức cấp văn bằng không đe dọa được
những bí mật của các thông báo giữa những người sử dụng, vì hầu như mọi
kết quả đều tấn công vào trung tâm phân bố những khóa bí mật.
Nếu khóa của tổ chức cấp văn bằng bò mất hay phá huỷ nhưng không
làm xâm phạm, những văn bằng được ký với những khoá cũ vẫn tồn tại cho
đến khi nào người kiểm tra biết sử dụng những khoá công khai cũ để kiểm
tra văn bằng.
Trong một vài thiết kế CSU, sao chép những lưu trữ được mã hoá của
những bí mật của CA được giữ. Một CA bò mất khóa của nó có thể phục hồi
lại bằng cách nó bằng cách nhập vào những lưu trữ được mã hoá bên trong
CSU; lưu trữ mã hóa chỉ có thể giải mã khi đang sử dụng CSU. Nếu như bản
thân CSU bò phá hủy, nhà sản xuất có thể sẽ cung cấp một cái khác có
thông tin bên trong tương tự do đó cho phép lấy lại được khóa.
Một khoá CA bò xâm phạm ở một tình trạng rất nguy hiểm. Một kẻ
tấn công phát hiện ra khoá bí mật của CA có thể phát sinh ra những văn
bằng giả mạo trong tên của CA mà cho phép không kiểm tra sự giả mạo;
với lý do này, tất cả mọi sự phòng ngừa phải được ngăn chặn việc làm xâm
phạm. Nếu một xâm phạm nảy sinh thì CA phải lập tức ngưng việc cung cấp
văn bằng với những khóa cũ và thay bằng những khóa mới. Nếu nó bò nghi

ngờ thì vài văn bằng giả mạo thì rất cả những văn bằng đã được cấp phải
gọi lại và được cấp lại khóa CA mới. Những việc lường trước này không
căng thẳng đến mức nếu những văn bằng đã được đăng ký với dòch vụ đònh
thời gian. Chú ý rằng việc tổn hại của một khoá CA không làm mất hiệu lực
- 22 -
Giải thuật mã hoá mật mã RSA
của khóa của những người sử dụng, nhưng chỉ những văn bằng được xác
nhận. Tổn hại của một khóa của CA hàng đầu cần phải suy nghó chính chắn
vì khóa có thể được xây dựng trong những ứng dụng kiểm tra những văn
bằng.
Danh sách thu hồi chứng nhận (Certificate Revocation List (CRL)) là
danh sách những khóa công khai bò thu hồi trước khi nó hết hạn. Có một vài
lý do khóa bò thu hồi và đưa vào danh sách CRL. Một khoá đã bò xâm phạm.
Một khoá được sử dụng một cách thành thạo bởi một cá nhân trong một
công ty; ví dụ tên chính thức được liên kết với một khóa có lẽ là “Alice
Avery, Vice President, Argo Corp”. Nếu Alice đã nhiệt tình, công ty của cô
ấy không muốn cô ấy có thể sẽ ký tên những thông báo với khóa đó và đó
là lý do để công ty dời khoá vào trong CRL.
Khi kiểm tra một chữ ký, một người có thể kiểm tra tính chính xác
của CRL để chắc chắn rằng khóa của người ký không bò giả mạo. Cho dù đó
là thời gian chính đáng để thực thi kiểm tra này dựa trên tầm quan trọng của
tài liệu đã được ký.
CRL được duy trì bởi những CA và cung cấp thông tin về những khoá
bò giả mạo những văn bằng nguyên thuỷ bởi CA. Những CA chỉ liệt kê
những khóa hiện tại vì những khóa đã hết hạn không được thừa nhận trong
trường hợp này; khi một khóa giả mạo vượt qua những ngày hết hạn nguyên
thuỷ của nó thì nó được di chuyển ra khỏi CRL. Mặc dù CRL được duy trì
trong loại được phân bổ, đó có thể là nơi phân bổ trung tâm cho CRL, đó là
những vò trí trên mạng chứa những CRL mới nhất từ nhiều tổ chức khác
nhau. Một tổ chức giống như một ngân hàng dường như muốn tiến hành lưu

trữ CRL để tạo ra những nguyên cứu CRL khả thi trên mỗi giao dòch.
Để đề phòng chống lại một tấn công tính toán với giới hạn dài, mỗi
khóa phải có ngày hết hạn sau đó nó không còn có giá trò nữa. Vì vậy thời
gian để hết hạn phải ngắn hơn thời gian tính toán hay tương đương, chiều
dài khoá phải đủ dài để tạo ra sự thay đổi của việc tính toán trước việc hết
hạn cực nhỏ. Thời gian hợp lệ cho một cặp khóa cũng dựa trên hoàn cảnh
và trong hoàn cảnh này khoá sẽ được sử dụng mặc dù sẽ có thời gian chuẩn.
Thời gian hợp lệ lẫn với giá trò của khoá và đánh giá sức mạnh của một tấn
công được chờ đợi thì xác đònh được kích thước khóa thích hợp. Ngày hết
hạn của một khoá đi kèm với khoá công khai trong văn bằng hay trong danh
sách thư mục. Chương trình kiểm tra chữ ký nên kiểm tra việc hết hạn và
không nên chấp nhận một thông báo được ký với một khóa hết hạn. Điều
này có nghóa là khi một ai đó sở hữu khoá hết hạn, mọi thứ đã được ký sẽ
không được tính toán chu đaó. Tất nhiên đó sẽ là những trường hợp quan
trọng đó là những tài liệu đã ký được xem xét hợp lý cho nhiều chu kỳ thời
gian dài hơn.
- 23 -
Giải thuật mã hoá mật mã RSA
Sau khi kết thúc, người sử dụng chọn một khóa mới dài hơn khóa cũ,
có lẽ bằng vài con số để phản ánh cả việc gia tăng thực thi của phần cứng
máy tính và vài sự cải tiến gần đây trong những giải thuật tính toán thừa số.
Bản phụ lục chiều dài khoá được đề nghò sẽ được công bố. Một người sử
dụng có thể kiểm tra lại một khoá đã hết hạn chưa, nếu đó là chiều dài thích
hợp và không bò xâm phạm. Tổ chức chứng nhận văn bằng sẽ phát sinh ra
một văn bằng mới cùng khóa, và tất cả những chữ ký mới sẽ được điểm trên
văn bằng mới thay cho cái cũ. Tuy nhiên, sự việc phần cứng máy tính tiếp
tục cải tiến chỉ rõ cho việc thay thế những khóa hết hạn với những khóa mới
và dài hơn vài năm. Việc thay thế khóa co phép người ta thấy được mối
thuận lợi của cải tiến phần cứng để gia tăng tính bảo mật trong hệ thống mã
hóa. Phần cứng nhanh hơn đã ảnh hưởng đến việc gia tăng bảo mật, có lẽ

mênh mông nhưng chỉ nếu chiều dài khoá được gia tăng thường xuyên.
Nếu chẳng may khóa bí mật của bạn bò mất hay bò phá hủy nhưng
không bò xâm hại, bạn có thể không ký dài hơn hay giải mã những thông
báo nhưng vài cái trước đó đã được ký với khóa bò mấtvẫn có giá trò. Đềiu
này có thể xảy ra, ví dụ nếu bạn quên mật khẩu được sử dụng để try cập
khóa của bạn hay nếu ổ cứng mà trên đó khóa được lưu trữ đã bò hư hại.
Bạn cần phải chọn một khóa mới đúng ngay lập tức, để giảm mức tối thiểu
số những thông báo mọi người gửi bạn đã mã hóa dưới khoá cũ của bạn,
những thông báo bạn không cần thiết phải đọc.
Các vấn đề sẽ xảy ra nếu khóa của bạn bò xâm nhập: Nếu chẳng may
khóa bí mật của bạn bò xâm nhập đó là nếu bạn nghi ngờ một kẻ tấn công
có thể chứa khóa bí mật của bạn thì bạn phải làm bộ để vài kẻ đòch của bạn
có thể đọc được những thông báo được mã hóa gửi đến bạn và giả mạo tên
bạn trên những tài liệu. Những hậu quả nghiêm trọng kèm theo tính chất
quan trọng của việc bảo vệ khoá bí mật của bạn với những cơ cấu mạnh cực
kỳ.
Ngay lập tức bạn phải khai báo với nơi cấp ăn bằng và đưa khoá cũ
của bạn vào CRL; ở đó sẽ thông báo cho mọi người là khoá đã bò giả mạo.
Sau đó chọn một khóa mới và thu được những văn bằng thích hợp với nó.
Bạn có thể sử dụng khóa mớiđể ký lại những tài liệu mà bạn đã ký với khóa
bò tổn hại; những tài liệu đã được đònh thời gian tốt như được ký vẫn còn có
giá trò. Bạn cũng nên thay đổi cách lưu trữ khoá bí mật của bạn ngăn chặn
sự xâm phạm khóa mới.
4.4. Xâm nhập vào hệ thống RSA.
Có một vài cách hiểu của việc “bẻ gãy” RSA. Cái nguy hiểm nhất là
có thể một kẻ tấn công phát hiện ra khóa bí mật tương ứng với khóa công
- 24 -
Giải thuật mã hoá mật mã RSA
khai; đây là đềiu cho phép kẻ xâm nhập có thể đọc tất cả các thông điệp đã
được mã hóa với khóa công khai và chữ ký giả mạo. Hiển nhiên đây là cách

việc tấn công này là lấy thừa số của môđun công khai n, dựa vào hai thừa số
số nguyên tố là p và q. Từ p và q và e, là số mũ chung, kẻ xâm nhập có thể
dễ dàng lấy được d là khoá bí mật. Phần khó khăn nhất việc phân tích ra
thừa số của n, bảo mật RSA dựa trên việc phân tích thành thừa số là rất khó.
Thực tế tác vụ của việc tìm lại khóa bí mật tương đương với tác vụ phân tích
thừa số môđun: bạn có thể sử dụng d để phân tích ra n cũng như việc phân
tích thừa số n để tìm ra d.
Cách khác để “bẻ gãy”RSA là tìm ra một kỹ thuật tính tóan căn thứ e
(
e
c
) chia n lấy dư. Vì c= m
e
nên
e
c
là thông báo m. với cách tấn công này
cho phép bất kỳ ai cũng có thể phục hồi những thông báo đã mã hoá và
những chữ ký giả mạo mà không cần biết khóa bí mật. Hiện nay chưa có
phương thức nào có thể bẻ khóa RSA bằng cách này.
Những tấn công được đề cập phải là cách duy nhất để bẻ khóa RSA
như cách có thể phục hồitất cả các thông báo được mã hóa dưới một khóa
lấy được. Tuy nhiên có những phươngthức khác có mục đích là phục
hồinhững thông báo đơn giản. Thành côngnhưng không cho phép những kẻ
xâm nhập có thể phục hồinhững thông báo khác cùng một khóa.
Tấn công một thông báo riêng lẻ đơn giản nhất là tấn công vào
những văn bản được đoán trước. Một kẻ xâm nhập có thể thấy văn bản mã
hóa việc tấn công đó dường như là “tấn công lúc bình minh” và mã hóa ước
đoán này với khóa công khai của người nhận, bằng cách so sánh với văn
bản mã hóa thực tế, kẻ xâm nhập biết được trong bất cứ trường hợp nào ước

đoán đó đúng. Việc tấn công nào có thể bò ngăn cấm bởi việc thêm nhiều
bít ngẫu nhiên vào thông báo. Tấn công vào thông báo riêng lẻ khác có thể
xuất hiện nếu một ai đó gửi thông báo đến ba người, người mà có số mũ
công khai là e =3. Kẻ tấn công biết được điều này và thấy ba thông báo đó
có thể phục hồi thông báo đó, cách tấn công này và cách để ngăn chặn nó
đã được thảo luận bởi Hastad.
Tất nhiên cũng có nhiều kiểu tấn công nhắm không chỉ nhắm vào
bản thân RSA mà còn đưa ra những bổ sung cho RSA; điều này không tính
như “ “ bẻ gãy”RSA” bởi vì nó không phải là những yếu điểm của giải
thuật RSA bò khai thác, nhưng là một yếu điểm trong những bổ sung đặc
biệt. Chẳng hạn như, nếu một ai đó lưu trữ khóa bí mật của anh ta một cách
lơ là không an toàn thì một kẻ tấn công có thể phát hiện ra đều này. Một
người nào đó không thể nhấn mạnh một cách mạnh mẽ đích thực những yêu
cầu bảo mật RSA một bảo mật bổ sung, về mặt toán học (bảo mật các giới
hạn, chẳng hạn như chọn kích thước chiều dài khóa, nhưng khôn g đủ. Trong
thực tế, hầu hết những vụ tấn công thành công sẽ giống như đích tại những
- 25 -

×