Dựa vào cách truyền khóa có thể phân thành: Hệ mã đối xứng: dùng chung một khóa cho quá trình mã hóa và giải mã.. Để đánh giá hệ mật mã người ta thường đánh giá thông qua các chính sách
Trang 1Chương 3
Hệ mật mã đối xứng
Trang 2được gọi là không gian các bản mã
K là tập hữu hạn các khoá hay còn gọi là không gian
khoá.
E: một ánh xạ KxP vào C, gọi là phép lập mật mã.
D: một ánh xạ KxC vào P, gọi là phép giải mã
3.1 Định nghĩa hệ mã
Trang 3Dựa vào cách truyền khóa có thể phân thành:
Hệ mã đối xứng: dùng chung một khóa cho quá trình mã hóa và giải mã
Hệ mã bất đối xứng: khóa mã hóa và giải
mã khác nhau
Ngoài ra còn có: hệ mã cổ điển, hệ mã hiện đại, mã dòng, mã khối
Phân loại hệ mật mã
Trang 4Để đánh giá hệ mật mã người ta thường đánh giá thông qua các chính sách sau:
Độ an toàn: an toàn tính toán
Chỉ dựa vào khóa, công khai thuật toán
Bản mã C không có điểm chú ý, gây nghi ngờ
e(K)=C, d(M)=P khi không biết d k thì không có khả năng tìm M từ C.
Tốc độ mã và giải mã
Phân phối khóa
Tiêu chuẩn đánh giá hệ mã
Trang 5Mô hình mã hóa đối xứng
Trang 6 Khóa phải giữ bí mật giữa người gởi và
người nhận, hay nói cách khác phải có kênh chuyển khóa an toàn
Tính an toàn hệ mã đối xứng: được gọi là an toàn khi không thể phá mã (lý tưởng) hoặc thời gian phá mã là bất khả thi
Đặc điểm hệ mã đối xứng
Trang 7 Hàm lập mã của mã Ceasar được định nghĩa như sau:
Hàm giải mã của mã Ceasar được định nghĩa như sau:
3.2 Mã Ceasar
Trang 8Mã Ceasar
Trang 9 Bảng tương ứng giữa chữ cái và các số dư theo modulo 26.
Trang 10Ví dụ
Trang 11 Dễ sử dụng
Thám mã cùng khá dễ dàng.
Số khóa cần thử là 25
Giải thuật mã hóa và giải mã đã biết
Ngôn ngữ plaintext đã biết và dễ đoán.
không an toàn
Nhận xét
Trang 123.3 Mã thay thế đơn bảng
(Monoalphabetic Substitution Cipher)
Trang 13 Với phép hoán vị cho bảng sau:
Với hệ mật mã thay thế khóa :
Bản rỏ: hengapnhauvaochieuthubay
Bản mã: ghsoxlsgxuexfygzhumgunxd
Ví dụ
Trang 14 Số hoán vị khóa: 26!
Thám mã bằng duyệt tất cả các khóa không thực tế(26!≈4.1026 ≈6.4x1012 năm)
Một phương pháp thám mã dựa vào tần
suất xuất hiện của các chữ cái có thể đoán được bản rõ từ bản mã
không được coi là an toàn
Nhận xét
Trang 15 Không gian khóa là các cặp số (a, b)∈Z262 với gcd(a,b)=1.
Không gian khóa sẽ có:
∅(26)*26=12*26=312
Hàm lập mã:
Hàm giải mã:
Mã affine(nhân và cộng)
Trang 17Mã Hill
Là mã nhiều ký tự
Ý tưởng chính: dùng m ký tự bản rỏ kế tiếp nhau và thay thế m ký tự bản mã Việc thay thế này được xác định bởi m phương trình tuyến tính, mỗi ký tự được gán cho 1 giá trị số
khóa là ma trận cấp mxm
3.4 Mã thay thế đa ký tự
Trang 18 Mã Hill được định nghĩa như sau:
Mã Hill(tt)
Trang 19Cách tính ma trận nghịch đảo
T
C k
det 1
nn n
n
n
n
A a
a a
a
a a
a
a a
a
k
1
2 1
2 22
21
1 12
iq
iq A a
(
Trang 208 11
7 3
8
11 24
11
) 4 , 3 ( )
140 72
, 60 99
( 7
3
8
11 20
Trang 218 11
18
7 11
3
8 7
* ) det(
1
a c
b
d k
k
Trang 22 dk (y1, …,ym)=(y1,…,ym)*k-1 mod 26
Giải mã
11 23
18
7 22
11
) 20 9
( 11
23
18
7 4
Trang 23 Nếu chỉ biết bản mã thì việc thám mã khó khăn.
Nếu biết bản rỏ dưới dạng m cặp phân biệt khác nhau của bản rỏ và bản mã.
Trang 24 Thực hiện trên từng bộ m ký tự
3.5 Mã thay thế đa bảng vigenere
Trang 25 Với m=6, k=(2, 8, 15, 7, 4, 17)
Ví dụ
Trang 26 Để mã hóa bản tin cần có khóa có chiều dài
bằng bản tin.
ứng với một chữ cái trong bản rõ có thể có
nhiều chữ cái trong bản mã phá mã bằng
thống kê tần suất không thể thực hiện được.
Phá mã đối với mã vigenere dựa trên sự lặp lại của cụm từ để đoán chiều dài khóa, từ đó tách bản mã thành các phần mà mỗi phần được mã hóa bằng PP đơn bảng.
Không an toàn
Nhận xét
Trang 27 Xáo trộn thứ tự các chữ cái trong bản rõ để được bản mã.
Có thể thực hiện hoán vị nhiều lần để tăng
sự phức tạp cho việc phân tích mã
3.6 Mã hoán vị
Trang 28 Bản rõ được chia thành các đơn vị mã hóa k bit: P p0p1p2 Pn-1 (pi: k bit)
Một bộ sinh số ngẫn nhiên từ khóa K ban
đầu có kích thước bằng đơn vị mã hóa:
Trang 29Mô hình mã dòng
Trang 30 Tương tự như mã Vigenere hay mã
One-time Pad
Điểm quan trọng nhất của mã dòng là bộ
sinh khóa ngẫn nhiên Nếu chọn khóa ngăn thì không đảm bảo an toàn, nếu khóa dài thì không thực tế Do đó, bộ sinh số ngẫn nhiên phải cân bằng điểm này
Nhận xét
Trang 31 Dùng trong mạng điện thoại GMS đảm bảo bảo mật trong quá trình liên lạc giữa ĐT và trạm thu phát vô tuyến.
Đơn vị mã hóa: 1bit
Bộ sinh số: 0 hoặc 1 để sử dụng trong phép xor
Mã A5/1
Trang 32 Bộ sinh số gồm 3 thanh X(6 bit), Y(8 bit),
Z(9 bit), khóa có chiều dài 23 bit được phân
bố vào thanh ghi: KXYZ
Các thanh ghi được biến đỗi qua qui tắc
sau:
Ví dụ: x=100101, t=1 x= 110010
Tiny A5/1
Trang 34 Ta định nghĩa hàm “chiếm đa số” như sau:maj(x1, y3, z3) =0 nếu có hai bit 0, ngược lai.
Tại bước sinh số thứ i,
Bit si được XOR với bit thứ i trong bản rõ để
có được bit thứ i trong bản mã
Trang 35Ví dụ: P=111,
khóa: 100101
01001110.100110000
Trang 36A5/1
Trang 37Mã dòng A5/1
Trang 38 Dùng trong giao thức SSL để bảo mật dữ
liệu trong quá trình truyền tải giữa Web
Server và trình duyệt web
Dùng trong mã hóa WEP của mạng Wireless LAN
Mã RC4
Trang 39 Đơn vị mã hóa: 3bit
Dùng 2 mảng S và T, mỗi mảng 8 số nguyên 3bit (từ 0 đến 7)
Khóa là một dãy N số 3bit (N từ 1 đến 7)
Bộ sinh số: mỗi lần sinh ra 3bit để sử dụng trong phép XOR
Tiny RC4
Trang 40 Giai đoạn khởi tạo
Trang 41 Ví dụ: mã hóa bản rõ: P= 001000110, K={2, 1, 3}
Tiny RC4 (tt)
Khi i=7 ta được S= 6 0 7 1 2 3 5 4
Trang 42 Giai đoạn sinh số
Trang 43Tiny RC4 (tt) Xét ví dụ trước
Vậy bản mã C= 001.000.110 ⊕101.001.111 = 100.001.001 (từ EBB)
Trang 44 Tượng tự như Tiny RC4 với các đặc tính sau:
Đơn vị mã hóa: 1byte
Mảng S và T gồm 256 số 8bit
Khóa K là một dãy số nguyên 8bit từ 1256.
Bộ sinh số mỗi lần sinh 1byte để sử dụng trong phép XOR
RC4
Trang 46 Quá trình sinh số trong RC4 là ngẫu nhiên, khó đoán trước nên đạt được độ bảo mật cao theo tinh thần của mã One-Time Pad.
Mã RC4 hoàn toàn thực hiện được trên số nguyên
1byte, tốc độ xử lý nhanh hơn mã khối
Trang 47 Phép toán XOR có hạn chế là chỉ cần biết cặp khối bản rõ và bản mã, người ta có thể dễ
dàng suy ra khóa và dùng khóa để giải các khối mã khác
ví dụ:
Nếu c=1010, p=1111 thì k= 0101
3.8 Mã khối
Trang 48 Để chống phá mã trong trường hợp known-plaintext hay choosen-plaintext, chỉ có thể làm cho p và c
không có mối liên hệ toán học- Lập bảng tra cứu
Mã khối an toàn lý tưởng
Trang 49 Trong thực tế ko thể xd mã khối an toàn tuyệt đối.
Dùng khóa có kích thước ngắn + kết hợp nhiều mã hóa đơn giản (phép thế, phép hoán vị) an toàn sắp xỉ mã khối lý tưởng
Mạng SPN
Trang 50 Việc kết hợp các hàm S-box và P-box tạo hai đặc tính quan trọng là: tính khuếch tán và tính gây nhiễu.
Tính khuếch tán: 1bit bản rõ là ảnh hưởng đến tất cả các bít bản mã (S-box, P-box)
Tính gây nhiễu: là phức tạp hóa mối liên
quan giữa bản mã và khóa (S-box)
Mạng SPN (tt)
Trang 51 Do Horst Feistel đề xuất: kết hợp phép thế và hoán vị.
Bản rõ được biết đổi qua một số vòng để cho ra
bản mã cuối cùng.
Bản rõ P và bản mã C được chia thành hai nữa L i
và R i
Khóa k i được sinh ra theo thuật toán sinh khóa con
F là hàm mã hóa dùng chung cho tất cả các vòng,
F đóng vai trò như phép thay thế, còn việc hoán
đổi các nữa trái phải có vai trò như hoán vị.
Mô hình mã hóa Feistel
Trang 52Mô hình mã hóa Feistel
Trang 53 Tiền thân là mã Lucifer của IBM
Là mã thuộc hệ mã Feistel 3 vòng
Kích thước khối là 8bit
Kích thước khóa 8bit
Mỗi vòng dùng khoa con 6bit
Mã Tiny DES
Trang 54Các vòng Tiny DES
Trang 55Cấu trúc 1 vòng của Tiny DES
Trang 57 Khóa K 8 bít ban đầu được chia thành 2 nửa trái phải KL0 và KR0, mỗi nửa có kích thước 4 bít Tại vòng thứ nhất KL0 và KR0 được dịch vòng trái 1 bít để có được KL1 và KR1
Tại vòng thứ hai KL1 và KR1 được dịch vòng trái 2 bít để có được KL2 và KR2 Tại vòng tại vòng thứ 3 KL2 và KR2
được dịch vòng trái 1 bít để có KL3 và KR3
Cuối cùng khóa Ki của mỗi vòng được tạo ra bằng cách hoán
vị và nén (compress) 8 bít của KLi và KRi
(k0k1k2k3k4k5k6k7) thành kết quả gồm 6 bít :
k5k1k3k2k7k0
Thuật toán sinh khóa con
Trang 601. Tấn công vét cạn khóa: vì khóa DES có độ
dài 56bit, nên để tấn công vét cạn khóa
cần kiểm tra 256 khóa khác nhau
2. Phá mã DES theo PP vi sai: đòi hỏi 247 cặp
bản rõ, bản mã lựa chọn bất khả thi
3. Phá mã theo PP thử tuyến tính: cần biết
trước 243 cặp bản rõ-bản mã không khả thi
Độ an toàn của DES
Trang 61 Sử dụng DES nhiều lần với khóa khác nhau.
C=E(D(E(P, K1), K2) K1)
Khi K1 = K2 =K thì Triple suy diễn thành DES
Triple DES
Trang 62 Là thuật toán mã hóa Rijndael
Kích thước khối mã 128, 192 hoặc 256 bit
Cho phép lựa chọn kích thước khóa độc lập với kích thước khối: 128, 192 hay 256 bit
Số vòng có thể thay đổi từ 10 đến 14 vòng tùy thuộc vào kích thước khóa
Advanced Encryption Standard (AES)
Trang 63 Mã hóa đối xứng thực hiện tính bảo mật.
Đối với tính chứng thực thì sao? Mã hóa đối xứng có thể chống lại tấn công sửa đổi
thông điệp, mạo danh hay phát lại thông điệp hay không?
??? Có, giải thích
Tính chứng thực của mã hóa đối xứng (authentication)
Trang 64 Mã hóa đối xứng đảm bảo tính bảo mật
nhưng không đảm bảo tính không từ chối
Nguyên nhân: khóa bí mật K
Nếu K bị tiết lộ thì không thể qui trách
nhiệm cho ai
Tính không từ chối
(non-repudiation) của mã hóa đối xứng
Trang 65 Giả sử có N người dùng, trao đổi dữ liệu bằng
mã hóa đối xứng cần N(N-1)/2 khóa bí mật
Trao đổi khóa bí mật bằng TTPP khóa
Trang 66 Mỗi người dùng chỉ cần 1 khóa bí mật với KDC, còn khóa để trao đổi dữ liệu với người dùng do KDC cung cấp.
Key Distribution Center – KDC
Trang 67Key Distribution Center – KDC
Trang 68Q&A