Tải bản đầy đủ (.pdf) (187 trang)

Giáo trình An toàn và bảo mật thông tin: Phần 2 - PGS.TS. Đàm Gia Mạnh, TS. Nguyễn Thị Hội (Chủ biên)

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 (2.98 MB, 187 trang )

Chương 4
MÃ HĨA THƠNG TIN
Mã hoá đóng vai trò quan trọng và có rất nhiều ứng dụng trong đời
sống xã hội, đặc biệt là trong lĩnh vực an toàn bảo mật thông tin. Ngày
nay, các kỹ thuật mã hoá được sử dụng ngày càng phổ biến hơn trong nhiều
lĩnh vực khác nhau như an ninh, quốc phòng,... và đặc biệt khi chúng ta
đang triển khai mạnh mẽ TMĐT, thì việc ứng dụng mã hoá ngày càng trở
nên cần thiết.
Chương 4 trình bày về mã hố dữ liệu với các vấn đề liên quan bao
gồm: Các vấn đề về tính an tồn của một tḥt tốn mã hóa, các kỹ tḥt
phá mã hiện nay và đánh giá độ an toàn của một giải tḥt mã hố. Với
mỗi hệ mã hóa đều giới thiệu về đặc điểm, mơ hình hoạt động, những ưu,
nhược điểm chính và phạm vi ứng dụng trong bảo mật thông tin. Đồng
thời, một số hệ mã hoá thường dùng trong bảo mật thông tin hiện nay như
hệ thống mã DES, RSA, các hệ mã hóa cổ điển cũng được giới thiệu trong
chương này.
4.1. TỔNG QUAN VỀ MÃ HÓA
4.1.1. Khái niệm hệ mã hóa
Mã hóa là phương thức biến đổi thơng tin từ định dạng thơng thường
(văn bản, hình ảnh, âm thanh, biểu tượng,...) thành một định dạng khác
không giống như ban đầu nhưng có thể khôi phục lại được, (việc khôi phục
này gọi là giải mã). Mục đích chính của mã hóa là để đảm bảo tính bí mật
của thông tin khi chúng được truyền trong những môi trường khơng đảm
bảo an tồn.
Việc mã hóa thơng tin được thực hiện bằng việc sử dụng một giá trị
đặc biệt gọi là khóa mã (key). Cả hai phía gửi và nhận thông tin đều phải
biết giải thuật mã hóa và khóa để thực hiện việc mã hóa và giải mã thơng
tin. Thơng tin đã được mã hóa có thể bị nghe (xem) trộm nhưng không thể
135



bị giải mã để lấy ra thông tin đích thực nếu khơng biết giải tḥt mã hóa
và khóa. Như vậy, mã hóa cung cấp tính bí mật cho thơng tin trong q
trình trùn thơng trên các kênh trùn.
Ngành khoa học chuyên nghiên cứu về mã hóa và giải mã là ngành
mật mã. Đây là một ngành khoa học ứng dụng tốn học, các tḥt tốn ứng
dụng vào biến đổi thơng tin từ định dạng ban đầu một định dạng khác. Nó
đóng vai trò quan trọng và có rất nhiều ứng dụng trong đời sống xã hội
ngày nay, từ các lĩnh vực như an ninh, quốc phòng,... đến các hoạt động
trong sản xuất kinh doanh của các tổ chức, doanh nghiệp.
Mã hóa thơng tin nhằm mục đích giấu đi nội dung thực tế của thông
tin mà người dùng muốn truyền trong q trình trùn tin cũng như trong
việc lưu trữ thơng tin. Phương pháp này dùng để tránh tình trạng thơng tin
bị đánh cắp và sử dụng vào những mục đích khơng tốt. Có thể chia q
trình mã hóa thơng tin thành hai phần:
- Mã hóa: là giai đoạn chuyển đổi thông tin nguyên gốc ban đầu thành
các định dạng thông tin được mã hóa (gọi là bản mã).
- Giải mã: từ bản mã thông tin nhận được, tiến hành biến đổi để thu
lại được thông tin nguyên gốc như trước khi mã hóa.
Người gửi S

Mã hóa X

Kênh thơng tin

Giải mã
Y

Người nhận R

Thơng tin đã mã hóa Y

Kẻ tấn cơng E
Hình 4.1. Mơ hình truyền tin có bảo mật cơ bản

136


Trong trùn thơng, để đảm bảo sự bí mật của thơng tin thì trước khi
trùn, thơng tin được mã hố ở phía người gửi sau đó được giải mã ở phía
người nhận. Q trình này cịn gọi là q trình trùn thơng tin có bảo mật
hay trùn tin an tồn. Có thể mơ tả mơ hình trùn thơng tin có bảo mật
như Hình 4.1.
Sơ đồ mơ hình trùn tin bảo mật trên có thể giải thích ngắn gọn:
Giả sử có 3 đối tượng tham gia quá trình truyền tin là người gửi là S,
người nhận là R và kẻ tấn công là E.
- S muốn gửi một thông điệp X đến R qua một kênh truyền thông tin
nào đó và E có thể nghe trộm và ăn cắp thông tin này. Để chống lại việc
mất thông tin, S sử dụng một phép biến đổi (mã hóa) lên thông điệp X
đang ở dạng nguyên gốc ban đầu (dạng đọc được - Plaintext) để tạo thành
một đoạn mã hóa Y (Cryptogram) khơng thể đọc được hoặc nội dung đã
bị thay đổi đi nhiều.
- Khi đó Cryptogram Y (hay còn gọi là Ciphertext - thông điệp đã
được mã hoá) đã thực hiện che giấu nội dung của đoạn Plaintext X ban
đầu. Khóa dùng để mã hõa dữ liệu này là một thông số chỉ có bên gửi S và
bên nhận R biết mà thôi, sau khi R nhận được bản Ciphertext sẽ tiến hành
giải mã và lấy về nội dung ban đầu.
Giả sử trong quá trình truyền tin, E nghe lén và đánh cắp được thơng
tin (Y) thì cũng khơng thể giải mã và biết được nội dung của thông tin ban
đầu.
Ngày nay, mã hoá đã trở thành một ngành khoa học ứng dụng quan
trọng, các ứng dụng mã hóa và bảo mật thông tin ngày càng phổ biến hơn

và thực sự cần thiết cho tất cả các lĩnh vực sử dụng thông tin kể cả chính
phủ, các tổ chức, doanh nghiệp và các cá nhân:
- Đối với chính phủ: Mã hóa nhằm đảm bảo thông tin trong quân sự
và ngoại giao, bảo vệ thông tin trong các lĩnh vực trọng yếu mang tầm cỡ
quốc gia.

