Professional Documents
Culture Documents
LÝ THUYẾT MẬT MÃ
Cryptography
Cryptanalysis
Cryptology = Cryptography +
Cryptanalysis
Security
Steganography
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.
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ả
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
Embedded
systems
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.
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õ.
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
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ú ý :
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
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
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:
• 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)
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 :
56 384
64 512
80 768
112 1792
128 2034
Alice
Bob
Alice’s m ?
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)
>
key ck key
eB dB
Alice Bob
(eA, dA) (eB, dB)