You are on page 1of 162

CHƯƠNG 3

LÝ THUYẾT MẬT MÃ

Gv: Trịnh Huy Hoàng


Nội dung trình bày
1. Giới thiệu
2. Lịch sử phát triển
3. Các khái niệm cơ sở
4. Mã hóa đối xứng
5. Mã hóa bất đối xứng
6. Chữ ký điện tử

Truyền và bảo mật thông tin 2


MẬT THƯ 1: 45,24,34 – 12,11 –
13 – 14,35,11,34 – 31,15,45
1 2 3 4 5
1 A B C D E
2 F G H I J
TIN BA C
3 K L M N O ĐOÀN KẾT
4 P Q R S T
5 U V W X Y

Truyền và bảo mật thông tin 3


MẬT THƯ 2:
TÍ VỀ –TUẤT THƯƠNG–HỢI NHẤT - SỬU HƯỚNG-
DẬU YÊU- DẦN MẶT- THÌN BẠN – MẸO TRỜI- TỊ SẼ –– MÙI
NGƯỜI- NGỌ THẤY - THÂN BẠN

 12 CON GIÁP: TÍ, SỬU, DẦN, MẸO,


12 CON GIÁP: TÍ, SỬU, DẦN, MẸO, THÌN,
THÌN, NGỌ, MÙI, THÂN, DẬU, TUẤT, HỢI
NGỌ, MÙI, THÂN, DẬU, TUẤT, HỢI

VỀ HƯỚNG MẶT TRỜI BẠN SẼ THẤY


NGƯỜI BẠN Y£U THƯƠNG NHẤT

Truyền và bảo mật thông tin 4


Vấn Đề đặt ra là :
 Tại sao chúng ta cần mã hóa?
●Mã hóa là một phương pháp hỗ trợ
rất tốt cho trong việc chống lại những
truy cập bất hợp pháp tới dữ liệu được
truyền đi qua các kênh truyền thông.
●Mã hoá sẽ khiến cho nội dung thông
tin được truyền đi dưới dạng mờ và
không thể đọc được đối với bất kỳ ai
cố tình muốn lấy thông tin đó.

Truyền và bảo mật thông tin


5 5
Truyền và bảo mật thông tin 6
A-GIỚI THIỆU CHUNG

• Mật mã (Cryptography) là ngành


khoa học nghiên cứu các kỹ thuật
toán học nhằm cung cấp các dịch vụ
bảo vệ thông tin.

W. Stallings (2003), Cryptography and


Network Security: Principles and Practice,
Third Edition, Prentice Hall

Truyền và bảo mật thông tin 7


Một số thuật ngữ

 Cryptography
 Cryptanalysis
 Cryptology = Cryptography +
Cryptanalysis
 Security
 Steganography

Truyền và bảo mật thông tin 8


Cách hiểu truyền thống: giữ bí mật nội dung trao đổi
GỬI và NHẬN trao đổi với nhau trong khi TRUNG
GIAN tìm cách “nghe lén”

GỬI NHẬN

TRUNG GIAN
Truyền và bảo mật thông tin 9
 Bảo mật thông tin (Secrecy): đảm bảo thông tin được giữ bí mật.
 Toàn vẹn thông tin (Integrity): bảo đảm tính toàn vẹn thông tin trong liên
lạc hoặc giúp phát hiện rằng thông tin đã bị sửa đổi.
 Xác thực (Authentication): xác thực các đối tác trong liên lạc và xác thực
nội dung thông tin trong liên lạc.
 Chống lại sự thoái thác trách nhiệm (Non-repudiation): đảm bảo một đối
tác bất kỳ trong hệ thống không thể từ chối trách nhiệm về hành động mà
mình đã thực hiện
 Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần
đến người nhận mà người gửi không hề hay biết.

Truyền và bảo mật thông tin 10


Mô tả một thể thức của mật mã (người gửi Alice làm rối
loạn thông tin, người nhận Bod tìm thuật toán để giải mã
thông tin)

Truyền và bảo mật thông tin 11


• Tính bảo mật thông tin:
Đảm bảo thông tin đến đúng người nhận.

Truyền và bảo mật thông tin 12


• Ví dụ:
– NHẬN cần đảm bảo là nhận chính xác nội dung mà
GỬI đã gửi
– Cần đảm bảo rằng TRUNG GIAN không can thiệp
để sửa nội dung thông điệp mà GỬI gửi cho NHẬN
• Tính toàn vẹn thông tin (Integrity)
GỬI NHẬN

TRUNG GIAN
Truyền và bảo mật thông tin 13
• Ví dụ:
– NHẬN chờ GỬI “xác nhận” khi đến thời điểm thực
hiện công việc
– Cần đảm bảo rằng TRUNG GIAN không can thiệp
để tạo “xác nhận” giả

Truyền và bảo mật thông tin 14


• Ví dụ:
– NHẬN nhận được 1 thông điệp mà GỬI đã gửi
– GỬI không thể “chối” rằng không gửi thông điệp
này cho NHẬN
• Chống lại sự thoái thác trách nhiệm (Non-
repudiation)
GỬI NHẬN

Truyền và bảo mật thông tin 15


B- LỊCH SỬ VÀ THÀNH TỰU
CỦA MẬT MÃ HỌC
 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 - các phương pháp
mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ
những dụng cụ cơ khí đơn giản.
 Vào đầu 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

Truyền và bảo mật thông tin 16


B- LỊCH SỬ VÀ THÀNH TỰU
CỦA MẬT MÃ HỌC
 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ã).
 Phát hiện ra bức điện Zimmermann khiến Hoa Kỳ
tham gia Thế chiến I
 Việc phá mã thành công hệ thống mật mã của Đức
Quốc xã góp phần làm đẩy nhanh thời điểm kết thúc
thế chiến II.
 Đầu thập kỷ 1970, các kỹ thuật liên quan tới mật mã
học hầu như chỉ nằm trong tay các chính phủ. Hai sự
kiện đã khiến cho mật mã học trở nên thích hợp cho
mọi người, đó là: sự xuất hiện của tiêu chuẩn mật mã
hóa DES và sự ra đời của các kỹ thuật mật mã hóa
khóa công khai.

Truyền và bảo mật thông tin 17


B- LỊCH SỬ VÀ THÀNH TỰU
CỦA MẬT MÃ HỌC
 1. MẬT MÃ HỌC CỔ ĐIỂN
 2. MẬT MÃ HỌC TRUNG CỔ
 3. MẬT MÃ HỌC TỪ 1800 TỚI THỂ CHIẾN
THỨ II
 4. MẬT MÃ HỌC TRONG THỂ CHIẾN THỨ II
 5. MẬT MÃ HỌC HIỆN ĐẠI

Truyền và bảo mật thông tin 18


1-MẬT MÃ HỌC CỔ ĐIỂN
 Chữ tượng hình không
tiêu chuẩn tìm thấy
trên các bức tượng Ai
Cập cổ đại (cách đây
khoảng 4500). 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à có vẻ như 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.
Truyền và bảo mật thông tin 19
1-MẬT MÃ HỌC CỔ ĐIỂN
 Người Hy Lạp cổ đại đã biết
sử dụng các kỹ thuật mật
mã: mật mã scytale
 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ã
 Khoảng năm 500 đến năm
600: mật mã hóa Atbash ra
đời là phương pháp mã hóa
Scytale, một thiết bị mật mã
thay thế cho bảng chữ cái hóa cổ đại
đơn giản
http://www.cqrsoft.com/history/scytale.htm
Truyền và bảo mật thông tin 20
K=3

Truyền và bảo mật thông tin 21


2 - THỜI TRUNG CỔ
 Khoảng năm 1000 đến thể chiến thứ II: kỹ
thuật phân tích tần suất đã được phát
minh để phá vỡ các hệ thống mật mã đơn
ký tự, là từ việc phân tích bản kinh Qur'an,
do nhu cầu tôn giáo.
 Năm 1465: Alberti đã sáng tạo ra kỹ thuật
mật mã đa ký tự

Truyền và bảo mật thông tin 22


2 - THỜI TRUNG CỔ
 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ã.
 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)
 Thế kỷ 19: Mật mã học phát triển một cách có hệ
thống không còn là tiếp cận nhất thời, vô tổ chức.

Truyền và bảo mật thông tin 23


3 – MẬT MÃ HỌC TỪ NĂM 1800
ĐẾN THẾ CHIẾN THỨ II
 Kỷ nguyên của Chiến tranh Krim (Crimean War)