137


- Đối với các tổ chức, doanh nghiệp: Mã hóa nhằm bảo vệ các
thông tin nhạy cảm, các thông tin mang tính chiến lược của các tổ chức,
doanh nghiệp.
- Đối với các cá nhân: Mã hóa nhằm bảo vệ các thông tin riêng tư
trong liên lạc với thế giới bên ngồi thơng qua các kênh trùn tin, đặc biệt
là trên mạng Internet và các phương tiện truyền thông xã hội.
4.1.2. Vài nét về lịch sử mã hóa
Mật mã học hay mã hóa là một ngành có lịch sử xuất hiện từ hàng
nghìn năm nay, lịch sử mật mã học chính là lịch sử của những phương
pháp mật mã học cổ điển hay còn gọi là các phương pháp mật mã hóa
với bút, giấy và đơi khi có hỗ trợ từ những dụng cụ cơ khí đơn giản dao,
đá khắc lên các vật liệu như thẻ tre, da động vật, vách đá. Vào những năm
đầu của thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng
hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn
cho việc mật mã hóa. Sự ra đời và phát triển mạnh mẽ của ngành điện
tử và máy tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã
học phát triển nhảy vọt lên một tầm cao mới, sự phát triển của mật mã học
luôn luôn đi kèm với sự phát triển của các kỹ thuật phá mã (hay thám mã).
Những bằng chứng sớm nhất về sử dụng mật mã học là các chữ
tượng hình được tìm thấy trên các bức tượng Ai Cập cổ đại (cách đây
khoảng 4500 năm). Những ký hiệu tỏ ra không phải để phục vụ mục đích

truyền thơng tin bí mật mà thường là nhằm mục đích gợi nên những điều
thần bí, trí tị mị hoặc thậm chí để tạo sự thích thú cho người xem. Muộn
hơn, các học giả về tiếng Hebrew có sử dụng một phương pháp mã hóa
thay thế bảng chữ cái đơn giản chẳng hạn như mật mã Atbash (khoảng
năm 500 đến năm 600). Người Hy Lạp cổ đại cũng được biết đến là đã sử
dụng các kỹ thuật mật mã. Cũng có những bằng chứng rõ ràng chứng tỏ
người La Mã nắm được các kỹ thuật mật mã (mật mã Caesar và các biến
thể). Thậm chí đã có những đề cập đến một cuốn sách nói về mật mã trong
quân đội La Mã, tuy nhiên cuốn sách này đã thất truyền. Tại Ấn Độ, mật
mã học cũng khá nổi tiếng, trong cuốn sách Kama Sutra, mật mã học
138


được xem là cách những người yêu nhau trao đổi thông tin mà không bị
phát hiện.
Mật mã học ngày càng trở nên quan trọng dưới tác động của những
thay đổi, cạnh tranh trong chính trị và tơn giáo. Chẳng hạn tại châu Âu,
trong và sau thời kỳ Phục Hưng, các công dân của các thành bang thuộc
Ý, gồm cả các thành bang thuộc giáo phận và Công giáo La Mã, đã sử
dụng và phát triển rộng rãi các kỹ thuật mật mã.
Ngoài các nước ở Trung Đông và Châu Âu, mật mã học hầu như
không được phát triển. Tại Nhật Bản, mãi cho tới 1510, mật mã học vẫn
chưa được sử dụng và các kỹ thuật tiên tiến chỉ được biết đến sau khi nước
này mở cửa với phương Tây (thập kỷ 1860).
Tuy mật mã học có một lịch sử lâu dài và phức tạp, mãi cho đến thế
kỷ 19 của thế kỷ 20 nó mới được phát triển một cách có hệ thống, khơng
chỉ cịn là những tiếp cận nhất thời, vơ tổ chức, những ví dụ về phân tích
mã bao gồm cơng trình của Charles Babbage trong kỷ ngun của Chiến
tranh Krim về tốn phân tích mật mã đơn ký tự, cơng trình của ơng đã
được Friedrich Kasiski, người Phổ, khôi phục và công bố, tại thời điểm

này, để hiểu được mật mã học, người ta thường phải dựa vào những kinh
nghiệm từng trải qua để kiểm nghiệm.
Trong thời gian trước và tới thời điểm của Thế chiến II, nhiều
phương pháp toán học đã hình thành (đáng chú ý là ứng dụng của William
F. Friedman dùng kỹ thuật thống kê để phân tích và kiến tạo mật mã và
thành công bước đầu của Marian Rejewski trong việc bẻ gãy mật mã của
hệ thống Enigma của Quân đội Đức). Sau Thế chiến II trở đi, cả hai ngành,
mật mã học và phân tích mã, ngày càng sử dụng nhiều các cơ sở toán học,
tuy thế, chỉ đến khi máy tính và các phương tiện truyền thông cùng mạng
Internet trở nên phổ biến, người ta mới có thể mang tính hữu dụng của mật
mã học vào trong những thói quen sử dụng hàng ngày của mọi người, thay
vì chỉ được dùng bởi các chính quyền quốc gia hay các hoạt động kinh
doanh lớn trước đó.
139


4.1.3. Vai trị của mã hóa và quy trình mã hóa
Yêu cầu của các hệ mật mã cần phải thỏa mãn các yêu cầu sau:
- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText)
để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có qùn
truy cập thơng tin (Secrety), hay nói cách khác là chống truy nhập không
đúng quyền hạn.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong
hệ thống đến người nhận hợp pháp là xác thực (Authentication).
- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo khơng có hiện tượng
giả mạo, mạo danh để gửi thông tin trên mạng.
Ưu điểm lớn nhất của bất kỳ hệ mật mã bất kỳ đó là có thể đánh giá
được độ phức tạp tính toán mà “kẻ địch” phải giải quyết bài tốn mới có
thể lấy được thơng tin đã được mã hố. Tuy nhiên mỗi hệ mật mã có một
số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp

tính tốn nên có thể áp dụng các tḥt tốn mã hoá khác nhau cho từng
ứng dụng cụ thể tuỳ theo yêu cầu về độ an toàn của các ứng dụng.
4.1.4. Các yêu cầu của hệ mã hóa
Để đảm bảo được các u cầu về an tồn và bảo mật thơng tin, các
hệ mã hố cần phải có các tính chất sau:
(1) Tính hỗn loạn (Confusion): Mã hố phải làm cho sự phụ thuộc
của bản mã (ciphertext) vào các bản rõ (plaintext) là thực sự phức tạp,
nhằm gây sự rối loạn đối với những người có ý định tìm quy luật để phá
mã nhằm thu được thơng tin ngun bản.
(2) Tính khuếch tán (Diffusion): Làm cân bằng tỉ lệ xuất hiện các ký
tự trong bản mã hóa, qua đó tạo ra sự khó khăn cho những người có ý định
phá mã bằng phương pháp thống kê dựa trên tỷ lệ các mẫu lặp. Chẳng hạn,
để san bằng xác suất xuất hiện của các ký tự cũng như các nhóm ký tự, có
thể thêm một đoạn văn bản thừa vào văn bản sau khi mã hóa.

