Tất cả tài liệu: https://drive.google.com/drive/folders/1nBWniC3Q5ulu5cJZO2HIEufUtcEUC6k1?usp=sharing
Trang 1CÂU HỎI
Mục lục
1 Quy trình mã hóa giải thuật RC6, sơ đồ minh họa 3
1.1 Đọc hiểu về RC6 3
1.2 Quy trình mã hóa 4
2 PKCS (Public Key Cryptography Standards) 5
2.1 Giới thiệu 5
2.2 Đặc điểm 5
2.3 Một số chuẩn PKCS 6
3 Phép cộng trên đường cong Eliptic 6
3.1 Khía cạnh hình học 7
3.2 Khía cạnh đại số: 7
3.3 Ví dụ: 8
4 Quy trình mã hóa của giải thuật mã hóa Rabin trong trường hợp p và q đồng dư 3 mod 4 8
4.1 Đọc hiểu về Rabin 8
4.2 Quy trình mã hóa của giải thuật: 8
4.2 Giải mã đối với trường hợp p,q đồng dư 3mod4 9
4.3 Ví dụ: 10
a Tạo khóa: 10
b Mã hóa: B thực hiện 10
c Giải mã: 10
5 Giải mã RC6 10
6 Phép nhân trên đường cong Eliptic 12
6.1 Về khía cạnh hình học 12
6.2 Về khía cạnh đại số 13
7 Khái niệm Tấn công lựa chọn bản mã thích nghi CCA2 Ví dụ minh họa 13
a Khái niệm 13
b Ví dụ minh họa 13
Trang 28 Quy trình mã hóa và giải mã của giải thuật Elgamal Ví dụ minh họa cho quá
trình mã hóa và giải mã 15
1 Mã hóa: 15
2 Giải mã: 15
3 Ví dụ: 16
a Mã hóa 16
b Giải mã 16
9 Hàm g trong giải thuật mã hóa Towfish Vẽ sơ đồ hàm g 16
10 Phân tích yêu cầu trong quá trình sinh khóa của giải thuật Rabin 17
11 Khái niệm thám mã nội suy Ưu nhược điểm 18
12 Quy trình trao đổi khóa Omura – Massay Ví dụ minh họa 18
12.1 Ý tưởng 18
12.2 Quy trình: 18
13 Quy trình mã hóa của giải thuật mã hóa IDEA? vẽ sơ đồ minh họa quá trình mã hóa của giải thuật mã hóa IDEA? 19
14 Phân tích về các yêu cầu trong quá trình sinh khóa của giải thuật mã hóa Elgamal 21
15 Định nghĩa thám mã tuyến tính? ưu điểm và nhược điểm của kỹ thuật thám mã tuyến tính? 21
16 Quy trình trao đổi thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic? lấy ví dụ minh họa? 21
16.1 Ý tưởng 21
16.2 Quy trình trao đổi khóa 21
Trang 3 RC6 có kích thước mã hóa khối 128bit, hỗ trợ kích thước khóa 16x8
(128bit), 24x8 (192bit), 32x8 (256bit).
Thuật toán RC6 được xác định = các tham số w/r/b:
o w là kích thước từ (bit) Đầu vào chia làm 4 từ: 128bit/4 =32bit,
o r là số chu kỳ (vòng) mã hóa (r=20).
o b là chiều dài khóa (byte) từ 0 -255 byte.
RC6 sử dụng 6 phép toán cơ bản và Logarit cơ số 2 của w Kí hiệu lgw.
o a + b modulo 2^w.
o a – b modulo 2^w.
o a ⊕ b phép XOR.
o a x b nhân modulo 2^w.
o a<<<b quay chu kỳ tròn bên trái b bit.
o a>>>b quay chu kì tròn bên phải b bit.
Trang 41.2 Quy trình mã hóa.
Mã hóa với RC6-w / r / b
Input: Bản rõ được lưu trữ trong bốn thanh ghi đầu vào w-bit A, B, C & D
o r là số lượng vòng = 20
o w-bit round keys K[0, , 2r + 3] K[0,…,43].
Kết quả: Mật mã được lưu trữ trong A, B, C, D //
Quy trình mã hóa Gồm 3 bước :
1 Bước 1:
//- Chia đầu vào thành 4 từ A,B,C,D.
//- B + khóa K[0], D + khóa K[1] Và modulo 2^w (w=32).
Trang 5 PKCS: Chuẩn mã hóa khóa công khai.
Dựa vào các cấu trúc ASN.1(Abstract Syntax Notation One): Là một bộ các
tiêu chuẩn và ký hiệu miêu tả các quy tắc và cấu trúc cho biểu diễn, mã hóa, truyền đi và giải mã
Là một tập hợp các giao thức chuẩn xen kẽ để thực hiện trao đổi thông tin
an toàn trên Internet dựa trên ơ sở hạ tầng khóa công khai PKI
o PKI (Public key Infarstructure): hỗ trợ phân phối thu hồi và xác minh các public key.
o PKI được sử dụng mã hóa public key và cho phép liên kết với chứng chỉ public key Nếu không có PKI, dữ liệu nhạy cảm vẫn được mã hóa nhưng không có sự bảo đảm về danh tính của các bên trao đổi thông
Trang 6o Mã hóa RSA: Thuật toán mã hóa khóa công khai: Nhờ vào độ khó về
xử lý 2 số nguyên tố lớn p,q trên trường logarit rời rạc và tính toán modulo
o Mã hóa dựa trên mật khẩu.
o Cú pháp chứng chỉ mở rộng và cú pháp tin nhắn mật mã cho S/MIME
o Tiêu chuẩn đề xuất của RSA về an toàn email.
o Dùng để xác định API độc lập nền tảng với mã thông báo mã hóa ,
chẳng hạn như mô-đun bảo mật phần cứng (HSM) và thẻ thông minh
và đặt tên cho API là "Cryptoki" (từ "giao diện mã hóa mã hóa" và được phát âm là "khóa mã hóa"
o Nhưng "PKCS # 11" thường được sử dụng để chỉ API cũng như tiêu chuẩn xác định nó).
Trong chuẩn PKCS#1 phiên bản 1.5, trước khi mã hóa, thông điệp M được đệm thông báo vào trước nó thành m = PKCS(M) = 00 02 R1 R2 … Rs 00 M
o Trong đó:
k là số byte của n
byte đầu tiên có giá trị 0, byte thứ hai có giá trị 2
Ri là các byte ngẫu nhiên khác 0
(s = k – 3)- số byte của data và s ≥ 8 để đáp ứng yêu cầu về an
toàn
byte ngay sau Rs cũng có giá trị 0 - Cuối cùng là thông điệp M
=>Khi đó bản mã được tính là C = m^e mod N
3 Phép cộng trên đường cong Eliptic.
Cần nhớ dạng đường cong trên Galois:
Eliptic trên trường Zp (p nguyên tố) :
Trang 7o Ví dụ trong trường Z, chọn a= 1, b= 1, x = 9, y = 7, p = 23 có: 7^2 mod
23 = ( 9^3 + 9 + 1) mod 23 => 49 mod 23 = 739 mod 23 => 3
Eliptic trên trường GF(2^m):
mật ứng dụng E.
R = P+Q (P≠O, Q≠O, P≠Q), nối P và Q bằng đường thẳng L Đường thẳng
L cắt đường E tại ba điểm P, Q và –R(x, y) Điểm R(x, – y) sẽ có tung độ là
giá trị đối của y
3.2 Khía cạnh đại số:
Xác định các điểm R(xR,yR), P(xP,yP) + Q(xQ,yQ) | P ≠ O, Q ≠ O, P ≠ Q
Tính xR, yR thông qua giá trị delta:
Trang 8Điểm nào cộng với điểm vô cùng O cũng sẽ ra chính nó.
4 Quy trình mã hóa của giải thuật mã hóa Rabin trong trường hợp p và q đồng dư 3 mod 4.
4.1 Đọc hiểu về Rabin
Sơ đồ hệ mật mã hóa công khai Rabin được cho bởi:S= (P,C,K,E,D):
o P = C = Zn; n là số nguyên Blum, n =p.q (p,q là 2 số nto và đồng dư
4.2 Quy trình mã hóa của giải thuật:
Cần tạo khóa trước khi mã hóa:
o Mỗi người tham gia chọn các yếu tố n,B,p,q để lập nên khóa công khai K’ và khóa bí mật K’’
o Bên A tạo khóa như sau:
Tạo 2 số p, q ngẫu nhiên là 2 số nguyên tố lớn; p gần bằng q
Tính n = p.q
Khóa công khai của A là n khóa bí mật của A là (p,q)
Trang 9*Việc chọn p và q là bật kỳ tuy nhiên chúng ta có thể chọn p,q đồng dư 3 mod4 để
dễ tính toán
Mã hóa: B là người mã hóa
1 Nhận khóa công khai n đã được xác thực từ A.
2 Giả sử thông điệp là 1 số nguyên m trong khoảng [0,1,…n-1].
3 Tính c = m^2 mod n.
4 Gửi bản mã hóa c cho A
4.2 Giải mã đối với trường hợp p,q đồng dư 3mod4.
1 Dùng thuật toán Euclide mở rộng tìm 2 số nguyên a và b thoả mãn: ap + bq = 1
Tính: x= (aps +bqr) mod n = (-5*11*4 + 8*7*1) mod 77 = 67
Tính y = (aps – bqr) mod n = )-5*11*4 – 8*7*1) mod 77 = 32
o Tính M1= 67, M2 = 10, M3= 32, M4 = 45
Trang 10 Nếu giá trị m được chọn chưa đủ 16bit, cần thêm số bit vào bằng cách lấy các
bit cuối cùng của chính số m và thêm vào cho đủ
4 Tính x = (asp +bqr) mod n = (6052060-6672816) mod 102941 =-25674.
5 Tính y=(aps-bqs) mod n= [(140*331*139)-(-149*311*139)] mod
5 Giải mã RC6
Giải mã RC6-w / r / b Ngược lại với quy trình mã hóa RC6
Input: Bản mã được lưu trữ trong bốn thanh ghi đầu vào w-bit A, B, C & D
o r là số lượng vòng = 20
Trang 11o w-bit round keys K[0, , 2r + 3] K[0,…,43].
Kết quả: bản rõ được lưu trữ trong A, B, C, D //
Quy trình giải mã Gồm 3 bước :
Trang 136.2 Về khía cạnh đại số.
Xác định điểm R(xR,yR) = P+P = 2P (do P
trùng nên không áp dụng được phép cộng vì
không xác định được Delta:
Là một cuộc tấn công bản rõ chọn trước (kẻ tấn công có khả năng chọn bản
mã Ci và các bộ giải mã tương ứng của Ci là Pi), trong đó kẻ tấn công có khả năng lựa chọn đầu vào của hắn cho các chức năng giải mã dựa trên bản
mã được chọn trước đó
Không cần phải biết khóa bí mật mà vẫn giải mã được các thông điệp dựa vào việc khai thác các kết quả trả về của hàm tiên tri (Oracle Functions) – một phần mềm dùng để kiểm tra xem bản rõ có tuân theo PKCS #1 v1.5 hay không-> kết quả trả về là True/False.)
b Ví dụ minh họa.
Kịch bản: Kẻ tấn công muốn tìm bản rõ M từ bản mã C = M^e mod n (Bản rõ
M không nhất thiết phải tuân theo chuẩn PKCS.Nhưng cần đưa M về chuẩn PKCS để tính toán đạt hiệu quả cao).
Các bước tiến hành:
o B1: Dùng hàm tiên tri kiểm tra xem C có theo chuẩn PKCS không
Trang 14 True: => m =M.
False: lựa chọn 1 bản rõ m tuân theo PKCS sao cho từ m tính được M
o B2: Tìm m thuộc miền xác định:
M0 là miền giá trị chứa m, B = 2^[8*(K-2)].
k là độ dài module của n tính theo byte.
o B3: thu hẹp miền giá trị chưa m:
Chọn số Si ngẫu nhiên sao cho m*Si tuân theo PKCS.
Si tăng thì miền giá trị của m sẽ thu hẹp.
Dùng công thức:
Kết quả cuối cùng:
*Cách thức tiến hành thám mã dài và khó nhớ nên thôi khỏi học Đọc thêm để biết thôi:
Gọi C là bản mã mà kẻ tấn công thu được Gọi hàm ktra_PKCS(a) là hàm
kiểm tra xem bản rõ b của bản mã a có tuân theo PKCS không.
Kết quả hàm ktra_PKCS (a) là hàm do hàm tiên tri gửi về
����_���� (�) = 0 hoặc 1 b không tuân theo / b tuân theo PKCS
a là bản mã, b là bản rõ của a
gọi Mi là miền giá trị chưa m (i>=0;i thuộc Z)
Trang 158 Quy trình mã hóa và giải mã của giải thuật Elgamal Ví dụ minh họa cho quá trình mã hóa và giải mã.
mã mà người gửi sẽ gửi đi cho người nhận qua kênh công cộng
2 Giải mã:
Người nhân sau khi nhân được cặp bản mã C =(C1,C2) sẽ thực hiênj giải mã:
Trang 16o Tính Z = (C1)^d = (e1^r)^d = e1^(r*d) mod p.
o Giải mã theo bản mã P:=
nhận sẽ nhận đc thông điệp ban đầu
3 Ví dụ:
Chọn p= 2579; e1= 2; khóa bí mật d=765; chọn r ngẫu nhiên = 853 Tìm khóa của hệ
mã trên
a Mã hóa
1 tính e2 = e1^d mod p = 2^756 mod 2579 = 949.
2 để mã hóa thông điệp P(là số nto lớn) =1299 ta tính theo r = 853:
C1 = e1^r mod p = 2^853 mod 2579 = 435.
C2 = (P*e2^r) mod p = [1299*(949^853)] mod 2579 = 2396.
Vậy bản mã gửi đi sẽ là C= (C1,C2) = (435,2396).
Trang 179 Hàm g trong giải thuật mã hóa Towfish Vẽ sơ đồ hàm g.
Hàm g nhận tham số input và output đề là khối 32bit
o Vecter thu được sau nhân là 32bit chính là kết quả hàm g
Các thành phần chính trong hàm g như sau:
o Ma trận MDS có dạng:
Phần tử trong MDS viết dưới dạng byte HEX
o Các hàm S-box thực hiện biến đổi:
Phép hoán vị q gồm q0 và q1
Phép XOR
Sau mỗi lần biến đổi(hoán vị, ) q0,q1 các byte của 4 S-box lại được XOR với các khóa phụ Si (từ 0-i) (tương ứng với
Trang 1810 Phân tích yêu cầu trong quá trình sinh khóa của giải thuật Rabin.
Các yêu cầu trong quá trình sinh khóa của giải thuật Rabin
o Chọn 2 số nguyên tố p,q thỏa mãn |p| ~=|q|
=> Việc lựa chọn naỳ có thể bất kỳ tuy nhiên để thuận tiện cho quá trình
giải mã nên chọn p,q thỏa mãn p~=q đồng dư 3mod4.Ở đây dễ cho việc tính C^[(p+1)/4].
Phương pháp xây dựng một đa thức biểu diễn mối quan hệ giữa bản rõ và bản
mã (xây dựng đa thức từ bản rõ và bản mã) Nếu cả bộ mã được biểu diễn bởi một
đa thức có bậc nhỏ thì hệ số của đa thức có thể tìm thấy từ các cặp bản mã/bản rõ sử dụng phương pháp nội suy Lagrange
Đơn giản về mặt ý tưởng, dễ trong
khâu lập trình
Phải tính toán lại từ đầu nếu thêmmốc nội suy (một số cặp bản rõ/bản mã)
Sử dụng độ phức tạp tính toán của
đa thức có bậc nhỏ dễ trong việc dự
đoán đặc biệt là thông qua Meet in
the middle
Trong trường hợp một số cặp bản
mã bản rõ chưa được tìm thấy, việc tính toán dự trên nội suy gặp nhiều khó khăn do các điểm trên
đa thức không đầy đủ -> việc xây dựng đa thức nội suy từ các cặp bản rõ/bản mã không hiệu quả
Thông qua các cặp bản mã bản rõ
sử dụng đa thức nội suy attacker có
thể biểu diễn được tập hợp các điểm
thu hẹp không gian bản mã/bản rõ
-> rút ngắn thời gian thám mã
Trang 1912.Quy trình trao đổi khóa Omura – Massay Ví dụ minh họa.
12.1 Ý tưởng
Alice muốn gửi tin nhắn cho Bob, nhưng tất cả những gì cô có là một chiếc hộp
và một chiếc khóa mà cô có chìa khóa duy nhất
12.2 Quy trình:
Trước khi thực hiện trao đổi khóa, A và B cần chọn trước nhóm Ep(a,b) làm khóa công khai
o Ep là đường cong trên trường Fp(p là số nto)
o Ep có dạng y^2 mod p = x^3 + ax + b mod p.
Chọn khóa bí mật:
o A chọn ngẫu nhiên 2 số m,n làm khóa bí mật: m+n=#Ep(a,b)
o B chọn ngẫu nhiên 2 số u,v làm khóa bí mật: u+v = #Ep(a,b)
o N= #Ep(a,b) thỏa mãn |N – (p+1)| <= 2√p |N| <= (p+1) + 2√p
Quy trình trao đổi:
o Giả sử đường cong Ep(a,b) là E13(1,4), chọn điểm nguyên thủy là P(2,1)
o Aice sử dụng khóa bí mật m của M để khóa khóa chung M (M do Alice chọn)
Trang 2013.Quy trình mã hóa của giải thuật mã hóa IDEA? vẽ sơ đồ minh họa quá trình mã hóa của giải thuật mã hóa IDEA?
⊙ nhân module 2^16 (65536)
⊞ cộng module 2^16 (65536)
⊕ phép XOR theo bit
1 Nhân module X1 với K1 X1 ⊙ K1
2 Cộng module X2 với K2 X2 ⊞ K2
3 Cộng module X3 với K3 X3 ⊞ K3
4 Nhân module X4 với K4 X4 ⊙ K4
5 XOR kq bước 1 với 3 X1 (X1 ⊙ K1) ⊕ (X3 ⊞ K3)
6 XOR kq bước 2 với 4 (X2 ⊞ K2)⊕( X4 ⊙ K4)
7 Nhân module kq bước 5
9 Nhân module kết quả
bước 8 với khóa K6
[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞ {[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6
10 Cộng module kq bước 7
với bước 9
{[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊞
{[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞ {[(X1 ⊙ K1) ⊕ (X3 ⊞ K3)] ⊙ K5}⊙ K6}
11 XOR kq bước1 với 9 (X1 ⊙ K1) ⊕ {[(X2 ⊞ K2)⊕( X4 ⊙ K4)] ⊞
⊙ K5}⊙ K6}
} Cột này không cần viết vào bài làm đâu Tôi viết vào bản worrd này cho ngầu thôi.
Trang 21 Giải thuật IDEA với đầu vào là khối X 64 bit được chia thành 4 khối
X1,X2,X3,X4; mỗi khối Xi 16bit
Trải qua 2 quá trình chính:
o 8 vòng đầu được xử lý và tất cả các khóa con được nhận từ K (K1-K6)
Kết quả của vòng r là đầu vào của vòng r+1 và lặp lại đến hết vòng thứ 8
Kết quả xử lý sau khi chạy 8 vòng đầu là input của các khối Y1,Y2,Y3,Y4 để xử lý vòng cuối cùng (vòng 9)
o Kết quả sau vòng 9 là cụm mã 4 khối Y={Y1,Y2,Y3,Y4} 64(bit) chính
là bản mã ta cần
Trang 2214.Phân tích về các yêu cầu trong quá trình sinh khóa của giải thuật mã hóa Elgamal.
Trước khi tiến hành mã hóa, người nhận sẽ thực hiện công việc sinh khóa để phục vụ cho quá trình giải mã của mình
o Chọn số nguyên tố p đủ lớn (>=1024 bit)
Số bit càng lớn (hơn 1024bit) tránh bị tấn công dự đoán thông qua phép toán modulo
o Chọn ngẫy nhiên e1; sao cho e1 thuộcZ(p)* là phần tử nguyên thủy
Phần tử này phải là số nguyên tố dương Vì độ an toàn của Elgamal phần lớn phụ thuộc vào độ khó của việc tính toán số nguyên tố kết hợp với modulo
o Chọn d sao cho 1<d<p-1
d nằm trong khoảng (1,p-1) vừa đảm bảo đủ an toàn và không quá khó cho việc tạo khóa e2 Và nếu d >= 1-p thì phép tính mod
p sẽ gây tác dụng ngược
o Tìm e2 sao cho e2 =e1^d mod p
Kết luận: Như vậy khóa công khai sẽ là (e2; e1; p); khóa bí mật sẽ là d Ngườinhận sẽ công khai tham số (e2; e1; p)
15 Định nghĩa thám mã tuyến tính? ưu điểm và nhược điểm của kỹ thuật thám mã tuyến tính?
o Biểu thức xấp xỉ tuyến tính gồm các bit bản rõ, bit bản mã, bit khóa
Áp dụng các biểu thức các
phép toán xấp xỉ, lân cận tuyến tính -> dễ tính toán và thực hiện
Tấn công được Hệ mật Des
dựa vào điểm yếu của S-box
Thám mã tuyến tính không khả thi trong thực tế
Phụ thuộc vào điểm yếu của S-box(tính phi tuyến để đưa
về tuyến tính) cần nhiều bản
rõ để tấn công
Trang 23 Hiệu quả hơn và tiết kiệm
thời gian tấn công Vét cạn rất nhiều
Mất thời gian trong khâu tìm điểm yếu và thu thập các bản
rõ cần thiết trước thi thực hiệnthám mã
16.Quy trình trao đổi thỏa thuận khóa Diffie – Hellman trên đường cong Elliptic? lấy ví dụ minh họa?
16.1 Ý tưởng
Ý tưởng bái toán liên quan đến việc kết hợp màu
o Mỗi bên chọn ra một màu chung(khóa chung) Và một màu riêng (khóa riêng)
o Alice trộn màu chung với màu riêng của mình: vàng + đỏ = cam
o Bob trộn màu chung với màu riêng của anh ta: vàng + lục = xanh
dương
o Alice và Bob trao đổi màu sau khi trộn lần 1 cho nhau
A trộn màu mà Bob gửi với màu riêng của mình: vàng + lục + đỏ
16.2 Quy trình trao đổi khóa.
Chọn Ep(1,4) với điểm nguyên thủy P(2,1) làm ví dụ
Alice chọn khóa bí mật x thỏa mãn 1<x<#Ep(a,b) và “trộn” với khóa công
khai P(2,1) rồi gửi cho Bob
o Ví dụ x = 3
o xP = 3P => Bob nhận đc 3P
Bob chọn khóa bí mật y thỏa mãn 1<y<#Ep(a,b) và “trộn” với khóa công
khai P(2,1) Rồi gửi cho Alice