xuất hiện công trình của Charles Babbage về toán
phân tích mật mã đơn ký tự tuy muộn màng nhưng
Friedrich Kasiski(người Phổ) khôi phục và công bố.
 Trong thập niên 1840
 Edgar Allan Poe đã xây dựng một số phương
pháp có hệ thống để giải mật mã ( Philadelphia,
mời mọi người đệ trình cácphương pháp mã hóa
của họ, và ông là người đứng ra giải)
 Luận văn về các phương pháp mật mã hóa trở
thành những công cụ có lợi, được áp dụng vào
việc giải mã của Đức trong Thế chiến II.

Truyền và bảo mật thông tin 24


3 – MẬT MÃ HỌC TỪ NĂM 1800
ĐẾN THẾ CHIẾN THỨ II
 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
 William F. Friedman dùng kỹ thuật thống
kê để phân tích và kiến tạo mật mã.
 Marian Rejewski đã bước đầu thành công
trong việc bẻ gãy mật mã của hệ thống
Enigma của Quân đội Đức

Truyền và bảo mật thông tin 25


4 – MẬT MÃ HỌC THỜI THẾ CHIẾN THỨ II
 Trong thế chiến II, các hệ thống mật mã cơ khí và cơ
điện tử được sử dụng rộng rãi mặc dù các hệ thống
thủ công vẫn được dùng tại những nơi không đủ điều
kiện
 Các kỹ thuật phân tích mật mã đã có những đột phá
 Người Đức đã sử dụng rộng rãi một hệ thống máy
rôto cơ điện tử, dưới nhiều hình thức khác nhau, có
tên gọi là máy Enigma.

Truyền và bảo mật thông tin 26


4 – MẬT MÃ HỌC THỜI THẾ CHIẾN THỨ II
 Máy Enigma được Phát
Xít Đức sử dụng rộng rãi;
việc phá vỡ hệ thống này
đã mang lại cho quân
Đồng Minh những tin tức
tình báo cực kỳ quan
trọng

Truyền và bảo mật thông tin 27


4 – MẬT MÃ HỌC THỜI THẾ CHIẾN THỨ II

Các loại mật mã trong


chiến tranh thế giới II

 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.
Nhưng khi máy tính và các phương tiện interner phổ biến
thì “ Mật mã học” mới phát huy hết tính hữu dụng của
mình
Truyền và bảo mật thông tin 28
4 – MẬT MÃ HỌC THỜI THẾ CHIẾN THỨ II
 SIGABA được
miêu tả trong Bằng
sáng chế của Mỹ
6.175.625, đệ trình
năm 1944 song mãi
đến năm 2001 mới
được phát hành

Truyền và bảo mật thông tin 29


5 – MẬT MÃ HỌC HIỆN ĐẠI
 Claude Shannon, người được coi là cha đẻ của mật
mã toán học. Những công trình to lớn của ông như
“Lý thuyết về truyền thông trong các hệ thống
bảo mật” và Lý thuyết toán học trong truyền
thông - cùng với tác giả Warren Weaver đã thiết lập
một nền tảng lý thuyết cơ bản cho mật mã học và
thám mã học.

Truyền và bảo mật thông tin 30


Smart
cards

Embedded
systems

Truyền và bảo mật thông tin 31


 Giữa thập niên kỷ 1970 được chứng kiến hai tiến bộ công
chính lớn (công khai).
 17/03/1975: Tại Mỹ trong “Công báo Liên Bang”công bố
đề xuất Tiêu chuẩn mật mã hóa dữ liệu (DES).2001: DES
đã chính thức được thay thế bởi AES (viết tắt của
Advanced Encryption Standard - Tiêu chuẩn mã hóa tiên
tiến) khi NIST công bố phiên bản FIPS 197
 Tiêu chuẩn Xử lý Thông tin của Liên bang (1977)

Truyền và bảo mật thông tin 32


 Tiến triển thứ hai, vào năm 1976: Đó chính là công bố của
bài viết phương hướng mới trong mật mã học (New
Directions in Cryptography) của Whitfield Diffie và
Martin Hellman , giới thiệu cách thức phân phối các khóa
mật mã và đây là sự kích thích các thuật toán mới ra đời
 Thuật toán chìa khóa bất đối xứng trong đó người ta phải
có một cặp khóa có quan hệ toán học để dùng trong thuật
toán, một dùng để mã hóa và một dùng để giải mã.

Truyền và bảo mật thông tin 33



Truyền và bảo mật thông tin 34
Lịch Sử Mã hóa bất đối
xứng
 Thuật Toán mật mã hóa khóa công
khai được thiết kế đầu tiên bởi Jame
H.Ellis, Clifford Cocks, và Malcolm
Williamson tại Anh vào đầu thập kỷ
1970.

 Thuật toán sau này được phát triển và


biết đến dưới tên Diffie-Hellman, và là
một trường hợp đặc biệt của “RSA”.
Tuy nhiên những thông tin này chỉ
được tiết lộ vào năm 1997.

Truyền và bảo mật thông tin


35 35
 Năm 1976, Whitfield Diffie và
Martin Hellman công bố một hệ
thống mật mã hóa khóa bất đối
xứng trong đó nêu ra phương
pháp trao đổi khóa công khai.
 Trao đổi khóa Diffie-Hellman là
phương pháp có thể áp dụng trên
thực tế đầu tiên để phân phối
khóa bí mật thông qua một kênh
thông tin không an toàn.

Truyền và bảo mật thông tin


36 36
Ứng dụng của khóa công khai
 Mã hóa: giữ bí mật
thông tin và chỉ có người
có khóa bí mật mới giải
mã được.
 Tạo chữ ký số: cho
phép kiểm tra một văn
bản có phải đã được tạo
với một khóa bí mật nào
đó hay không.
 Thỏa thuận khóa: cho
phép thiết lập khóa dùng
để trao đổi thông tin mật
giữa 2 bên.

Truyền và bảo mật thông tin 37


5 – MẬT MÃ HỌC HIỆN ĐẠI
 Trước thời kỳ này, hầu hết các thuật toán mật mã hóa
hiện đại đều là những thuật toán khóa đối xứng
(symmetric key algorithms), trong đó cả người gửi và
người nhận phải dùng chung một khóa, tức khóa dùng
trong thuật toán mật mã, và cả hai người đều phải giữ bí
mật về khóa này.
 Mỗi một cặp truyền thông cần phải có một khóa riêng
nếu, theo như thiết kế của hệ thống mật mã, không một
người thứ ba nào, kể cả khi người ấy là một người dùng,
được phép giải mã các thông điệp. Một hệ thống thuộc
loại này được gọi là một hệ thống dùng chìa khóa mật,
hoặc một hệ thống mật mã hóa dùng khóa đối xứng.
Truyền và bảo mật thông tin 38
Truyền và bảo mật thông tin 39
 Những nhà mật mã học hiện đại đôi khi
-Trong những thập kỷ gần đây bằng phương pháp thám mã,
phải khai thác một số lớn các mạch tích
những thiết kế
hợp (integrated mật- mã
circuit) hay bị
cònbẻ
gọigẫy
là vinổi tiếng bao gồm:
• DES
mạch. Mạch điện này là một phần cơ bản
• Mã
trong Bộ hóa
phá mãWEPDES phiên
của Tổ bản
chức đầu
tiền tiên dùng trong kỹ thuật
tuyến điện tử (EFF DES cracker) và nó
truyền thông vô tuyến Wi-Fi
bao gồm 1800 chip tùy biến và có thể bẻ
• (dùng
gãy Hệ thống
phươngXáopháp trộn Nộimộtdung
vét cạn) khóa được sử dụng để mã hóa
DESvà chỉquản lý việc
trong vòng sử dụng DVD
vài ngày.
• Các mã A5/1, A5/2 được sử dụng trong điện thoại di
động GSM.
Vì vậy: Độ lớn khóa đề nghị đối với việc bảo an lại càng
ngày càng phải tăng lên, vì công suất máy tính cần thiết để
bẻ gãy các mã càng ngày càng trở nên rẻ tiền hơn và sẵn
có.

Truyền và bảo mật thông tin 40


C-GIAO THỨC MẬT MÃ
 Là các giao thức (trên lý thuyết hoặc đã thực
hiện) nhằm thực hiện các chức năng liên
quan tới bảo mật bằng các kỹ thuật mật mã.
 Giao thức mật mã được sử dụng rộng rãi cho