140


Các thuật toán mã hóa đều có một điểm chung đó là sử dụng một loại
khóa mã trong q trình mã hóa và giải mã. Độ an tồn của giải thuật mã
hóa phụ thuộc rất nhiều vào sự đảm bảo bí mật của khóa mã này, nghĩa là
phụ thuộc vào việc làm thế nào để chỉ người gửi và người nhận thơng tin
đích thực mới biết được khố mã. Các hệ mã hóa nói chung đều thường bị
tấn công nhằm xác định ra khóa mã một cách nhanh nhất để có thể tìm
được thơng tin ngun bản.
Độ an tồn của một hệ mã hóa: Trên phương diện lý thuyết, về độ an
tồn của một hệ mã hóa có thể phân ra làm 2 loại: an toàn vô điều kiện và
an tồn tính tốn.
Một hệ mã hóa được coi là an toàn vô điều kiện khi bản mã thu được
không chứa đủ thông tin để xác định duy nhất một nguyên bản tương ứng.

Nói cách khác, khơng thể giải mã được với bất kể thời gian kéo dài bao
lâu cũng như với tốc độ và nguồn lực máy tính lớn đến như thế nào. Trên
thực tế, hiện nay, chỉ có hệ mã hóa độn một lần là an toàn vô điều kiện.
Một hệ thống mã hóa được coi là an toàn tính tốn nếu nó thỏa mãn
một trong hai điều kiện sau:
(1) Chi phí để phá mã vượt quá giá trị mà thơng tin có thể mang lại.
Chẳng hạn, để có thể trộm cắp được 1 tỷ đồng của ngân hàng mà kẻ tấn
công phải chi ra 2 tỷ để phá mã thì cũng khơng mang lại lợi ích nào cho
người phá mã. Trong trường hợp này có thể nói rằng chi phí phá mã vượt
quá giá trị mà thông tin mang lại.
(2) Thời gian phá mã vượt quá tuổi thọ thơng tin. Chẳng hạn như một
thơng báo chỉ có giá trị trong một tháng mà thời gian giải mã kéo dài tới
hai tháng thì có thể xem là thời gian phá mã vượt q tuổi thọ của thơng
tin hay nói cách khác khi giải mã xong kẻ tấn công cũng khơng đạt được
lợi ích gì.
Như vậy, chỉ cần một hệ mã hóa đạt được độ an toàn tính toán là đủ
cho các ứng dụng thực tế. Cho dù kẻ tấn cơng có phá được mã đi chăng
nữa thì thơng tin nhận được cũng không còn giá trị sử dụng. Tuy nhiên, để
141


thỏa mãn được một trong hai điều kiện trên là khó để đánh giá, nên hiện
nay, một hệ thống mã hoá được đánh giá là an toàn nếu nó thỏa mãn hai
điều kiện sau đây: (1) Hệ mã hóa khơng có nhược điểm, (2) Hệ mã hóa có
khóa mã có quá nhiều giá trị không thể thử hết.
Như vậy, nếu một hệ mã hóa thỏa mãn hai điều kiện trên thì được
coi là an tồn và có thể sử dụng trong các ứng dụng cho nhiều lĩnh vực
khác nhau. Có hai hệ mã hóa cơ bản là hệ mã hóa đối xứng (hệ mã hóa
một khóa hay hệ mã hóa khóa bí mật) và hệ mã hóa khơng đối xứng (mã
hóa hai khóa hay hệ mã hóa khóa cơng khai). Hai phương pháp này khác

nhau ở số lượng khóa sử dụng, hệ mã hóa đối xứng sử dụng chỉ một khóa
bí mật để người gửi dùng để mã hóa và người nhận dùng để giải mã. Trong
khi đó, mã hóa khơng đối xứng sử dụng hai khóa khác nhau: một khóa
cơng khai và một khóa bí mật, khóa cơng khai dùng để mã hóa và khóa bí
mật dùng để giải mã. Mỗi phương pháp mã hóa có ưu, nhược điểm riêng
và do đó, có những lĩnh vực ứng dụng khác nhau.
4.1.5. Các kỹ thuật phá mã phổ biến
Phá mã là nỗ lực giải mã một văn bản đã được mã hóa trong trường
hợp khơng biết trước khóa của hệ mã hóa, phá mã dựa trên giả thiết là
người giải mã nhận biết được nguyên bản cần tìm, phá mã còn được gọi là
hack bản mã. Phương pháp phá mã dù tốt đến đâu thì cũng là vô nghĩa nếu
người giải mã không xác định được một nguyên bản sau khi giải có chính
xác hay khơng. Có thể lấy ví dụ một người nước ngoài muốn giải một bản
mã tiếng Việt nhưng lại không biết tiếng, cho dù có tìm được khóa đúng
cũng không thể nhận biết được nội dung văn bản, hiện nay có hai phương
pháp phá mã phổ biến là phương pháp vét cạn và phương pháp thám mã.
4.1.5.1. Phương pháp vét cạn
Phương pháp vét cạn trong phá mã là phương pháp thử tất cả các
khóa có thể cho đến khi xác định được nguyên bản từ bản mã, trên thực tế,
phương pháp này là không khả thi đối với các khoá có độ dài lớn.

142


Như vậy, với kích thước khóa là 168 bit, với chiếc máy có thể giải
mã 1012 mã trong 1giây (chưa có trong thực tế) thì cũng phải mất tới 5.9 x
1030 năm mới xong.
Vì vậy, nếu sử dụng khóa độ dài 168 ký tự thì có thể coi là an toàn
đối với việc phá mã bằng phương pháp vét cạn. Tuy nhiên, với các phương
pháp khác thì hệ mã hóa này có thể khơng an tồn.

Thời gian để dị khóa khi sử dụng phương pháp vét cạn như Bảng
4.1 sau đây.
Bảng 4.1. Thời gian tìm khố đới với các khố có kích thước khác nhau
Kích thước
khóa (bit)

Sớ lượng khóa

Thời gian cần thiết
(1 giải mã/μs)

Thời gian cần thiết
(106 giải mã/μs)

32

232 = 4,3 x 109

