Bài giảng cơ sở lý thuyết mật mã ( combo full slides 4 chương ) Bài giảng cơ sở lý thuyết mật mã ( combo full slides 4 chương ) Bài giảng cơ sở lý thuyết mật mã ( combo full slides 4 chương ) Bài giảng cơ sở lý thuyết mật mã ( combo full slides 4 chương ) Bài giảng cơ sở lý thuyết mật mã ( combo full slides 4 chương )
Trang 1CƠ SỞ LÝ THUYẾT MẬT MÃ
Bộ môn Khoa Học An Toàn Thông Tin
******
Trang 2Gồm 4 chương:
1
Nhập môn mật
mã học
2
Mật mã khoá
Hàm băm, xác thực
và chữ
kí số
4
Trang 3Nguồn tin
tương tự
Biến đổi A/D
Mã
Mã bảo mật
Kênh truyền (tạp
âm, đa đường, giao thoa, nhiễu, nghe trộm, …)
Giải mã kênh
Giải mã bảo mật
Biến đổi D/A
Giải mã nguồn Nhận tin
Trang 4Mật mã (Cryptography)
Mã hóa (Encryption)
Giải mã (Decryption)
Phá mã (Deciphering)
Thám mã, Phân tích mã (Cryptanalysis)
Hệ mật (Cipher, Ciphercode)
Khóa mật mã
(Cryptographic Key)
Bản rõ (Plaintext)
Bản mã (Ciphertext)
Độ an toàn
(Cryptographic
Lược đồ mật mã
Trang 6Các ký tự của bản rõ và bản mã thường thuộc tập các
ký tự của ngôn ngữ thông thường như tiếng Việt, tiếng Anh,…
Ta ký hiệu tập ký tự của tiếng Anh là A, tức A = {a,
Trang 8Hệ mật đối xứng (Hệ mật khóa bí mật)
Hệ mật phi đối xứng (Hệ mật khóa công khai)
( ) ( )
Trang 9Cách hiểu truyền thống: giữ bí mật nội dung trao đổi
Alice và Bob trao đổi với nhau trong khi Oscar tìm cách “nghe lén”
Bob
Alice
Oscar
Mật mã học???
Trang 10Bả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
Trang 11Khoa An Toàn Thông Tin
Bộ Môn: Khoa Học An Toàn Thông Tin
về hệ mật khóa
3
Các
hệ mật thay thế đa biểu
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn
mã dữ liệu DES
7
Chuẩn
mã dữ liệu tiên AES
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn
mã dữ liệu DES
7
Chuẩn
mã dữ liệu tiên AES
• Từ bản mã thu được giải mã để thu bản rõ ban đầu
Các hệ mật thay thế đơn biểu
Trang 12Các hệ mật thay thế đơn biểu
2 Mã thay thế (Substitution Cipher):
P= C = Z26, K là tập tất cả các hoán vị trên Z26, với mỗi phép hoán
vị ߨ ∈ ܭ, ta định nghĩa:
ݕ = ݁గݔ = ߨ ݔ
và
ݔ = ݀గݕ = ߨିଵ(ݕ)trong đó ߨିଵlà hoán vị ngược của ߨ
8
Các hệ mật thay thế đơn biểu
• Ví dụ: mã hoá bản rõ gap nhau chieu thu bay
• Giải mã bản mã thu được
Các hệ mật thay thế đơn biểu
Cho P = C = Z 26 K = {(a,b) ∈ Z26x Z26 | UCLN (a, 26) = 1}
Với k = (a, b) ∈ K ta định nghĩa:
về hệ mật khóa
3
Các
hệ mật thay thế đa biểu
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn
mã dữ liệu DES
7
Chuẩn
mã dữ liệu tiên AES
Trang 134 Hệ mã Vigenere (Vigenere Cipher):
• Nhận xét:
– Số khoá: 26m
⇒ Tấn công tìm khoá vét cạn là không khả thi
Các hệ mật thay thế đa biểu
Cho m là số nguyên dương P = C =K = (ܼଶ) Với
• Hãy mã hoá bản rõ trên
• Giải mã bản mã vừa thu được
Các hệ mật thay thế đa biểu
– Như vậy có chữ mã khác nhau cho cùng một chữ của bản rõ
– Được sáng tạo bởi Charles Wheastone vào
năm 1854 và mang tên người bạn là Baron
Trang 14• Quy tắc sắp xếp:
Các hệ mật thay thế đa biểu
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.
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.
20
Các hệ mật thay thế đa biểu
• Giả sử sử dụng từ khoá MONARCHY Lập ma trận khoá Playfair tương ứng như sau:
• Cách 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 ”.
Các hệ mật thay thế đa biểu
• Nếu cả hai chữ trong cặp đều rơi vào cùng mộthàng:
– 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)
– 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ậnkhóa
– Cho từ khóa: “ Charles ” Hãy thiết lập ma trận
khóa Playfair tương ứng.
– Mã hóa bản rõ:
Hen gap nhau vao chieu thu bay.
– Giải mã bản mã vừa thu được.
6 Hệ mật Hill (Hill Cipher):
– Lester S.Hill đưa ra năm 1929
– Ý tưởng: lấy m tổ hợp tuyến tính của m kí tự
trong một phần tử bản rõ để tạo ra một phần tử
gồm m kí tự trong một phần tử của bản mã.
Các hệ mật thay thế đa biểu
Trang 15• Mô tả:
Các hệ mật thay thế đa biểu
Cho m là số nguyên dương cố định Cho P = C = (Z26)m.
• Vì các phép toán tính theo modulo 26 nên phải
có điều kiện: UCLN(detA, 26) = 1
a a a a A
.)(det
a a a a A A
về hệ mật khóa
3
Các
hệ mật thay thế đa biểu
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn liệu DES
7
Chuẩn liệu tiến AES
• Bản rõ:we are discovered save yourself
– Hãy mã hoá bản rõ trên
– Giải mã bản mã thu được
Các hệ mật thay thế không tuần hoàn
?
Trang 16Các hệ mật thay thế không tuần hoàn
Cho n ≥ 1 P = C =K = (ܼଶ) Với khoá k = (k1, k2, …,
về hệ mật khóa
3
Các
hệ mật thay thế đa biểu
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn liệu DES
7
Chuẩn liệu tiến AES
35
• Ý tưởng:
– Các chữ trong bản rõ không được thay thế
bằng các chữ khác mà chỉ thay đổi vị trí giữa
Trang 17Hengap nhauva ochieu thubay
– B2: Mỗi nhóm 6 kí tự sẽ được sắp xếp lại
theo theo phép HV π (3, 5, 1, 6, 4, 2), ta có:
Nahpge avnauh heouic uatybh
– Khi đó ta có bản mã:
Nahpgeavnauhheouicuatybh Các hệ mật chuyển vị
– Tức là với bản mật mã có thể dễ dàng thu được (trêncác kênh truyền công cộng) người thám mã phảiphát hiện được nội dung thông tin được che dấu trong bản mật mã đó, mà tốt nhất là tìm được bản tin rõ gốc của bản mật mã đó
Thám mã các hệ mật cổ điển
41
• Vấn đề thám mã các hệ mật
– Tình huống thường gặp là bản thân sơ đồ hệ thống
mật mã, kể cả phép mã hóa và giải mã (E và D) không
Trang 18• Một số nhận xét
– Ta vẫn giả thiết bản rõ cũng như bản mã đều được xây
dựng trên bảng ký tự tiếng Anh và hơn nữa các thông
báo là các văn bản tiếng Anh
– Như vậy, ta luôn có ܲ = ܥ = ܼଶhay và có thêm
thông tin làcác bản rõ tuân theo các quy tắc từ pháp và
cú pháp của ngôn ngữ tiếng Anh
– Các kết quả chủ yếu được sử dụng nhiều nhất trong
thám mã là quy tắc thống kê tần suất xuất hiện các ký tự
hay các bộ đôi, bộ ba, … ký tự liên tiếp trong văn bản
45
• Một số nhận xét
– Trên cơ sở phân tích các số liệu thống kê từ một số
lượng rất lớn các văn bản thư từ, sách vở, báo chí,…
người ta đã thu được những kết quả và được tổng hợp
lại như sau:
• …
• Ba mươi bộ đôi ký tự có xác suất xuất hiện cao nhất 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, of
• Mười hai bộ ba ký tự có xác suất xuất hiện cao nhất là:the, ing,
and, her, ere, ent, tha, nth, was, eth, for, dth
– Sau đây là bảng thống kê tần suất của các ký tự
Thám mã các hệ mật cổ điển
46
47
• Nhận xét về các hệ mật thay thế đơn biểu:
– Mỗi ký tự của bản rõ được ánh xạ đến một ký
tự duy nhất của bản mã
– Các đặc trưng về ngôn ngữ, tần suất xuất
hiện của các chữ trong bản rõ và chữ tương
ứng trong bản mã là như nhau
– Bằng cách thống kê trên bản mã:
• Đếm 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, bộ đôi và bộ ba hay dùng; và các bộ ít dùng
• Dựa vào bảng tần suất xuất hiện của các chữ cái để đoán và tìm
ra bản rõ
Thám mã các hệ mật cổ điển
Trang 19• Thám mã Apphin bằng pp thống kê tần suất:
– Nếu biết 2 cặp bản rõ, bản mã (x, y) khác nhau
ta có được hệ 2 phương trình tuyến tính để từ
• Thám mã Apphin bằng pp thống kê tần suất:
– Như vậy có thể phán đoán r là mã của e, d là mã
• Ví dụ: Giả sử ta có bản mã bởi hệ mật apphin
• Thám mã bằng phương pháp thống kê tần suất?
Trang 20• Quay lại bước 2
– Giả sử G là mã hóa của T
of his not attacking but rather on the fact that wehave made our position unassailable”
59
• Thám mã đối với hệ mật Hill:
– Hệ mật Hill khó bị khám phá bởi việc thám mã
chỉ dựa vào bản mã
– Nhưng lại là dễ bị khám phá nếu có thể sử dụng
phương pháp thám mã kiểu biết cả bản rõ
Thám mã các hệ mật cổ điển
60
• Thám mã đối với hệ mật Hill:
– Trước hết ta giả thiết là đã biết giá trị m
– Mục đích của thám mã là phát hiện được khóa mật mã k
Trong trường hợp này là một ma trận vuông cấp m
có các thành phần thuộc Z 26
Thám mã các hệ mật cổ điển
Trang 21• Thám mã đối với hệ mật Hill:
– Ví dụ: Giả sử mã Hill được sử dụng với m = 2,
có bản mã là pqcfku và biết bản rõ tương ứng là
• Thám mã đối với hệ mật Hill:
– Khóa k được xem là đúng nếu ngoài m cặp bộ m dùng để tìm khóa, k vẫn nghiệm đúng với các cặp bộ m khác mà ta có thể chọn để thử.
5
Các hệ mật chuyển vị
6
Chuẩn liệu DES
7
Chuẩn liệu tiến AES
66
1
Giới thiệu
về hệ mật khóa
3
Các
hệ mật thay thế đa biểu
4
Các
hệ mật thay thế không tuần hoàn
5
Các hệ mật chuyển vị
6
Chuẩn liệu DES
7
Chuẩn liệu tiến AES
Trang 22Khoa An Toàn Thông Tin
Bộ Môn: Khoa Học An Toàn Thông Tin
Các hệ mật khoá bí mật.
2
• Giới thiệu về DES
• Thuật toán DES
• Các chế độ hoạt động của DES
• Double DES và Triple DES
Chuẩn mã dữ liệu DES
3
• Giới thiệu về DES
– Năm 1972, Viện tiêu chuẩn và công nghệ quốc gia Hoa
kỳ (National Institute of Standards and
Technology-NIST) đặt ra yêu cầu xây dựng một thuật toán mã hoá
bảo mật thông tin với yêu cầu là dễ thực hiện, sử dụng
được rộng rãi trong nhiều lĩnh vực và mức độ bảo mật
cao
– Năm 1974, IBM giới thiệu thuật toán Lucifer, thuật toán
này đáp ứng hầu hết các yêu cầu của NIST
– Sau một số sửa đổi, năm 1976, Lucifer được NIST công
nhận là chuẩn quốc gia Hoa kỳ và được đổi tên thành
Data Encryption Standard (DES)
• Sự xuất hiện của DES đã tạo nên một làn sóng nghiên cứu trong giới khoa học về lĩnh vực mật mã học, đặc biệt là các phương
Schneier viết:
biết trước rằng chi tiết của thuật toán sẽ được công bố để mọi người có thể viết chương trình phần mềm, họ sẽ không bao giờ đồng ý DES đã tạo nên nguồn cảm hứng nghiên cứu trong lĩnh vực thám mã hơn bất kỳ điều gì khác: Giới khoa học đã có một thuật toán để nghiên cứu - thuật toán mà NSA khẳng định là an toàn."
4
5
• DES là thuật toán mã hoá bảo mật được sử dụng rộng rãi
nhất trên thế giới
• Ở thời điểm DES ra đời ngưòi ta đã tính toán rằng việc
phá được khoá mã DES là rất khó khăn, nó đòi hỏi chi phí
hàng chục triệu USD và tiêu tốn khoảng thời gian rất nhiều
năm
• Cùng với sự phát triển của các loại máy tính và mạng máy
tính có tốc độ tính toán rất cao, khoá mã DES có thể bị phá
trong khoảng thời gian ngày càng ngắn với chi phí ngày
càng thấp Dù vậy việc này vẫn vượt xa khả năng của các
hacker thông thường và mã hoá DES vẫn tiếp tục tồn tại
Gửi và nhân văn bản
Trang 23• Mô tả DES:
• Thuật toán gồm 3 bước
Chuẩn mã dữ liệu DES
Xâu bit x có độ dài 64 bit, khoá độ dài 56 bit
-Với bản rõ cho trước x
-Tạo xâu x0theo hoán vị cố định ban đầu IP
- k1, k2, …, k16là các xâu bit có độ dài
48 được tính như 1 hàm của khóa k
Áp dụng phép hoán vị ngược IP-1cho
xâu bit R16L16, ta thu được bản mã y Tức
Chuẩn mã dữ liệu DES
Xâu bit A có độ dài 32 Xâu bit J có độ dài 48
Input
xâu bit có độ dài 32 bit Output
Trang 24• Bước 2: Tính E(A) ⊕ J và viết kết quả thành một chuỗi 8 xâu 6 bit là
Chuẩn mã dữ liệu DES
15
S1S2,…,S8( được gọi là các hộp S ) Với mỗi
• Bước 4: Xâu bit C = C1C2… C8có độ dài
32 được hoán vị theo phép hoán vị cố định P Xâu kết quả là P(C) được xác định
là f(A, J).
Chuẩn mã dữ liệu DES
17
• Phép hoán vị ban đầu IP:
• Bảng này có ý nghĩa là bit thứ 58 của x là bit
đầu tiên của IP(x); bit thứ 50 của x là bit thứ 2
Trang 25• Mô tả tính bảng khóa từ khóa k.
– Trên thực tế k là một xâu bit độ dài 64, trong
đó có 56 bit khóa và 8 bit kiểm tra tính chẵn lẻ nhằm phát hiện sai.
– Các bit ở các vị trí 8, 16, …, 64 được xác định sao cho mỗi byte chứa một số lẻ các số “1”
Bởi vậy, một sai sót đơn lẻ có thể phát hiện được trong mỗi nhóm 8 bit.
– Các bit kiểm tra bị bỏ qua trong quá trình tính bảng khóa.
Chuẩn mã dữ liệu DES
Trang 26• Các bước tính bảng khóa DES:
– Với một khoá k 64 bit cho trước, ta loại bỏ các
bit kiểm tra tính chẵn lẻ và hoán vị các bit còn
lại của k theo phép hoán vị cố định PC-1 Ta
– Đầu ra của thuật toán sẽ là bản rõ x.
Chuẩn mã dữ liệu DES
29
• Tính chất của DES
– Tác dụng đồng loạt: Khi ta thay đổi 1 bit trong
khoá sẽ gây ra tác động đồng loạt làm thay đổi nhiều
bit trên bản mã Đây là tính chất mong muốn của khoá
trong thuật toán mã hoá Nếu thay đổi 1 bít đầu vào
hoặc khoá sẽ kéo theo thay đổi một nửa số bít đầu ra
Do đó không thể đoán khoá được Co thể nói rằng
DES thể hiện tác động đồng loạt mạnh
Chuẩn mã dữ liệu DES
30
• Tính chất của DES – Tính chất bù:Ký hiệu ̅ là bù của x theo từng bít,
ta có
– Khóa yếu:DES có 4 khóa yếu
• k được gọi là khóa yếu nếu ( ) = với mọi x
– Khóa nửa yếu: Có 6 cặp khóa nửa yếu
• Là cặp (k1, k2) sao cho ( ) = với mọi x
– DES không là nhóm dưới phép hợp hàm
Chuẩn mã dữ liệu DES
Trang 27• Sức mạnh của DES – tấn công thời gian:
– Đây là dạng tấn công vào cài đặt thực tế của mã Ở đây sử dụng
hiểu biết về quá trình cài đặt thuật toán mà suy ra thông tin về một
sô khoá con hoặc mọi khoá con Đặc biệt sử dụng kết luận là các
tính toán chiếm khoảng thời gian khác nhau phụ thuộc vào giá trị
đầu vào của nó Do đó kẻ thám mã theo dõi thời gian thực hiện mà
phán đoán về khoá Có thể kẻ thám mã sáng tạo ra các loại card
thông minh phán đoán khoá, mà còn phải bàn bạc thêm về chúng
• Sức mạnh của DES – tấn công thám mã:
– Có một số phân tích thám mã trên DES, từ đó đề xuất xây dựng
một số cấu trúc sâu về mã DES Rồi bằng cách thu thập thông tin
về mã, có thể đoán biết được tất cả hoặc một số khoá con đang
dùng Nếu cần thiết sẽ tìm duyệt những khoá còn lại Nói chung,
đó là những tấn công dựa trên phương pháp thống kê bao gồm:
thám mã sai phân, thám mã tuyến tính và tấn công khoá liên kết
Chuẩn mã dữ liệu DES
32
• Sự khác biệt ở đầu vào cho sự khác biệt ở đầu
ra với một xác suất cho trước.
– Nếu tìm được một thể hiện đầu vào - đầu ra với xác suất cao Thì có thể luận ra khoá con được sử dụng trong vòng đó
– Sau đó có thể lặp lại cho nhiều vòng (với xác suất giảm dần)
– Cặp đúng cho bít khoá như nhau– Cặp sai cho giá trị ngẫu nhiên– Đối với số vòng lớn, xác suất để có nhiều cặp đầu vào 64 bít thoả mãn yêu cầu là rất nhỏ
Chuẩn mã dữ liệu DES
33
Chuẩn mã dữ liệu DES
• Thám mã sai phân: đây là phương pháp
mạnh để phân tích mã khối
– Thám mã sai phân so sánh hai cặp mã có liên
quan với nhau
• Với sự khác biệt đã biết ở đầu vào
• Khảo sát sự khác biệt ở đầu ra
• Khi với cùng khoá con được dùng
• Trong công thức sau với hai đầu vào khác nhau,
vế trái là sự khác biệt mã ở cùng vòng thứ i được
biểu diễn qua sự khác biệt mã ở vòng trước đó i-1
và sự khác biệt của hàm f trong ngoặc vuông
34
• Qui trình thám mã như sau: thực hiện mã hoá lặp lại với cặp bản rõ có XOR đầu vào biết trước cho đến khi nhận được XOR đầu ra mong muốn
kê Cơ sở của phương pháp dựa trên tìm xấp xỉ tuyến tính
• Tìm xấp xỉ tuyến tính với xác suất p= ½
P[i1, i2, , ia] (+) C[j1, j2, , ib] = K[k1, k2, , kc]
trong đó ia, jb, kclà các vị trí bit trong bản rõ, mã, khoá
• Điều kiện trên cho phương trình tuyến tính của các bít khoá
• Để nhận được 1 bít khoá sử dụng thuật toán lân cận tuyến tính
– Sử dụng một số lớn các phương trình thử nghiệm Hiệu
quả cho bởi |p – 1/2|
• Trong quá trình tìm hiểu DES người ta đã hệ thống lại các tiêu
chuẩn thiết kế DES Như báo cáo bởi Copperscmith trong
– Có 3 tiêu chuẩn cho hoán vị P để tăng độ khuếch tán
Chuẩn mã dữ liệu DES
Chuẩn mã dữ liệu DES
Trang 28• Chế độ quyển mã điện tử (ECB):
– Là cách sử dụng thông thường và đơn giản của
• Ưu và nhược của ECB:
– Lặp trên bản mã được chỉ rõ lặp trên bản tin nếu dóng đúng khối, đặc biệt với hình ảnh, hoặc với bản tin có rất ít sự thay đổi thì sẽ trở thành đối tượng dễ thám mã
– Được sử dụng chủ yếu khi gửi một ít dữ liệu
Chuẩn mã dữ liệu DES
39
• Chế độ liên kết khối mã(CBC):
– Để được khối mã yi ta dùng DES cho không
phải ximà là xi⊕ yi-1, tức là ta có
yi=ek(xi⊕ yi-1) với mọi i >1
- y0là một vector khởi tạo 64 bit
Chuẩn mã dữ liệu DES
40
• Chế độ CFB và OFB:
– Dùng DES để tạo ra dòng khóa z1, z2,… rồi sau
đó lập mã yi= xi⊕ zi(i≥1) – Với OFB, z1, z2,… được tạo bởi
• z 0= y0(là vector khởi tạo 64)
• z i = e k (z i-1)
– Với CFB, z1, z2,… được tạo bởi
• y 0là một vector khởi tạo 64 bit
• z i = e k (y i-1 ) (i≥1)
Chuẩn mã dữ liệu DES
41
• Ưu và nhược điểm của CFB
– Được dùng khi dữ liệu đến theo byte/bit Đây là
chế độ dòng thường gặp nhất
– Lỗi sẽ lan ra một vài block sau lỗi
• Ưu điểm và nhược điểm của OFB
– Được dùng khi lỗi phản hồi ngược lại hoặc ở
nơi cần mã trước khi mẩu tin sẵn sàng
– Rất giống CFB, nhưng phản hồi là từ đầu ra của
mã và độc lập với mẩu tin
– Người gửi và người nhận phải đồng bộ, có
phương pháp khôi phục nào đó là cần thiết để
đảm bảo việc đó.
Chuẩn mã dữ liệu DES
42
• Ưu điểm và nhược điểm của OFB
– Được dùng khi lỗi phản hồi ngược lại hoặc ở nơi cần mã trước khi mẩu tin sẵn sàng – Rất giống CFB, nhưng phản hồi là từ đầu ra của mã và độc lập với mẩu tin
– Người gửi và người nhận phải đồng bộ, có phương pháp khôi phục nào đó là cần thiết để đảm bảo việc đó.
Chuẩn mã dữ liệu DES
Trang 29Chuẩn mã dữ liệu DES
• DES bội hai
2112= 5,1923.1023 phép tính TDES, bởi vậy thực tế khó có thể thám mã thành công.
( )
{DES DES M}
DESC
1 K 1 2 K 1 K
biểu
4
Các
hệ mật thay thế không tuần
5
Các hệ mật chuyển vị
6
Chuẩn
mã dữ liệu
7
Chuẩn
mã dữ liệu tiến
cử viên vào tháng 6 năm 1999 Đến tháng 10 năm 2000, mãRijndael được chọn làm chuẩn mã nâng cao và được xuất bản
là chuẩn FIPS PUB 197 vào 11/2001
• Yêu cầu của AES
– Là mã khối đối xứng khoá riêng
– Kích thước khối dữ liệu 128 bit và độ dài khoá là tùy biến: 128,
192 hoặc 256 bit
– Chuẩn mã mới phải mạnh và nhanh hơn Triple DES Mã mới có
cơ sở lí thuyết mạnh để thời gian sống của chuẩn khoảng 20-30 năm (cộng thêm thời gian lưu trữ)
– Khi đưa ra thành chuẩn yêu cầu cung cấp chi tiết thiết kế và đặc
tả đầy đủ Đảm bảo rằng chuẩn mã mới cài đặt hiệu quả trên cả
C và Java
Chuẩn mã dữ liệu AES
47
Chuẩn mã dữ liệu AES
• Cơ sở toán học của AES: trong AES các phép
toán cộng và nhân được thực hiện trên các byte
trong trường hữu hạn GF(28)
Trong AES đa thức bất khả quy này là:
m(x) = x8 + x4 + x3 + x +1.
• Ví dụ:A = C3H, B = 85Htương ứng vớia(x) = x7 + x6 + x +1 và b(x) = x7 + x2 + 1 Khi đó: C=
A.Bc(x) = a(x).b(x) mod (x8 + x4 + x3 + x +1)c(x) = x7 + x5 + x3+x2+ x hay C = AEH= 10101110
Chuẩn mã dữ liệu AES
Trang 30– Lặp hơi khác với Fiestel
• Chia dữ liệu thành 4 nhóm – 4 byte
• Thao tác trên cả khối mỗi vòng
• Thiết kế để:
– chống lại các tấn công đã biết
– tốc độ nhanh và nén mã trên nhiều CPU
– Đơn giản trong thiết kế
Chuẩn mã dữ liệu AES
50
• Xử lý khối dữ liệu 128 bit như 4 nhóm của 4 byte: 128 = 4*4*8 bit Mỗi nhóm nằm trên một hàng Ma trận 4 hàng,
4 cột với mỗi phần tử là 1 byte coi như trạng thái được
xử lý qua các vòng mã hoá và giải mã
• Khoá mở rộng thành mảng gồm 44 từ 32 bit w[i]
• Có tùy chọn 9/11/13 vòng, trong đó mỗi vòng bao gồm
– Phép thế byte (dùng một S box cho 1 byte)– Dịch hàng (hoán vị byte giữa nhóm/cột)– Trộn cột (sử dụng nhân ma trận của các cột)– Cộng khoá vòng (XOR trạng thái dữ liệu với khoá vòng)
– Mọi phép toán được thực hiện với XOR và bảng tra, nên rất nhanh và hiệu quả
Chuẩn mã dữ liệu AES
2 Vòng cuối cùng không có phép biến đổi MixColumns
53
• Sau đây ta xét chi tiết hơn các quá trình
mã hoá, sinh khoá và giải mã AES:
– Quá trình mã gồm 4 bước sau:
• 1 AddRoundKey- mỗi byte của khối được kết hợp
với khóa con, các khóa con này được tạo ra từ
quá trình tạo khóa con Rijndael
Chuẩn mã dữ liệu AES
54
• 2 SubBytes - đây là quá trình thay thế (phi tuyến) trong đó mỗi byte sẽ được thay thế bằng một byte khác theo bảng tra
– Phép thê byte đơn giản– Sử dụng một bảng 16 x 16 byte chứa hoán vị của tất cả 256 giá trị
8 bit– Mỗi byte trạng thái được thay bởi byte trên hàng xác định bởi 4 bit trái và cột xác định bởi 4 bit phải
Chuẩn mã dữ liệu AES
–Chẳng hạn {95} được thay bởi hàng 9, cột 5, mà giá trị sẽ là {2A}
–S box được xây dựng sử dụng hoán vị các giá trị trong GF(28) đã được xác định trong chương trước
–Thiết kế để chống mọi tấn công đã biết
Trang 31byte sang trái
– Hàng 3 dịch vòng quanh 2 byte sang trái
– Hàng 4 dịch vòng quanh 3 byte sang trái
– Giải mã thực hiện dịch ngược lại sang phải
– Vì trạng thái được xử lý bởi cột, bước này
thực chất là hoán vị byte giữa các cột
60
Chuẩn mã dữ liệu AES
• 3 ShiftRows
Trang 32– Có thể biểu diễn mỗi cột mới là
nghiệm của 4 phương trình để tìm
ra byte mới trong mỗi cột
– Mã yêu cầu sử dụng ma trận
nghịch đảo, với hệ số lớn thì tính
toán khó khăn hơn
– Có các đặc trưng khác của cột như sau:
» Mỗi cột là một đa thức bậc 3 gồm 4 số hạng
» Với mỗi phần tử là một byte tương ứng với phần tử trong GF(28).
» Các đa thức nhân tính theo Modulo (x 4 +1).
• Bốn byte trong từng cột được kết hợp lại theo
một phép biến đổi tuyến tính khả nghịch Mỗi
khối 4 byte đầu vào sẽ cho một khối 4 byte ở
đầu ra với tính chất là mỗi byte ở đầu vào đều
ảnh hưởng tới cả 4 byte đầu ra
• Cùng với bước ShiftRows, MixColumns đã tạo
ra tính chất khuếch tán cho thuật toán Mỗi cột
được xem như một đa thức trong trường hữu
hạn và được nhân với đa thức
c(x) = 3x3+ x2+ x + 2 (modulo x4+ 1)
Vì thế, bước này có thể được xem là phép
nhân ma trận trong trường hữu hạn.
Chuẩn mã dữ liệu AES
• 3 trong 4 trường hợp chỉ là XOR chúng cùng nhau
• Mỗi cái thứ 4 có S box kết hợp quay và XOR với hằng số trước đó, trước khi XOR cùng nhau
• Thiết kế chống các tấn công đã biết
Chuẩn mã dữ liệu AES
Trang 33• Giải mã AES
• Giải mã ngược lại không duy nhất vì các bước
thực hiện theo thứ tự ngược lại
• Nhưng có thể xác định mã ngược tương đương
với các bước đã làm đối với mã
– Nhưng sử dụng ngược lại với từng bước
– Với khoá con khác nhau
• Thực hiện được vì kết quả không thay đổi khi
– Đổi lại phép thế byte và dịch các hàng
– Đổi lại việc trộn các cột và bổ sung khoá vòng
• Lý do mở rộng khoá: các tiêu chuẩn thiết kế bao
gồm
– Giả sử biết một phần khoá, khi đó không đủ để biết nhiều hơn,
tức là các khoá con khác hoặc khoá nói chung.
– Phép biến đổi nghịch đảo được.
– Nhanh đối với nhiều kiểu CPU.
Chuẩn mã dữ liệu AES
68
– Sử dụng hằng số vòng để làm mất tính đối xứng– Khuếch tán bit khoá thành khoá con cho các vòng– Có đủ tính phi đối xứng để chống thám mã– Đơn giản trong việc giải mã
• Các khía cạnh cài đặt:
– Có thể cài đặt hiệu quả trên CPU 8 bit– Phép thế byte làm việc trên các byte sử dụng bảng với 256 đầu vào
– Dịch hàng là phép dịch byte đơn giản– Cộng khoá vòng làm việc trên byte XOR– Các cột hỗn hợp yêu cầu nhân ma trận trong GF(28)
mà làm việc trên giá trị các byte, có thể đơn giản bằng cách tra bảng
Chuẩn mã dữ liệu AES
69
• Có thể cài đặt hiệu quả trên CPU 32 bit
• Xác định lại các bước để sử dụng từ 32 bit
• Có thể tính trước 4 bảng với 256 đầu vào
• Sau đó mỗi cột trong mỗi vòng có thể tính
bằng cách tra 4 bảng và 4 XOR
• Cần 16 Kb để lưu các bảng
• Những nhà thiết kế tin tưởng rằng việc cài
đặt rất hiệu quả này là yếu tố cơ bản trong
việc chọn nó là mã AES
Chuẩn mã dữ liệu AES
70
• Độ an toàn của AES:
– Thiết kế và độ dài khóa của thuật toán AES (128, 192
và 256 bít) là đủ an toàn để bảo vệ các thông tin được xếp vào loại MẬT (secret) Các thông tin TUYỆT MẬT (top secret) sẽ phải dùng khóa 192 hoặc
256 bít
– Một vấn đề khác nữa là cấu trúc toán học của AES
Không giống với các thuật toán mã hóa khác, AES có
mô tả toán học khá đơn giản Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu sợ rằng sẽ có người lợi dụng được cấu trúc này trong tương lai
Chuẩn mã dữ liệu AES
71
• Vào thời điểm năm 2006, dạng tấn công
lên AES duy nhất thành công là tấn công
kênh bên (side channel attack).
• Tấn công kênh bên không tấn công trực
tiếp vào thuật toán mã hóa mà thay vào
đó, tấn công lên các hệ thống thực hiện
thuật toán có sơ hở làm lộ dữ liệu
Chuẩn mã dữ liệu AES
Trang 34LÝ THUYẾT THÔNG TIN
TRONG CÁC HỆ THỐNG MẬT MÃ
Khoa An Toàn Thông Tin
Bộ Môn: Khoa Học An Toàn Thông Tin
Quan điểm về độ an toàn của hệ thống mật mã
An toàn được chứng minh
An toàn tính toán
Dựa vào độ bất định của bản rõ trước và sau khi
kẻ thám mã có được các thông tin (về bản mã)
Dựa trên độ khó của một bài toán khác
Dựa trên năng lực tính toán của các phương
pháp thám mã
An toàn vô điều kiện
Nội dung
• Một số kiến thức cơ bản về xác suất
Một số kiến thức cơ bản về lí thuyết xác suất
• Định nghĩa 1: và là các biến ngẫu nhiên
Một số kiến thức cơ bản về xác suất
X và Y được gọi là độc lập nếu
X và Y là các biến độc lập khi và chỉ khi:
p(x|y) = p(x) với mọi x, y.
(p(x) p(y|x)) p(y)
Trang 35Một số kiến thức cơ bản về xác suất
Mỗi khóa cụ thể chỉ dùng cho một bản mã
Trên không gian bản rõ có một phân bố xác suất
(): xác suất để ký tự bản rõ nhận giá trị là x
Khóa k được chọn theo một xác suất ()
và độc lập
Một số kiến thức cơ bản về xác suất
Với mỗi khóa k, thì tập các bản mã có thể:
∑
∑pK(k).pP(dk(y)){k: y ∈∈C(k)}
Một số kiến thức cơ bản về xác suất
a) Tính các xác suất của các bản mã trên C
b) Tính các xác suất có điều kiện của bản rõ khi biết các
P = C = K = Z26và với 0 ≤ ≤ k ≤ ≤ 25, quy tắc
mã hóa ek: ek(x) = x + k mod 26, x ∈ ∈ Z26.
Trang 36Độ mật hoàn thiện
hoàn thiện khi và chỉ khi:
Mỗi khóa K được dùng với xác suất như nhau và
bằng 1/|K|, và mỗi x є P , mỗi y є C có một khóa
duy nhất K sao cho eK(x) = y
Nội dung
Entropy và các tính chất
Được Shannon đưa ra vào năm 1948.
Entropy là đại lượng đo thông tin hay còn gọi là độ bất
định, kí hiệu là H(X).
Ví dụ tính entropy của phép tung đồng xu
p(mặt xấp) = p(mặt ngửa) = ½ thông tin của phép tung đồng
xu là 1 bít (biểu diễn mặt sấp bằng 1, mặt ngữa bằng 0)
Nhận xét:
Một biến cố xảy ra với xác suất 2-ncó thể mã hóa được bằng
một xâu bit có độ dài n
⇒ Một biến cố xảy ra với xác suất p thì có thể mã hóa bằng một
xâu bit có độ dài xấp xỉ -log2p.
Nếu cho trước p1, p2, …, pncủa bnn X, khi đó độ đo thông tin
là trọng số trung bình của các lượng –log2pi
Entropy và các tính chất
Giả sử X là một biến ngẫu nhiên lấy các giá trị trên một tập hữu hạn theo phân bố xác suất p(X) Khi đó entropy
của phân bố xác suất này được định nghĩa là lượng:
Nếu các giá trị có thể của X là xi, 1 ≤ i ≤ n thì ta có:
H(X) = - ∑pi log2pi
i=1 n
H(X) = - ∑p(X = xi) log2p(X = xi)
i=1 n
Khi đó H(X) ≤ ≤ log2n Dấu “=” xảy ra khi và chỉ khi pi = 1/n
Entropy của trường sự kiện đồng thời X.Y sẽ bằng tổng entropy của các trường sự kiện cơ bản X và Y nếu X và Y độc lập
Ta có: H(X.Y) = H(X) + H(Y)
Trang 37Entropy: Một số tính chất
X và Y là hai bnn, khi đó với giá trị xác định bất kì y của Y, ta
có một phân bố xác suất có đk p(X|y) Khi đó:
Entropy có điều kiện H(X|Y) là trung bình trọng số ứng với
các xác suất p(y) của entropy H(X|y) trên mọi giá trị có thể y
Được tính bằng :
Định lý: H(X,Y) = H(X|Y) +H(Y) ( CM - SGK )
Hệ quả: H(X|Y) ≤ H(X), dấu “=” xảy ra ⇔ X, Y độc lập
H(X|y) = - ∑p(x|y) log2p(x|y)
Trang 38Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 1 10 October 2020 | Page 2 Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 3 Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 4
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 5
❖ SV nắm được một số kiến thức cơ bản về lí thuyết số (số học
modulo), cấu trúc đại số được ứng dụng trong mật mã cũng như
một số thuật toán cơ bản liên quan đến tính nghịch đảo theo
modulo, tính các kí hiệu Legendre và Jacobi
Bài 01 Bổ túc cơ sở toán học
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 6
❖ Cấu trúc toán học
❖ Số học modulo
Bài 01 Bổ túc cơ sở toán học
Trang 39Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 7
❖ Cấu trúc đại số:
❑ Định nghĩa nhóm: Tập hợp G đó với phép toán (.) đã cho được gọi là
nhóm, nếu nó thỏa mãn các tính chất sau với mọi phần tử a, b, c
thuộc G:
Một số kiến thức toán học
1 Tính kết hợp: a.b.c = (a.b).c = a.(b.c)
2 Có phần tử đơn vị e: e.a = a.e = a
3 Có nghịch đảo a -1 : a.a -1 = a -1 a = e
Nếu có thêm tính giao hoán: a.b = b.a, thì gọi
là nhóm Aben hay nhóm giao hoán.
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 8
■Định nghĩa nhóm xyclic:
□G được gọi lànhóm xyclicnếu nó chứa một phần tử a sao cho mọi phần
tử của G đều là lũy thừa nguyên nào đó của a
□a được gọi làphần tử sinh(hay phần tử nguyên thuỷ của nhóm G)
Một số kiến thức toán học
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 9
■ Vành: Cho một tập R phép toán hai ngôi (+, *) được gọi là 1 vành
nếu:
□Với phép cộng, R là nhóm Aben
□Với phép nhân, có:
● tính kết hợp: a*b*c = a*(b*c) = (a*b)*c
● tính phân phối đối với phép cộng:
o a*(b+c) = a*b + a*c
o (b+c)*a = b*a + c*a
□Nếu phép nhân có tính giao hoán thì tạo thành vành giao hoán.
□Nếu phép nhân có nghịch đảo và không có thương 0 (tức là không có hai
phần khác 0 mà tích của chúng lại bằng 0), thì nó tạo thành miền nguyên
Một số kiến thức toán học
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 10
■Trường là một tập hợp F với hai phép toán cộng và nhân, thoả mãn tính chất sau:
□F là một vành
□Với phép nhân F \{0} là nhóm Aben
■Có thể nói là có các phép toán cộng, trừ, nhân, chia số khác 0
Phép trừ được coi như là cộng với số đối của phép cộng và phép chia là nhân với số đối của phép nhân:
❑ Cho 2 số nguyên a và n, n > 1 Thực hiện phép chia a cho n ta sẽ
được 2 số nguyên q và r sao cho:
a = n.q + r, 0 < r < n
■ q được gọi là thương, ký hiệu là a div n
■ r được gọi là số dư, ký hiệu là a mod n
❑ Định nghĩa quan hệ đồng dư trên tập số nguyên: a ≡ b mod n khi và
chỉ khi a và b có phần dư như nhau khi chia cho n
□Ví dụ: -12 mod 7 ≡ -5 mod 7 ≡ 2 mod 7 ≡ 9 mod 7
2 là đại diện của –12, -5, 2 và 9
Một số kiến thức toán học
Trang 40Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 13
■Ví dụ:
□Trong Modulo 7 ta có các lớp tuơng
đương viết trên các hàng như bảng bên
□Các phần tử cùng cột là có quan hệ
đồng dư với nhau
□Tập các đại diện của các số nguyên
theo Modulo n gồm n phần tử ký hiệu
như sau: Zn= { 0, 1, 2, 3, …, n-1 }
Một số kiến thức toán học
… -21 -20 -19 -18 -17 -16 -15
…
…
-18 -11 -4 3 10 17 24
Các phần tử trong cột đều đồng dư với Các đại diện của các số nguyên Các phần tử trong cột đều đồng dư với mod 70 mod 7 3 mod 7
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 14
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 15
❖ Các phép toán số học trên Modulo:
❑ Cho trước số n, thực hiện các phép toán theo modulo n như thế nào?
Một số kiến thức toán học
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 16
(a+b) mod n = [a mod n + b mod n] mod n (*)
(a.b) mod n = [a mod n b mod n] mod n (**)
❖ Như vậy khi thực hiện các phép toán ta có thể thay các số bằng các số tương đương theo Modulo n đó hoặc đơn giản hơn có thể thực hiện các phép toán trên các đại diện của nó: Zn= { 0, 1, 2,
3, …, n-1 }
Một số kiến thức toán học
Bộ môn Khoa Học An Toàn Thông Tin – Khoa An Toàn Thông Tin 10 October 2020 | Page 17
□Znvới các phép toán theo Modulo tạo thành vành giao hoán có đơn vị Các
tính chất kết hợp, giao hoán và nghịch đảo được suy ra từ các tính chất tương
ứng của các số nguyên
□Các chú ý về tính chất rút gọn:
●Nếu (a+b) ≡ (a+c) mod n, thì b ≡ c mod n
●Nhưng (ab) ≡ (ac) mod n, thì b ≡ c mod n chỉ khi nếu a là nguyên tố cùng
■ = ((11 * 19) mod 7 + 1017mod 7) mod 7
■ = ((11 mod 7 * 19 mod 7) mod 7 + (10 mod 7)17) mod 7
■ = ((4 * 5) mod 7 + (((32)2)2)2* 3 mod 7) mod 7
■ = (6 + ((22)2)2 * 3 mod 7) mod 7
■ = (6 + 4 * 3) mod 7 = 4
■Bài tập: Tính 11 207 mod 13 = ?
Một số kiến thức toán học