việc truyền dữ liệu an toàn ở mức ứng dụng.
Một giao thức mật mã tiêu biểu thường bao
gồm các chức năng sau:
 Thỏa thuận khóa;
 Nhận thức các bên tham gia;
 Truyền dữ liệu an toàn;
 Đảm bảo tính chất không thể từ chối (non-
reputation).

Truyền và bảo mật thông tin 41


C-GIAO THỨC MẬT MÃ
 Giao thức Transport Layer Security (TLS) tạo các kết
nối web (HTTP) an toàn. Nó bao gồm cơ chế nhận thực
dựa trên tiêu chuẩn X.509, cơ chế thiết lập khóa (tạo
khóa đối xứng bằng cách dùng hệ thống mã hóa bất đối
xứng) và chức năng truyền dữ liệu mức ứng dụng an
toàn. Giao thức này không bao gồm khả năng không thể
từ chối.
 Các giao thức mật mã có thể được kiểm tra độ chính xác
bằng các phương pháp thuần túy lý thuyết (formal
verification).
 Giao diện điện tử sử dụng chữ kí số sử dụng một dạng
chữ ký điện tử được tạo ra bằng sự biến đổi một thông
điệp dữ liệu sử dụng hệ thống mật mã không đối xứng

Truyền và bảo mật thông tin 42


D-MỘT SỐ ỨNG DỤNG KHÁC CỦA MẬT MÃ
HỌC
 Nhận dạng dấu vân tay hoặc bảo
mật bằng các phần mềm cung cấp
bằng các tính năng có sẵn Pocket
PC, như hệ thống mật mã hoặc hệ
thống sinh trắc học.
 Hai tập đoàn điện tử Nhật
Mitsubishi và NEC đã kết nối
thành công các hệ thống mật mã
của nhiều nhà cung cấp lại với
nhau.

Truyền và bảo mật thông tin 43


D-MỘT SỐ ỨNG DỤNG KHÁC CỦA MẬT MÃ HỌC
 Một ngân hàng Áo vừa triển khai loại hình chuyển tiền
điện tử bằng cách sử dụng photon phân tách để tạo ra mật
mã liên lạc không thể phá vỡ

 Mã hóa lượng tử truyền qua sợi quang: bảo mật cho


tổng tuyển cử ở Thụy Sĩ

Truyền và bảo mật thông tin 44


Một số hệ mật mã cổ điển (mã đối
xứng)
Mã hóa thay thế
Mã Ceasar
Mã bảng chữ đơn
Mã Playfair
Các mã đa bảng
Mã Vigenere
Mã khoá tự động
Mã hóa hoán vị
Mã Rail Fence
Mã dịch chuyển dòng
Mã tích
Truyền và bảo mật thông tin 45
Mô hình mã đối xứng

Truyền và bảo mật thông tin 46


Khái niệm cơ bản
 Bản rõ X được gọi là là bản tin gốc. Bản rõ có thể được chia nhỏ
có kích thước phù hợp.
 Bản mã Y là bản tin gốc đã được mã hoá. Ở đây ta thường xét
phương pháp mã hóa mà không làm thay đổi kích thước của bản
rõ, tức là chúng có cùng độ dài.
 Mã là thuật toán E chuyển bản rõ thành bản mã. Thông thường
chúng ta cần thuật toán mã hóa mạnh, cho dù kẻ thù biết được
thuật toán, nhưng không biết thông tin về khóa cũng không tìm
được bản rõ.
 Khoá K là thông tin tham số dùng để mã hoá, chỉ có người gửi và
nguời nhận biết. Khóa là độc lập với bản rõ và có độ dài phù hợp
với yêu cầu bảo mật.
 Mã hoá là quá trình chuyển bản rõ thành bản mã, thông thường
bao gồm việc áp dụng thuật toán mã hóa và một số quá trình xử
lý thông tin kèm theo.
 Giải mã chuyển bản mã thành bản rõ, đây là quá trình ngược lại
của mã hóa.
 Mật mã là chuyên ngành khoa học của Khoa học máy tính
nghiên cứu về các nguyên lý và phương pháp mã hoá. Hiện nay
người ta đưa ra nhiều chuẩn an toàn cho các lĩnh vực khác nhau
của công nghệ thông tin.

Truyền và bảo mật thông tin 47


Khái niệm cơ bản (tt)
 Thám mã nghiên cứu các nguyên lý và phương
pháp giải mã mà không biết khoá. Thông thường
khi đưa các mã mạnh ra làm chuẩn dùng chung
giữa các người sử dụng, các mã đó được các kẻ
thám mã cũng như những người phát triển mã tìm
hiểu nghiên cứu các phương pháp giải một phần
bản mã với các thông tin không đầy đủ.
 Lý thuyết mã bao gồm cả mật mã và thám mã.
Nó là một thể thống nhất, để đánh giá một mã
mạnh hay không, đều phải xét từ cả hai khía cạnh
đó. Các nhà khoa học mong muốn tìm ra các mô
hình mã hóa khái quát cao đáp ứng nhiều chính
sách an toàn khác nhau.

Truyền và bảo mật thông tin 48


Hệ mật mã
Một hệ mật là một bộ 5 (P,C,K,E,D) thoả mãn
các điều kiện sau:
 P là một tập hữu hạn các bản rõ có thể.
 C là một tập hữu hạn các bản mã có thể.
 K (không gian khoá) là tập hữu hạn các khoá
có thể.
 Đối với mỗi k∈ K có một quy tắc mã ek: P → C
và một quy tắc giải mã tương ứng dk ∈ D.
Mỗi ek: P → C và dk: C → P là những hàm mà:
dk(ek (x)) = x với mọi bản rõ x ∈ P.

Truyền và bảo mật thông tin 49


Thám mã.
 Có hai cách tiếp cận tấn công mã đối
xứng.
 Tấn công thám mã dựa trên thuật toán và
một số thông tin về các đặc trưng chung về
bản rõ hoặc một số mẫu bản rõ/bản mã. Kiểu
tấn công này nhằm khai phá các đặc trưng
của thuật toán để tìm bản rõ cụ thể hoặc tìm
khóa. Nếu tìm được khóa thì là tai họa lớn.
 Tấn công duyệt toàn bộ: kẻ tấn công tìm cách
thử mọi khóa có thể trên bản mã cho đến khi
nhận được bản rõ. Trung bình cần phải thử
một nửa số khóa mới tìm được.

Truyền và bảo mật thông tin 50


Các kiểu tấn công thám mã
 Chỉ dùng bản mã: biết thuật toán và bản mã,
dùng phương pháp thống kê, xác định bản rõ.
 Biết bản rõ: biết thuật toán, biết được bản
mã/bản rõ tấn công tìm khóa.
 Chọn bản rõ: chọn bản rõ và nhận được bản
mã, biết thuật toán tấn công tìm khóa.
 Chọn bản mã: chọn bản mã và có được bản
rõ tương ứng, biết thuật toán tấn công tìm
khóa.
 Chọn bản tin: chọn được bản rõ hoặc mã và
mã hoặc giải mã tuơng ứng, tấn công tìm
khóa.
Truyền và bảo mật thông tin 51
Mã thay thế - Mã Ceasar
 Đây là mã thế được biết sớm nhất, được sáng
tạo bởi Julius Ceasar. Lần đầu tiên được sử
dụng trong quân sự. Việc mã hoá được thực
hiện đơn giản là thay mỗi chữ trong bản rõ
bằng chữ thứ ba tiếp theo trong bảng chữ
cái.
 Ví dụ:
 Meet me after the toga party
 PHHW PH DIWHU WKH WRJD SDUWB

Truyền và bảo mật thông tin 52


Mã thay thế - Mã Ceasar
 Có thể định nghĩa việc mã hoá trên qua ánh xạ trên bảng chữ cái
sau:
a b cd e fghi j k l mn opq r s t u vwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
Bằng cách gán thứ tự các ký bởi các giá trị tương ứng của Z
abcdefghi j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12
n o p q r s t u v w x y z
13 14 15 16 17 18 19 20 21 22 23 24 25
 Ta có thể xem mã Ceasar được định nghĩa qua phép tịnh tiến:
c = E(p) = (p + k) mod (26)
p = D(c) = (c – k) mod (26)
Ở đây, p là số thứ tự của chữ trong bản rõ và c là số thứ tự của
chữ tương ứng của bản mã; k là khoá của mã Ceasar. Có 26 giá
trị khác nhau của k, nên có 26 khoá khác nhau. Thực tế độ dài
khoá ở đây chỉ là 1, vì mọi chữ đều tịnh tiến đi một khoảng như
nhau.
 Bài tập: Tìm bản rõ của “GCUA VQ DTGCM “