231 μs = 35,8 phút

2,15 ms

56
128

256 = 7,2 x 1016
2128 = 3,4 x 1038

255 μs = 1142 năm
2127 μs = 5,4 x 1024 năm


10,01 giờ
5,4 x 1018 năm

168
26 ký tự
(hoán vị)

2168 = 3,7 x 1050

2167 μs = 5,9 x 1036 năm

5,9 x 1030 năm

26! = 4 x 1026

2 x 1026 μs = 6,4 x 1012 năm

6,4 x 106 năm

4.1.5.2. Phương pháp thám mã
Dùng để khai thác những nhược điểm của giải thuật mã hóa và dựa
trên những đặc trưng chung của nguyên bản hoặc một số cặp nguyên bản
- bản mã mẫu.
Để tiện cho việc nghiên cứu độ an tồn của một giải tḥt mã hóa,
người ta phân loại ra một số trường hợp để phá mã. Một tḥt tốn mã hóa
nên đảm bảo được độ an tồn trong mọi trường hợp đề ra:
Chỉ có bản mã: Chỉ biết giải thuật mã hóa và bản mã hiện có.
Biết nguyên bản: Biết thêm một số cặp nguyên bản - bản mã.
Chọn nguyên bản: Chọn 1 nguyên bản, biết bản mã tương ứng.


143


Chọn bản mã: Chọn 1 bản mã, biết nguyên bản tương ứng.
Chọn văn bản: Kết hợp chọn nguyên bản và chọn bản mã.
Trên thực tế có thể gặp tất cả các trường hợp trên. Nhưng khả năng
người giải mã chỉ biết giải thuật mã hóa và một số bản mã là lớn nhất và
đây cũng là trường hợp khó phá mã nhất.
4.2. HỆ MÃ HÓA ĐỐI XỨNG
4.2.1. Khái niệm về hệ mã hóa đới xứng
Mã hóa khóa đối xứng (hay cịn gọi là mã hóa khóa đồng bộ, mã hóa
một khóa) là một hệ mã hóa mà trong đó cả hai q trình mã hóa và giải
mã đều dùng chung một khóa mã.
Để đảm bảo tính an tồn, khóa này phải được giữ bí mật. Vì thế các
tḥt tốn mã hóa khóa đối xứng này cịn có tên gọi khác là mã hóa với
một khóa bí mật (secret key cryptography). Một điều cần lưu ý là khi một
người mã hóa một văn bản gốc (plaintext) thành bản mã bằng một khóa K
(ciphertext) rồi gửi bản mã cho người nhận thì người nhận sau khi nhận
được và muốn giải mã cũng cần phải có khóa K, nghĩa là trước đó hai
người gửi và nhận đã phải trao đổi hoặc chia sẻ khóa K cùng nhau.
Có thể hiểu mã hóa đối xứng (mã hố khố bí mật) là hệ thống mã
hóa mà bên gửi và bên nhận tin cùng sử dụng chung một khóa. Tức là việc
mã hóa và giải mã đều dùng một khóa chung. Đây là kỹ thuật mã hóa duy
nhất trước những năm 1970 và hiện vẫn được dùng rất phổ biến. Mã hóa
đối xứng còn được gọi mà mã hố khóa riêng hay khóa bí mật để phân biệt
với hệ thống mã hóa khóa cơng khai hay hệ mã hóa hai khóa hiện nay.
Một hệ thống mã hóa đối xứng gồm có 5 thành phần cơ bản gồm:
(1) Ngun bản: bản thơng điệp trước khi được mã hóa hay nguyên
bản.

(2) Giải thuật mã hóa: thuật toán dùng để mã hóa nguyên bản hay
chuyển đổi nguyên bản thành bản mã.

144


(3) Khóa bí mật: Khóa mã, hay khóa được dùng trong q trình mã
hóa và giải mã.
(4) Bản mã: thơng điệp sau khi được mã hóa hay bản mã.
(5) Giải thuật giải mã: thuật toán dùng để giải mã hay chuyển đổi
bản mã thành ngun bản.

Hình 4.2. Mơ hình hệ mã hóa đới xứng

4.2.2. Ưu điểm và nhược điểm của hệ mã hóa đới xứng
Ưu điểm chính của hệ thống mã hóa đối xứng là mô hình khá đơn
giản. Mọi người có thể dễ dàng tạo ra được một thuật toán mã hóa đối
xứng cho riêng mình.
Chẳng hạn như một tḥt tốn nhân thơng báo với một khóa K nào
đó để tạo ra bản mã. Việc giải mã chỉ đơn giản là chia cho K. Với sự đơn
giản và rõ ràng của mình, các thuật toán mã hóa đối xứng hiện nay đều dễ
cài đặt và hoạt động hiệu quả. So với các tḥt tốn mã hóa khóa cơng
khai, các thuật toán mã hóa đối xứng hoạt động nhanh và hiệu quả hơn
nhiều do tốc độ mã hoá và giải mã cao. Vì vậy, tuy gặp một số nhược điểm
nhưng hệ mã hóa đối xứng vẫn được sử dụng trong nhiều ứng dụng hiện nay.
Nhược điểm chính của hệ thống mã hóa đối xứng chính là việc dùng
chung khóa của q trình mã hóa và giải mã. Rõ ràng rằng, khi đã không
thể truyền tin trên một kênh truyền tin an tồn thì làm thế nào đảm bảo
145



được việc trùn khóa bí mật từ người gửi đến người nhận là an toàn. Mâu
thuẫn này nảy sinh ra việc muốn có một kênh an toàn để truyền dữ liệu thì
trước tiên phải có một kênh an tồn để trùn khố mã. Trong mơ hình mã
hóa đối xứng, việc bảo mật và phân phối khóa là cơng việc khó khăn, phức
tạp nhất. Như vậy, tính bảo mật của phương pháp mã hoá này phụ thuộc
vào việc giữ bí mật của khóa K, nhưng khóa K thường cũng phải được
truyền trên mơi trường trùn tin nên rất dễ bị hóa giải (bị “bẻ khóa”).
Mặt khác, không thể gửi thông tin đã mã hóa cho một người nào đó
khi khơng có khả năng gửi khóa cho họ và số lượng khóa sử dụng sẽ rất
lớn khi số người tham gia trao đổi thơng tin lớn (n(n-1)/2 khóa cho n
người).
4.2.3. Các hệ mã hóa đới xứng cở điển
Các hệ mã hóa đối xứng cổ điển được chia thành hai nhóm: Mã hóa
đối xứng cổ điển dựa trên dịch chuyển mã và mã hóa đối xứng cổ điển dựa
trên hoán vị.
Các hệ mã hóa đối xứng dựa trên dịch chuyển mã bao gồm: Mã hóa
Ceasar (mã hóa cộng); mã hóa nhân, mã hóa Vigenere, mã hóa khóa tự
động (mã hóa Vigenere cải tiến),...
Mã hóa đối xứng cổ điển dựa trên hoán vị bao gồm: mã hóa hàng,
mã hóa hàng rào, mã hóa khối nhị phân đơn giản và Monophabetic Cipher
(mã hóa thay thế),...
4.2.3.1. Hệ mã hóa thay thế Monophabetic Cipher
Hệ mã hóa theo phương pháp này dựa trên phép hoán vị trong một
bảng chữ cái nào đó. Chẳng hạn, trên bảng chữ cái tiếng Anh, có thể tiến
hành mã hoá như sau:
Bảng 4.2. Ví dụ mã hóa Monophabetic dựa trên bảng chữ cái
Ký tự cần mã

