Professional Documents
Culture Documents
Slide Thay Ha Duyen Trung
Slide Thay Ha Duyen Trung
1
Mục tiêu học phần
Cung cấp kiến thức cơ bản về mật mã đảm bảo an toàn và bảo mật
thông tin:
✓ Các phương pháp mật mã khóa đối xứng; Phương pháp mật mã
khóa công khai;
✓ Các hệ mật dòng và vấn đề tạo dãy giả ngẫu nhiên;
✓ Lược đồ chữ ký số và các chuẩn chữ ký số;
✓ Độ phức tạp xử lý và độ phức tạp dữ liệu của một tấn công cụ thể
vào hệ thống mật mã;
✓ Đặc trưng an toàn của phương thức mã hóa;
✓ Thám mã tuyến tính, thám mã vi sai và các vấn đề về xây dựng hệ
mã bảo mật cho các ứng dụng.
2
Nội dung môn học
4
Tài liệu tham khảo
1. A. J. Menezes, P. C. Van Oorschot, S. A. Vanstone,
Handbook of applied cryptography, CRC Press 1998.
2. B. Schneier, Applied Cryptography. John Wiley Press 1996.
3. M. R. A. Huth, Secure Communicating Systems, Cambridge
University Press 2001.
4. W. Stallings, Network Security Essentials, Applications and
Standards, Prentice Hall. 2000.
https://docs.google.com/file/d/0B5F6yMKYDUbrYXE4X1ZC
UHpLNnc/view?resourcekey=0-
SzEcbG4dteUBSqEkTYwW8A
5
Nhiệm vụ của Sinh viên
1. Chấp hành nội quy lớp học
2. Thực hiện đầy đủ bài tập
3. Nắm vững ngôn ngữ lập trình Matlab
6
Chương 1. Tổng quan
1.1. Giới thiệu sơ lược lịch sử khoa học mật mã
1.2. Khái niệm, mô hình của hệ mật
1.3. Một số hệ mật ban đầu
1.4. Các bài toán an toàn thông tin
1.5. Thám mã
1.6. Tính an toàn của các hệ mật mã
1.7. Cơ sở toán học của hệ mật mã
1.8. Tính bí mật của các hệ mật
7
1.1. Giới thiệu sơ lược lịch sử khoa học
mật mã
Caesar cipher
❑ Trong cuốn Cuộc đời của Caesar VI của
Suetonius có mô tả chi tiết về một số mật mã của
Caesar. Caesar thay thế một cách đơn giản từng
chữ cái trong thư bằng chữ cái cách đó ba vị trí
trong bảng chữ cái. Sau này được gọi là mã dịch
chuyển Caesar.
DVH Oderudwrub=
8
1.1. Giới thiệu sơ lược lịch sử khoa học
mật mã
• Người Ai Cập cổ đại bắt đầu sử dụng mật mã hạn chế khoảng 4000 năm về trước.
• Thuật ngữ “mật mã - cryptography” dịch từ tiếng Hy Lạp có nghĩa là “chữ viết bí mật”
(Kryptósgráfo “hidden” và grafo “to write” or legein “to speak”).
• Sự khởi đầu cho kỷ nguyên mật mã hiện đại được đánh dấu bởi các công bố của của Claude
E. Shannon: “A Mathematical Theory of Cryptography”1)-1948, “Communication Theory of
Secrecy Systems” 2)-1949. Khái niệm về các tính chất Confusion và Diffusion cũng do C.E.
Shannon đưa ra, và sau này được dùng phổ biến để đánh giá cho mật mã nói chung.
• Sự phát triển và ngày càng phổ biến của máy tính và hệ thống thông tin liên lạc trong những
năm 1960 đã tạo ra nhu cầu bảo vệ thông tin dưới dạng số và cung cấp dịch vụ an ninh thông
tin.
• DES (Data Encryption Standard): Tiêu chuẩn bảo mật dữ liệu được Horst Feistel thiết kế bởi
vào năm 1970 tại IBM và chấp thuận thành chuẩn vào năm 1977 bởi Chuẩn xử lý thông tin
của Liên bang Hoa Kỳ (Federal Information Processing Standard - FIPS). DES là cơ chế mã
hóa nổi tiếng nhất trong lịch sử.
1) Claude E. Shannon, “A Mathematical Theory of Cryptography”, The Bell System Technical Journal, vol. 27, pp. 379–423, 623–656, July, October, 1948.
2) Claude E. Shannon, “Communication Theory of Secrecy Systems”, Bell System Technical Journal, vol. 28(4), page 656–715, 1949. 9
1.1. Giới thiệu sơ lược lịch sử khoa học
mật mã
• Whitefield Diffie và Martin E. Hellman xuất bản bài báo “New
Directions in Cryptography” 1) năm 1976 về Mật mã khóa công
khai (public-key cryptography) hoặc mật mã hóa bất đối xứng.
• Năm 1978 thuật toán mật mã và chữ ký khóa công khai đầu tiên,
RSA, ra đời.
• Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người
Anh đã mô tả một thuật toán tương tự. Với khả năng tính toán tại
thời điểm đó thì thuật toán này không khả thi và chưa bao giờ được
thực nghiệm. Tuy nhiên, phát minh này chỉ được công bố vào năm
1997 vì được xếp vào loại tuyệt mật.
• Năm 1985 ElGamal phát triển một lớp thuật toán khóa công khai
khác dựa trên bài toán logarit rời rạc.
1) W. Diffie and M. Hellman, " New Directions in Cryptography," in IEEE Transactions on Information Theory, vol. 22, no. 6, pp. 644-654, 1976. 10
1.1. Giới thiệu sơ lược lịch sử khoa học
mật mã
• Đóng góp quan trọng của cơ chế khóa công khai là chữ ký số
(Digital Signature). Năm 1991 tiêu chuẩn chữ ký số đầu tiên
ISO/IEC 9796 dựa trên thuật toán RSA
• Năm 1994 chính phủ Mỹ công bố chuẩn Digital Signature
Standard dựa trên cơ chế ElGamal.
• Hàng thế kỷ qua, mật mã là nghệ thuật viết mã và giải mã
• Trước kia: Chủ yếu trong thông tin quân sự và tình báo
• Ngày nay: Dùng phổ biến trên mọi lĩnh vực…
11
1.1. Giới thiệu sơ lược lịch sử khoa học
mật mã
• Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử
dụng ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới, từ
các lĩnh vực an ninh, quân sự, quốc phòng…, cho đến các lĩnh vực dân
sự như thương mại điện tử, ngân hàng.
• Trong đời sống – xã hội: Các ứng dụng mã hóa thông tin cá nhân, trao
đổi thông tin kinh doanh, thực hiện các giao dịch điện tử qua mạng... đã
trở nên gần gũi và quen thuộc với mọi người.
• Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa và giải
mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên
cứu và giải quyết như chứng thực nguồn gốc nội dung thông tin (kỹ
thuật chữ ký điện tử), chứng nhận tính xác thực về người sở hữu mã
khóa (chứng nhận khóa công cộng), các quy trình giúp trao đổi thông
tin và thực hiện giao dịch điện tử an toàn trên mạng...
• Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các
hệ thống phức tạp hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu
cầu đa dạng của các hệ thống ứng dụng khác nhau trong thực tế.
12
1.2. Khái niệm, mô hình của hệ mật
13
Analysis
14
1.2. Khái niệm, mô hình của hệ mật
15
1.2. Khái niệm, mô hình của hệ mật
Khóa mật mã
Bản tin rõ Mật mã hóa Bản tin mật Giải mã mật Bản tin rõ
(Plaintext) (Encryption) (Ciphertext) (Decryption) (Recovered
Plaintext)
16
1.2. Khái niệm, mô hình của hệ mật
U U
E T A T E
A
R E N E
N R
s Core
Network s
Nodes Links
17
1.2. Khái niệm, mô hình của hệ mật
18
1.2. Khái niệm, mô hình của hệ mật
Hệ thống mật mã
(Cryptosystem)
➢ Một hệ thống mật mã là một bộ năm:
𝑺 = (𝑷, 𝑪, 𝑲, 𝑬, 𝑫)
Thỏa mãn các điều kiện sau đây:
▪ Tập nguồn P (plaintext) là tập hữu hạn tất cả các bản tin nguồn cần mã
hóa có thể có.
▪ C (ciphertext) là một tập hữu hạn các ký tự bản mã
▪ K (key)là tập hữu hạn các khóa có thể được sử dụng
▪ E (encryption) là một ánh xạ từ (K,P) vào C, được gọi là phép lập mật mã
▪ D (decryption)là một ánh xạ từ (K,C) vào P , được gọi là phép giải mã.
19
1.2. Khái niệm, mô hình của hệ mật
Hệ thống mật mã
(Cryptosystem)
➢ Một sơ đồ hệ thống mật mã là một bộ năm tham số
𝑺 = (𝑷, 𝑪, 𝑲, 𝑬, 𝑫)
✓ Với mỗi khóa 𝒌 ∈ 𝑲 , tồn tại luật mật mã 𝒆𝒌 ∈ 𝑬 và luật giải mật mã
𝒅𝒌 ∈ 𝑫 tương ứng.
✓ Luật mật mã 𝒆𝒌 : 𝑷 → 𝑪 và luật giải mật mã 𝒅𝒌 : 𝑪 → 𝑷 là hai ánh xạ
thỏa mãn: 𝒅𝒌 (𝒆𝒌 (𝒙)) = 𝒙, ∀𝒙 ∈ 𝑷
20
1.3. Phân loại hệ mật
21
1.3. Phân loại hệ mật - Mật mã khối bit
22
1.3. Phân loại hệ mật - Mật mã dòng bit
23
1.3. Phân loại hệ mật - Mật mã dòng bit
𝐾 = 0 ℎ𝑜ặ𝑐 1
▪ Dòng khóa là dãy bit ngẫu nhiên được sinh ra bởi một bộ
tạo dãy bit ngẫu nhiên nào đó.
24
1.3. Phân loại hệ mật – Khóa đối xứng
▪ Nhận xét: sinh viên tự tìm hiểu chi tiết trên Wikipedia
25
1.3. Phân loại hệ mật – Khóa công khai
▪ Nhận xét: sinh viên tự tìm hiểu chi tiết trên Wikipedia
26
1.3. Phân loại hệ mật – mã hóa đối xứng
27
1.3. Phân loại hệ mật – mã hóa đối xứng
28
1.4. Các vấn đề liên quan đến anh ninh và
an toàn thông tin
➢ Tính kín đáo (confidentiality): 2 khái niệm
➢ Giữ kín dữ liệu
➢ Tính riêng tư (privacy)
➢ Toàn vẹn thông tin (integrity): 2 khái niệm
➢ Toàn vẹn dữ liệu
➢ Toàn vẹn hệ thống
➢ Tính sẵn sàng
➢ Tính chính xác: đảm bảo tin tức đúng nguồn gốc và
có thể kiểm tra được tính chính xác
➢ Tính giải trình: đảm bảo không bị chối cãi…
29
1.4. Các vấn đề liên quan đến anh ninh và
an toàn thông tin
➢ Từ đó có các dịch vụ:
➢ Nhận thực một thực thể
➢ Nhận thực một thông báo
➢ Ủy quyền
➢ Cấp chứng chỉ
➢ Báo nhận
➢ Làm chứng
➢ Không chối bỏ được
➢ Ẩn danh
➢ Thu hồi
➢ Chữ ký
30
1.4. Các vấn đề liên quan đến anh ninh và
an toàn thông tin-các từ khóa
privacy Tính riêng tư Giữ thông tin bí mật đối với những người
or confidentiality hoặc tính bí mật không có quyền được biết
Data integrity Tính toàn vẹn dữ Đảm bảo thông tin không bị sửa đổi, thay đổi
liệu bởi những người không được quyền thực hiện
với bất cứ lý do gì không được biết.
Entity Nhận thực thực Xác nhận đối tượng được quyền (chủ quyền)
authentication thể hoặc định như máy tính, thẻ master card …
or identification danh
Message Nhận thực bản tin Xác nhận nguồn thông tin đúng nguồn gốc
authentication
Signature Chữ ký Đánh dấu xác nhận
Authorization Tác quyền Thành phần có quyền thực hiện việc gì đó
31
1.4. Các vấn đề liên quan đến anh ninh và
an toàn thông tin-các từ khóa
Validation Tính hợp lệ Xác nhận thời gian, tính hợp lệ của thông tin và
nguồn tin
Access control Điều khiển truy Giới hạn quyền truy nhập vào tài nguyên ở mức
nhập độ nào đó
Certification Chứng nhận Xác nhận sự trung thực hay đúng đắn
32
1.4. Các bài toán an toàn thông tin
Ownership Quyền sơ hữu Cách cung cấp quyền hợp pháp hoặc quyền
chuyển tài nguyên đến các thành phần khác
Anonymity Nặc danh Giấu kín danh tính khi thực hiện một điều/quá
trình gì đó
Revocation Thu hồi Thu hồi chứng chỉ hay tác quyền
33
Câu hỏi ôn tập
1. Xem xét một máy rút tiền tự động (ATM), trong đó người dùng cung
cấp số nhận dạng cá nhân (PIN) và một thẻ để truy cập tài khoản. Hãy
cung cấp ví dụ về các yêu cầu bảo mật, toàn vẹn và tính khả dụng
(confidentiality, integrity, and availability) liên quan đến hệ thống, và
trong mỗi trường hợp, chỉ ra mức độ quan trọng của yêu cầu?
2. Lặp lại câu hỏi 1 cho hệ thống chuyển mạch điện thoại định tuyến các
cuộc gọi qua mạng chuyển mạch dựa trên số điện thoại mà người gọi
yêu cầu?
34
1.5. Thám mã
Analysis
35
1.5. Thám mã
36
1.5. Thám mã
37
1.5. Thám mã
38
1.6. Tính an toàn của các hệ mật mã
39
1.6. Tính an toàn của các hệ mật mã
➢ An toàn vô điều kiện: Tính toán được sác xuất mất an toàn
bằng 0
➢ An toàn được chứng minh: áp dụng cho giải thuật
➢ An toàn tính toán: áp dụng cho nền tảng tính toán
40
1.7. Cơ sở toán học của lý thuyết mật mã
41
1.7. Cơ sở toán học của lý thuyết mật mã
42
1.7. Cơ sở toán học của lý thuyết mật mã
𝑑 = 𝐺𝐶𝐷(𝑎, 𝑏)
43
1.7. Cơ sở toán học của lý thuyết mật mã
44
1.7. Cơ sở toán học của lý thuyết mật mã
45
1.7. Cơ sở toán học của lý thuyết mật mã
Hơn nữa,
46
1.7. Cơ sở toán học của lý thuyết mật mã
➢ Hai số nguyên thuộc cùng một lớp tương đương khi và chỉ khi
chúng cho cùng một số dư nếu chia cho n. Ví dụ: 23 và 5 là
những số cùng lớp vì khi chia cho 3 đều dư 2.
➢ Mỗi lớp tương đương được đại diện bởi một số duy nhất trong
tập hợp: Zn = {0, 1, 2, 3,...., n -1} là số dư chung khi chia các
số trong lớp đó cho n.
➢ Ví dụ: với n=25 thì Z25 = {0, 1, 2, ..., 24},
47
1.7. Cơ sở toán học của lý thuyết mật mã
48
1.7. Cơ sở toán học của lý thuyết mật mã
49
1.7. Cơ sở toán học của lý thuyết mật mã
𝑛
Với 𝑛 = 𝑛1 . 𝑛2 … . 𝑛𝑘 , 𝑁𝑖 = .
𝑛𝑖
50
1.7. Cơ sở toán học của lý thuyết mật mã
1.7.3. Thặng dư thu gọn (Reduced residue system)và phần tử nguyên thuỷ (primitive)
52
1.7. Cơ sở toán học của lý thuyết mật mã
53
1.7. Cơ sở toán học của lý thuyết mật mã
54
1.7. Cơ sở toán học của lý thuyết mật mã
56
1.7. Cơ sở toán học của lý thuyết mật mã
2 1 𝑘ℎ𝑖 𝑛 ≡ ±1(𝑚𝑜𝑑 8)
▪ =ቊ
𝑛 −1𝑘ℎ𝑖 𝑛 ≡ ±3(𝑚𝑜𝑑 8)
𝑚1 .𝑚2 𝑚1 𝑚2
▪ =
𝑛 𝑛 𝑛
▪ Nếu m và n đều là số lẻ, thì
57
1.7. Cơ sở toán học của lý thuyết mật mã
➢ Phân bố xác suất 𝑃 trên Ω được định nghĩa là một tập các số thực không âm
𝑃 = { 𝑝1 , 𝑝2 , … , 𝑝𝑛 } có tổng ∑𝑝𝑖 = 1.
▪ Số 𝑝𝑖 được coi là xác suất của sự kiện sơ cấp 𝑠𝑖 .
➢ Tập con 𝐸 ⊆ Ω được gọi là một sự kiện. Xác suất của sự kiện 𝐸 được định
nghĩa bởi 𝑝 𝐸 = ∑𝑠∈𝐸 𝑝(𝑠)
➢ Cho 𝐸1 và 𝐸2 là hai sự kiện, với 𝑝 𝐸2 > 0, xác suất có điều kiện của 𝐸1
khi có 𝐸2 , 𝑝(𝐸1 |𝐸2 ) được định nghĩa là
58
1.7. Cơ sở toán học của lý thuyết mật mã
59
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Chương 2
Mathematics of
Cryptography
Toán học mật mã
Part I: Modular Arithmetic, Congruence,
and Matrices
Số học mô-đun, đồng dư, ma trận
Chapter 2
Objectives
❑ To review integer arithmetic, concentrating on divisibility
and finding the greatest common divisor using the Euclidean
algorithm
❑ To understand how the extended Euclidean algorithm can be
used to solve linear Diophantine equations, to solve linear
congruent equations, and to find the multiplicative inverses
❑ To emphasize the importance of modular arithmetic and
the modulo operator, because they are extensively used in
cryptography
❑ To emphasize and review matrices and operations on residue
matrices that are extensively used in cryptography
❑ To solve a set of congruent equations using residue matrices
2.2
Chapter 2
Objectives
❑Để ôn lại số học số nguyên, tập trung vào tính chia hết và tìm
ước số chung lớn nhất bằng cách sử dụng thuật toán Euclide
❑Để hiểu cách thuật toán Euclide mở rộng có thể được sử dụng
để giải các phương trình Diophantine tuyến tính, để giải các
phương trình đồng dư tuyến tính và để tìm các nghịch đảo nhân
❑Để nhấn mạnh tầm quan trọng của số học mô-đun và toán tử
mô-đun, bởi vì chúng được sử dụng rộng rãi trong mật mã
❑Để nhấn mạnh và xem xét các ma trận và hoạt động trên các
ma trận dư được sử dụng rộng rãi trong mật mã
❑Để giải một tập các phương trình đồng dư bằng cách sử dụng
ma trận dư
2.3
2-1 INTEGER ARITHMETIC
2.4
2.1.1 Set of Integers
2.5
2.1.2 Binary Operations
In cryptography, we are interested in three binary
operations applied to the set of integers. A binary
operation takes two inputs and creates one output.
2.6
2.1.2 Continued
Example 2.1
2.7
2.1.3 Integer Division
a=q×n+r
2.8
2.1.3 Continued
Example 2.2
Assume that a = 255 and n = 11. We can find q = 23 and r = 2
using the division algorithm.
Figure 2.3 Example 2.2, finding the quotient and the remainder
2.9
2.1.3 Continued
Figure 2.4 Division algorithm for integers
2.10
2.1.3 Continued
Example 2.3
When we use a computer or a calculator, r and q are negative
when a is negative. How can we apply the restriction that r
needs to be positive? The solution is simple, we decrement the
value of q by 1 and we add the value of n to r to make it
positive.
2.11
2.1.3 Continued
Figure 2.5 Graph of division alogorithm
2.12
2.1.4 Divisibility (tính chia hết)
a=q×n
2.13
2.1.4 Continued
Example 2.4
2.14
2.1.4 Continued
Example 2.5
2.15
2.1.4 Continued
Properties
2.16
2.1.4 Continued
Example 2.6
2.17
2.1.4 Continued
Note
2.18
2.1.4 Continued
Figure 2.6 Common divisors of two integers
2.19
2.1.4 Continued
2.21
2.1.4 Continued
Note
2.22
2.1.4 Continued
Example 2.7
Find the greatest common divisor of 2740 and 1760.
Solution
We have gcd (2740, 1760) = 20.
2.23
2.1.4 Continued
Example 2.8
Find the greatest common divisor of 25 and 60.
Solution
We have gcd (25, 65) = 5.
2.24
2.1.4 Continued
Extended Euclidean Algorithm
Given two integers a and b, we often need to find other two
integers, s and t, such that
2.25
2.1.4 Continued
Figure 2.8.a Extended Euclidean algorithm, part a
Given a = 161 and b = 28, find gcd (a, b) and the values of s and t.
2.26
2.1.4 Continued
Figure 2.8.b Extended Euclidean algorithm, part b
2.27
2.1.4 Continued
Example 2.9
Given a = 161 and b = 28, find gcd (a, b) and the values of s
and t.
Solution
We get gcd (161, 28) = 7, s = −1 and t = 6.
2.28
2.1.4 Continued
Example 2.10
Given a = 17 and b = 0, find gcd (a, b) and the values of s
and t.
Solution
We get gcd (17, 0) = 17, s = 1, and t = 0.
2.29
2.1.4 Continued
Example 2.11
Solution
We get gcd (0, 45) = 45, s = 0, and t = 1.
2.30
2-2 MODULAR ARITHMETIC
2.36
2.1.4 Continued
Example 2.14
Tìm kết quả của các phép toán mô-đun sau đây:
a. 27 mod 5 b. 36 mod 12
c. −18 mod 14 d. −7 mod 10
Solution
a. Chia 27 cho 5 ta được r = 2
b. Chia 36 cho 12 được kết quả là r = 0.
c. Chia −18 cho 14 ta được r = −4. Sau khi thêm môđun r =
10
d. Chia −7 cho 10 ta được r = −7. Sau khi thêm môđun vào
−7, r = 3.
2.37
2.2.2 Tập dư
2.38
2.2.3 Tính đồng dư (congruence)
2.39
2.2.3 Continued
Figure 2.11 Khái niệm về đồng dư
2.40
2.2.3 Continued
Residue Classes
A residue class [a] or [a]n is the set of integers congruent
modulo n.
Lớp dư [a] hoặc [a]n là tập hợp các số nguyên đồng dư
modulo n.
2.41
2.2.3 Continued
Figure 2.12 Comparison of Z and Zn using graphs
2.42
2.2.3 Continued
Example 2.15
2.43
2.2.4 Phép toán trong Zn
2.44
2.2.4 Continued
Example 2.16
Perform the following operations (the inputs come from Zn):
a. Add 7 to 14 in Z15.
b. Subtract 11 from 7 in Z13.
c. Multiply 11 by 7 in Z20.
Solution
2.45
2.2.4 Continued
Example 2.17
Perform the following operations (the inputs come from
either Z or Zn):
a. Add 17 to 27 in Z14.
b. Subtract 43 from 12 in Z13.
c. Multiply 123 by −10 in Z19.
Solution
2.46
2.2.4 Continued
Tính chất
2.47
2.2.4 Continued
Figure 2.14 Properties of mode operator
2.48
2.2.4 Continued
Example 2.18
117 mod 13 ?
2.49
2.2.4 Continued
Example 2.19
Trong số học, chúng ta thường cần tìm phần dư của các lũy
thừa của 10 khi chia cho một số nguyên.
2.50
2.2.4 Continued
Example 2.20
2.51
2.2.5 Inverses
2.52
2.2.5 Continue
Additive Inverse: đảo cộng
In Zn, two numbers a and b are additive inverses of each
other if
Trong Zn, hai số a và b là số nghịch đảo cộng của nhau nếu
Note
2.53
2.2.5 Continued
Example 2.21
Solution
Sáu cặp đảo ngược cộng tính là:
(0, 0), (1, 9), (2, 8), (3, 7), (4, 6), and (5, 5).
2.54
2.2.5 Continue
Multiplicative Inverse: Đảo nhân
In Zn, two numbers a and b are the multiplicative inverse of each
other if
Trong Zn, hai số a và b là số nghịch đảo của nhau nếu
Note
2.55
2.2.5 Continued
Example 2.22
Tìm nghịch đảo nhân của 8 trong Z10.
Solution
Không có phép nhân nghịch đảo vì gcd (10, 8) = 2 ≠ 1. Nói
cách khác, chúng ta không thể tìm thấy bất kỳ số nào từ 0
đến 9 sao cho khi nhân với 8, kết quả là đồng dư với 1.
Example 2.23
Tìm tất cả các nghịch đảo nhân trong Z10.
Solution
Chỉ có ba cặp: (1, 1), (3, 7) và (9, 9). Các số 0, 2, 4, 5, 6 và 8
không có phép nhân nghịch đảo.
2.56
2.2.5 Continued
Example 2.24
2.57
2.2.5 Continued
Note
2.58
2.2.5 Continued
Figure 2.15
Sử dụng thuật toán Euclid mở rộng để tìm nghịch đảo nhân
2.59
2.2.5 Continued
Example 2.25
Tìm nghịch đảo nhân của 11 trong Z26.
Solution
2.60
2.2.5 Continued
Example 2.26
Find the multiplicative inverse of 23 in Z100.
Solution
2.61
2.2.5 Continued
Example 2.27
Find the inverse of 12 in Z26.
Solution
2.62
2.2.6 Addition and Multiplication Tables
Figure 2.16 Addition and multiplication table for Z10
2.63
2.2.7 Different Sets
Figure 2.17 Some Zn and Zn* sets
Note
2.65
2-3 MATRICES
2.66
2.3.1 Definition
2.67
2.3.1 Continued
2.68
2.3.2 Operations and Relations
Example 2.28
2.69
2.3.2 Continued
Example 2. 29
2.70
2.3.2 Continued
Example 2. 30
2.71
2.3.2 Continued
Example 2. 31
2.72
2.3.3 Determinant: định thức
Note
2.74
2.3.3 Continued
Example 2. 33
2.75
2.3.4 Inverses: Nghịch đảo
Note
2.76
2.3.5 Residue Matrices: ma trận dư
Example 2. 34
2.77
2-4 LINEAR CONGRUENCE
Mật mã học thường liên quan đến việc giải một phương
trình hoặc một hệ phương trình của một hoặc nhiều
biến trong Zn. Phần này chỉ ra cách giải phương trình
khi lũy thừa của mỗi biến là 1 (phương trình tuyến
tính).
2.78
2.4.1 Phương trình tuyến tính một biến
2.79
2.4.1 Continued
Example 2.35
Solve the equation 10 x ≡ 2(mod 15).
Solution
First we find the gcd (10 and 15) = 5. Since 2 does not divide
5, we have no solution.
Example 2.36
Solve the equation 14 x ≡ 12 (mod 18).
Solution
2.80
2.4.1 Continued
Example 2.37
Solution
First we change the equation to the form ax ≡ b (mod n). We
add −4 (the additive inverse of 4) to both sides, which give
3x ≡ 2 (mod 13). Because gcd (3, 13) = 1, the equation has only
one solution, which is x0 = (2 × 3−1) mod 13 = 18 mod 13 = 5.
We can see that the answer satisfies the original equation:
3 × 5 + 4 ≡ 6 (mod 13).
2.81
2.4.2 Single-Variable Linear Equations
2.82
2.4.2 Continued
Example 2.38
Giải bộ ba phương trình sau:
Solution
The result is x ≡ 15 (mod 16), y ≡ 4 (mod 16), and z ≡ 14 (mod
16).
We can check the answer by inserting these values into the
equations.
2.83
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Chương 3
Traditional
Symmetric-Key Ciphers
Mật mã khóa đối xứng
cổ điển
3.1
Chapter 3
Objectives
❏ Xác định các thuật ngữ và khái niệm về mật mã
khóa đối xứng
❏ Nhấn mạnh hai loại mật mã truyền thống: mật mã
thay thế (substitution) và chuyển vị (transposition)
❏ Mô tả các loại phân tích mật mã (thám mã) được sử
dụng để phá vỡ hệ mật mã đối xứng
❏ Giới thiệu các khái niệm về mật mã dòng và mật mã
khối
❏ Thảo luận về một số mật mã rất nổi trội được sử
dụng trong quá khứ, chẳng hạn như máy Enigma
3.2
Chapter 3
Objectives
❏ To define the terms and the concepts of symmetric
key ciphers
❏ To emphasize the two categories of traditional
ciphers: substitution and transposition ciphers
❏ To describe the categories of cryptanalysis used to
break the symmetric ciphers
❏ To introduce the concepts of the stream ciphers
and block ciphers
❏ To discuss some very dominant ciphers used in the
past, such as the Enigma machine
3.3
3-1 INTRODUCTION
Hình 3.1 sau đây cho thấy ý tưởng chung đằng sau một
mật mã khóa đối xứng. Thông điệp gốc từ Alice đến Bob
được gọi là bản rõ; thông điệp được gửi qua kênh được
gọi là bản mã. Để tạo bản mã từ bản rõ, Alice sử dụng một
thuật toán mã hóa và một khóa bí mật được chia sẻ. Để
tạo bản rõ từ bản mã, Bob sử dụng một thuật toán giải mã
và cùng một khóa bí mật.
Topics discussed in this section:
3.1.1 Kerckhoff’s Principle
3.1.2 Cryptanalysis
3.1.3 Categories of Traditional Ciphers
3.4
3.1 Continued
3.5
3.1 Continued
If P is the plaintext, C is the ciphertext, and K is the key,
Nếu P là bản rõ, C là bản mã và K là khóa,
3.6
3.1 Continued
3.7
3.1.1 Kerckhoff’s Principle
3.8
3.1.2 Cryptanalysis
3.9
3.1.2 Continued
Ciphertext-Only Attack
3.10
3.1.2 Continued
Known-Plaintext Attack
3.11
3.1.2 Continued
Chosen-Plaintext Attack
3.12
3.1.2 Continued
Chosen-Ciphertext Attack
3.13
3-2 SUBSTITUTION CIPHERS: MÃ THAY THẾ
A substitution cipher replaces one symbol with another. Substitution
ciphers can be categorized as either monoalphabetic ciphers or
polyalphabetic ciphers.
Một mật mã thay thế thay thế một ký hiệu bằng một ký hiệu khác. Mật
mã thay thế có thể được phân loại là mật mã đơn ký tự hoặc mật mã
đa ký tự.
Note
Note
Trong phép thay thế đơn ký tự, mối quan hệ giữa một ký hiệu
trong bản rõ với một ký hiệu trong bản mã luôn là một-một.
3.15
3.2.1 Continued
Example 3.1
The following shows a plaintext and its corresponding ciphertext.
The cipher is probably monoalphabetic because both l’s (els) are
encrypted as O’s.
Example 3.2
The following shows a plaintext and its corresponding ciphertext.
The cipher is not monoalphabetic because each l (el) is encrypted
by a different character.
3.16
3.2.1 Continued
Additive Cipher
3.17
3.2.1 Continued
Figure 3.9 Additive cipher: Mã cộng
Hai quá trình mã hóa và giải mã hóa là thuận nghịch với nhau?
P=(C-k)mod26=(P+k-k)mod26=P
Note
Solution
Chúng ta áp dụng thuật toán mã hóa cho bản rõ, từng ký tự một:
3.19
3.2.1 Continued
Example 3.4
3.20
3.2.1 Continued
Shift Cipher and Caesar Cipher
Historically, additive ciphers are called shift ciphers. Julius
Caesar used an additive cipher to communicate with his officers.
For this reason, additive ciphers are sometimes referred to as the
Caesar cipher. Caesar used a key of 3 for his communications.
Note
3.22
3.2.1 Continued
Bảng 3.1 Tần suất của các ký tự trong tiếng Anh
3.23
3.2.1 Continued
Example 3.6
Eve đã chặn đoạn mã sau đây. Sử dụng một cuộc tấn công thống
kê, tìm ra bản rõ.
Solution
Khi Eve lập bảng tần số của các chữ cái trong bản mã này, cô ấy
nhận được: I = 14, V = 13, S = 12, v.v. Ký tự phổ biến nhất là I với
14 lần xuất hiện. Điều này có nghĩa là key = 4.
3.24
3.2.1 Continued
Multiplicative Ciphers: Mã nhân
Note
Example 3.8
Chúng ta sử dụng mã nhân để mã hóa bản tin “hello” với khóa là
7. Khi đó, bản mã là “XCZZU”.
3.26
3.2.1 Continued
Affine Ciphers: Mã Affine
Figure 3.11 Affine cipher
3.27
3.2.1 Continued
Example 3.09
The affine cipher uses a pair of keys in which the first key is from Z26*
and the second is from Z26. The size of the key domain is
12 × 26 = 312.
Mật mã affine sử dụng một cặp khóa, trong đó khóa đầu tiên là từ Z26*
và khóa thứ hai là từ Z26. Kích thước của miền khóa là 12 × 26 = 312.
Example 3.10
Use an affine cipher to encrypt the message “hello” with the key pair
(7, 2).
Sử dụng mật mã affine để mã hóa thông báo “hello” bằng cặp khóa
(7, 2).
3.28
3.2.1 Continued
Example 3.11
Use the affine cipher to decrypt the message “ZEBBW” with the key
pair (7, 2) in modulus 26.
Sử dụng mật mã affine để giải mã thông báo “ZEBBW” bằng cặp khóa
(7, 2) trong mô-đun 26.
Solution
Example 3.12
The additive cipher is a special case of an affine cipher in which
k1 = 1. The multiplicative cipher is a special case of affine cipher in which k2 =
0.
Mật mã cộng là một trường hợp đặc biệt của mật mã affine, trong đó k1 = 1.
Mật mã nhân là một trường hợp đặc biệt của mật mã affine trong đó k2 = 0.
3.29
3.2.1 Continued
Monoalphabetic Substitution Cipher
Because additive, multiplicative, and affine ciphers have small key
domains, they are very vulnerable to brute-force attack.
Do mật mã cộng, nhân và mã Affine có miền khóa nhỏ, chúng rất dễ bị
tấn công cực mạnh (brute-force).
A better solution is to create a mapping between each plaintext
character and the corresponding ciphertext character. Alice and Bob
can agree on a table showing the mapping for each character.
Một giải pháp tốt hơn là tạo một ánh xạ giữa mỗi ký tự bản rõ và ký tự
bản mã tương ứng. Alice và Bob có thể đồng ý về một bảng hiển thị
ánh xạ cho mỗi ký tự.
Figure 3.12 An example key for monoalphabetic substitution cipher
3.30
3.2.1 Continued
Example 3.13
The ciphertext is
3.31
3.2.2 Polyalphabetic Ciphers: Mã đa ký tự
Autokey Cipher
3.32
3.2.2 Continued
Example 3.14
Assume that Alice and Bob agreed to use an autokey cipher with
initial key value k1 = 12. Now Alice wants to send Bob the message
“Attack is today”. Enciphering is done character by character.
Giả sử rằng Alice và Bob đã đồng ý sử dụng một mật mã autokey với giá trị
khóa ban đầu là k1 = 12. Bây giờ, Alice muốn gửi cho Bob thông báo
“Attack is today”. Mã hóa được thực hiện theo từng ký tự.
3.33
3.2.2 Continued
Playfair Cipher: Mã Playfair → hệ đa ký tự
Figure 3.13 Ví dụ về khóa bí mật trong mật mã Playfair
1) Nếu cặp 2 chữ nằm cùng P=“BA CH KH OA HA NO IX”
hàng → thay bởi các chữ cái K=“DTVT”
bên phải
2) Nếu cặp 2 chữ nằm cùng P C Ma trận khóa 5× 5
5× 5 cột → thay bởi các chữ cái BA → GD
CH → BI DTVTA
bên dưới KH → LI BCEFG
3) Các trường hợp khác còn OA → RT HIKLM
lại → mỗi chữ cái được thay HA → MD NOPQR
thế bởi chữ cái khác cùng NO → OP
SUWXY
hàng, nhưng trên cùng cái cột IX → LU
Example 3.15 mà chữ cái cùng cặp)
Let us encrypt the plaintext “hello” using the key in Figure 3.13.
3.34
3.2.2 Continued
Vigenere Cipher
Example 3.16
We can encrypt the message “She is listening” using the 6-
character keyword “PASCAL”.
3.35
3.2.2 Continued
Example 3.16
Let us see how we can encrypt the message “She is listening” using
the 6-character keyword “PASCAL”. The initial key stream is (15,
0, 18, 2, 0, 11). The key stream is the repetition of this initial key
stream (as many times as needed).
Xem cách có thể mã hóa thông điệp “She is listening” bằng cách sử dụng từ khóa 6 ký
tự “PASCAL”. Luồng khóa ban đầu là (15, 0, 18, 2, 0, 11). Luồng khóa là sự lặp lại của
luồng khóa ban đầu này (dùng nhiều lần nếu cần).
3.36
3.2.2 Continued
Example 3.17
Mật mã Vigenere có thể được xem là sự kết hợp của m mật mã
cộng.
Figure 3.14 A Vigenere cipher as a combination of m additive ciphers
Mật mã Vigenere là sự kết hợp của m mật mã cộng
keyword
“PASCAL”.
3.37
3.2.2 Continued
Example 3.18
Using Example 3.18, we can say that the additive cipher is a
special case of Vigenere cipher in which m = 1.
Table 3.3
A Vigenere Table
3.38
3.2.2 Continued
Vigenere Cipher (Crypanalysis)
Example 3.19
Giả sử chúng tôi đã chặn đoạn mã sau:
Kiểm tra Kasiski về sự lặp lại của các đoạn ba ký tự cho kết quả
như trong Bảng 3.4.
3.39
3.2.2 Continued
Example 3.19
3.40
3.2.2 Continued
Example 3.19 (Continued)
The greatest common divisor of differences is 4, which means that
the key length is multiple of 4. First try m = 4.
Ước chung lớn nhất của các khác biệt là 4, có nghĩa là độ dài khóa là bội số của 4. Đầu
tiên hãy thử m = 4.
3.41
3.2.2 Continued
Hill Cipher: Mã Hill
Figure 3.15 Key in the Hill cipher
Note Ma trận khóa trong mật mã Hill cần có một nghịch đảo nhân.
3.43
3.2.2 Continued
Example 3.21
Assume that Eve knows that m = 3. She has intercepted three
plaintext/ciphertext pair blocks (not necessarily from the same
message) as shown in Figure 3.17.
Giả sử rằng Eve biết rằng m = 3. Cô ấy đã chặn ba khối cặp bản rõ / bản mã (không
nhất thiết phải từ cùng một thông điệp) như trong Hình 3.17.
3.44
3.2.2 Continued
Example 3.21 (Continued)
Now she has the key and can break any ciphertext encrypted with
that key.
3.45
3.2.2 Continued
One-Time Pad: Bảng dùng một lần
Một trong những mục tiêu của mật mã là bí mật hoàn hảo. Một
nghiên cứu của Shannon đã chỉ ra rằng có thể đạt được sự bí mật
hoàn hảo nếu mỗi ký hiệu bản rõ được mã hóa bằng một khóa
được chọn ngẫu nhiên từ một miền khóa.
Ý tưởng này được sử dụng trong một mật mã được gọi là bảng một
lần, do Vernam phát minh.
3.46
3.2.2 Continued
Rotor Cipher
3.47
3.2.2 Continued
Enigma Machine
Sơ đồ về cỗ máy Enigma
3.48
3-3 TRANSPOSITION CIPHERS:
MÃ CHUYỂN VỊ
A transposition cipher does not substitute one symbol for
another, instead it changes the location of the symbols.
Mật mã chuyển vị không thay thế một ký hiệu này cho một ký hiệu khác,
thay vào đó nó thay đổi vị trí của các ký hiệu.
3.49
3.3.1 Keyless Transposition Ciphers:
Mã chuyển vị không khóa
Simple transposition ciphers, which were used in the
past, are keyless.
Example 3.22
Một ví dụ điển hình về mật mã không khóa sử dụng phương pháp đầu tiên
là mật mã hàng rào đường sắt (rail fence cipher). Bản mã được tạo để đọc
từng dòng mẫu. Ví dụ: để gửi tin nhắn “Meet me at the park” cho Bob,
Alice viết
3.50
3.3.1 Continued
Example 3.23
Alice and Bob can agree on the number of columns and use the
second method. Alice writes the same plaintext, row by row, in a
table of four columns.
Các mật mã không khóa hoán vị các ký tự bằng cách viết bản rõ theo cách
này và đọc theo cách khác. Hoán vị được thực hiện trên toàn bộ bản rõ để
tạo ra toàn bộ bản mã.
Một phương pháp khác là chia bản rõ thành các nhóm có kích thước xác
định trước, được gọi là các khối, sau đó sử dụng một khóa để hoán vị các ký
tự trong mỗi khối riêng biệt.
3.53
3.3.2 Continued
Example 3.25
3.54
3.3.3 Combining Two Approaches:
Mã kết hợp chuyển vị có/ không có khóa
Example 3.26
Figure 3.21
3.55
3.3.3 Continued
Keys
In Example 3.21, a single key was used in two directions for the
column exchange: downward for encryption, upward for
decryption. It is customary to create two keys.
Một khóa duy nhất đã được sử dụng theo hai hướng để trao đổi cột: hướng
xuống để mã hóa, hướng lên để giải mã. Theo thông lệ, bạn nên tạo hai
khóa.
3.56
3.3.3 Continued
Hoán
đổi
Sắp xếp
3.57
3.3.3 Continued
Using Matrices
We can use matrices to show the encryption/decryption process
for a transposition cipher.
Chúng ta có thể sử dụng ma trận để biểu thị quá trình mã hóa /
giải mã cho mật mã chuyển vị.
Example 3.27
Figure 3.24 Biểu diễn khóa dưới dạng ma trận trong mật mã chuyển vị
3.58
3.3.3 Continued
Example 3.27
Figure 3.24 shows the encryption process. Multiplying the 4 × 5
plaintext matrix by the 5 × 5 encryption key gives the 4 × 5
ciphertext matrix.
Hình 3.24 cho thấy quá trình mã hóa. Nhân ma trận bản rõ 4 × 5
với khóa mã hóa 5 × 5 sẽ cho ma trận mã hóa 4 × 5.
Figure 3.24 Biểu diễn khóa dưới dạng ma trận trong mật mã chuyển vị
3.59
3.3.3 Continued
Double Transposition Ciphers
Figure 3.25 Mật mã chuyển vị kép
3.60
3-4 STREAM AND BLOCK CIPHERS
Tài liệu chia mật mã đối xứng thành hai loại lớn: mật mã
dòng và mật mã khối. Mặc dù các định nghĩa thường được
áp dụng cho mật mã hiện đại, cách phân loại này cũng áp
dụng cho mật mã truyền thống.
3.61
3.4.1 Stream Ciphers
3.62
3.4.1 Continued
Example 3.30
Mật mã cộng có thể được phân loại là mật mã dòng trong đó dòng khóa là
giá trị lặp lại của khóa. Nói cách khác, dòng khoá được coi là một dòng
khoá được xác định trước hoặc K = (k, k,…, k). Tuy nhiên, trong mật mã
này, mỗi ký tự trong bản mã chỉ phụ thuộc vào ký tự tương ứng trong bản
rõ, vì dòng khóa được tạo ra một cách độc lập.
Example 3.31
Các mật mã thay thế đơn ký tự được thảo luận trong chương này cũng là
mật mã dòng. Tuy nhiên, mỗi giá trị của dòng khóa trong trường hợp
này là ánh xạ của ký tự bản rõ hiện tại với ký tự bản mã tương ứng trong
bảng ánh xạ.
3.63
3.4.1 Continued
Example 3.32
Mật mã Vigenere cũng là mật mã dòng theo định nghĩa. Trong trường hợp này, dòng
khóa là sự lặp lại của m giá trị, trong đó m là kích thước của từ khóa. Nói cách khác,
Example 3.33
Chúng ta có thể thiết lập một tiêu chí để phân chia mật mã dòng dựa trên các dòng
chính của chúng. Chúng ta có thể nói rằng mật mã dòng là mật mã đơn ký tự nếu giá
trị của ki không phụ thuộc vào vị trí của ký tự bản rõ trong dòng bản rõ; nếu không,
mật mã là đa ký tự.
3.64
3.4.1 Continued
Example 3.33 (Continued)
3.65
3.4.2 Block Ciphers
3.66
3.4.2 Continued
Example 3.34
Mật mã Playfair là mật mã khối. Kích thước của khối là m = 2.
Hai ký tự được mã hóa cùng nhau.
Example 3.35
Mật mã Hill là mật mã khối. Một khối văn bản rõ, có kích thước từ 2 trở lên
được mã hóa cùng nhau bằng một khóa duy nhất (ma trận). Trong các mật mã
này, giá trị của mỗi ký tự trong bản mã phụ thuộc vào tất cả các giá trị của các
ký tự trong bản rõ. Mặc dù khóa được tạo ra từ các giá trị m × m, nó được coi là
một khóa duy nhất.
Example 3.36
Từ định nghĩa về mật mã khối, rõ ràng là mọi mật mã khối đều là mật mã đa ký
tự vì mỗi ký tự trong khối bản mã (C) phụ thuộc vào tất cả các ký tự trong khối
bản rõ (P).
3.67
3.4.3 Combination
Trong thực tế, các khối văn bản rõ được mã hóa riêng lẻ, nhưng
chúng sử dụng một luồng các khóa để mã hóa toàn bộ thông điệp
theo từng khối. Nói cách khác, mật mã là một mật mã khối khi nhìn
vào các khối riêng lẻ, nhưng nó là một mật mã dòng khi xem xét
toàn bộ thông điệp - coi mỗi khối là một đơn vị duy nhất.
3.68
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
2
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• A group (G) is a set of elements with a binary operation (•) that
satisfies four properties:
• Closure Tính đóng
• Associativity
• Existence of identity Tính kết hợp
• Existence of inverse
Tồn tại giá trị đơn vị
Tồn tại giá trị nghịch đảo
3
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• A commutative group satisfies an extra property,
commutatively or abelian group
• Closure Tính đóng
• Commutative
• Associative Tính giao hoán
• Existence of identity
Tính kết hợp
• Existence of inverse
Tồn tại giá trị đơn vị
4
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• A commutative group satisfies an extra property,
commutatively or abelian group
• Closure: 𝑎, 𝑏 ∈ 𝐺 𝑡ℎì 𝑐 = a (•) b ∈ 𝐺
• Commutatively: 𝑎 ∙ 𝑏 = 𝑏 ∙ 𝑎
• Associativity: c(•)(𝑎 ∙ 𝑏) = c(•)𝑎 ∙ 𝑏
• Existence of identity: 𝑎 ∙ 𝑒 = 𝑒 ∙ 𝑎 = 𝑎
• Existence of inverse: 𝑎 ∙ 𝑎′ = 𝑎′ ∙ 𝑎 = 𝑒
5
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Nhóm G = < Zn , +> là nhóm gì?
Tại sao nhóm G = <Zn*, ×>, lại là một nhóm Abelian?
Cho nhóm G = < {a, b, c, d}, •> Với phép toán được định nghĩa
6
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• A very interesting group is the permutation group. The set is the
set of all permutations, and the operation is composition:
applying one permutation after another.
7
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• A very interesting group is the permutation group. The set is the
set of all permutations, and the operation is composition:
applying one permutation after another.
8
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• Finite Group
Nhóm hữu hạn là nhóm có số hữu hạn các phần tử
• Order of a Group
Cấp (bậc) của nhóm là số phần tử của nhóm đó
• Subgroup
Nhóm con của một nhóm G là nhóm bao gồm các phần tử
thuộc G đồng thời thỏa mãn phép toán đóng trong G
9
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
• Tính chất của subgroup
10
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Cyclic Subgroups
• Nhóm con Cyclic là nhóm được tạo ra bởi cấp số của 1 phần
tử nhóm gốc
• Cấp số của phần tử là số lần thực hiện lặp lại phép toán đối
với phần tử đó
11
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Cyclic Subgroups
Ví dụ: Hãy cho biết các nhóm con Cyclic của nhóm 𝐺 = < 𝑍6,+>
H1 = <{0}, +> H2 = <{0, 2, 4},+>
H3 = <{0, 3},+>
12
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Cyclic Subgroups
Ví dụ: Hãy cho biết các nhóm con Cyclic của nhóm 𝐺 = < 𝑍6,+>
H4 = G
13
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Cyclic Group
• Nhóm G là nhóm Cyclic khi G chính là nhóm con Cyclic
H4 = G
14
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
1. Nhóm
Lagrange’s Theorem
Assume that G is a group, and H is a subgroup of G. If the order
of G and H are |G| and |H|, respectively, then, based on this
theorem, |H| divides |G|.
Order of an Element
The order of an element, ord(a), is the smallest integer that
𝑎𝑛 = 𝑒.
In the group G = <Z6, +>, the orders of the elements are: ord(0) = 1, ord(1)
= 6, ord(2) = 3, ord(3) = 2, ord(4) = 3, ord(5) = 6.
15
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
2. Vành
A ring, R = <{…}, •, ∎ >, is an algebraic structure with two operations.
16
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
2. Vành
17
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường
A field, denoted by F = <{…}, •, ∎ > is a commutative ring in which the second
operation satisfies all five properties defined for the first operation except that the
identity of the first operation has no inverse.
Một trường, được ký hiệu là F = <{…}, •, ∎> là một vành giao hoán trong đó
phép toán thứ hai thỏa mãn tất cả năm thuộc tính được xác định cho phép toán
đầu tiên ngoại trừ việc nhận dạng của phép toán đầu tiên không có nghịch đảo.
18
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường
• A finite field, a field with a finite number of elements, are very
important structures in cryptography.
• Một trường hữu hạn, một trường có số phần tử hữu hạn, là những
cấu trúc rất quan trọng trong mật mã.
• Galois showed that for a field to be finite, the number of elements
should be 𝑝𝑛 , where p is a prime and n is a positive integer.
• Galois chỉ ra rằng để một trường là hữu hạn, số phần tử phải là 𝑝 ^
𝑛, trong đó p là số nguyên tố và n là số nguyên dương.
p là số nguyên tố, n là số nguyên dương
20
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n)
21
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n)
Let us define a GF(22) field in which the set has four 2-bit words:
{00, 01, 10, 11}. We can redefine addition and multiplication for
this field in such a way that all properties of these operations are
satisfied.
23
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Polynomials
How we can represent the 8-bit word (10011001)
using a polynomials?
24
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Polynomials
25
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Polynomials
Lưu ý:
26
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Modulus
For the sets of polynomials in GF(2n), a group of polynomials of degree n is defined
as the modulus. Such polynomials are referred to as irreducible polynomials.
Đối với các tập đa thức trong GF (2n), một nhóm đa thức bậc n được định nghĩa là
mô-đun. Các đa thức như vậy được gọi là đa thức bất khả quy (tối giản).
27
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Modulus
Lưu ý:
28
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Modulus
29
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Modulus
30
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
31
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
Solution
32
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
To find the final result, divide the polynomial of degree 12 by the
polynomial of degree 8 (the modulus) and keep only the
remainder.
33
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
In GF (24), find the inverse of (x2 + 1) modulo (x4 + x + 1).
Solution
The answer is (x3 + x + 1)
34
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
In GF(28), find the inverse of (x5) modulo (x8 + x4 + x3 + x + 1) ?
Solution
35
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
36
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
Find the result of multiplying P1 = (x5 + x2 + x) by P2 = (x7 + x4 + x3
+ x2 + x) in GF(28) with irreducible polynomial (x8 + x4 + x3 + x +
1) using Euclidean algorithm.
37
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
We first find the partial result of multiplying x0, x1, x2, x3, x4, and x5 by P2. Note
that although only three terms are needed, the product of xm ⊗ P2 for m from
0 to 5 because each calculation depends on the previous result.
38
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
39
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Multiplication
Repeat Example => using bit patterns of size 8.
We have P1 = 000100110, P2 = 10011110 P1 = (x5 + x2 + x)
40
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Generator: phần tử sinh
41
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Generator phần tử sinh
Generate the elements of the field GF(24) using the irreducible
polynomial ƒ(x) = x4 + x + 1.
Solution
The elements 0, g0, g1, g2, and g3 can be easily generated, because
they are the 4-bit representations of 0, 1, x2, and x3. Elements g4
through g14, which represent x4 though x14 need to be divided by
the irreducible polynomial. To avoid the polynomial division, the
relation ƒ(g) = g4 + g + 1 = 0 can be used.
42
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Generator phần tử sinh
43
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Generator
44
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Generator
Sau đây là kết quả của các phép tính nhân và chia:
45
Cơ sở toán học cho hệ mật mã khóa đối
xứng hiện đại
3. Trường GF(2n) Summary
Trường hữu hạn GF (2n) có thể được sử dụng để xác định bốn
phép toán cộng, trừ, nhân và chia trên các từ n-bit. Hạn chế duy
nhất là phép chia cho 0 không được xác định.
46
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
LÝ THUYẾT MẬT MÃ
Cryptography Theory
(ET3310)
Hà Nội 2018
Nội dung môn học
◼ Chương 1. Giới thiệu
◼ Chương 2. Toán học của mật mã
◼ Phần I: Số học theo mô-đun, đồng nhất, và Ma trận
◼ Chương 3. Thuật toán mật mã đối xứng cổ điển
◼ Chương 4. Thuật toán mã khoá đối xứng hiện đại
◼ Chương 5. Chuẩn mã hóa dữ liệu (DES)
◼ Chương 6. Chuẩn mã hóa nâng cao (AES)
◼ Chương 7. Hàm băm và chữ ký số
◼ Chương 8. Dãy giả ngẫu nhiên và hệ mật dòng
◼ Chương 9. Kỹ thuật quản lý khóa.
Chương 5
Thuật toán mã khoá
đối xứng hiện đại
Chương 5
Nội dung
5.4
Chương 5
Nội dung (Tiếp…)
❏ Thảo luận về mật mã tích (product ciphers) và phân
biệt giữa hai loại: mã hoá Feistel và không-Feistel.
❏ Thảo luận về hai loại tấn công được thiết kế đặc biệt
cho mật mã khối hiện đại: thám mã tuyến tính và vi
sai (differential and linear cryptanalysis).
❏ Giới thiệu mật mã dòng (stream ciphers) và phân
biệt giữa mật mã dòng đồng bộ và không đồng bộ.
❏ Thảo luận về thanh ghi dịch hồi tiếp tuyến tính và
không tuyến để thực hiện các thuật toán mã dòng.
5.5
5-1 MẬT MÃ KHỐI HIỆN ĐẠI
Mã khối hiện đại khóa đối xứng mã hóa khối n-bit bản rõ
hoặc giải mã khối n-bit của bản mã. Các thuật toán mã
hóa / giải mã hóa đều dùng một khóa k-bit.
Nội dung:
5.1.1 Thay thế, chuyển vị (Substitution or Transposition)
5.1.2 Mã khối là các nhóm hoán vị (Block Ciphers as Permutation
Groups)
5.1.3 Thành phần của mã khối hiện đại
5.1.4 Mã tích (Product Ciphers)
5.1.5 Two Classes of Product Ciphers
5.1.6 Attacks on Block Ciphers
5.6
5.1 Tiếp…
5.7
5.1.1 Thay thế, chuyển vị
Một mật mã khối hiện đại có thể được thiết kế để hoạt động
như là một mật mã thay thế hoặc một mật mã chuyển vị.
Note
5.8
5.1.1 Tiếp…
Ví dụ 5.2
Giả sử rằng chúng ta có một mật mã khối n = 64. Nếu có 10
bit 1 trong bản mã, có bao nhiêu thử nghiệm lỗi nào mà Eve
cần làm để khôi phục lại bản rõ từ bản mã bị chặn trong mỗi
trường hợp sau?
a. Mật mã được thiết kế như là một mật mã thay thế?
b. Mật mã được thiết kế như là một mật mã chuyển vị?
Giải
a. Trong trường hợp đầu tiên, Eve không biết có bao nhiêu số 1
trong bản rõ. Eve cần thử tất cả 264 khối 64-bit có thể có để tìm
một cái có nghĩa.
b. Trong trường hợp thứ hai, Eve biết rằng có chính xác 10 số 1
trong bản rõ. Eve có thể khởi chạy một tấn công tìm kiếm toàn
diện bằng cách sử dụng những khối 64-bit có chính xác 10 số 1.
5.9
5.1.2 Mã khối là các nhóm hoán vị
Giải
Tập các bảng là 3! = 6 elements, như sau:
5.10
5.1.2 Tiếp…
5.11
5.1.2 Tiếp…
Cho biết mô hình và tập các bảng hoán vị cho mã hóa thay
thế khối 3-bit
5.12
5.1.2 Tiếp…
Hình 5.3 Mã khối chuyển vị được mô hình như là phép hoán vị
Hình 5.3 sau chỉ ra tập các bảng hoán vị. Khóa có độ dài log240,320 = 16 bits.
5.13
5.1.2 Tiếp…
Note
Note
Một mật mã khóa một phần là một nhóm trong
phép toán kết hợp nếu nó là một phân nhóm của
mật mã khoá kích thước đầy đủ tương ứng.
5.14
5.1.3 Thành phần của mã khối hiện đại
P-Boxes
P-box (hộp hoán vị) tương đương với mật mã chuyển đổi
truyền thống cho các ký tự. Nó chuyển vị các bit.
A P-box (permutation box) parallels the traditional
transposition cipher for characters. It transposes bits.
5.15
5.1.3 Tiếp…
Hộp P thẳng
5.16
5.1.3 Tiếp…
Ví dụ 5.5
Hình 5.5 chỉ ra 6 trường hợp ánh xạ của hộp 3 × 3 P-box.
5.17
5.1.3 Tiếp…
Straight P-Boxes
5.18
5.1.2 Tiếp…
Ví dụ 5.6
Design an 8 × 8 permutation table for a straight P-box that
moves the two middle bits (bits 4 and 5) in the input word to
the two ends (bits 1 and 8) in the output words. Relative
positions of other bits should not be changed.
Giải
We need a straight P-box with the table [4 1 2 3 6 7 8 5].
The relative positions of input bits 1, 2, 3, 6, 7, and 8 have not
been changed, but the first output takes the fourth input and
the eighth output takes the fifth input.
5.19
5.1.3 Tiếp…
Compression P-Boxes
5.20
5.1.3 Tiếp…
Compression P-Box
5.21
5.1.3 Tiếp…
Expansion P-Boxes
5.22
5.1.3 Tiếp…
P-Boxes: Tính khả nghịch
Note
Hộp P-box có tính khả nghịch, tuy nhiên hộp P-
boxes nén và mở rộng thì không.
5.23
5.1.3 Tiếp…
Ví dụ 5.7
Hình 5.6 cho thấy làm thế nào để đảo ngược một bảng hoán
vị đại diện như một bảng một chiều.
Hình 5.6 Inverting a permutation table
5.24
5.1.3 Tiếp…
Hình 5.7 Các hộp nén và mở rộng không có tính đảo ngược
Compression and expansion P-boxes are non-invertible
5.25
5.1.3 Tiếp…
S-Box
Hộp S-box (hộp thay thế) có thể được coi như một mật
mã thay thế thu nhỏ.
Note
An S-box is an m × n substitution unit, where m and
n are not necessarily the same.
5.26
5.1.3 Tiếp…
Ví dụ 5.8
Trong một S-box với ba đầu vào và hai đầu ra, chúng ta có
5.27
5.1.3 Tiếp…
Ví dụ 5.9
Trong một hộp S với ba đầu vào và hai đầu ra, chúng ta có
5.28
5.1.3 Tiếp…
Ví dụ 5.10
Bảng dưới đây xác định mối quan hệ đầu vào / đầu ra cho hộp S-
box có kích thước 3 × 2.
Phần bit ngoài cùng bên trái của đầu vào xác định hàng; hai bit
ngoài cùng bên phải của đầu vào xác định cột. Hai bit đầu ra là các
giá trị trên mặt cắt ngang của hàng và cột được chọn.
Dựa trên bảng này, một đầu vào của 010 cho ra kết quả đầu
ra 01. Một đầu vào của 101 cho kết quả đầu ra là 00.
5.29
5.1.3 Tiếp…
S-Boxes: Invertibility
5.30
5.1.3 Tiếp…
Ví dụ 5.11
Hình 5.8 cho thấy một ví dụ về một hộp S-nghịch đảo. Ví dụ, nếu
đầu vào cho ô bên trái là 001, đầu ra là 101. Đầu vào 101 trong
bảng bên phải tạo ra 001, trong đó cho thấy rằng hai bảng là đảo
ngược của nhau.
5.31
5.1.3 Tiếp…
Exclusive-Or
Một thành phần quan trọng trong hầu hết các mật mã
khối là phép toán XOR.
Hình 5.9 Tính thuận nghịch của toán tử XOR
Năm tính chất của phép XOR trong trường GF (2n) làm
cho phép toán này trở thành một thành phần khá quan
trọng trong việc thực hiện mật mã khối: đóng, kết hợp,
giao hoán, tồn tại tính duy nhất và tồn tại nghịch đảo.
5.33
5.1.3 Tiếp…
Exclusive-Or (tiếp…)
5.34
5.1.1 Tiếp…
Hình 5.9 Invertibility of the exclusive-or operation
Nghịch đảo phép toán XOR
5.35
5.1.3 Tiếp…
5.37
5.1.3 Tiếp…
Chia và Kết hợp - Split and Combine
5.38
5.1.3 Tiếp…
5.39
5.1.4 Mật mã tích - Product Ciphers
5.40
5.1.4 Tiếp…
5.41
5.1.4 Tiếp…
Vòng
Khuếch tán và nhầm lẫn có thể đạt được bằng cách sử
dụng mật mã tích được lặp lại, mỗi lần lặp lại là sự kết
hợp của các hộp S-box, P-box và các thành phần khác.
(Một vòng được thực hiện bằng cách sử dụng kết hợp
các phép biến đổi, các thành phần hộp S và hộp P)
Rounds
Diffusion and confusion can be achieved using iterated
product ciphers where each iteration is a combination of
S-boxes, P-boxes, and other components.
5.43
5.1.4 Continued
Hình 5.13 Một mật mã tích tạo ra bởi 2 vòng
Khóa:
Các khóa trong mỗi vòng được sinh /
tạo ra bởi bộ tạo khóa gọi là Key
Generator hoặc là Key Schedule. Bộ tạo
khóa sẽ sinh cho mỗi vòng một khóa
khác nhau.
Trong ví dụ bên: có 3 quá trình chuyển đổi
được thực hiện trong mỗi vòng:
+ 8 bit dữ liệu vào được trộn với khóa k1
thông qua bộ trộn khóa (Key mixer) để
thực hiện làm trắng (whiten) bản tin gốc
(ẩn giấu các bit vào bởi khóa k1). Thông
thường chúng ta sẽ thực hiện toán tử XOR
với từ mã 8bit vào và 8 bit khóa k1.
+ 8 bit ra của bộ trên được nhóm thành 2
bit với nhau để đưa vào bốn hộp S. Qua
đó, giá trị các bit bị thay đổi do quá trình
chuyển đổi của hộp S.
+ 8 bit đầu ra của 4 hộp S chuyển đến một
hộp P để hoán vị trí các bit vào / ra tạo nên
8 bit ra của vòng 1. 8 bit này sẽ là đầu vào
cho vòng 2 tiếp theo.
5.44
5.1.4 Continued
Hình 5.14 Khuếch tán và nhầm lẫn trong mật mã khối trong hệ mật
mã khối nhân
5.45
5.1.5 Two Classes of Product Ciphers
5.46
5.1.5 Continued
5.47
5.1.5 Continued
Hình 5.15 Ý tưởng đầu tiên trong thiết kế mật mã Feistel
f(K) không phải là hàm thuận nghịch, đóng vai trò quan trọng trong mật mã Feistel.
Khóa K dùng chung cho mã hóa và giải mã hóa.
Bộ trộn Mixer là quá trình thưc hiện phép XOR và hàm f(K).
Quá trình mã hóa và giải mã hóa là thuận nghịch: Nếu C1=C2 thì P1=P2.
C1=P1 XOR f(K)
Note P2=C2 XOR f(K)=P1 XOR f(K) XOR f(K) = P1 XOR (00…0) = P1.
5.49
5.1.5 Continued
Hình 5.16 Phát triển thiết kế mã
5.50
5.1.5 Continued
Hình 5.17 Thiết kế nâng cao mã Feistel cuối cùng với 2 vòng
L5=R4 XOR f(L4, K2) = L2 XOR f(R2, K2) XOR f(L4, K2) = L2
R5=L4=L3=R2
L6=R5 XOR f(R5, K1) = L1 XOR f(R1, K1) XOR f(R5, K1) = L1
R6=L5=L2=R1
5.51
5.1.5 Continued
5.52
5.1.6 Attacks on Block Ciphers
5.53
5.1.5 Continued
Differential Cryptanalysis
Eli Biham and Adi Shamir introduced the idea of
differential cryptanalysis. This is a chosen-plaintext
attack.
5.54
5.1.6 Continued
Example 5.13
Assume that the cipher is made only of one exclusive-or
operation, as shown in Figure 5.18. Without knowing the
value of the key, Eve can easily find the relationship between
plaintext differences and ciphertext differences if by plaintext
difference we mean P1 Å P2 and by ciphertext difference, we
mean C1Å C2. The following proves that C1 Å C2 = P1 Å P2:
5.55
5.1.6 Continued
Example 5.14
5.56
5.1.6 Continued
Example 5.14 Continued
5.57
5.1.6 Continued
Example 5.15
5.58
5.1.6 Continued
Example 5.16
5.59
5.1.6 Continued
Note
Differential cryptanalysis is based on a nonuniform
differential distribution table of the S-boxes in a
block cipher.
Note
A more detailed differential cryptanalysis is given
in Appendix N.
5.60
5.1.6 Continued
Linear Cryptanalysis
Linear cryptanalysis was presented by Mitsuru Matsui in
1993. The analysis uses known plaintext attacks.
5.61
5.1.6 Continued
Figure 5.20 A simple cipher with a linear S-box
5.62
5.1.6 Continued
where 1 ≤ x ≤ m, 1 ≤ y ≤ n, and 1 ≤ z ≤ n.
Note
A more detailed linear cryptanalysis is given in
Appendix N.
5.64
5-2 MODERN STREAM CIPHERS
5.65
5.2 Continued
Figure 5.20 Stream cipher
Note
In a modern stream cipher, each r-bit word in the
plaintext stream is enciphered using an r-bit word
in the key stream to create the corresponding r-bit
word in the ciphertext stream.
5.66
5.2.1 Synchronous Stream Ciphers
Note
In a synchronous stream cipher the key is
independent of the plaintext or ciphertext.
5.67
5.2.1 Continued
Example 5.17
What is the pattern in the ciphertext of a one-time pad cipher
in each of the following cases?
a. The plaintext is made of n 0’s.
b. The plaintext is made of n 1’s.
c. The plaintext is made of alternating 0’s and 1’s.
d. The plaintext is a random string of bits.
Solution
a. Because 0 Å ki = ki , the ciphertext stream is the same as
the key stream. If the key stream is random, the
ciphertext is also random. The patterns in the plaintext
are not preserved in the ciphertext.
5.68
5.2.1 Continued
Example 5.7 (Continued)
5.69
5.2.1 Continued
5.70
5.2.1 Continued
Example 5.18
Solution
If ci = 0, bi has no role in calculation of bm. This means that bi
is not connected to the feedback function. If ci = 1, bi is
involved in calculation of bm. In this example, c1 and c3 are
0’s, which means that we have only three connections. Figure
5.24 shows the design.
5.71
5.2.1 Confidentiality
Figure 5.24 LSFR for Example 5.18
5.72
5.2.1 Continued
Example 5.19
Create a linear feedback shift register with 4 cells in which
b4 = b1 Å b0. Show the value of output for 20 transitions
(shifts) if the seed is (0001)2.
Solution
Figure 5.25 LFSR for Example 5.19
5.73
5.2.1 Continued
Example 5.19 (Continued)
Table 4.6 Cell values and key sequence for Example 5.19
5.74
5.2.1 Continued
Example 5.19 (Continued)
5.75
5.2.1 Continued
Example 5.19 (Continued)
Note that the key stream is 100010011010111 10001…. This
looks like a random sequence at first glance, but if we go
through more transitions, we see that the sequence is
periodic. It is a repetition of 15 bits as shown below:
Note
5.76
5.2.1 Continued
Example 5.20
5.77
5.2.2 Nonsynchronous Stream Ciphers
Note
In a nonsynchronous stream cipher, the key
depends on either the plaintext or ciphertext.
5.78
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Môn học:
LÝ THUYẾT MẬT MÃ
6.1
Chuẩn Mã Hóa Dữ Liệu
Data Encryption Standard
(DES)
6.2
Mục đích
6.1.1 History
6.1.2 Overview
6.4
6.1.1 History
6.6
6-2 DES STRUCTURE
6.8
6.2.1 Initial and Final Permutations
6.9
6.2.1 Continue
6.10
6.2.1 Continued
Example 6.1
Find the output of the final permutation box when the input
is given in hexadecimal as:
Tìm đầu ra của hộp hoán vị kết thúc khi đầu vào là số có cơ
số 16
Solution
Only bit 25 and bit 63 are 1s; the other bits are 0s. In the final
permutation, bit 25 becomes bit 64 and bit 63 becomes bit 15.
The result is
Chỉ bit thứ 25 và 63 là các bit 1, còn lại các bits khác là bit 0.
Trong hoán vị kết thúc, biến đổi bit 25 thành bit 64 và bit 63
thành bit 15. Khi đó kết quả là:
6.11
0000 0000 0000 0000
0000 0000 1000 0000
0000 0000 0000 0000
0000 0000 0000 0010
6.12
6.2.1 Continued
Example 6.2
Prove that the initial and final permutations are the inverse
of each other by finding the output of the initial permutation
if the input is
Solution
The input has only two 1s; the output must also have only two
1s. Using Table 6.1, we can find the output related to these
two bits. Bit 15 in the input becomes bit 63 in the output. Bit
64 in the input becomes bit 25 in the output. So the output
has only two 1s, bit 25 and bit 63. The result in hexadecimal is
6.13
0000 0000 0000 0010
0000 0000 0000 0000
0000 0000 0000 0000
0000 0000 0000 0001
6.14
6.2.1 Continued
Note
6.15
6.2.2 Rounds
Figure 6.4
A round in DES
(encryption site)
6.16
6.2.2 Continued
DES Function: Hàm DES
The heart of DES is the DES function. The DES function
applies a 48-bit key to the rightmost 32 bits to produce a
32-bit output.
Figure 6.5
DES function
6.17
6.2.2 Continue
6.18
6.2.2 Continue
6.19
6.2.2 Continue
Whitener (XOR)
After the expansion permutation, DES uses the XOR
operation on the expanded right section and the round key.
Note that both the right section and the key are 48-bits in
length. Also note that the round key is used only in this
operation.
Sau khi mở rộng phép hoán vị, DES sử dụng phép XOR
trong phần bên phải mở rộng và khóa vòng. Chú ý rằng
phần bên phải và khóa vòng có độ dài 48bits. Khóa vòng
chỉ được sử dụng trong phép toán này.
6.20
6.2.2 Continue
S-Boxes
The S-boxes do the real mixing (confusion). DES uses 8
S-boxes, each with a 6-bit input and a 4-bit output. See
Figure 6.7.
Các hộp S thực hiện sự trộn lẫn thực sự (nhầm lẫn). DES sử dụng 8 hộp S,
mỗi hộp có đầu vào 6 bit và đầu ra 4 bit. Xem Hình 6.7.
6.21
6.2.2 Continue
6.22
6.2.2 Continue
Table 6.3 shows the permutation for S-box 1. For the rest
of the boxes see the textbook.
6.23
6.2.2 Continue
S-box 2
6.24
6.2.2 Continue
S-box 3
S-box 4
6.25
6.2.2 Continue
S-box 5
S-box 6
6.26
6.2.2 Continue
S-box 7
S-box 8
6.27
6.2.2 Continued
Example 6.3
The input to S-box 1 is 100011. What is the output?
Cho 8 bit đầu vào S-box 1 là 100011, tìm số bit đầu ra?
Solution
If we write the first and the sixth bits together, we get 11 in
binary, which is 3 in decimal. The remaining bits are 0001 in
binary, which is 1 in decimal. We look for the value in row 3,
column 1, in Table 6.3 (S-box 1). The result is 12 in decimal,
which in binary is 1100. So the input 100011 yields the output
1100.
6.28
6.2.2 Continued
Example 6.4
Solution
If we write the first and the sixth bits together, we get 00 in
binary, which is 0 in decimal. The remaining bits are 0000 in
binary, which is 0 in decimal. We look for the value in row 0,
column 0, in Table 6.10 (S-box 8). The result is 13 in decimal,
which is 1101 in binary. So the input 000000 yields the output
1101.
6.29
6.2.2 Continue
6.30
6.2.3 Cipher and Reverse Cipher
6.32
6.2.3 Continued
6.33
6.2.3 Continued
6.34
6.2.3 Continued
6.35
6.2.3 Continued
Algorithm 6.1 Pseudocode for DES cipher (Continued)
Mã giả cho DES
6.36
6.2.3 Continued
Bộ tạo
khóa vòng Figure 6.10
tạo ra Key generation
mười sáu Tạo khóa
khóa 48-
bit trong
bộ khóa
mã 56-bit
6.38
6.2.3 Continued
6.39
6.2.3 Continued
Dịch trái:
Chia 56 bit thành hai phần 28 bit. Mỗi phần sẽ được
dịch vòng trái một hoặc 2 bit: vòng 1, 2, 9, 16 sẽ dịch 1
bit, còn lại dịch 2 bit.
Hai phần 28 bit sau khi dịch trái sẽ được đưa vào hộp P
nén để tạo khóa 48 bit.
6.40
6.2.3 Continued
6.41
Bài tập về tìm khóa vòng Kn
◼ Cho khóa 64 bits vào K: 0123 ABCD 2562 1456, tìm khóa
vòng đầu tiên K1=?
6.42
6.2.3 Continued
6.43
6.2.3 Continued
6.44
6.2.4 Examples
Example 6.5
We choose a random plaintext block and a random key, and
determine what the ciphertext block would be (all in
hexadecimal):
Chọn một khối bản rõ ngẫu nhiên và một khóa ngẫu nhiên, và xác định khối
bản mã sẽ là gì (tất cả đều ở dạng thập lục phân):
6.45
6.2.4 Continued
Example 6.5 Continued
6.46
6.2.4 Continued
Example 6.6
Let us see how Bob, at the destination, can decipher the
ciphertext received from Alice using the same key. Table 6.16
shows some interesting points.
Hãy để chúng ta xem làm thế nào Bob, tại điểm đến, có thể giải mã bản mã nhận được
từ Alice bằng cách sử dụng cùng một khóa. Bảng 6.16 cho thấy một số điểm thú vị.
6.47
6-3 DES ANALYSIS
6.48
6.3.1 Properties
Two desired properties of a block cipher are the
avalanche effect and the completeness.
Hai thuộc tính mong muốn của mật mã khối là hiệu ứng
thác lũ và tính đầy đủ.
Example 6.7
Để kiểm tra hiệu ứng thác lũ trong DES, chúng ta hãy mã hóa hai
khối văn bản rõ (với cùng một khóa) chỉ khác nhau một bit và quan
sát sự khác biệt về số lượng bit trong mỗi vòng.
6.49
6.3.1 Continued
Example 6.7 Continued
6.50
6.3.1 Continued
Completeness effect
Completeness effect means that each bit of the ciphertext
needs to depend on many bits on the plaintext.
6.51
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
S-Boxe
The design provides confusion and diffusion of bits from
each round to the next.
Thiết kế cung cấp sự nhầm lẫn và khuếch tán các bit từ mỗi
vòng sang vòng tiếp theo.
P-Boxes
They provide diffusion of bits.
Chúng cung cấp sự khuếch tán của các bit.
Number of Rounds
DES uses sixteen rounds of Feistel ciphers. the ciphertext
is thoroughly a random function of plaintext and
ciphertext.
DES sử dụng mười sáu vòng mật mã Feistel. bản mã hoàn toàn là một hàm ngẫu nhiên
của bản rõ và bản mã.
6.52
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
S-Boxe: Thiết kế cung cấp sự nhầm lẫn và khuếch tán các bit
từ mỗi vòng sang vòng tiếp theo. Cụ thể:
1. Các giá trị của mỗi hàng được hoán vị từ 0 đến 15
2. Hộp S là phi tuyến
3. Nếu ta thay đổi một 1 bit vào, khi đó 2 hoặc nhiều hơn các bit ra bị
thay đổi
4. Nếu 2 bit đầu vào hộp S khác hai bit nào đó ở giữa, thì đầu ra của
hộp S sẽ khác ít nhất 2 bit.
5. Trong mỗi hộp S, nếu một bit đơn cố định (0, hoặc 1) còn các bit
khác thay đổi ngẫu nhiên, sự khác nhau giữa các bit 0 và 1 là nhỏ
nhất.
6.53
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
6.54
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
6.55
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
Number of Rounds
DES uses sixteen rounds of Feistel ciphers. the ciphertext
is thoroughly a random function of plaintext and
ciphertext.
DES sử dụng mười sáu vòng mật mã Feistel. bản mã hoàn toàn là
một hàm ngẫu nhiên của bản rõ và bản mã.
Tại sao DES lại sử dụng 16 vòng mà không phải là ít hơn hoặc hơn
số đó?
→ phụ thuộc vào mức độ an toàn, khả năng chống lại các cuộc tấn
công.
6.56
6.3.2 Design Criteria: Tiêu chuẩn thiết kế
6.57
6.3.3 DES Weaknesses
Điểm yếu trong thiết kế mật mã: phụ thuộc chính vào việc thiết kế hệ mật
này, cụ thể:
1. Weaknesses in S-boxes: Hộp S4, đầu ra các hộp S có thể giống nhau
2. Weaknesses in P-boxes: Không rõ ràng việc sử dụng hộp P khởi tạo và
kết thúc. Nó không đủ khả năng bảo mật.
3. Weaknesses in Key: Có nhiều điểm yếu khi mỗi vòng dùng khóa 56 bit
→ kiểm tra số lượng khóa 256.
6.58
6.3.3 Continued
Khóa yếu là khóa khi đưa vào mã hóa bản tin gốc P
hai lần thì lại được bản tin P, tức là Ek(Ek(P))=P.
6.59
6.3.3 Continued
Example 6.8
Khóa yếu
Chúng ta hãy thử khóa yếu đầu tiên trong Bảng 6.18 để mã hóa
một khối hai lần. Sau hai lần mã hóa với cùng một khóa, khối văn
bản rõ ban đầu được tạo. Lưu ý rằng chúng tôi đã sử dụng thuật
toán mã hóa hai lần, không phải một lần mã hóa tiếp theo là một
lần giải mã khác.
6.60
6.3.3 Continued
6.61
6.3.3 Continued
k1 k2
6.62
6.3.3 Continued
6.63
6.3.3 Continued
Example 6.9
Xác suất để chọn ngẫu nhiên một khóa yếu, một nửa yếu,
hoặc một khóa có thể yếu là bao nhiêu?
Solution
DES has a key domain of 256. The total number of the above
keys are 64 (4 + 12 + 48). The probability of choosing one of
these keys is 8.8 × 10−16, almost impossible.
DES có miền khóa là 256. Tổng số khóa trên là 64 (4 + 12 +
48). Xác suất chọn một trong các khóa này là 8,8 × 10−16, gần
như là không thể.
6.64
6.3.3 Continued
6.65
6.3.3 Continued
Example 6.10
Hãy để chúng tôi kiểm tra xác nhận quyền sở hữu về các
khóa bổ sung. Chúng tôi đã sử dụng một khóa và bản rõ tùy ý
để tìm bản mã tương ứng. Nếu chúng ta có phần bổ sung
khóa và bản rõ, chúng ta có thể nhận được phần bổ sung của
bản mã trước đó (Bảng 6.20).
6.66
6-4 Multiple DES
Lời chỉ trích chính của DES liên quan đến độ dài khóa của
nó. May mắn thay, DES không phải là một nhóm. Điều này
có nghĩa là chúng ta có thể sử dụng DES gấp đôi hoặc gấp
ba để tăng kích thước khóa.
Topics discussed in this section:
6.4.1 Double DES: DES đôi
6.4.4 Triple DES: DES ba
6.67
6-4 Continued
6.68
6.4.1 Double DES
Meet-in-the-Middle Attack
However, using a known-plaintext attack called meet-in-the-middle
attack, that proves that double DES improves this vulnerability
slightly (to 257 tests), but not tremendously (to 2112).
Tuy nhiên, việc sử dụng một cuộc tấn công bằng văn bản rõ được
gọi là cuộc tấn công gặp mặt ở giữa, nó chứng minh rằng DES kép
cải thiện lỗ hổng này một chút (đến 257 lần kiểm tra), nhưng không
nhiều (đến 2112).
6.69
6.4.1 Continued
Figure 6.14 Meet-in-the-middle attack for double DES
6.70
6.4.1 Continued
6.71
6.4.2 Triple DES
Figure 6.16 Triple DES with two keys
6.72
6.4.2 Continuous
Khả năng xảy ra các cuộc tấn công bằng bản rõ đã biết
vào DES ba với hai khóa đã lôi kéo một số ứng dụng sử
dụng DES ba với ba khóa. Triple DES với ba khóa được
sử dụng bởi nhiều ứng dụng như PGP (Xem Chương
16).
6.73
6-5 Security of DES
6.75
6.5.2 Differential Cryptanalysis
Note
Note
6.77
6.5.3 Linear Cryptanalysis
Phương pháp phân tích mật mã tuyến tính mới hơn
phương pháp phân tích mật mã vi sai. DES dễ bị phá mã
tuyến tính hơn là phân tích mã vi sai. Hộp chữ S không
chống lại được quá trình phá mã tuyến tính. Người ta đã
chỉ ra rằng DES có thể bị phá vỡ bằng cách sử dụng 243
cặp bản rõ đã biết. Tuy nhiên, trên quan điểm thực tế,
việc tìm ra nhiều cặp số như vậy là rất khó xảy ra.
Note
6.78
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
7.1
Chapter 7
Nội dung
Vào tháng 2 năm 2001, NIST thông báo rằng một bản dự
thảo của Tiêu chuẩn Xử lý Thông tin Liên bang (FIPS)
đã có sẵn để công chúng xem xét và bình luận. Cuối
cùng, AES đã được xuất bản với tên FIPS 197 trong Sổ
đăng ký Liên bang vào tháng 12 năm 2001.
7.4
7.1.1 History.
➢ Năm 1997 NIST bắt đầu kêu gọi tìm kiếm một giải pháp thay thế hệ
DES, đặt tên là Advanced Encryption Standard: Yêu cầu kỹ thuật đưa
ra như sau: Mã khối có kích thước là 128 bits và sử dụng 3 loại khóa
khác nhau có kích thước 128, 192 và 256 bits; ngoài ra, AES là giải
pháp mở, phục vụ rộng rãi công khai trên thế giới.
➢ NIST tổ chức các hội thảo hàng năm trên thế giới. Lần đầu vào tháng
8/1998, họ nhận được 21 thuật toán, chọn 15 thuật toán đáp ứng yêu
cầu trên. Tháng 8/1999 , tại hội thảo diễn ra ở Rome (Ý), họ chọn
được 5 trong số 15 ứng viên, gọi là MARS, RC6, Rijndael, Serpent,
và Twofish. Tiếp đó, tại hội thảo lần thứ 3 vào tháng 10/2000, thuật
toán Rijndael (đọc là Rain Doll) – thiết kế bởi các nhà nghiên cứu
người Bỉ là Joan Daemen và Vincent Rijndael.
➢ Vào tháng 2/2001, NIST công bố bản nháp (draft) về chuẩn xử lý
thông tin Liên Bang và công bố rộng rãi để nhận được các đóng góp.
➢ Vào tháng 10/2001, AES được công bố theo chuẩn FIPS 197.
7.5
7.1.2 Criteria
Các tiêu chí do NIST xác định để lựa chọn AES thuộc ba
lĩnh vực:
1. bảo mật
2. Chi phí
3. Thực hiện.
7.6
7.1.3 Rounds.
AES là một mật mã không phải Feistel, mã hóa và giải mã một khối
dữ liệu 128 bit. Nó sử dụng 10, 12 hoặc 14 vòng. Kích thước khóa,
có thể là 128, 192 hoặc 256 bit, tùy thuộc vào số vòng.
Note
AES has defined three versions, with 10, 12, and 14 rounds.
Each version uses a different cipher key size (128, 192, or 256),
but the round keys are always 128 bits.
7.7
7.1.3 Continue
7.8
7.1.4 Data Units.
Figure 7.2 Data units used in AES
Đơn vị dữ liệu được sử dụng trong AES
Bit
7.9
7.1.4 Continue
7.10
7.1.4 Continue
Example 7.1 Continue
17
7.11
7.1.5 Structure of Each Round
Figure 7.5 Structure of each round at the encryption site
Cấu trúc của mỗi vòng bên mã hóa
+ Một AddRoundKey
được sử dụng trước
vòng đầu tiên
7.12
7-2 TRANSFORMATIONS:
CÁC PHÉP BIẾN ĐỔI TRONG AES
Để cung cấp bảo mật, AES sử dụng bốn kiểu biến đổi: thay
thế, hoán vị, trộn và thêm khóa.
7.13
7.2.1 Substitution: phép thay thế
7.15
7.2.1 Continue
7.16
7.2.1 Continue
7.17
7.2.1 Continue
InvSubBytes
BẢNG CHUYỂN ĐỔI SUBBYTES (NGHỊCH)
7.18
7.2.1 Continue
InvSubBytes (Continued)
BẢNG CHUYỂN ĐỔI SUBBYTES (NGHỊCH)
7.19
7.2.1 Continue
Example 7.2
Figure 7.7 shows how a state is transformed using the SubBytes transformation.
The figure also shows that the InvSubBytes transformation creates the original
one. Note that if the two bytes have the same values, their transformation is also
the same.
hiển thị cách một trạng thái được chuyển đổi bằng cách sử dụng phép biến đổi
SubBytes. Hình cũng cho thấy rằng phép biến đổi InvSubBytes tạo ra phép biến
đổi ban đầu. Lưu ý rằng nếu hai byte có cùng giá trị, thì phép biến đổi của chúng
cũng giống nhau.
7.20
7.2.1 Continue
Note
7.22
7.2.1 Continue
Example 7.3
Let us show how the byte 0C is transformed to FE by subbyte
routine and transformed back to 0C by the invsubbyte
routine.
7.23
7.2.1 Continue
7.24
7.2.2 Permutation
7.25
7.2.2 Continue
InvShiftRows
In the decryption, the transformation is called
InvShiftRows and the shifting is to the right.
7.26
7.2.2 Continue
Example 7.4
Figure 7.10 shows how a state is transformed using ShiftRows
transformation. The figure also shows that InvShiftRows
transformation creates the original state.
Hình 7.10 cho thấy cách một trạng thái được chuyển đổi bằng cách sử
dụng phép biến đổi ShiftRows. Hình cũng cho thấy rằng phép biến đổi
InvShiftRows tạo ra trạng thái ban đầu.
7.27
7.2.3 Mixing
Chúng ta cần một phép biến đổi interbyte làm thay đổi các bit bên
trong một byte, dựa trên các bit bên trong các byte lân cận. Chúng ta
cần trộn các byte để cung cấp sự khuếch tán ở mức bit.
7.28
7.2.3 Continue
7.29
7.2.3 Continue
MixColumns
The MixColumns transformation operates at the column level; it
transforms each column of the state to a new column.
Phép biến đổi MixColumns hoạt động ở cấp cột; nó chuyển đổi mỗi
cột của trạng thái thành một cột mới.
7.30
7.2.3 Continue
InvMixColumns
The InvMixColumns transformation is basically the same
as the MixColumns transformation.
Note
7.31
7.2.3 Continue
7.32
7.2.3 Continue
Example 7.5
7.33
Việc biến đổi một cột của ma trận trạng thái được thực hiện bởi hai phép toán là nhân
(.) và XOR (+).
Biểu thức sau tạo ra phần tử H04, H là ký hiệu của số Hex, ở cột 1 trong hình minh
họa "chức năng MixColumns".
H04 =Hd4.H02 + Hbf.H03 + H5d.H01 + H30.H01=Hd4.H02 + (Hbf.H02 + Hbf.H01) +
H5d.H01 + H30.H01.
• Phép nhân với H01 thì giữ nguyên giá trị. Phép nhân với H02 tương đương với việc dịch trái một bit và
XOR có điều kiện như sau:
Nếu bit MSB của giá trị được dịch bằng 1 thì giá trị sau khi dịch được XOR với H1b
• Nếu bit MSB của giá trị được dịch bằng 0 thì giữ giá trị saukhi dịch.
7.34
7.2.4 Key Adding
AddRoundKey
AddRoundKey proceeds one column at a time.
AddRoundKey adds a round key word with each state
column matrix; the operation in AddRoundKey is matrix
addition.
AddRoundKey tiến hành từng cột một. AddRoundKey
thêm một từ khóa tròn với mỗi ma trận cột trạng thái;
hoạt động trong AddRoundKey là phép cộng ma trận.
Note
7.36
7-3 KEY EXPANSION
7.38
7.3.1 Key Expansion in AES-128
Figure 7.16 Key expansion in AES
Wi(i=4->43) = t_i
XOR w_{i-4}. Trong
đó t_i là word tạm
thời, được tạo thành
bởi quá trình
SubWord và
RotWord:
t=
SubWord(RotWord(
w_{i-1})) XOR
Rcon_{i/4}
+ RotWord (rotate
word) giống với quá
trình dịch chuyển
hàng ShiftRows,
nhưng chỉ dịch
7.39 chuyển một hàng
7.3.1 Key Expansion in AES-128
Figure 7.16 Key expansion in AES
Wi(i=4->43) = t_i XOR w_{i-4}. Trong đó t_i là word tạm thời, được tạo thành bởi
quá trình SubWord và RotWord:
Round Constants (RCon): là một giá trị 4 byte mà 3 bytes bên phải luôn luôn là
zero.
7.40
7.3.1 Continue
7.41
7.3.1 Continue
The key-expansion routine can either use the above table when
calculating the words or use the GF(28) field to calculate the leftmost
byte dynamically, as shown below (prime is the irreducible
polynomial):
Quy trình mở rộng khóa có thể sử dụng bảng trên khi tính toán các từ
hoặc sử dụng trường GF (28) để tính toán động byte ngoài cùng bên trái,
như được hiển thị bên dưới (số nguyên tố là đa thức tối giản):
7.42
AES sử dụng đa thức: (x8 + x4 + x3+ x + 1)
7.3.1 Continue
7.43
7.3.1 Continue
Example 7.6
Table 7.5 shows how the keys for each round are calculated assuming that the 128-
bit cipher key agreed upon by Alice and Bob is (24 75 A2 B3 34 75 56 88 31 E2 12
00 13 AA 54 87)16.
Bảng 7.5 cho thấy cách tính các khóa cho mỗi vòng với giả định rằng khóa mật mã 128
bit được Alice và Bob đồng ý là (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54
87)16.
7.44
7.3.1 Continue
Example 7.6
Table 7.5 shows how the keys for each round are calculated assuming that the 128-
bit cipher key agreed upon by Alice and Bob is (24 75 A2 B3 34 75 56 88 31 E2 12
00 13 AA 54 87)16.
Bảng 7.5 cho thấy cách tính các khóa cho mỗi vòng với giả định rằng khóa mật mã 128
bit được Alice và Bob đồng ý là (24 75 A2 B3 34 75 56 88 31 E2 12 00 13 AA 54 87)16.
Trong mỗi vòng, cần tìm giá trị t , ví dụ đối với vòng 1 chúng ta cần tìm:
t_4 = SubWord(RotWord(w_{4-1})) XOR Rcon_{4/4}
RotWord(w_3)=RotWord(13AA5487) = ???
→ SubWord(???) = ???
→ t_4 = SubWord XOR 01000000 = ???
7.45
7.3.1 Continue
Example 7.7
Each round key in AES depends on the previous round key. The dependency,
however, is nonlinear because of SubWord transformation. The addition of the
round constants also guarantees that each round key will be different from the
previous one.
Mỗi khóa vòng trong AES phụ thuộc vào khóa trước đó. Tuy nhiên, sự phụ thuộc
là phi tuyến vì biến đổi SubWord. Việc bổ sung các hằng số vòng cũng đảm bảo
rằng mỗi khoá vòng sẽ khác với khoá trước đó.
Example 7.8
The two sets of round keys can be created from two cipher keys that are
different only in one bit.
Hai bộ khóa tròn có thể được tạo ra từ hai khóa mật mã chỉ khác nhau một bit.
7.46
7.3.1 Continue
Example 7.8 Continue
7.47
7.3.1 Continue
Example 7.9
The concept of weak keys, as we discussed for DES in
Chapter 6, does not apply to AES. Assume that all bits in the
cipher key are 0s. The following shows the words for some
rounds:
The words in the pre-round and the first round are all the
same. In the second round, the first word matches with the
third; the second word matches with the fourth. However,
after the second round the pattern disappears; every word is
different.
7.48
7.3.2 Key Expansion in AES-192 and AES-256
7.49
7.3.3 Key-Expansion Analysis
7.50
7-4 CIPHERS
AES sử dụng bốn kiểu biến đổi để mã hóa và giải mã. Trong tiêu
chuẩn, thuật toán mã hóa được gọi là mật mã và thuật toán giải mã là
mật mã nghịch đảo.
Topics discussed in this section:
7.4.1 Original Design
7.4.2 Alternative Design
7.51
7.4.1 Original Design
Figure 7.17 Ciphers and inverse ciphers of the original design
Mật mã và mật mã nghịch đảo của thiết kế ban đầu
7.52
7.4.1 Continue
Algorithm
The code for the AES-128 version of this design is shown
in Algorithm 7.6.
7.53
7.4.2 Alternative Design
7.54
7.4.2 Continue
7.55
7.4.2 Continue
Figure 7.20 Cipher and reverse cipher in alternate design
Mật mã và mật mã đảo ngược trong thiết kế thay thế
7.56
7.4.2 Continue
7.57
7-5 Examples
Example 7.10
The following shows the ciphertext block created from a plaintext block using a
randomly selected cipher key.
Phần sau cho thấy khối bản mã được tạo từ một khối bản rõ bằng cách sử dụng một
khóa mật mã được chọn ngẫu nhiên.
7.58
7-5 Continued
Example 7.10 Continued
7.59
7-5 Continued
Example 7.10 Continued
7.60
7-5 Continued
Example 7.10 Continued
7.61
7-5 Continued
Example 7.11
Figure 7.21 shows the state entries in one round, round 7, in
Example 7.10.
7.62
7-5 Continued
Example 7.12
7.63
7-5 Continued
Example 7.13
Let us check the avalanche effect that we discussed in Chapter 6. Let us change
only one bit in the plaintext and compare the results. We changed only one bit in
the last byte. The result clearly shows the effect of diffusion and confusion.
Changing a single bit in the plaintext has affected many bits in the ciphertext.
Hãy để chúng tôi kiểm tra hiệu ứng tuyết lở mà chúng tôi đã thảo luận trong
Chương 6. Hãy để chúng tôi chỉ thay đổi một bit trong bản rõ và so sánh kết quả.
Chúng tôi chỉ thay đổi một bit trong byte cuối cùng. Kết quả cho thấy rõ ràng hiệu
ứng của sự khuếch tán và sự nhầm lẫn. Thay đổi một bit trong bản rõ đã ảnh
hưởng đến nhiều bit trong bản mã.
7.64
7-5 Continued
Example 7.14
The following shows the effect of using a cipher key in which all
bits are 0s.
Phần sau cho thấy tác dụng của việc sử dụng khóa mật mã
trong đó tất cả các bit đều là 0.
7.65
7-6 ANALYSIS OF AES
7.66
7.6.1 Security
AES was designed after DES. Most of the known attacks on DES were
already tested on AES.
AES được thiết kế sau DES. Hầu hết các cuộc tấn công đã biết vào
DES đều đã được thử nghiệm trên AES.
Brute-Force Attack
AES is definitely more secure than DES due to the larger-size key. AES chắc chắn
an toàn hơn DES do khóa có kích thước lớn hơn.
Statistical Attacks
Numerous tests have failed to do statistical analysis of the ciphertext.
Nhiều thử nghiệm đã không thực hiện được phân tích thống kê của bản mã.
7.67
7.6.1 Continue
Statistical Attacks
Numerous tests have failed to do statistical analysis of
the ciphertext.
Các cuộc tấn công thống kê
Nhiều thử nghiệm đã không thực hiện được phân tích
thống kê của bản mã.
Differential and Linear Attacks
There are no differential and linear attacks on AES as
yet.
Tấn công vi phân và tuyến tinh
Chưa có các cuộc tấn công vi phân và tuyến tính trên
AES.
7.68
7.6.2 Implementation
7.69
7.6.3 Simplicity and Cost
Các thuật toán được sử dụng trong AES rất đơn giản
nên chúng có thể dễ dàng thực hiện bằng cách sử
dụng bộ vi xử lý rẻ tiền và dung lượng bộ nhớ tối
thiểu.
7.70
Ôn tập
7.71
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
❏ Để hiển thị cách các mật mã tiêu chuẩn hiện đại, chẳng
hạn như DES hoặc AES, có thể được sử dụng để tạo ra các
tin nhắn dài.
❏ Để thảo luận về năm chế độ hoạt động được thiết kế để sử
dụng với mật mã khối hiện đại.
❏ Để xác định phương thức hoạt động nào tạo ra mật mã
dòng ngoài các mật mã khối bên dưới.
❏ Để thảo luận về các vấn đề bảo mật và sự lan truyền lỗi
của các phương thức hoạt động khác nhau.
❏ Để thảo luận về hai mật mã dòng được sử dụng để xử lý
dữ liệu theo thời gian thực.
1 USE OF MODERN BLOCK CIPHERS
Example 1
Có thể chứng minh rằng mỗi khối bản rõ tại phía Alice được khôi
phục chính xác tại phía Bob. Bởi vì mã hóa và giải mã là nghịch
đảo của nhau,
Example 2
Assume that Eve works in a company a few hours per month (her monthly payment
is very low). She knows that the company uses several blocks of information for
each employee in which the seventh block is the amount of money to be deposited in
the employee’s account. Eve can intercept the ciphertext sent to the bank at the end
of the month, replace the block with the information about her payment with a copy
of the block with the information about the payment of a full-time colleague. Each
month Eve can receive more money than she deserves.
Giả sử rằng Eve làm việc trong một công ty vài giờ mỗi tháng (tiền lương hàng
tháng của cô ấy rất thấp). Cô ấy biết rằng công ty sử dụng một số khối thông tin cho
mỗi nhân viên, trong đó khối thứ bảy là số tiền được gửi vào tài khoản của nhân
viên. Eve có thể chặn bản mã được gửi đến ngân hàng vào cuối tháng, thay thế khối
với thông tin về khoản thanh toán của cô ấy bằng một bản sao của khối với thông tin
về khoản thanh toán của một đồng nghiệp toàn thời gian. Mỗi tháng Eve có thể nhận
được nhiều tiền hơn những gì cô ấy xứng đáng.
1.1 Continued
Note
In CFB mode, encipherment and decipherment use
the encryption function of the underlying block
cipher.
In this mode each bit in the ciphertext is independent of the previous bit
or bits. This avoids error propagation.
Trong chế độ này, mỗi bit trong bản mã độc lập với bit hoặc các bit
trước đó. Điều này tránh sự lan truyền lỗi.
Figure 6 Encryption in output feedback (OFB) mode
1.4 Continued
OFB as a Stream Cipher: OFB như là một dạng
mật mã dòng
Figure 7 Output feedback (OFB) mode as a stream cipher
1.4 Continued
1.5 Counter (CTR) Mode
Although the five modes of operations enable the use of block ciphers for
encipherment of messages or files in large units and small units,
sometimes pure stream are needed for enciphering small units of data
such as characters or bits.
Mặc dù năm chế độ hoạt động cho phép sử dụng mật mã khối để giải mã
thông điệp hoặc tệp theo đơn vị lớn và đơn vị nhỏ, nhưng đôi khi dòng
thuần lại cần thiết để giải mã các đơn vị dữ liệu nhỏ như ký tự hoặc bit.
State
RC4 is based on the concept of a state.
RC4 dựa trên khái niệm về một trạng thái. Một state của 256 bytes
2.1 Continued
Figure 10 The idea of RC4 stream cipher
2.1 Continued
Example 5
To show the randomness of the stream key, we use a secret key
with all bytes set to 0. The key stream for 20 values of k is (222, 24,
137, 65, 163, 55, 93, 58, 138, 6, 30, 103, 87, 110, 146, 109, 199, 26,
127, 163).
Example 6
Repeat Example 5, but let the secret key be five bytes of (15, 202,
33, 6, 8). The key stream is (248, 184, 102, 54, 212, 237, 186, 133,
51, 238, 108, 106, 103, 214, 39, 242, 30, 34, 144, 49). Again the
randomness in the key stream is obvious.
2.2 A5/1
3.
2.2 Continued
4.
2.2 Continued
Example 7
Solution
The result of Majority (1, 0, 1) = 1. LFSR1 and LAFS3 are shifted,
but LFSR2 is not.
2.2 Continued
Encryption/Decryption
The bit streams created from the key generator are
buffered to form a 228-bit key that is exclusive-ored with
the plaintext frame to create the ciphertext frame.
Encryption/decryption is done one frame at a time.
Mã hóa / Giải mã
Các luồng bit được tạo ra từ bộ tạo khóa được đệm để tạo
thành khóa 228 bit được sử dụng riêng với khung bản rõ
để tạo khung bản mã. Mã hóa / giải mã được thực hiện
từng khung một.
3 OTHER ISSUES
Note
Key management is discussed later.
3.2 Key Generation
❏ Để hiển thị cách các mật mã tiêu chuẩn hiện đại, chẳng
hạn như DES hoặc AES, có thể được sử dụng để tạo ra các
tin nhắn dài.
❏ Để thảo luận về năm chế độ hoạt động được thiết kế để sử
dụng với mật mã khối hiện đại.
❏ Để xác định phương thức hoạt động nào tạo ra mật mã
dòng ngoài các mật mã khối bên dưới.
❏ Để thảo luận về các vấn đề bảo mật và sự lan truyền lỗi
của các phương thức hoạt động khác nhau.
❏ Để thảo luận về hai mật mã dòng được sử dụng để xử lý
dữ liệu theo thời gian thực.
1 USE OF MODERN BLOCK CIPHERS
Example 1
Có thể chứng minh rằng mỗi khối bản rõ tại phía Alice được khôi
phục chính xác tại phía Bob. Bởi vì mã hóa và giải mã là nghịch
đảo của nhau,
Example 2
Assume that Eve works in a company a few hours per month (her monthly payment
is very low). She knows that the company uses several blocks of information for
each employee in which the seventh block is the amount of money to be deposited in
the employee’s account. Eve can intercept the ciphertext sent to the bank at the end
of the month, replace the block with the information about her payment with a copy
of the block with the information about the payment of a full-time colleague. Each
month Eve can receive more money than she deserves.
Giả sử rằng Eve làm việc trong một công ty vài giờ mỗi tháng (tiền lương hàng
tháng của cô ấy rất thấp). Cô ấy biết rằng công ty sử dụng một số khối thông tin cho
mỗi nhân viên, trong đó khối thứ bảy là số tiền được gửi vào tài khoản của nhân
viên. Eve có thể chặn bản mã được gửi đến ngân hàng vào cuối tháng, thay thế khối
với thông tin về khoản thanh toán của cô ấy bằng một bản sao của khối với thông tin
về khoản thanh toán của một đồng nghiệp toàn thời gian. Mỗi tháng Eve có thể nhận
được nhiều tiền hơn những gì cô ấy xứng đáng.
1.1 Continued
Note
In CFB mode, encipherment and decipherment use
the encryption function of the underlying block
cipher.
In this mode each bit in the ciphertext is independent of the previous bit
or bits. This avoids error propagation.
Trong chế độ này, mỗi bit trong bản mã độc lập với bit hoặc các bit
trước đó. Điều này tránh sự lan truyền lỗi.
Figure 6 Encryption in output feedback (OFB) mode
1.4 Continued
OFB as a Stream Cipher: OFB như là một dạng
mật mã dòng
Figure 7 Output feedback (OFB) mode as a stream cipher
1.4 Continued
1.5 Counter (CTR) Mode
Although the five modes of operations enable the use of block ciphers for
encipherment of messages or files in large units and small units,
sometimes pure stream are needed for enciphering small units of data
such as characters or bits.
Mặc dù năm chế độ hoạt động cho phép sử dụng mật mã khối để giải mã
thông điệp hoặc tệp theo đơn vị lớn và đơn vị nhỏ, nhưng đôi khi dòng
thuần lại cần thiết để giải mã các đơn vị dữ liệu nhỏ như ký tự hoặc bit.
State
RC4 is based on the concept of a state.
RC4 dựa trên khái niệm về một trạng thái. Một state của 256 bytes
2.1 Continued
Figure 10 The idea of RC4 stream cipher
2.1 Continued
Example 5
To show the randomness of the stream key, we use a secret key
with all bytes set to 0. The key stream for 20 values of k is (222, 24,
137, 65, 163, 55, 93, 58, 138, 6, 30, 103, 87, 110, 146, 109, 199, 26,
127, 163).
Example 6
Repeat Example 5, but let the secret key be five bytes of (15, 202,
33, 6, 8). The key stream is (248, 184, 102, 54, 212, 237, 186, 133,
51, 238, 108, 106, 103, 214, 39, 242, 30, 34, 144, 49). Again the
randomness in the key stream is obvious.
2.2 A5/1
3.
2.2 Continued
4.
2.2 Continued
Example 7
At a point of time the clocking bits are 1, 0, and 1. Which LFSR is
clocked (shifted)?
Solution
The result of Majority (1, 0, 1) = 1. LFSR1 and LAFS3 are shifted,
but LFSR2 is not.
2.2 Continued
Encryption/Decryption
The bit streams created from the key generator are
buffered to form a 228-bit key that is exclusive-ored with
the plaintext frame to create the ciphertext frame.
Encryption/decryption is done one frame at a time.
Mã hóa / Giải mã
Các luồng bit được tạo ra từ bộ tạo khóa được đệm để tạo
thành khóa 228 bit được sử dụng riêng với khung bản rõ
để tạo khung bản mã. Mã hóa / giải mã được thực hiện
từng khung một.
3 OTHER ISSUES
Note
Key management is discussed later.
3.2 Key Generation
Asymmetric-Key Cryptography
Mật mã Khóa-bất đối xứng
◼ Giảng viên: PGS. TS. Hà Duyên Trung
◼ Email: haduyentrungvn@gmail.com
Hà Nội 2021
Nội dung
❑ Để phân biệt giữa hai hệ thống mật mã: khóa đối xứng và
khóa không đối xứng
❑ Giới thiệu các hàm một chiều của cửa sập và việc sử dụng
chúng trong hệ thống mật mã khóa không đối xứng
❑ Giới thiệu hệ thống mật mã knapsack như một trong
những ý tưởng đầu tiên trong mật mã khóa bất đối xứng
❑ Để thảo luận về hệ thống mật mã RSA
❑ Để thảo luận về hệ thống mật mã Rabin
❑ Để thảo luận về hệ thống mật mã ElGamal
1 INTRODUCTION
Mật mã khóa đối xứng và không đối xứng sẽ tồn tại song
song và tiếp tục phục vụ cộng đồng. Chúng ta thực sự tin
rằng chúng là sự bổ sung của nhau; ưu điểm của cái này
có thể bù đắp cho những bất lợi của cái kia.
Symmetric and asymmetric-key cryptography will exist
in parallel and continue to serve the community. We
actually believe that they are complements of each
other; the advantages of one can compensate for the
disadvantages of the other.
1 INTRODUCTION
Note
Kênh phân bố
khóa công khai
Plaintext/Ciphertext
Unlike in symmetric-key cryptography, plaintext and
ciphertext are treated as integers in asymmetric-key
cryptography.
Không giống như trong mật mã khóa đối xứng, bản rõ và
bản mã được coi là số nguyên trong mật mã khóa không
đối xứng.
Encryption/Decryption
Functions
Figure 3 A function as rule mapping a domain to a range
Một chức năng dưới dạng quy tắc ánh xạ miền tới một phạm vi
1.4 Continued
One-Way Function (OWF): Hàm một chiều
1. f is easy to compute. Cho x, y=f(x) là dễ thực
hiện
2. f −1 is difficult to compute. Cho y, rất khó để
thực hiện tìm x=f -1(y)
Example 1
When n is large, n = p × q is a one-way function. Given p and
q , it is always easy to calculate n ; given n, it is very difficult to
compute p and q. This is the factorization problem.
Example 2
When n is large, the function y = xk mod n is a trapdoor one-
way function. Given x, k, and n, it is easy to calculate y. Given
y, k, and n, it is very difficult to calculate x. This is the discrete
logarithm problem. However, if we know the trapdoor, k′ such
that k × k′ = 1 mod f(n), we can use x = yk′ mod n to find x.
Khi n lớn, hàm y = xk mod n là hàm một chiều cửa sập. Với x,
k và n, ta dễ dàng tính được y. Với y, k và n, rất khó để tính x.
Đây là bài toán logarit rời rạc. Tuy nhiên, nếu chúng ta biết
cửa sập, k′ sao cho k × k ′ = 1 mod f(n), chúng ta có thể sử
dụng x = yk′ mod n để tìm x.
1.5 Knapsack Cryptosystem
Giới thiệu
+ Ý tưởng đầu tiên được đưa ra bởi Merkle và Hellman
+ Dựa trên hệ thống mật mã khóa công khai (public key)
1.5 Knapsack Cryptosystem
Definition: Định nghĩa
a = [a1, a2, …, ak ] and x = [x1, x2, …, xk].
a là dãy số cho trước, xi là các số “0” hoặc “1”
Tổng của các thành phần xi×ai được đưa vào Knapsack.
ai ≥ a1 + a2 + … + ai−1
1.5 Knapsack Cryptosystem
ai ≥ a1 + a2 + … + ai−1
Mỗi thành phần (ngoại trừ a1) lớn hơn hoặc bằng tổng
các thành phần trước nó. Khi đó, chúng ta tính toán hàm
knapsackSum và Inv_knapsackSum như slide sau.
Chú ý: trong quá trình tính ngược tìm x, cần bắt đầu từ
giá trị lớn nhất đến giá trị nhỏ nhất của a.
1.5 Continued
x=inv_knapsackSum(s, a).
Bắt đầu từ ai có giá trị max
1.5 Continued
Example 3
As a very trivial example, assume that a = [17, 25, 46, 94,
201,400] and s = 272 are given. Table 10.1 shows how the
tuple x is found using inv_knapsackSum routine in Algorithm
10.1. In this case x = [0, 1, 1, 0, 1, 0], which means that 25, 46,
and 201 are in the knapsack.
1.5 Continued
Example 3
Như một ví dụ rất đơn giản, giả sử rằng a = [17, 25, 46, 94,
201,400] và s = 272 được đưa ra. Bảng 10.1 cho thấy cách
tìm tuple x bằng cách sử dụng quy trình inv_knapsackSum
trong Thuật toán 10.1. Trong trường hợp này x = [0, 1, 1, 0, 1,
0], có nghĩa là 25, 46 và 201 nằm trong cái túi (knapsack).
1.5 Continued
2399
1.5 Continued
Example 4
Đây là một ví dụ (rất không an toàn) chỉ để mô tả quy trình.
2 RSA CRYPTOSYSTEM: HỆ MẬT RSA
Encryption
2.2 Continued
Decryption
2.2 Continued
Bây giờ giả sử rằng một người khác, John, muốn gửi
một tin nhắn cho Bob. John có thể sử dụng cùng một
khóa công khai được Bob công khai (có thể là trên
trang web của anh ấy), e=13; John’s plaintext là 63.
John tính toán như sau:
Key Generation
3.1 Continued
Encryption
3.1 Continued
Decryption
Key Generation
4.2 Continued
4.2 Continued
Example 11
Instead of using P = [C2 × (C1d) −1] mod p for decryption, we can
avoid the calculation of multiplicative inverse and use
P = [C2 × C1 p−1−d] mod p (see Fermat’s little theorem in Chapter
9). In Example 10.10, we can calculate P = [6 × 5 11−1−3] mod 11
= 7 mod 11.
Note
For the ElGamal cryptosystem, p must be at least 300 digits
and r must be new for each encipherment.
4.3 Continued
Example 12
Bob uses a random integer of 512 bits. The integer p is a 155-digit
number (the ideal is 300 digits). Bob then chooses e1, d, and
calculates e2, as shown below:
4.3 Continued
Example 10
Alice has the plaintext P = 3200 to send to Bob. She chooses
r = 545131, calculates C1 and C2, and sends them to Bob.
56 512
80 1024
112 2048
128 3072
192 7680
256 15360
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Cryptographic
Hash Functions
Hàm băm mật mã
◼ Giảng viên: PGS. TS. Hà Duyên Trung
◼ Email: haduyentrungvn@gmail.com
Nội dung
Hash là gì?
❖Về cơ bản hashing là quá trình biến một dữ liệu đầu vào có độ dài bất kỳ thành một
chuỗi đầu ra đặc trưng có độ dài cố định. Hashing được thực hiện thông qua hàm băm
(hash function).
❖Một cách tổng quát hàm băm là bất kỳ hàm nào có thể được sử dụng để ánh xạ dữ liệu
có kích thước tùy ý thành các giá trị kích thước cố định. Các giá trị được trả về bởi hàm
băm được gọi là giá trị băm, mã băm, thông điệp băm, hoặc đơn giản là “hash”.
1 GIỚI THIỆU
❖ Ví dụ, khi bạn download một video trên YouTube có dung lượng 50 MB và thực
hiện hashing trên nó bằng thuật toán băm SHA-256, thì đầu ra bạn thu được sẽ là
một giá trị băm có độ dài 256 bit. Tương tự, nếu bạn lấy một tin nhắn văn bản có
dung lượng 5 KB, để hashing bằng SHA-256 thì giá trị băm đầu ra bạn thu được
vẫn sẽ là 256 bit.
❖ Trong blockchain, các giao dịch có độ dài khác nhau sẽ được băm thông qua một
thuật toán băm nhất định và tất cả đều cho đầu ra có độ dài cố định bất kể độ dài
của giao dịch đầu vào là bao nhiêu. Chẳng hạn, Bitcoin sử dụng thuật toán SHA-
256 để băm các giao dịch cho kết quả đầu ra có độ dài cố định là 256 bit (32 byte)
cho dù giao dịch chỉ là một từ hoặc giao dịch phức tạp với lượng dữ liệu khổng lồ.
❖ Kỹ thuật hashing thường được sử dụng và có ứng dụng rộng rãi nhất trong việc
đảm bảo tính toàn vẹn cho dữ liệu trong blockchain là các hàm băm mật mã
(cryptographic hash function) chẳng hạn như SHA-1. SHA-2. SHA-3, SHA-
256…Sỡ dĩ như vậy là do các hàm băm mật mã có một số tính chất quan trọng
phù hợp cho việc đảm bảo an toàn dữ liệu.
1 GIỚI THIỆU
Một hàm băm mật mã nhận một thông điệp có độ dài tùy
ý và tạo ra một thông báo có độ dài cố định. Mục tiêu
của chương này là thảo luận chi tiết về hai thuật toán
băm mật mã hứa hẹn nhất - SHA-512 and Whirlpool
2. Mật mã khối khóa đối xứng đóng vai trò như một hàm
nén.
Xoáy nước
Whirlpool
1.2 Hai nhóm hàm nén
Two Groups of Compression Functions
1. Chức năng nén được thực hiện từ đầu.
Tóm lược thông điệp Message Digest
(MD)
Có nhiều phiên bản MD như MD2, MD4, MD5 được thiết kế bởi
Ron Rivest. MD5 chia bản tin thành các khối 512 bits để tạo thành
một digest 128 bit.
SHA (secure hash algorithm): chuẩn băm bảo mật được NIST
công bố theo FIP 180. SHA dựa trên cấu trúc MD5 bao gồm có
SHA-1, SHA-224, SHA-256, SHA-384, và SHA-512.
1.2 Continued
Độ dài
Đơn vị xử lý cơ bản
Số bước
Độ dài bản tin tối đa
Hàm logic nguyên thủy
Sự bền bỉ
1.2 Continued
Lược đồ Davies-Meyer:
Lược đồ này dựa trên lược đồ Rabin, có thêm phần XOR dữ liệu
giữa C và P sau mỗi hàm băm → nhằm tăng độ bảo mật cho tấn
công vào quá trình trung gian (tấn công meet-in-the-middle)
Lược đồ Matyas-Meyer-Oseas
Đây là phiên bản kép của Davis-Meyer; các khối bản tin sử dụng
cho khóa mật. Lược đồ này sử dụng tốt nhất khi khóa mật và khối
bản tin cùng kích thước. Khi đó hệ AES được sử dụng là tốt nhất.
SHA-512 là phiên bản của SHA với bản tóm tắt thông báo
512 bit. Phiên bản này, giống như các phiên bản khác trong
họ thuật toán SHA, dựa trên lược đồ Merkle-Damgard.
Message Preparation
SHA-512 insists that the length of the original message be
less than 2128 bits.
SHA-512 khẳng định rằng độ dài của bản tin gốc phải
nhỏ hơn 2128 bit.
Note
SHA-512 creates a 512-bit message digest out of a
message less than 2128.
128
SHA-512 tạo bản tóm tắt tin nhắn 512 bit từ một bản tin nhỏ hơn 2 .
2.1 Continued
Example 1
This example shows that the message length limitation of SHA-512 is
not a serious problem. Suppose we need to send a message that is 2128
bits in length. How long does it take for a communications network with
a data rate of 264 bits per second to send this message?
Ví dụ này cho thấy rằng giới hạn độ dài tin nhắn của SHA-512 không
phải là một vấn đề nghiêm trọng. Giả sử chúng ta cần gửi một tin nhắn
có độ dài 2128 bit. Mất bao lâu để một mạng truyền thông với tốc độ dữ
liệu 264 bit / giây gửi thông điệp này?
Solution
A communications network that can send 264 bits per second is not yet
available. Even if it were, it would take many years to send this
message. This tells us that we do not need to worry about the SHA-512
message length restriction.
1.1 Continued
Example 1
This example shows that the message length limitation of SHA-512
is not a serious problem. Suppose we need to send a message that
is 2128 bits in length. How long does it take for a communications
network with a data rate of 264 bits per second to send this
message?
Ví dụ: giới hạn độ dài tin nhắn của SHA-512 không phải là một
vấn đề nghiêm trọng. Giả sử chúng ta cần gửi một tin nhắn có độ
dài 2128 bits. Mất bao lâu để một mạng truyền thông với tốc độ dữ
liệu 264 bit / giây gửi thông điệp này?
2.1 Continued
Example 2
Hỏi cần bảo nhiêu pages dùng cho bản tin có độ dài 2128 bits
Solution
Suppose that a character is 32, or 26, bits. Each page is less than
2048, or approximately 212, characters. So 2128 bits need at least
2128 / 218, or 2110, pages. This again shows that we need not worry
about the message length restriction.
Giả sử rằng một ký tự là 32, hoặc 26, bit. Mỗi trang ít hơn 2048, hoặc
khoảng 212, ký tự. Vì vậy, 2128 bit cần ít nhất 2128/26+12 hoặc 2110,
trang. Điều này một lần nữa cho thấy rằng chúng ta không cần phải
lo lắng về giới hạn độ dài tin nhắn.
2.1 Continued
Example 3
What is the number of padding bits if the length of the original
message is 2590 bits?
Số bit đệm Padding là bao nhiêu nếu độ dài của bản tin gốc là 2590
bit?
Solution
Chúng ta có thể tính số bit đệm như sau:
Example 4
Do we need padding if the length of the original message is already
a multiple of 1024 bits?
Chúng ta có cần đệm không nếu độ dài của tin nhắn gốc đã là bội
số của 1024 bit?
Solution
Yes we do, because we need to add the length field. So padding is
needed to make the new block a multiple of 1024 bits.
Có, bởi vì chúng ta cần thêm trường độ dài. Vì vậy, cần đệm để
tạo khối mới là bội số của 1024 bits.
2.1 Continued
Example 5
What is the minimum and maximum number of padding bits that
can be added to a message?
Số bit đệm tối thiểu và tối đa có thể được thêm vào bản tin là bao
nhiêu?
Solution
Độ dài tối thiểu của padding là 0 và nó xảy ra khi (−M - 128) mod 1024 bằng 0. Điều này
có nghĩa là | M | = −128 mod 1024 = 896 mod 1024 bit. Nói cách khác, khối cuối cùng
trong thông điệp gốc là 896 bit. Chúng ta thêm trường độ dài 128 bit để làm cho khối
hoàn chỉnh.
2.1 Continued
Example 5 Continued
b) The maximum length of padding is 1023 and it happens when (−|M| −128) =
1023 mod 1024. This means that the length of the original message is |M| =
(−128 −1023) mod 1024 or the length is |M| = 897 mod 1024. In this case, we
cannot just add the length field because the length of the last block exceeds
one bit more than 1024. So we need to add 897 bits to complete this block
and create a second block of 896 bits. Now the length can be added to make
this block complete.
Độ dài tối đa của vùng đệm là 1023 và điều đó xảy ra khi (- | M | −128) = 1023 mod
1024. Điều này có nghĩa là độ dài của thông điệp gốc là | M | = (−128 −1023) mod 1024
hoặc độ dài là | M | = 897 mod 1024. Trong trường hợp này, chúng ta không thể chỉ
thêm trường độ dài vì độ dài của khối cuối cùng vượt quá một bit nhiều hơn 1024. Vì
vậy, chúng ta cần thêm 897 bit để hoàn thành khối này và tạo khối thứ hai gồm 896 bit.
Bây giờ chiều dài có thể được thêm vào để làm cho khối này hoàn chỉnh.
2.1 Continued
Words
Figure 12.8 A message block and the digest as words
Một khối bản tin và thông báo dưới dạng các từ
2.1 Continued
Example 6
Show how W60 is made?
Cho biết W60 được tạo ra như thế nào.
Solution
Each word in the range W16 to W79 is made from four
previously-made words. W60 is made as
Mỗi từ trong phạm vi W16 đến W79 được tạo từ bốn từ đã tạo
trước đó. W60 được làm như
2.1 Continued
Các giá trị khởi tạo trên được tính toán từ 8 số nguyên tố sau :
2, 3, 5, 7, 11, 13, 17, và 19.
Sau đó mũ ½ → chuyển đổi thành nhị phân và chỉ giữ lại 64
bits đầu.
Ví dụ: sqrt(19)=4.35889894354…
→0100.0010 0101 ….
2.2 Compression Function: Chức năng nén
Figure 10 Compression function in SHA-512
Chức năng nén trong SHA-512
2.2 Continued
Figure 11 Structure of each round in SHA-512
2.2 Continued
Majority Function
Conditional Function
Rotate Functions
2.2 Continued
2.2 Continued
Example 7
We apply the Majority function on buffers A, B, and C. If the
leftmost hexadecimal digits of these buffers are 0x7, 0xA, and 0xE,
respectively, what is the leftmost digit of the result?
Solution
The digits in binary are 0111, 1010, and 1110.
a. The first bits are 0, 1, and 1. The majority is 1.
b. The second bits are 1, 0, and 1. The majority is 1.
c. The third bits are 1, 1, and 1. The majority is 1.
d. The fourth bits are 1, 0, and 0. The majority is 0.
Example 8
We apply the Conditional function on E, F, and G buffers. If the
leftmost hexadecimal digits of these buffers are 0x9, 0xA, and 0xF
respectively, what is the leftmost digit of the result?
Solution
The digits in binary are 1001, 1010, and 1111.
a. The first bits are 1, 1, and 1. The result is F1, which is 1.
b. The second bits are 0, 0, and 1. The result is G2, which is 1.
c. The third bits are 0, 1, and 1. The result is G3, which is 1.
d. The fourth bits are 1, 0, and 1. The result is F4, which is 0.
Với bản tóm tắt thông điệp 512 bit, SHA-512 dự kiến có
khả năng chống lại tất cả các cuộc tấn công, bao gồm cả
các cuộc tấn công va chạm.
3 WHIRLPOOL
Chữ Ký Số
Digital Signature
13.1
NỘI DUNG
Chúng ta hãy bắt đầu bằng cách xem xét sự khác biệt
giữa chữ ký thông thường và chữ ký điện tử.
Một chữ ký thông thường được bao gồm trong tài liệu;
nó là một phần của tài liệu. Nhưng khi chúng ta ký một
tài liệu bằng kỹ thuật số, chúng ta gửi chữ ký như một tài
liệu riêng biệt.
1.2 Verification Method
Phương pháp xác thực
For a conventional signature, when the recipient receives a
document, she compares the signature on the document with
the signature on file. For a digital signature, the recipient
receives the message and the signature. The recipient needs
to apply a verification technique to the combination of the
message and the signature to verify the authenticity.
Đối với chữ ký truyền thống, khi người nhận nhận được tài
liệu, cô ấy sẽ so sánh chữ ký trên tài liệu với chữ ký trên hồ
sơ. Đối với chữ ký điện tử, người nhận sẽ nhận được thông
điệp và chữ ký. Người nhận cần áp dụng kỹ thuật xác minh
kết hợp giữa bản tin và chữ ký để xác minh tính xác thực.
13.5
1.3 Relationship: Mối quan hệ
13.6
1.4 Duplicity: Sự trùng lặp
13.7
2 PROCESS: QUÁ TRÌNH
Hình 1 cho thấy quy trình chữ ký điện tử. Người gửi sử dụng một
thuật toán ký để ký vào bản tin. Tin nhắn và chữ ký được gửi đến
người nhận. Người nhận nhận được thông điệp và chữ ký và áp
dụng thuật toán xác thực cho sự kết hợp. Nếu kết quả là true, thông
báo được chấp nhận; nếu không, nó bị từ chối.
13.9
2.1 Need for Keys: Cần có các khóa
Một chữ ký điện tử cần một hệ thống khóa công khai. Người ký
bằng khóa riêng của cô ấy; người xác minh xác minh bằng khóa
Note công khai của người ký.
Một chữ ký điện tử cần một hệ thống khóa công khai. Người ký gửi
bằng khóa riêng của cô ấy; người xác minh xác minh bằng khóa công
khai của người ký.
Note
A cryptosystem uses the private and public keys of
the receiver: a digital signature uses
the private and public keys of the sender.
Chúng ta cần phân biệt khóa bí mật và công khai trong chữ ký số so với
khóa công khai và bí mật trong hệ thống mật mã bất đối xứng.
+ Đối với hệ mật bất đối xứng, khóa bí mật và công khai sinh bởi bên
người nhận, khóa công khai được sử dụng cho phép mã hóa, khóa bí
mật được sử dụng để giải mã hóa.
+ Trong chữ ký số, khóa bí mật và công khai do bên người gửi sử dụng,
bên gửi sử dụng khóa bí mật, bên nhận sử dụng khóa công khai của bên
gửi.
13.11
2.2 Signing the Digest: Ký thông báo
Figure 3 Signing the digest: Ký thông báo
Trong hệ thống chữ ký số, các bản tin thường dài, nên giải pháp
đưa ra là ký bản tin Digest (có độ dài cố định, ngắn hơn bản tin
gốc rất nhiều) của nó. Khi đó cần chú ý việc chọn Digest phải có
quan hệ 1-1 với bản tin gốc.
13.12
3 SERVICES: Các dịch vụ
13.13
3 SERVICES: Các dịch vụ
13.14
3.1 Message Authentication
Xác thực bản tin
Note
A digital signature provides message
authentication.
Chữ ký điện tử cung cấp xác thực bản tin.
13.15
3.2 Message Integrity: Toàn vẹn bản tin
Note
13.16
3.3 Nonrepudiation: Không bác bỏ
Figure 4 Using a trusted center for nonrepudiation
Sử dụng một trung tâm đáng tin cậy để không từ chối
Note
Chữ ký điện tử không cung cấp quyền riêng tư. Nếu có nhu cầu về
Note quyền riêng tư, một lớp mã hóa / giải mã khác phải được áp dụng.
13.19
4.1 Attack Types: Các loại tấn công
13.20
4.2 Forgery Types: Các loại giả mạo
13.21
5 DIGITAL SIGNATURE SCHEMES
+ Sơ đồ chữ ký số RSA thay đổi vai trò của các khóa bí mật và công khai: các
khóa bí mật và công khai sử dụng làcủa bên gửi (không phải bên nhận); bên gửi
sử dụng khó bí mật để ký, bên nhận sử dụng khóa công khai của bên gửi để xác
thực.
+ Khóa bí mật đóng vai trò chữ ký của bên gửi, khóa công khai của bên gửi đóng
vai trò bản sao của chữ ký. Hàm f(…) dùng chung cho signing và verifying
13.23
5.1 Continued
Key Generation: Tạo khóa
Key generation in the RSA digital signature scheme is
exactly the same as key generation in the RSA
Note
In the RSA digital signature scheme, d is private;
e and n are public.
13.24
5.1 Continued
Chọn hai số nguyên tố p, q, tính n=p×q,
Signing and Verifying Ф(n)=(p-1)(q-1), chọn e, tính d thõa mãn
Ký và Xác minh e ×d=1modФ(n)
13.25
5.1 Continued
Example 1
As a trivial example, suppose that Alice chooses p = 823 and q =
953, and calculates n = 784319. The value of f(n) is 782544. Now
she chooses e = 313 and calculates d = 160009. At this point key
generation is complete. Now imagine that Alice wants to send a
message with the value of M = 19070 to Bob. She uses her private
exponent, 160009, to sign the message:
Alice sends the message and the signature to Bob. Bob receives the
message and the signature. He calculates
13.26
5.1 Continued
Example 1
Ví dụ đơn giản, giả sử Alice chọn p = 823 và q = 953, và tính n =
784319. Giá trị của f(n) là 782544. Bây giờ cô ấy chọn e = 313 và
tính d = 160009. Tại thời điểm này, sinh khóa hoàn tất. Bây giờ,
hãy tưởng tượng rằng Alice muốn gửi một tin nhắn có giá trị M =
19070 cho Bob. Cô ấy sử dụng số mũ riêng của mình, 160009, để
ký tin nhắn:
Alice gửi tin nhắn và chữ ký cho Bob. Bob nhận được tin nhắn và
chữ ký và tính toán
Bob chấp nhận tin nhắn vì Bob đã xác minh chữ ký của Alice.
13.27
5.1 Continued
13.28
5.1 Continued
Note
When the digest is signed instead of the message
itself, the susceptibility of the RSA digital signature
scheme depends on the strength of the hash
algorithm.
13.29
5.2 ElGamal Digital Signature Scheme
Lược đồ chữ ký số ElGamal
13.30
5.2 Continued
Note
In ElGamal digital signature scheme, (e1, e2, p) is
Alice’s public key; d is her private key.
13.31
5.2 Continued
13.32
5.1 Continued
Example 2
Here is a trivial example. Alice chooses p = 3119, e1 = 2, d = 127
and calculates e2 = 2127 mod 3119 = 1702. She also chooses r to be
307. She announces e1, e2, and p publicly; she keeps d secret. The
following shows how Alice can sign a message.
Alice sends M, S1, and S2 to Bob. Bob uses the public key to
calculate V1 and V2.
13.33
5.1 Continued
Example 2
Đây là một ví dụ nhỏ. Alice chọn p = 3119, e1 = 2, d = 127 và tính
e2 =2127 mod 3119 = 1702. Cô ấy cũng chọn r là 307. Cô ấy công bố
e1, e2 và p; cô ấy giữ bí mật d. Sau đây là cách Alice có thể ký một
tin nhắn.
13.34
5.1 Continued
Example 13.3
Now imagine that Alice wants to send another message, M = 3000,
to Ted. She chooses a new r, 107. Alice sends M, S1, and S2 to Ted.
Ted uses the public keys to calculate V1 and V2.
Bây giờ, hãy tưởng tượng rằng Alice muốn gửi một tin nhắn khác,
M = 3000, cho Ted. Cô ấy chọn một r mới, 107. Alice gửi M, S1 và
S2 cho Ted. Ted sử dụng các khóa công khai để tính V1 và V2.
13.35
5.3 Schnorr Digital Signature Scheme
Sơ đồ chữ ký số Schnorr
Figure 11 General idea behind the Schnorr digital signature scheme
Ý tưởng chung
13.36
5.3 Continued
Note
In the Schnorr digital signature scheme, Alice’s
public key is (e1, e2, p, q); her private key (d).
13.37
5.3 Continued
13.39
5.3 Continued
Signing
1. Alice chooses a random number r.
2. Alice calculates S1 = h(M|e1r mod p).
3. Alice calculates S2 = r + d × S1 mod q.
4. Alice sends M, S1, and S2.
Verifying Message
13.40
5.1 Continued
Example 4
Here is a trivial example. Suppose we choose q = 103 and p = 2267.
Note that p = 22 × q + 1. We choose e0 = 2, which is a primitive in
Z2267*. Then (p −1) / q = 22, so we have e1 = 222 mod 2267 = 354.
We choose d = 30, so e2 = 35430 mod 2267 = 1206. Alice’s private
key is now (d); her public key is (e1, e2, p, q).
Alice wants to send a message M. She chooses r = 11 and
calculates e2 r = 35411 = 630 mod 2267. Assume that the message is
1000 and concatenation means 1000630. Also assume that the hash
of this value gives the digest h(1000630) = 200. This means S1 =
200. Alice calculates S2 = r + d × S1 mod q = 11 + 1026 × 200 mod
103 = 35. Alice sends the message M =1000, S1 = 200, and S2 = 35.
The verification is left as an exercise.
13.41
5.4 Digital Signature Standard (DSS)
Chuẩn Chữ Ký Số
Figure 13 General idea behind DSS scheme
Chuẩn này được đưa ra bởi NIST năm 1994, DSS sử dụng thuật
toán chữ ký số DSA dựa trên lược đồ ElGamal cùng với ý tưởng
của lược đồ Schnorr.
13.42
5.4 Continued
5) Alice’s public key is (e1, e2, p, q); her private key is (d).
13.43
5.4 Continued
Verifying and Signing
13.44
5.1 Continued
Example 5
Alice chooses q = 101 and p = 8081. Alice selects e0 = 3 and
calculates e1 = e0 (p−1)/q mod p = 6968. Alice chooses d = 61 as the
private key and calculates e2 = e1d mod p = 2038. Now Alice can
send a message to Bob. Assume that h(M) = 5000 and Alice
chooses r = 61:
Alice sends M, S1, and S2 to Bob. Bob uses the public keys to
calculate V.
13.45
5.4 Continued
13.46
5.5 Elliptic Curve Digital Signature Scheme
13.47
5.5 Continued
Key Generation
Key generation follows these steps:
13.49
6 VARIATIONS AND APPLICATIONS
13.50
6.1 Variations
9.1
9-4 Continued
Example
The solution to this set of equations is given in the next section; for
the moment, note that the answer to this set of equations is x = 23.
This value satisfies all equations: 23 ≡ 2 (mod 3), 23 ≡ 3 (mod 5),
and 23 ≡ 2 (mod 7).
9.2
9-4 Continued
9.3
9-4 Continued
Example
Solution
We follow the four steps.
1. M = 3 × 5 × 7 = 105