Truyền và bảo mật thông tin 53
Mã thay thế - Các mã bảng chữ đơn
 Phương pháp này mã hoá các chữ không chỉ
là dịch chuyển bảng chữ, mà có thể tạo ra
các bước nhảy khác nhau cho các chữ.
Ví dụ. Ta có bản mã tương ứng với bản rõ
trong mã bảng chữ đơn như sau:
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplaceletters
Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA

Truyền và bảo mật thông tin 54


Sử dụng bảng tần suất vào việc thám

 Điều quan trọng là mã thế trên bảng chữ đơn không
làm thay đổi tần suất tương đối của các chữ, có nghĩa là
ta vẫn có bảng tần suất trên nhưng đối với bảng chữ
mã tương ứng. Điều đó được phát hiện bởi các nhà khoa
học Ai cập từ thế kỷ thứ 9. Do đó có cách thám mã trên
bảng chữ đơn như sau:
- Tính toán tần suất của các chữ trong bản mã
- So sánh với các giá trị đã biết
- Tìm kiếm các chữ đơn hay dùng A-I-E, bộ đôi NO và
bộ ba RST; và các bộ ít dùng JK, X-Z..
- Trên bảng chữ đơn cần xác định các chữ dùng các
bảng bộ đôi và bộ ba trợ giúp.

Truyền và bảo mật thông tin 55


Bảng thống kê tần xuất ký tự tiếng
Anh

Truyền và bảo mật thông tin 56


Phân tích của Beker và Peper
 E: có xác suất khoảng 1,120
 T, A, O, I, N, S, H, R : mỗi ký tự có xac suất
khoảng 0,06 đến 0,09
 D, L : mỗi ký tự có xác suất chừng 0,04
 C, U, M, W, F, G, Y, P, B: mỗi ký tự có xác
suất khoảng 0,015 đến 0,023
 V, K, J, X, Q, Z mỗi ký tự có xác suất nhỏ hơn
0,01

Truyền và bảo mật thông tin 57


Phân tích của Beker và Peper
 30 bộ đôi thông dụng nhất ( theo hứ tự giảm
dần ) là: TH, HE, IN, ER, AN, RE, ED, ON, ES,
ST, EN, AT, TO, NT, HA, ND, OU, EA, NG, AS,
OR, TI, IS, ET, IT, AR, TE, SE, HI và OF
 12 bộ ba thông dụng nhất (theo thứ tự giảm
dần ) là: THE, ING, AND, HER, ERE, ENT, THA,
NTH, WAS, ETH, FOR và DTH.

Truyền và bảo mật thông tin 58


Ví dụ thám mã bảng mã đơn
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESX
UDBMETSXAIZVUEPHZHMDZSHZOWSFPAPPDTS
VPQUZWYMXUZUHSXEPYEPOPDZSZUFPOUDTM
OHMQ
- Tính tần suất các chữ
- Đoán P và Z là e và t.
- Khi đó ZW là th và ZWP là the.
- Suy luận tiếp tục ta có bản rõ:
“it was disclosed yesterday that several
informal but
direct contacts have been made with
politicalrepresentatives in moscow”
Truyền và bảo mật thông tin 59
Bài tập thám mã sử dụng bảng tần
suất

YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJ
BTXCDDUMJ

NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREX
CHZUNMXZ

NZUCDRJXỷYMTMEYIFZWDYVZVYFZUMRZCR
WNZDZJT

XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUC
FWDINZDIR ”
Truyền và bảo mật thông tin 60
Mã thay thế - Mã Playfair
 Một trong các hướng khắc phục của phương
pháp mã bằng bảng mã đơn là mã bộ các
chữ, tức là mỗi chữ sẽ được mã bằng một số
chữ khác nhau tùy thuộc vào các chữ mà nó
đứng cạnh. Playfair là một trong các mã như
vậy, được sáng tạo bởi Charles Wheastone
vào năm 1854 và mang tên người bạn là
Baron Playfair. Ở đây mỗi chữ có thể được
mã bằng một trong 7 chữ khác nhau tùy vào
chữ cặp đôi cùng nó trong bản rõ.

Truyền và bảo mật thông tin 61


Mã thay thế - Mã Playfair
Phương pháp là lập ma trận 5x5 dựa trên từ khóa cho trước và
các ký tự trên bảng chữ cái
- Trước hết viết các chữ của từ khoá vào các hàng của ma trận bắt
từ hàng thứ nhất.
- Nếu ma trận còn trống, viết các chữ khác trên bảng chữ cái chưa
được sử dụng vào các ô còn lại. Có thể viết theo một trình tự qui
ước trước, chẳng hạn từ đầu bảng chữ cái cho đến cuối.
- Vì có 26 chữ cái tiếng Anh, nên thiếu một ô. Thông thuờng ta
dồn hai chữ nào đó vào một ô chung, chẳng hạn I và J.
- Giả sử sử dụng từ khoá MORNACHY. Lập ma trận khoá Playfair
tương ứng như sau:
MONAR
CHYBD
EFGIK
LPQST
UVWXZ

Truyền và bảo mật thông tin 62


Quy tắc mã hóa và giải mã
 Chia bản rõ thành từng cặp chữ. Nếu một cặp nào đó có
hai chữ như nhau, thì ta chèn thêm một chữ lọc chẳng
hạn X. Ví dụ, trước khi mã “balloon” biến đổi thành
“ba lx lo on”.
 Nếu cả hai chữ trong cặp đều rơi vào cùng một hàng,
thì mã mỗi chữ bằng chữ ở phía bên phải nó trong cùng
hàng của ma trận khóa (cuộn vòng quanh từ cuối về
đầu), chẳng hạn “ar” biến đổi thành “RM”
 Nếu cả hai chữ trong cặp đều rơi vào cùng một cột, thì
mã mỗi chữ bằng chữ ở phía bên dưới nó trong cùng cột
của ma trận khóa (cuộn vòng quanh từ cuối về đầu),
chẳng hạn “mu” biến đổi thành “CM”
 Trong các trường hợp khác, mỗi chữ trong cặp được mã
bởi chữ cùng hàng với nó và cùng cột với chữ cùng cặp
với nó trong ma trận khóa. Chẳng hạn, “hs” mã thành
“BP”, và “ea” mã thành “IM” hoặc “JM” (tuỳ theo sở
thích)
Truyền và bảo mật thông tin 63
Bài tập
 Hãy tìm hiểu quá trình mã hóa và giải mã
bằng phương pháp mã Playfair
Bản rõ P= “Dai hoc su pham”
Khóa K=tinhoc

Truyền và bảo mật thông tin 64


Các mã đa bảng
 Một hướng khác làm tăng độ an toàn cho mã trên
bảng chữ là sử dụng nhiều bảng chữ để mã. Ta sẽ gọi
chúng là các mã thế đa bảng. Ở đây mỗi chữ có thể
được mã bằng bất kỳ chữ nào trong bản mã tùy thuộc
vào ngữ cảnh khi mã hoá. Làm như vậy để trải bằng
tần suất các chữ xuất hiện trong bản mã. Do đó làm
mất bớt cấu trúc của bản rõ được thể hiện trên bản
mã và làm cho thám mã đa bảng khó hơn. Ta sử dụng
từ khoá để chỉ rõ chọn bảng nào được dùng cho từng
chữ trong bản tin. Sử dụng lần lượt các bảng theo từ
khóa đó và lặp lại từ đầu sau khi kết thúc từ khoá. Độ
dài khoá là chu kỳ lặp của các bảng chữ. Độ dài càng
lớn và nhiều chữ khác nhau được sử dụng trong từ
khoá thì càng khó thám mã

Truyền và bảo mật thông tin 65


Mã Vigenere
 Mã thế đa bảng đơn giản nhất là mã
Vigenere. Thực chất quá trình mã hoá
Vigenere là việc tiến hành đồng thời dùng
nhiều mã Ceasar cùng một lúc trên bản rõ
với nhiều khoá khác nhau. Khoá cho mỗi chữ
dùng để mã phụ thuộc vào vị trí của chữ đó
trong bản rõ và được lấy trong từ khoá theo
thứ tự tương ứng.
 Giả sử khoá là một chữ có độ dài d được viết