a


b

c

d

..........

x

y

z

Ký tự thay thế

F

G

N

T

..........

K

P


L

146


Với tḥt tốn mã hố này, ta có:
Plaintext: a Bad day
Ciphertext F GFT TFP
Trên đây là một ví dụ mang tính minh họa cho mã hóa thay thế, thực
tế, bài tốn này có thể sử dụng bất kỳ một hốn vị nào của bảng chữ cái để
thực hiện mã hoá, ngồi việc sử dụng bảng chữ cái, có thể sử dụng bất cứ
một bảng ký hiệu nào để tiến hành thay thế chuỗi tin cần mã hố. Xét ví
dụ sau:
Bảng 4.3. Mã hóa Monophabetic dựa trên chuỗi nhị phân
Chuỗi cần mã

000

001

010

011

100

101

110


111

Chuỗi thay thế

101

111

000

110

010

100

001

011

Theo bảng này, ta có:
Plaintext: 100101111
Ciphertext: 010100011
Với phương pháp mã hoá này, để giải mã chuỗi nhận được, yêu cầu
bên nhận tin cũng phải biết khóa được sử dụng để mã hóa, do đó yêu cầu
cần có một giao thức để trao đổi khóa giữa người gửi và người nhận tin.
Việc trao đổi khóa này là tùy vào người gửi và người nhận, có thể thực
hiện đơn giản bằng cách gặp mặt trao đổi trực tiếp, chuyển thông qua mạng
Internet, hay nhờ người trung gian,...

4.2.3.2. Hệ mã hóa hàng
Mã hóa hốn vị hàng (Column fence) cịn gọi là mã hóa hốn vị đơn
bảng với một khóa cho trước, khóa có thể là một hốn vị của k số tự nhiên
đầu tiên hoặc là một chuỗi văn bản.
Nguyên tắc của mã hóa hàng là viết các kí tự trong nguyên bản P
theo hàng ngang trên k cột, k là số tự nhiên được chọn để lấy hoán vị
147


hoặc k là số ký tự xuất hiện trong chuỗi ký tự làm khóa. Sau đó, viết lại
các kí tự trên từng cột theo thứ tự xuất hiện trong khóa k.
Bảng 4.4. Minh họa mã hóa hàng với K = 4 3 1 2 5 6 7
Khóa

4

3

1

2

5

6

7

Hàng 1


A

T

T

A

C

K

P

Hàng 2

O

S

T

P

O

N

E


Hàng 3

D

U

N

T

I

L

T

Hàng 4

W

O

A

M

*

*


*

Ví dụ: Với nguyên bản: ATTACK POSTPONED UNTIL TWO AM
và khóa K là một hốn vị của 7 số tự nhiên đầu tiên. Khóa K=4 3 1 2 5 6 7,
khi đó hệ mã hóa được tiến hành theo Bảng 4.4. Khi đó bản mã thu được
sẽ là: TTNAAPTMTSUOAODWCOI*KNL*PET*
Ví dụ với nguyên bản: ATTACK POSTPONED UNTIL TWO AM
và khóa K = “PRIVATE” là một hoán vị của K như sau K=TEVAPRI, khi
đó hệ mã hóa được tiến hành theo bảng sau:
Khóa

T

E

V

A

P

R

I

Hàng 1

A

T


T

A

C

K

P

Hàng 2

O

S

T

P

O

N

E

Hàng 3

D


U

N

T

I

L

T

Hàng 4

W

O

A

M

*

*

*

Khi đó bản mã thu

TTNAAPTMAODWTSUO

được

sẽ

là:

COI*KNL*PET

*

Nguyên tắc chung để giải mã hệ mã hóa hàng là chia tổng số ký tự
xuất hiện trong bản mã cho tổng số ký tự trong khóa hoặc số tự nhiên K.
Sau đó viết lại theo đúng thứ tự của khóa.
148


Ví dụ với bản mã: TTNAAPTMTSUOAODWCOI*KNL*PET*
Tổng có 28 ký tự, đem chia cho K=7, vậy được các nhóm có 4 ký tự
như sau:
TTNA/APTM/TSUO/AODW/COI*/KNL/*PET*
Sau đó viết lại theo khóa K=4 3 1 2 5 6 7 thì ta thu được nguyên bản:
ATTACK POSTPONED UNTIL TWO AM ***
4.2.3.3. Hệ mã hóa hàng rào
Hệ mã hóa hốn vị hàng rào (Row fence) cũng là một kiểu hoán vị
ký tự dựa trên nguyên tắc xây dựng hàng rào cho các lâu đài từ thời trung
cổ, càng nhiều lớp hàng rào thì khả năng bảo vệ càng chắc chắn, các hàng
rào được xây dựng xen kẽ nhau nhằm lớp đằng sau hỗ trợ cho lớp đằng
trước.

Nguyên tắc chung là dựa trên số lớp hàng rào gọi là khóa K, sau đó
viết theo chiều sâu của hàng rào để xây dựng bản mã. Sau đó lấy các ký tự
trên từng hàng để làm hoán vị và thu được bản mã.
Ví dụ với nguyên bản: ATTACK AT MIDNIGHT và độ dày của
hàng rào là 2 khi đó khóa K=2 và bản mã được xây dựng theo bảng sau:
Bảng 4.5. Minh họa mã hóa hàng rào với K=2
R1

A

T

C

A

M

D

G

R2

T

A

K


T

I

N

H

T

Khi đó bản mã thu được bằng cách lấy các ký tự trên R1 ghép với
các ký tự ở R2 và thu được: ATCAMDIHTAKTINGT
Việc giải mã cũng được thực hiện gần giống như hệ mã hóa hàng,
lấy tổng số ký tự chia cho số hàng, sau đó viết lại theo hàng và lấy theo
từng cột thì sẽ thu được nguyên bản.

149


4.2.3.4. Hệ mã hóa Ceasar (Mã hóa cộng tính đơn bảng)
Trong phương pháp này, việc mã hóa được thực hiện bằng cách dịch
chuyển chuỗi ký tự trong nguyên bản đi một giá trị cố định nào đó theo
trình tự của một bảng chữ cái. Với phương pháp này, khóa mã chính là số
được sử dụng để dịch chuyển, phương pháp dịch chuyển lần đầu được
Ceasar cơng bố nên cịn được gọi là mã hóa Ceasar. Chẳng hạn, phương
pháp mã hóa cộng với khóa K = 3. Khi đó, ta có:
Bảng 4.6. Minh họa mã hóa cợng tính với K=3
Ký tự cần mã

a


b

c

d

..........

x

y

z

Ký tự thay thế

D

E

F

G

.........

A

B


C

Công thức sử dụng để mã hóa trong phương pháp này là:
Y = X  Z,
Trong đó X là chuỗi ký tự cần mã hóa, Z là giá trị của khóa và Y là
bản mã thu được, phép tính  là phép cộng đồng dư modun 26 (phép chia
trung hoa).
Ưu điểm nổi bật của phương pháp này là đơn giản, dễ sử dụng. Tuy
nhiên do hạn chế là khơng gian khóa nhỏ (số lượng khóa có thể sử dụng)
nên kẻ tấn cơng có thể tấn cơng bằng phương pháp vét cạn và tìm ra khóa
khá dễ dàng.
Mã hóa cộng tính với khóa K=3 có thể minh họa trong Hình 5.5.

Hình 4.3. Mã hóa cợng tính với bước dịch chuyển bằng 3

150


4.2.3.5. Hệ mã hố nhân tính
Phương pháp mã hoá nhân tính được thực hiện tương tự như phương
pháp mã hoá cộng tính đã trình bày trong mục 4.2.3.4, trong đó, phép cộng
đồng dư được thay thế bằng phép nhân đồng dư:
Y=X  Z
Tuy nhiên, một điểm chú ý là không phải mọi giá trị khóa từ 0 đến
25 đều có thể sử dụng làm khóa mã, mà chỉ có những giá trị nguyên tố
cùng nhau với 26 mới có thể dùng làm khóa được, vì vậy, chỉ có 12 khóa
có thể sử dụng. Giả sử sử dụng K= 2 làm khóa mã, khi đó ta có:
2*1 = 2 mod 26 tức là ký tự B sẽ được chuyển thành ký tự C trong
bản mã.

2*14 = 2 mod 26 nghĩa là ký tự O cũng được chuyển thành ký tự C
trong bản mã
Như vậy, cùng một ký tự C trong bản mã, có hai giá trị tương ứng
trong nguyên bản, điều này dẫn đến tình trạng nguyên bản thu được sẽ có
ngữ nghĩa nhập nhằng, khơng thống nhất, hay nói cách khác là khơng thể
giải mã được bản mã này. Vì vậy, các khóa K có giá trị khơng đồng dư với
26 thì khơng được sử dụng cho hệ mã hóa nhân tính.
Trong phương pháp mã hoá nhân tính, một hạn chế là số lượng khóa
được sử dụng là rất ít nên có thể dễ dàng bị phá mã bằng thuật toán vét
cạn, để tăng số lượng khóa người ta thường kết hợp phương pháp mã hoá
cộng tính và phương pháp mã hoá nhân tính làm một. Chẳng hạn, sử dụng
công thức:
Y = X Z  K
Tùy vào thực tế hiện nay có thể thực hiện việc cộng tính trước hay
thực hiện nhân tính trước. Thứ tự thực hiện sẽ quyết định cách thức giải
mã cho bản mã thu được.

151


4.2.3.6. Hệ mã hố Vigenere (Mã hóa cộng tính đa bảng)
Hệ mã hóa Vigenère được phát triển dựa trên mã hóa cộng tính
Ceasar, do hạn chế của mã hóa cộng tính đơn bảng là số lượng khóa quá
bé, có thể phá mã trong thời gian ngắn bằng vét cạn nên Vigenere cải tiến
thành hệ mã hóa cộng tính đa bảng.
Nguyên tắc dựa trên việc dịch chuyển xoay vòng theo thứ tự chữ cái
của khóa K. Chẳng hạn với khóa D= k1k2... kd và nguyên bản P, khi đó
bản mã thu được dựa trên việc dịch chuyển thứ tự từng chữ cái trong P
theo thứ tự ký tự tương ứng trong D. Với mỗi chữ cái của văn bản P, khi
đó, đặt p = 0 nếu chữ cái là a, p = 1 nếu chữ cái là b,... sau đó bản mã thu

được dựa trên công thức C = E(p) = (p + i) mod 26 với i là kí tự thứ i trong
khóa D.
Mã hóa và giải mã Vigenere dựa trên ngun tắc gọi là hình vng
Vigenere bao gồm 26 hàng và 26 cột các chữ cái tiếng Anh. Mỗi hàng dịch
chuyển theo thứ tự của chữ cái đầu hàng, mỗi cột là giá trị các ký tự cần
mã hóa hoặc giải mã.
Ví dụ với nguyên bản: “ATTACK AT MIDNIGHT” và khóa
K= “CIPHER” thì bản mã được xây dựng như Bảng 4.7 và bản mã thu
được sẽ là: “CBIHGBCBBPHEKOWA”
Bảng 4.7. Minh họa mã hóa Vigenere
Nguyên
bản

A

T

T

A

C

K

A

T

M


I

D

N

I

G

H

T

Khóa K

C

I

P

H

E

R

C


I

P

H

E

R

C

I

P

H

Bản mã

C

B

I

H

G


B

C

B

B

P

H

E

K

O

W

A

152


Hình 4.4. Hình vng Vigenere dùng để mã hóa và giải mã

4.2.3.7. Hệ mã hoá khóa tự động (Mã hóa cộng tính đa bảng cải tiến)
Hệ mã hóa khóa tự động được cải tiến dựa trên hệ mã hóa Vigenere,

thay vì khóa được lặp đi lặp lại để mã hóa ngun bản, thì hệ mã hóa khóa
tự động lấy đoạn nguyên bản đầu tiên gắn vào khóa để làm khóa tự động
trong xây dựng bản mã.
Nguyên tắc hoạt động tương tự như hệ mã hóa Vigenere, ví dụ với
ngun bản: “ATTACK AT MIDNIGHT” và khóa K=”CIPHER” thì bản
mã của hệ mã hóa khóa tự động được xây dựng như Bảng 4.8 và bản mã
thu được sẽ là: “CBIHGBAMFIFNBSPW”.

153


Bảng 4.8. Minh họa mã hóa khóa tự đợng
Ngun A
bản

T

T

A

C

K

A

T

M


I

D

N

I

G

H

T

Khóa K

C

I

P

H

E

R

A


T

T

A

C

A

T

M

I

D

Bản mã C

B

I

H

G

B


A

M

F

I

F

N

B

S

P

W

Các hệ mã hóa dịch chuyển đều có thể giải mã dựa trên hình vng
Vigenere, với các hệ mã hóa đơn bảng, chỉ cần lấy trên một hàng, còn đối
với các hệ mã hóa đa bảng thì lấy trên các hàng khác nhau tương ứng với
ký tự trong khóa.
4.2.4. Hệ mã hóa đới xứng hiện đại
4.2.4.1. Vài nét về hệ mã hóa DES (Data Encryption Standard)
Với sự ra đời và phát triển nhanh chóng của máy tính điện tử, đặc
biệt là mạng máy tính đã làm cho việc trao đổi thông tin trở nên thuận tiện
và trở thành nhu cầu của tất cả mọi người cũng như các tổ chức, doanh

nghiệp trên tồn thế giới. Chính vì thế, nhu cầu về việc đảm bảo an tồn
cho các thơng tin trong quá trình trao đổi trên các kênh truyền thông ngày
càng được nâng cao. Từ sau năm 1949 là thời kỳ bùng nổ của ngành khoa
học mã hóa với rất nhiều phương pháp mã hóa mới ra đời, cho đến những
năm 1970 của thế kỷ trước thì nhu cầu về một chuẩn mã hóa chung về mặt
thuật toán đã trở nên rõ ràng với các lý do sau: (1) Sự phát triển nhanh
chóng của cơng nghệ thơng tin và mạng máy tính làm bùng nổ nhu cầu về
an tồn và bảo mật thông tin, (2) Các thuật toán mã hóa theo các phương
pháp trước đây không còn phù hợp trong điều kiện mới, (3) Các thiết bị
khác nhau đòi hỏi cần có sự trao đổi thơng tin được mã hóa khác nhau.
Các thuật toán mã hóa trong giai đoạn này cần thiết phải có các
tính chất:
(1) Bảo mật ở mức cao,

154


(2) Thuật toán được đặc tả và công khai hoàn toàn, nghĩa là tính bảo
mật khơng dựa trên tḥt tốn,
(3) Dễ dàng cài đặt,
(4) Có tính mềm dẻo, thích hợp với nhiều ứng dụng.
Trước những yêu cầu bức thiết trên, vào năm 1973 chính phủ Mỹ đã
có những hỗ trợ để khuyến khích cho việc phát triển một hệ thống mã hõa
mới và kết quả là đến năm 1977 hãng IBM đã cho ra đời và phát triển hệ
thống mã DES như chúng ta vẫn sử dụng ngày nay.
4.2.4.2. Mô tả mã hóa DES (Data Encryption Standard)
DES là tḥt tốn mã hoá khối (Block Algrithms), với cỡ của một
khối là 64 bit. Một khối 64 bit bản rõ được đưa vào, sau khi mã hoá dữ
liệu đưa ra là một khối bản mã 64 bit. Cả mã hoá và giải mã đều sử dụng
cùng một thuật toán và khoá. Khoá mã có độ dài 64 bit, trong đó có 8 bit

chẵn lẻ được sử dụng để kiểm soát lỗi. Các bit chẵn lẻ nằm ở các vị trí 8,
16, 24,..., 64. Tức là cứ 8 bit khoá thì trong đó có một bit kiểm sốt lỗi, bit
này qui định số bit có giá trị “1” của khối 8 bit đó theo tính bù chẵn
Thuật toán DES được tiến hành theo 3 giai đoạn:
1. Với bản rõ cho trước X, một xâu bit x0 sẽ được xây dựng bằng
cách hoán vị các bit của X theo phép hoán vị cố định ban đầu IP.
Ta viết:
𝑥0 = 𝐼𝑃(𝑋) = 𝐿0 𝑅0 , trong đó 𝐿0 gồm 32 bit đầu và 𝑅0 là 32 bit
cuối.
2. Sau đó tính toán 16 lần lặp theo một hàm xác định.
Ta sẽ tính 𝐿𝑖 𝑅𝑖 , 1  i 16 theo quy tắc sau:
𝐿𝑖 = 𝑅𝑖 − 1 ; 𝑅𝑖 = 𝐿𝑖 − 1  𝑓(𝑅𝑖 − 1, 𝐾𝑖 ).
Trong đó  kí hiệu phép hoặc loại trừ của hai xâu bit (cộng theo
modulo 2), f là một hàm có thể lấy nghịch đảo, cịn K1,K2,..., K16 là các
xâu bit độ dài 48 được tính như hàm của khoá K.
155


Trên thực tế mỗi Ki là một phép chọn hoán vị bit trong K, khi đó K1,
K2, ..., K16 sẽ tạo thành bảng khố, một vịng của phép mã hoá được mơ tả
trên Hình 4.5.
3. Áp dụng phép hốn vị ngược 𝐼𝑃 −1 cho xâu bit 𝑅16 𝐿16 , ta thu
được bản mã Y.
Tức là 𝑦 = 𝐼𝑃 −1 (𝑅16 𝐿16 ), chú ý thứ tự đã đảo của 𝑅16 , 𝐿16 .
Sơ đồ chung của hệ thống mã DES như sau:
Theo sơ đồ trên chúng ta thấy DES là phương pháp mã hóa khối với
độ dài khối vào là X=64 bit, đầu ra là Y=64 bit và độ dài khóa là K=56 bit.
DES thực hiện trên từng khối 64 bit bản rõ. Sau khi thực hiện hoán
vị khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nửa 32 bit.
Tiếp đó, có 16 vòng lặp giống hệt nhau được thực hiện, được gọi là các

hàm ƒ, trong đó dữ liệu được kết hợp với khoá.
Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối
cùng (hoán vị ngược) sẽ kết thúc tḥt tốn.
Cơ bản có thể nói rằng DES cơ bản có các tính chất như sau:
Sử dụng khố 56 bit.
Xử lý khối vào 64 bit, biến đổi khối vào thành khối ra 64 bit.
Mã hoá và giải mã được sử dụng cùng một khoá.
DES được thiết kế để chạy trên phần cứng.
DES thường được sử dụng để mã hố các dịng dữ liệu mạng và mã
hố dữ liệu được lưu trữ trên đĩa.
4.2.4.3. Giải mã DES và vấn đề an toàn của DES
Sau khi thay đổi, hoán vị, XOR và dịch vịng, chúng ta có thể nghĩ
rằng tḥt tốn giải mã phức tạp, khó hiểu như tḥt tốn mã hố và hồn
tồn khác tḥt tốn mã hố. Trái lại, sự hoạt động được lựa chọn để
156


đưa ra một đặc tính hữu ích: cùng tḥt tốn làm việc cho cả mã hố và
giải mã.
Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hố
một khối. Chỉ có sự khác nhau đó là các khoá phải được sử dụng theo thứ
tự ngược lại. Nghĩa là, nếu các khố mã hố cho mỗi vịng là k1, k2, k3,..,
k15, k16 thì các khố giải là k16, k15,..., k3, k2, k1. Giải thuật để tổng hợp
khoá cho mỗi vòng cũng tương tự. Có khác là các khoá được dịch phải và
số vị trí bit để dịch được lấy theo chiều ngược lại.
Sự an toàn của DES: Đã có rất nhiều sự nghiên cứu về độ dài của
khố, số vịng lặp và thiết kế của hộp S (S-boxes). Hộp S có đặc điểm là
khó hiểu, khơng có bất cứ sự rõ ràng nào cũng như lí do vì sao chúng phải
như vậy. Mọi tính tốn trong DES ngoại trừ các hộp S đều tuyến tính, tức
việc tính XOR của hai đầu ra cũng giống như phép XOR hai đầu vào rồi

tính toán đầu ra. Các hộp S chứa đựng thành phần phi tuyến của hệ là yếu
tố quan trọng nhất đối với sự an toàn của hệ thống.
Tính bảo mật của một hệ mã hoá đối xứng là một hàm hai tham số là
độ phức tạp của thuật toán và độ dài của khoá. Giả sử rằng tính bảo mật
chỉ phụ thuộc vào độ phức tạp của tḥt toán, có nghĩa rằng sẽ khơng có
phương pháp nào để phá vỡ hệ thống mật mã hơn là cố gắng thử mọi khố
có thể, phương pháp đó được gọi là Brute-Force Attack hay cịn gọi là tấn
cơng vét cạn xoay vịng khóa. Nếu khoá có độ dài 8 bit, suy ra sẽ có 28=256
khố, vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra khoá đúng. Nếu khố
có độ dài 56 bit, thì sẽ có 256 khố có thể sử dụng.
Giả sử một Supper-computer có thể thử một triệu khố trong một
giây, thì nó sẽ cần 2000 năm để tìm ra khoá đúng, còn nếu khoá có độ dài
64 bit, thì với chiếc máy trên sẽ cần 600.000 năm để tìm ra khoá đúng
trong số 264 khoá. Nếu khoá có độ dài 128 bit, thì sẽ mất 1025 năm để tìm
ra khoá đúng. Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025 thì một thời
gian q dài. Với một khố 2048 bit, một máy tính song song thực hiện
hàng tỉ tỉ phép thử trong một giây sẽ tiêu tốn một khoảng thời gian là 10597
năm để tìm ra khố.
157


Hình 4.5. Sơ đồ chung của DES

Hệ mã hóa DES hiện thời có thể đạt được tốc độ mã hố cực nhanh
và có nhiều ứng dụng trong thực tiễn, cơng ty Digital Equipment đã thông
báo tại hội nghị CRUPTO’92 rằng họ sẽ chế tạo một xung có 50 nghìn
xung có thể mã hoá với tốc độ 1 Gbit/s bằng cách xung nhịp có tốc độ
250MHz. Giá của xung này vào khoảng 300$.
Tới năm 1991 đã có 45 ứng dụng phần cứng và chương trình cơ sở
của DES được Uỷ ban tiêu Chuẩn quốc gia Mỹ (NBS) chấp thuận. Một ứng

158


dụng quan trọng của DES là trong giao dịch ngân hàng Mỹ - (ABA) DES
đã được dùng để mã hoá các số định danh cá nhân (PIN) và hỗ trợ trong
xác thức việc chuyển tài khoản bằng máy ATM. DES cũng được Hệ thống
chi trả giữa các nhà băng của Ngân hàng hối đoái (CHIPS) dùng để xác
thực các giao dịch lớn. DES còn được sử dụng rộng rãi trong các tổ chức
chính phủ. Chẳng hạn như bộ năng lượng, Bộ Tư pháp và Hệ thống dự trữ
liên bang Mỹ.
4.3. HỆ MÃ HÓA KHÔNG ĐỐI XỨNG
4.3.1. Khái niệm về hệ mã hóa khơng đới xứng
Các tḥt toán mã hóa khóa đối xứng có một nhược điểm là nếu hai
người dùng muốn trao đổi thơng tin bí mật cần phải trao đổi khóa bí mật
trước đó. Khóa bí mật này cần phải được trao đổi theo một cách thức an
tồn, khơng phải bằng các phương thức thường dùng để liên lạc trong mơi
trường mở vì dễ bị lộ. Điều này khó thực hiện và nói chung là khơng thể
đảm bảo bí mật, nhất là trong trường hợp muốn trao đổi thông tin với nhiều
đối tác thì thực tế là khơng thực hiện được.
Vì vậy mã hóa khóa cơng khai (hay khóa bất đối xứng) được đưa ra
như là một giải pháp thay thế. Thực ra mã hóa bất đối xứng khơng thay thế
hồn tồn mã hóa đối xứng mà người ta sử dụng đồng thời cả hai loại để
bổ sung, hỗ trợ cho nhau.
Năm 1874, William Stanley Jevons xuất bản một cuốn sách mô tả
mối quan hệ giữa các hàm một chiều (one way function) với mật mã học,
đồng thời đi sâu vào bài toán phân tích ra thừa số nguyên tố (sử dụng trong
thuật toán RSA). Tháng 7 năm 1996, một nhà nghiên cứu đã bình luận về
cuốn sách trên như sau: Trong cuốn The Principles of Science: A Treatise
on Logic and Scientific Method được xuất bản năm 1890, William S.
Jevons đã phát hiện nhiều phép toán rất dễ thực hiện theo một chiều nhưng

rất khó theo chiều ngược lại, điều đó chứng tỏ nhiều tḥt tốn mã hóa
thực hiện rất dễ dàng trong khi giải mã thì rất khó khăn. Chẳng hạn tác giả
nêu ra bài tốn: ta có thể nhân để tìm tích số của các số ngun tố nhưng
159


×