dạng K = K1K2…Kd, trong đó Ki nhận giá trị
nguyên từ 0 đến 25. Khi đó ta chia bản rõ
thành các khối gồm d chữ. Mỗi chữ thứ i
trong khối chỉ định dùng bảng chữ thứ i với
tịnh tiến là Ki giống như trong mã Ceasar.
Truyền và bảo mật thông tin 66
Quá trình mã hóa và giải mã
Vigenere
 Để sử dụng mã Vigenere với từ khóa và bản rõ
cho trước ta có thể làm như sau:
- Viết bản rõ ra
- Viết từ khoá lặp nhiều lần phía trên tương ứng
của nó
- Sử dụng mỗi chữ của từ khoá như khoá của mã
Ceasar
- Mã chữ tương ứng của bản rõ với bước nhảy
tương ứng.
- Chẳng hạn sử dụng từ khoá deceptive
 plaintext: wearediscoveredsaveyourself
 key: deceptivedeceptivedeceptive
 ciphertext:ZICVTWQNGRZGVTWAVZHCQYGL
Truyền và bảo mật thông tin 67
Bài tập
 Thực hiện mã hóa và giải mã đoạn văn bản
sau:
Tuyen chong chat luong
Luong thang khong tieu
Khong duoc noi nhieu
Khong duoc cai vo
Phai biet di cho
Nau nuong quet nha
Khong duoc la ca
Ruoc che co bac

Truyền và bảo mật thông tin 68


Mã hóa đối xứng
Symmetric cryptography
 Mã hóa đối xứng, tức là cả hai quá trình mã hóa và giải
mã đều dùng một chìa khóa. Để đảm bảo tính an toàn,
chìa khóa này phải được giữ bí mật. Vì thế các thuật
toán loại này còn có tên gọi khác là secret key
cryptography (hay private key cryptography)
 Các thuật toán thông dụng: DES, TripleDES, Rijndael,

Truyền và bảo mật thông tin 69


Mô hình mã hóa đối xứng

Truyền và bảo mật thông tin 70


Phân loại
a. Block cipher

Block cipher là một giải pháp hoạt dộng chống lại sự hạn chế
của dữ liệu tĩnh. Dữ liệu được chia ra thành các blocks với
size cụ thể và mỗi blocks được mã hoá một cách khác nhau.
.
b. Stream cipher

Stream cipher là giải pháp hoạt động chống lại dữ liệu luôn
luôn sử dụng một phương thức để truyền. Một vùng đệm, ít
nhất bằng một block, đợi cho toàn bộ thông tin của block đó
được chứa trong vùng đệm sau đó block đó sẽ được mã hoá
rồi truyền cho người nhận

Truyền và bảo mật thông tin 71


Giới thiệu một số thuật toán
 DES (Data Encryption Standard)
 Triple DES
 AES (Advanced Encryption Standard)
 RC 4, RC 5, RC 6 (Rivest Cipher 4,5,6 )
 Skipjack
 Blowfish
 CAST-128

Truyền và bảo mật thông tin 72


DES (Data Encryption Standard )
 Với DES, Bản tin hay mẫu thư được
mã hóa theo từng khối 64 bits và sử
dụng một khóa là 64 bits.

Truyền và bảo mật thông tin 73


DES (Data Encryption Standard )
 Là một thuật toán được sử dụng rộng rãi nhất
trên thế giới với bề dày lịch sử hơn 20 năm,
được phát triển bởi IBM Team vào những năm
1970, sau đó được phát triển bởi NIST
(National Institute of Standard and
Technology) cho các ứng dụng thương mại..

Truyền và bảo mật thông tin 74


DES
Khóa dùng trong DES có độ dài toàn bộ là 64
bit. Tuy nhiên chỉ có 56 bit thực sự được sử
dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra.
Vì thế, độ dài thực tế của khóa chỉ là 56 bit.
Nó dễ dàng bị phá vỡ chỉ trong vòng 24 tiếng
đồng hồ

Truyền và bảo mật thông tin 75


Triple DES (3DES)
 Thực hiện DES ba lần

Truyền và bảo mật thông tin 76


AES
AES là thuật toán mã hóa đối xứng dạng
khối 128-bit
Được phát triển bởi Vincent Rijmen và
được sự hỗ trợ của chính phủ Mỹ xem như
một thuật toán thay thế DES.
AES cũng được gọi là Rijndael “Rhine-
dale” phát âm theo tên người tạo ra.

Truyền và bảo mật thông tin 77


RC 4, 5, 6
 Thuật toán RC bao gồm một series được
phát triển bởi Ronald Rivest.
 Tất cả có chiều dài khóa khác nhau.
 RC5 và RC6 là các mã hóa dạng khối với
các kích cỡ khác nhau

Truyền và bảo mật thông tin 78


Skipjack
 Skipjack là một thuật toán mã hóa khối
được thiết kế bởi Cơ quan bảo mật
quốc gia Hoa kỳ - US National Security
Agency (NSA) được sử dụng trong chip
Clipper Fortezza PC card

Truyền và bảo mật thông tin 79


Blowfish
 Blowfish là một thuật toán mã hóa
miễn phí dùng block 64-bit sử dụng
khóa có độ dài khác nhau.Được phát
triển bởi Bruce Schneier.

Truyền và bảo mật thông tin 80


CAST-128
CAST-128, được đặt theo tên người phát
triển là Carlisle Adams và Stafford
Tavares, là một thuật toán mã hóa đối
xứng có chiều dài khóa 128-bit.
Là một trong những đối thủ cạnh tranh
chính của AES.

Truyền và bảo mật thông tin 81


Truyền và bảo mật thông tin 82
MÃ HÓA
 Chuyển 64 bit chìa khoá qua một bảng
hoán vị gọi là Permuted Choice hay PC-1
để thu được chìa khoá mới có 56 bit.

Truyền và bảo mật thông tin 83


Mã hóa
 Khối dữ liệu đầu vào 64 bit được chia thành
hai nửa, L và R. L gồm 32 bit bên trái và R
gồm 32 bit bên phải. Quá trình sau đây được
lặp lại 16 lần tạo thành 16 vòng của DES
gồm 16 cặp L[0]-L[15] và R[0]-R[15]:

Truyền và bảo mật thông tin 84


Mã hóa
 R[r-1]- ở đây r là số vòng, bắt đầu từ 1-
được lấy và cho qua bảng E, bảng này giống
như một bảng hoán vị, một số bit được
dùng hơn một lần do vậy nó sẽ mở rộng R[r-
1] từ 32 bit lên 48

Truyền và bảo mật thông tin 85


Mã hóa
 48 bit R[r-1] được XOR với K[r] và được lưu
trong bộ nhớ đệm, vì vậy R[r-1] không thay
đổi.

Truyền và bảo mật thông tin 86


Mã hóa
 Kết quả của bước trước lại được chia thành 8
đoạn, mỗi đoạn 6 bit, từ B[1] đến B[8]. Những
đoạn này tạo thành chỉ số cho các bảng S
(Substitution) được sử dụng ở bước tiếp theo.
Các bảng S, là một bộ 8 bảng (S[1]-S[8]) 4
hàng, 16 cột. Các số trong bảng có độ dài 4 bit
vì vậy có giá trị từ 0 đến 15

Truyền và bảo mật thông tin 87


Mã hóa
 Bắt đầu từ B[1], bit đầu và cuối của khối 6 bit
được lấy ra và sử dụng làm chỉ số hàng của
bảng S[1], nó có giá trị từ 0 đến 3, và 4 bit
giữa được dùng làm chỉ số cột, từ 0 đến 15.
Giá trị được chỉ đến trong bảng S được lấy ra
và lưu lại. Việc này được lặp lại đối với B[2]
và S[2] cho đến B[8] và S[8]. Lúc này bạn có
8 số 4 bit, khi nối lại với nhau theo thứ tự thu
được sẽ tạo ra một chuỗi 32 bit.

Truyền và bảo mật thông tin 88


Mã hóa
 Kết quả của bước trước được hoán vị bit bằng
bảng hoán vị P (Permutation

Truyền và bảo mật thông tin 89


Mã hóa
 Kết quả thu được sau khi hoán vị được XOR
với L[r-1] và chuyển vào R[r]. R[r-1] được
chuyển vào L[r].

Truyền và bảo mật thông tin 90


Mã hóa
 Lúc này bạn có L[r] và R[r] mới. Bạn tiếp tục tăng r và
lặp lại các bước trên cho đến khi r= 17, đIều đó có
nghĩa là 16 vòng đã được thực hiện và các chìa khoá
phụ K[1]-K[16] đã được sử dụng.
 Khi đã có L[16] và R[16], chúng được ghép lại với nhau
theo cách chúng bị tách ra (L[16] ở bên trái và R[16] ở
bên phải) thành 64 bit. 64 bit này được hoán vị để tạo
ra kết quả cuối cùng là dữ liệu 64 bit đã được mã hoá.

Truyền và bảo mật thông tin 91


VD MÃ HÓA
 Mã hóa bản rõ sau trong dạng thập lục phân
(Hexadecimal) 0123456789ABCDEF
 Sử dụng khóa thập lục phân 133457799BBCDFF1

Truyền và bảo mật thông tin 92


Truyền và bảo mật thông tin 93
Truyền và bảo mật thông tin 94
Truyền và bảo mật thông tin 95
Truyền và bảo mật thông tin 96
Truyền và bảo mật thông tin 97
Truyền và bảo mật thông tin 98
Kết quả
 Cuối cùng áp dụng IP-1 cho R16L16 ta nhận
được bản rõ trong dạng thập lục phân sau:
85E813540F0AB405

Truyền và bảo mật thông tin 99


Giải mã
 Việc giải mã dùng cùng một thuật toán như
việc mã hoá. Để giải mã dữ liệu đã được mã
hoá, quá trình giống như mã hoá được lăp lạI
nhưng các chìa khoá phụ được dùng theo thứ tự
ngược lạI từ K[16] đến K[1], nghĩa là trong bước
2 của quá trình mã hoá dữ liệu đầu vào ở trên
R[r-1] sẽ được XOR với K[17-r] chứ không phảI
với K[r]..

Truyền và bảo mật thông tin 100


Vd giải mã
 Vd trên

Truyền và bảo mật thông tin 101


BÀI TẬP
 Sử dụng bản rõ sau: loptin3c
 Khóa: 20062010

Truyền và bảo mật thông tin 102


TÍNH AN TOÀN
 Chìa khoá của DES có độ dài tới 56 bit,  nghĩa
là số lần thử tối đa để tìm được chìa khoá lên
đến 2^56, trung bình là 2^55 =
36.028.797.018.963.968 lần, một con số rất
lớn!.

Truyền và bảo mật thông tin 103


ỨNG DỤNG
Thường được dùng để mã hoá bảo mật các thông tin
trong quá trình truyền tin cũng như  lưu trữ thông
tin.
Kiểm tra tính xác thực của mật khẩu truy nhập
vào một hệ thống (hệ thống quản lý bán hàng,
quản lý thiết bị viễn thông…),
Tạo và kiểm tính hợp lệ của một mã số bí mật (thẻ
internet, thẻ điện thoại di động trả trước), hoặc của
một thẻ thông minh (thẻ tín dụng, thẻ payphone…).

Truyền và bảo mật thông tin 104


HẠN CHẾ
N người, tổng số lượng chìa khóa cần phải có
là n*(n-1)/2.

Truyền và bảo mật thông tin 105


TẤN CÔNG
Năm 1997, một dự án đã tiến hành bẻ khóa
DES chưa đến 3 ngày với chi phí thấp hơn
250.000 dollars.
Năm 1999, một mạng máy tính gồm 100.000
máy có thể giải mã một thư tín mã hóa DES
chưa đầy 24 giờ.

Truyền và bảo mật thông tin 106


TẤN CÔNG
 Năm 1977, Diffie và Hellman dự thảo một hệ
thống có giá khoảng 20 triệu đô la Mỹ và có
khả năng phá khóa DES trong 1 ngày.
 Năm 1993, Wiener dự thảo một hệ thống
khác có khả năng phá mã trong vòng 7 giờ
với giá 1 triệu đô la Mỹ.

Truyền và bảo mật thông tin 107


TẤN CÔNG
 Vào năm 1997, công ty bảo mật RSA đã tài
trợ một chuỗi cuộc thi với giải thưởng 10.000
đô la Mỹ cho đội đầu tiên phá mã được một
bản tin mã hóa bằng DES. Đội chiến thắng
trong cuộc thi này là dự án DESCHALL với
những người dẫn đầu bao gồm Rocke Verser,
Matt Curtin và Justin Dolske.

Truyền và bảo mật thông tin 108


TẤN CÔNG
 năm 1998 khi tổ chức
Electronic Frontier Foundation (EFF), một tổ
chức hoạt động cho quyền công dân trên
Internet, xây dựng một hệ thống chuyên biệt
để phá mã với giá thành 250000 đô la Mỹ

Truyền và bảo mật thông tin 109


Phá mã
 Phá mã vi sai
 Phá mã tuyến tính
 Phá mã Davies

Truyền và bảo mật thông tin 110


TÌM NHƯỢC ĐIỂM & KHẮC PHỤC
 Tripple DES thực hiện ba lần thuật toán DES
với 3 khoá khác nhau và với trình tự khác
nhau. Trình tự thực hiện phổ biến là EDE
(Encrypt – Decrypt – Encrypt), thực hiện xen
kẽ mã hóa với giải mã (lưu ý là khóa trong
từng giai đoạn thực hiện khác nhau).
 Bên cạnh đó còn có 6 DES

Truyền và bảo mật thông tin 111


KẾT LUẬN
 Không thể phủ nhận là thuật toán DES có nhiều ứng
dụng trong viễn thông và công nghệ thông tin, việc
làm chủ và cứng hóa các thuật toán rất có ý nghĩa
đối với sự an toàn trong các giao dịch trên mạng.
 Nhìn chung, đối với Việt Nam, việc làm chủ công
nghệ cứng hóa thuật toán DES rất có ý nghĩa trong
việc đảm bảo an toàn giao dịch trên mạng, đảm bảo
an toàn trong truyền tin cho các đơn vị cơ yếu tại
Việt Nam. Hiện nay, đang triển khai cứng hóa thuật
toán DES nhờ các công nghệ thiết kế số hiện đại,
các chương trình và mạch phần cứng

Truyền và bảo mật thông tin 112


Truyền và bảo mật thông tin 113
AES
 Thuật toán mã hóa khóa quy ước, sử dụng
miễn phí trên toàn thế giới.

Truyền và bảo mật thông tin 114


Gồm các yêu cầu sau
 Thuật toán mã hóa theo khối 128 bit.
 Chiều dài khóa 128 bit, 192 bit và 256 bit.
 Không có khóa yếu.
 Hiệu quả trên hệ thống Intel Pentium Pro và trên
các nền phần cứng và phần mềm khác.
 oThiết kế dễ dàng (hỗ trợ chiều dài khóa linh hoạt,
có thể triển khai ứng dụng rộng rãi trên các nền
và các ứng dụng khác nhau).
 Thiết kế đơn giản: phân tích đánh giá và cài đặt dễ
dàng.
 Chấp nhận bất kỳ chiều dài khóa lên đến 256 bit.
 Mã hóa dữ liệu thấp hơn 500 chu kỳ đồng hồ cho
mỗi khối trên Intel Pentium, Pentium Pro và
Pentium II đối với phiên bản tối ưu của thuật toán.
Truyền và bảo mật thông tin 115
Gồm các yêu cầu sau
 Có khả năng thiết lập khóa 128 bit (cho tốc độ mã
hóa tối ưu) nhỏ hơn thời gian đòi hỏi để mã hóa các
khối 32 bit trên Pentium, Pentium Pro và PentiumII.
 Không chứa bất kỳ phép toán nào làm nó giảm khả
năng trên các bộ vi xử lý 8 bit, 16 bit, 32 bit và 64
bit.
 Không bao hàm bất kỳ phần tử nào làm nó giảm khả
năng của phần cứng.
 Thời gian mã hóa dữ liệu rất thấp dưới 10/1000 giây
trên bộ vi xử lý 8 bit.
 Có thể thực hiện trên bộ vi xử lý 8 bit với 64 byte bộ
nhớ RAM.

Truyền và bảo mật thông tin 116


Phương pháp mã hóa MARS
 MARS hỗ trợ kích thước khối dữ liệu 128 bit
và cho phép sử dụng mã khóa có kích thước
thay đổi được.
 Thuật toán được thiết kế trên cơ sở khai
thác các thế mạnh của việc thực hiện các
phép toán trên các thế hệ máy tính hiện nay
nhằm tăng hiệu quả của thuật toán so với
các thuật toán mã hóa quy ước trước đây.

Truyền và bảo mật thông tin 117


Phương pháp mã hóa RC6
 RC6 tương ứng với các tham số w/r/b, trong
đó kích thước từ là w bit, quy trình mã hóa
bao gồm r chu kỳ và tham số b xác định
chiều dài mã khóa tính bằng byte.
 RC6 đạt được kích thước khóa b là 16, 24 và
32–byte (tương ứng với 128/192/256 bit).
 RC6–w/r/b thực hiện trên các đơn vị bốn từ
w bit sử dụng sáu phép toán cơ bản và
Logarit cơ số 2 của w, ký hiệu bằng lgw.

Truyền và bảo mật thông tin 118


Phương pháp mã hóa RC6
 a + b phép cộng số nguyên modulo 2w
 a – b phép trừ số nguyên modulo 2w
 a xor b phép XOR
 a × b phép nhân số nguyên modulo 2w
 a <<< b quay chu kỳ tròn bên trái b bit
 a >>> b quay chu kỳ tròn bên phải b bit

Truyền và bảo mật thông tin 119


Thuật toán SERPENT
 Serpent là một hệ thống 32 chu kỳ thực hiện
trên 4 từ 32 bit, kích thước khối là 128 bit.
Ứng với mỗi từ 32 bit, chỉ số bit được đánh từ
0 đến 31, các khối 128 bit có chỉ số từ 0 đến
127 và các khóa 256 bit có chỉ số từ 0 đến
255…
 Đối với các phép tính bên trong, tất cả các giá
trị đặt trong little–endian, ở đó từ đầu tiên (từ
có chỉ số 0) là từ thấp nhất, từ cuối cùng là từ
cao nhất và bit 0 của từ 0 là bit thấp nhất. Ở
ngoài, ta viết mỗi khối dưới dạng số hexa 128
bit.

Truyền và bảo mật thông tin 120


Thuật toán SERPENT
 Serpent mã hóa một văn bản ban đầu P 128
bit thành một văn bản mã hóa C 128 bit qua
32 chu kỳ với sự điều khiển của 33 subkey
128 bit
 Chiều dài khóa người dùng là biến số (nếu ta
cố định chiều dài khóa là 128, 192 hoặc 256
bit thì khi người sử dụng đưa vào chiều dài
khóa ngắn hơn, ta đặt một bit 1 vào cuối
MSB, còn lại điền các bit 0).

Truyền và bảo mật thông tin 121


HƯỚNG PHÁT TRIỂN CỦA MÃ HÓA ĐỐI
XỨNG
 DES vẫn còn sử dụng ở việt nam. Và một số
thuật toán khác có tính bảo mật cao khác
( đã trình bày ở phần ứng dụng trên).
 Tuy nhiên, sử dụng rộng rãi hơn là thuật toán
mã hóa bất đối xứng, sử dụng 2 khóa: khóa
công khai và khóa bí mật. đó cũng chính là
sự khác biệt của mã hóa đối xứng và mã hóa
bất đối xứng

Truyền và bảo mật thông tin 122


Mã hóa bất đối xứng
Asymmetric cryptography
 Mã hóa bất đối xứng sử dụng một cặp chìa
khóa có liên quan với nhau về mặt toán học,
một chìa công khai dùng để mã hóa (public
key) và một chìa bí mật dùng để giải mã
(private key). Một thông điệp sau khi được
mã hóa bởi chìa công khai sẽ chỉ có thể được
giải mã với chìa bí mật tương ứng.
 Các thuật toán bất đối xứng: RSA, Elliptic
Curve, ElGamal, Diffie Hellman …
Truyền và bảo mật thông tin 123
Mô hình mã hóa bất đối xứng

Truyền và bảo mật thông tin 124


• Như chúng ta đã biết Mã Hóa Đối
xứng chỉ sử dụng một khóa cho việc
mã hóa và giải mã.
• Ngược lại mã hóa bất đối xứng
(Asymmetric cryptography) sử dụng
một cặp chìa khóa có liên quan với
nhau về mặt toán học.
• Một chìa công khai dùng để mã
hoá (public key) và một chìa bí mật
dùng để giải mã (private key).

125
• Một thông điệp sau khi được
mã hóa bởi chìa công khai sẽ chỉ
có thể được giải mã với chìa bí
mật tương ứng.
Do các thuật toán loại này sử
dụng một chìa khóa công khai
nên còn có tên gọi khác là thuật
toán mã hóa dùng chìa khóa
công khai (public-key
cryptography).

126
Mã hóa bất đối xứng
Public key
Mã hóa


Giải mã

Private key 
127
• Về khía cạnh an toàn, các thuật toán
mật mã hóa khóa bất đối xứng cũng
không khác nhiều với các thuật toán mã
hóa khóa đối xứng. Có những thuật
toán được dùng rộng rãi, có thuật toán
chủ yếu trên lý thuyết; có thuật toán vẫn
được xem là an toàn, có thuật toán đã
bị phá vỡ...
• Nhìn chung, chưa có thuật toán nào
được chứng minh là an toàn tuyệt đối
Vì vậy, cũng giống như tất cả các thuật
toán mật mã nói chung, các thuật toán
mã hóa khóa công khai cần phải được
sử dụng một cách thận trọng. 128
Mô hình mã hóa bất đối xứng

129
Bước đầu :

Public key

Private key

130
Bước kế tiếp:

Public key

Mã hóa


131
Cuối cùng :

Private key

 
132
Một số điểm yếu…
• khả năng bị tấn công dạng kẻ tấn
công đứng giữa : kẻ tấn công lợi dụng
việc phân phối khóa công khai để thay đổi
khóa công khai. Sau khi đã giả mạo được
khóa công khai, kẻ tấn công đứng ở giữa
2 bên để nhận các gói tin, giải mã rồi lại
mã hóa với khóa đúng và gửi đến nơi
nhận để tránh bị phát hiện.

133
Một số điểm yếu :
• Tồn tại khả năng một người nào đó
có thể tìm ra được khóa bí mật.
• Khả năng một mối quan hệ nào đó
giữa 2 khóa hay điểm yếu của thuật
toán dẫn tới cho phép giải mã không
cần tới khóa hay chỉ cần khóa mã hóa
vẫn chưa được loại trừ.
• Gần đây, một số dạng tấn công đã
đơn giản hóa việc tìm khóa giải mã dựa
trên việc đo đạc chính xác thời gian mà
một hệ thống phần cứng thực hiện mã
hóa. 134
Chú ý :

• Để đạt được độ an toàn tương


đương, thuật toán mật mã hóa
khóa bất đối xứng đòi hỏi khối
lượng tính toán nhiều hơn đáng kể
so với thuật toán mật mã hóa khóa
đối xứng. Vì thế trong thực tế hai
dạng thuật toán này thường được
dùng bổ sung cho nhau để đạt hiệu
quả cao.
135
Một số ứng dụng:
• Một Ứng dụng rõ ràng nhất của mật mã hóa
khóa công khai là bảo mật
• Các thuật toán tạo chữ ký số khóa công khai có
thể dùng để nhận thực. Một người sử dụng có thể
mã hóa văn bản với khóa bí mật của mình. Nếu
một người khác có thể giải mã với khóa công khai
của người gửi thì có thể tin rằng văn bản thực sự
xuất phát từ người gắn với khóa công khai đó.
• Các đặc điểm trên còn có ích cho nhiều ứng
dụng khác như: tiền điện tử, thỏa thuận khóa...

136
137
II. Một số giải thuật
• Một số thuật toán bất đối xứng thông
dụng là: RSA, ELLIPTIC CURVE,
ELGAMAL, DIFFIE KELLMAN,…

138
THUẬT TOÁN RSA
(Rivest Shamir Adleman )
• RSA là một thuật toán mật mã
hoá khoá công khai. Đây là
thuật toán đầu tiên phù hợp với
việc tạo ra chữ ký điện tử đồng
thời với việc mã hoá.Nó đánh
dấu một sự tiến bộ vượt bậc
của lĩnh vực mật mã học trong
việc sử dụng khoá công cộng

139
Ta có thể mô phỏng trực quan một hệ
mật mã khoá công khai như sau

• Bob muốn gửi cho Alice một thông tin mật mà Bob
muốn duy nhất Alice có thể đọc được. Để làm được
điều này, Alice gửi cho Bob một chiếc hộp có khóa
đã mở sẵn và giữ lại chìa khóa. Bob nhận chiếc hộp,
cho vào đó một tờ giấy viết thư bình thường và khóa
lại (như loại khoá thông thường chỉ cần sập chốt lại,
sau khi sập chốt khóa ngay cả Bob cũng không thể
mở lại được-không đọc lại hay sửa thông tin trong
thư được nữa). Sau đó Bob gửi chiếc hộp lại cho
Alice. Alice mở hộp với chìa khóa của mình và đọc
thông tin trong thư.
• Trong ví dụ này, chiếc hộp với khóa mở đóng vai trò
khóa công khai, chiếc chìa khóa chính là khóa bí
mật. 140
Tạo khóa

• Giả sử Alice và Bob cần trao đổi thông


tin bí mật thông qua một kênh không an
toàn (ví dụ như Internet). Với thuật toán
RSA, Alice đầu tiên cần tạo ra cho mình
cặp khóa gồm khóa công khai và khóa bí
mật theo các bước sau:

141
• 1. Chọn 2 số nguyên tố lớn p và q với p≠
q, lựa chọn ngẫu nhiên và độc lập.
• 2. Tính: n = p.q
• 3. Tính: giá trị hàm số Ơle.

• 4. Chọn một số tự nhiên e sao cho

và là số nguyên tố cùng nhau với .


• 5. Tính: d sao cho.

142
• Khóa công khai bao gồm:
• n, môđun, và
• e, số mũ công khai (cũng gọi là số mũ mã
hóa).
• Khóa bí mật bao gồm:
• n, môđun, xuất hiện cả trong khóa công
khai và khóa bí mật, và
• d, số mũ bí mật (cũng gọi là số mũ giải
mã).

143
Mã hóa
• Giả sử Bob muốn gửi đoạn thông tin M
cho Alice. Đầu tiên Bob chuyển M thành
một số m < n theo một hàm có thể đảo
ngược (từ m có thể xác định lại M) được
thỏa thuận trước.
• Lúc này Bob có m và biết n cũng như e do
Alice gửi. Bob sẽ tính c là bản mã hóa của
m theo công thức:

• Cuối cùng Bos gửi c cho ALice


144
Giải mã
• Alice nhận c từ Bob và biết khóa bí mật d.
Alice có thể tìm được m từ c theo công thức
sau:
• m ≡ cd mod n
• Biết m, Alice tìm lại M theo phương pháp đã
thỏa thuận trước. Quá trình giải mã hoạt
động vì ta có

• . Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1),


(theo Định lý Fermat nhỏ) nên:

• Và
145
• Do p và q là hai số nguyên tố cùng
nhau, ta có:

• hay:

146
Ví dụ
p = 61 — số nguyên tố thứ nhất (giữ bí
mật hoặc hủy sau khi tạo khóa)

q = 53 — số nguyên tố thứ hai (giữ bí


mật hoặc hủy sau khi tạo khóa)

n = pq = 3233— môđun (công bố công khai)

e = 17 — số mũ công khai
d = 2753 — số mũ bí mật

147
• Khóa công khai là cặp (e, n). Khóa bí
mật là d.
• Hàm mã hóa là:
• encrypt(m) = me mod n = m17 mod
3233
• với m là văn bản rõ.
• Hàm giải mã là:
• decrypt(c) = cd mod n = c2753 mod 3233
• với c là văn bản mã.

148
• Để mã hóa văn bản có giá trị 123, ta
thực hiện phép tính:
• encrypt(123) = 12317 mod 3233 = 855
• Để giải mã văn bản có giá trị 855, ta
thực hiện phép tính:
• decrypt(855) = 8552753 mod 3233 = 123

149
Ví dụ
• Ta chọn hai số nguyên tố p và q ,với p= 5
và p = 7
• Tính n = p*q = 5*7 = 35.
• Z = (p- 1)*(q-1) = (5-1)(7-1) = 24
• Tiếp đến chọn e thoả 1< e< n
• -> chọn e= 5.
• Tìm d ,sao cho e*d -1 chia hết cho z (24)
• -> chọn d = 29.
• Do đó: Pulic key =(n,e) =(35,5)
• Private key = (n,d) =( 35,29)

150
Áp dụng
• Mã hoá chuỗi sau:secure
• Ta có bảng sau :

Nôi dung vị trí Me Nội dung bị


mã hoá
S 19 246099 24
E 5 3125 10
C 3 243 33
U 21 4084101 21
R 18 1889568 23
e 5 3125 10 151
Giải mã chuỗi secure
• Giải mã xong ta được bảng sau:

Nội dung bị M = cd mod n Dữ liệu gốc


mã hoá
24 19 S
10 5 E
33 3 C
21 21 u
23 18 R
10 5 e
152
So sánh thời gian và chi phí cần thiết để
phá các khóa có độ dài tương ứng.
Giá Độ dài khoá (bit)
(USD)
40 56 64 80 128

100 nghìn 2 giây 35 giờ 1 năm 70000 năm 1019 năm

1 triệu 2 giây 3,5 giờ 37 năm 7000 năm 1018 năm

100 triệu 2 mili giây 2 phút 9 giờ 70 năm 1016 năm

1 tỷ 2 mili giây 13 giây 1 giờ 7 năm 1015 năm

100 tỷ 2 micro giây 1 giây 32 giây 24 ngày 1013 năm

Truyền và bảo mật thông tin 153


So sánh độ dài các khoá trong hai hệ mã hoá
đối xứng và bất đối xứng với cùng độ an toàn
Độ dài khóa đối xứng (bit) Độ dài khóa bất đối xứng (bit)

56 384

64 512

80 768

112 1792

128 2034

Truyền và bảo mật thông tin 154


Mã đối xứng và mã bất đối xứng
Mã đối Mã bất đối
xứng xứng

Tốc độ xử lý nhanh Tốc độ xử lý chậm

Mã khóa ngắn Mã khóa dài

Khó trao đổi Trao đổi mã khóa


mã khóa dễ dàng

Truyền và bảo mật thông tin 155


Chữ kí điện tử - Digital Signature
 Chữ kí điện tử là đoạn dữ liệu ngắn đính kèm với văn
bản gốc để chứng thực tác giả của văn bản và giúp
người nhận kiểm tra tính toàn vẹn của nội dung văn
bản gốc.
 Chữ kí điện tử được tạo ra bằng cách áp dụng thuật
toán băm một chiều trên văn bản gốc để tạo ra bản
phân tích văn bản (message digest) hay còn gọi là
fingerprint, sau đó mã hóa bằng private key tạo ra chữ
kí số đính kèm với văn bản gốc để gửi đi. Khi nhận,
văn bản được tách làm 2 phần, phần văn bản gốc được
tính lại fingerprint để so sánh với fingerprint cũ cũng
được phục hồi từ việc giải mã chữ kí số.
Truyền và bảo mật thông tin 156
Mô hình chữ kí điện tử

Truyền và bảo mật thông tin 157


Chữ ký điện tử

Alice

Bob

Alice’s m ?

Truyền và bảo mật thông tin 158


Hàm một chiều

x f(x)
 Ví dụ 1
 f(x) = số dư khi chia 3x cho 17.
 f(5) = 35 = 243 = 5 (mod 17).
 Cho y = 5; tìm x, 3x = 5 (mod 17). (logarit rời rạc)
 Ví dụ 2
 p = 345679, q = 765437, n = pq = 264595496723.
 Cho n = 264595496723. Tìm p, q thoả n = pq? (RSA)

Truyền và bảo mật thông tin 159


Hàm băm mật mã
 n = h(m) là hàm một chiều
 Biến một chuỗi (bit) có chiều dài tuỳ ý thành một chuỗi
có độ dài cố định.
 Làm thành một công đoạn bảo mật trước khi mã hoá và
gửi đi

h(m) encrypt send


m n c

>

Truyền và bảo mật thông tin 160


Giao thức mật mã
1. Định nghĩa
 Thuật toán
 Các bước mô tả các hành động cần thiết của các đối tượng nhằm đạt được
mục tiêu bảo mật.
1. Ví dụ:
giao thức trao đổi khoá trong mã đối xứng.

key ck key
eB dB

Alice Bob
(eA, dA) (eB, dB)

Truyền và bảo mật thông tin 161


Giao thức thiết lập khóa
Key Establishment Protocol
 Giao thức thiết lập khóa cách thức trao đổi khóa
giữa hai đối tác thông qua đường truyền, các giao
thức đã được các nhà khoa học chứng minh là an
toàn đối với mọi sự cố xảy ra trên đường truyền.
 Giao thức thiết lập khóa được chia làm 2 loại:
 Giao thức thỏa thuận khóa – Key agreement
protocol : khóa được thiết lập không cần sự giúp đỡ
của đối tác thứ ba.
 Giao thức truyền khóa – Key transport protocol : khóa
được đối tác thứ ba tạo và phân phối.
Truyền và bảo mật thông tin 162

You might also like