Tải bản đầy đủ (.pdf) (15 trang)

20 câu hỏi lí thuyết ôn tập mật mã học và ứng dụng PTIT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (839.69 KB, 15 trang )

1. Mã hoá dòng
- Định nghĩa: Cho K là một không gian khóa của một hệ mã và k1k2    K
là một dòng khóa. Hệ mã này gọi là mã dòng nếu việc mã hóa trên chuỗi bản rõ
m1m2    bằng cách áp dụng lặp đi lặp lại của phép mã hóa trên những đơn vị thông
điệp bản rõ.
- Mã dòng có các đặc tính sau:
+ Kích thước một đơn vị mã hóa: gồm k bít. Bản rõ được chia thành các
đơn vị mã hóa: P → p0p1p2...pn-1 (pi: k bit)
+ Một bộ sinh dãy số ngẫu nhiên: dùng một khóa K ban đầu để sinh ra các
số ngẫu nhiên có kích thước bằng kích thước đơn vị mã hóa:
StreamCipher(K) → S = s0s1s2...sn-1 (si: k bit)
+ Mỗi số ngẫu nhiên được XOR với đơn vị mã hóa của bản rõ để có được
bản mã.
c0 = p0  s0, c1 = p1  s1...; C = c0c1c2...cn-1
- Ứng dụng của mã hoá dòng trong thực tế:
+ Dùng trong mạng GSM để bảo mật dữ liệu trong quá trình liên lạc giữa
máy điện thoại và trạm thu phát sóng vô tuyến.
+ Ứng dụng trong WEP, WPA, cung cấp bảo mật cho dữ liệu trên mạng
không dây.
2. AES: Cơ sở toán học, các bước xử lí
Cơ sở toán học
của AES: trong AES các phép toán cộng và nhân được thực hiện trên các byte
trong trường hữu hạn GF(28)
Phép cộng:
A = (a1 a2 a3 a4 a5 a6 a7 a8); B = (b1 b2 b3 b4 b5 b6 b7 b8)
C = A + B = (c1 c2 c3 c4 c5 c6 c7 c8),
trong đó: Ci = ai+bi mod 2,
1 ≤ i ≤ 8.
Phép nhân: Phép nhân được thực hiện trên GF(28) bằng cách nhân hai đa thức
rút gọn theo mođulo của một đa thức bất khả quy m(x) = x8 + x4 + x3 + x +1.
Các bước xử lí chính:


 SubBytes: thay thế phi tuyến tính, trong đó mỗi byte trong state được thay
thế bằng một byte khác sử dụng bảng tham chiếu;
 ShiftRows: bước đổi chỗ, trong đó mỗi dòng trong state được dịch một số
bước theo chu kỳ;
 MixColumns: trộn các cột trong state, kết hợp 4 bytes trong mỗi cột.
 AddRoundKey.
- Bước SubBytes: Mỗi byte trong ma trận state được thay thế bởi 1 byte trong
Rijndael S-box, hay bij = S(aij)

1


- Bước ShiftRows: Các dòng của ma trận state được dịch theo chu kỳ sang trái,
Dòng thứ nhất giữ nguyên.

- Bước MixColumns: Mỗi cột của ma trận state được nhân với một đa thức c(x)

- Bước AddRoundKey: Mỗi byte của ma trận state được kết hợp với một byte
của khóa phụ sử dụng phép  (XOR).

2


3. Hàm băm
- Định nghĩa: là các thuật toán không sử dụng khóa để mã hóa , nhiệm vụ “lọc”
(băm) thông điệp được đưa vào theo thuật toán h một chiều nào đó, rồi đưa ra
một bản băm -có kích thước cố định. Do đó người nhận không biết được nội dung
hay độ dài ban đầu của thông điệp đã được băm bằng hàm băm.
Giá trị của hàm băm là duy nhất, và không thể suy ngược lại được nội dung
thông điệp từ giá trị băm này.

- Hàm băm không khóa
+ ĐN 1:Mật mã khối (n, r) là một mã khối xác định một hàm khả nghịch từ các
bản rõ n bit sang các bản mã n bit bằng cách sử dụng một khoá r bit. . Nếu E là
một phép mã hoá như vậy thì Ek(x) ký hiệu cho phép mã hoá x bằng khoá k.

+ ĐN 2: Cho h là một hàm băm có lặp được xây dựng từ một mật mã khối với
hàm nén  thực hiện s phép mã hoá khối để xử lý từng khối bản tin n bit. Khi đó
tốc độ của h là 1/s.
- Hàm băm có khóa: là các hàm băm được sử dụng để xác thực thông báo và
thường được gọi là các thuật toán tạo mã xác thực thông báo (MAC).
- Đặc trưng:
 Plaintext x thu được bản băm z = h(x) là duy nhất.
 khó tìm được 2 thông điệp trùng giá trị băm.
 Dễ dàng tính giá trị băm, nhưng khôi phục thông điệp từ giá trị băm rất khó
khăn.
- Tính chất:
 Tính không va chạm yếu: cho trước một bức điện x, không thể tiến hành
về mặt tính toán để tìm ra một bức điện x’  x mà h(x’) = h(x).
 Tính không va chạm mạnh: không có khả năng tính toán để tìm ra hai bức
thông điệp x và x’ mà x  x’ và h(x) = h(x’)
 Tính một chiều: cho trước một bản tóm lược thông báo z, không thể thực
hiện về mặt tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z .
4. Hoạt động của Kerberos
AS = (authentication server), TGS = (ticket granting server), SS =(service server).
1. user nhập tên (ID) và mật khẩu tại máy tính của mình (máy khách).
2. software máy khách thực hiện hàm băm một chiều trên mật khẩu nhận được.
Kết quả dùng làm khóa bí mật của người sử dụng.
3.soft máy khách gửi một gói tin (không mật mã hóa) tới AS để yêu cầu dịch vụ.
Nội dung của gói tin đại ý: "user x muốn sd dv ". chú ý private key and pass
không send toAS.

4. AS check định danh người yêu cầu có nằm trong CSDL của mình không. Nếu
có gửi 2 gói tin to user :
3


Gói tin A: "Khóa phiên TGS/máy khách" được mật mã hóa với khóa bí mật của
người sử dụng.
Gói tin B: "Vé chấp thuận" (bao gồm chỉ danh người sử dụng (ID), địa chỉ mạng
của người sử dụng, thời hạn của vé và "Khóa phiên TGS/máy khách") được mật
mã hóa với khóa bí mật của TGS.
5. Khi nhận đc , soft máy khách giải mã gói tin A để có khóa phiên với TGS.
(Người sử dụng không thể giải mã được gói tin B vì nó được mã hóa với khóa bí
mật của TGS). So, user có thể nhận thực mình với TGS.
6. user dụng gửi 2 gói tin sau tới TGS:
Gói tin C: Bao gồm "Vé chấp thuận" từ gói tin B và chỉ danh (ID) của yêu cầu
dịch vụ.
Gói tin D: Phần nhận thực (bao gồm chỉ danh người sử dụng và thời điểm yêu
cầu), mật mã hóa với "Khóa phiên TGS/máy khách".
7. Khi nhận được 2 gói tin C và D, TGS giải mã D rồi gửi 2 gói tin sau tới người
sử dụng:
-Gói tin E: "Vé" (bao gồm chỉ danh người sử dụng, địa chỉ mạng người sử dụng,
thời hạn sử dụng và "Khóa phiên máy chủ/máy khách") mật mã hóa với khóa bí
mật của máy chủ cung cấp dịch vụ.
-Gói tin F: "Khóa phiên máy chủ/máy khách" mật mã hóa với "Khóa phiên
TGS/máy khách".
8. Khi nhận được 2 gói tin E và F, người sử dụng đã có đủ thông tin để nhận thực
với máy chủ cung cấp dịch vụ SS. Máy khách gửi tới SS 2 gói tin:
- Gói tin E thu được từ bước trước (trong đó có "Khóa phiên máy chủ/máy
khách" mật mã hóa với khóa bí mật của SS).
- Gói tin G: phần nhận thực mới, bao gồm chỉ danh người sử dụng, thời

điểm yêu cầu và được mật mã hóa với "Khóa phiên máy chủ/máy khách".
9. SS giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tới người sử
dụng để xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch vụ:
Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mật mã hóa với
"Khóa phiên máy chủ/máy khách".
10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật
chính xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt
đầu gửi yêu cầu sử dụng dịch vụ.
11. Máy chủ cung cấp dịch vụ cho người sử dụng.
5. RSA
- Chọn ngẫu nhiên 2 số nguyên tố lớn p và q. Tính số làm modulo của hệ thống:
N = p.q
4


- Tính Ф(N)=(p-1)(q-1) .
- Chọn ngẫu nhiên khoá mã e trong đó 1Ф(N).
- Tìm khoá giải mã d sao cho e.d=1 mod Ф(N) với 0≤d≤ Ф(N)
- In khoá mã công khai KU = {e,N}
Giữ khoá riêng bí mật KR = {d,N}
- Mã hoá mẩu tin: C = E(M,KU) = Me mod N, trong đó 0≤MGiải mã: M = D(C,KR) = Cd mod N
6. Mã hoá khối
- Mã hóa khối là kiểu mã hoá dữ liệu được chia ra thành từng khối có kích thước
cố định để mã hoá.
- Các yêu cầu khi thiết kế mã hoá khối:
 Sự hỗn loa ̣n (confusion): sự phu ̣ thuô ̣c giữa bản rõ và bản mã phải thực
sự phức ta ̣p để gây khó khăn đố i với viêc̣ tìm quy luâ ̣t thám ma.̃ Mố i
quan hê ̣ này tố t nhấ t là phi tuyế n.

 Sự khuế ch tán (diffusion): Mỗi bit của bản rõ và khóa phải ảnh hƣởng
lên càng nhiều bit của bản mã càng tố t.
- DES thuộc loại mã hoá khối kiến trúc mô hình Feistel
AES thuộc loại mã hoá khối kiến trúc mạng thay thế - hoán vị.
7. Tấn công RSA
1) Vét cạn khóa: cách tấn công này thử tất cả các khóa d có thể có để tìm ra bản
giải mã có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng. Với N
lớn, việc tấn công là bất khả thi.
2) Phân tích N thành thừa số nguyên tố N = pq: Hiện nay, nhiều thuật toán phân
tích mới đã được đề xuất, cùng với tốc độ xử lý của máy tính ngày càng nhanh đã
làm cho việc phân tích N không còn quá khó khăn như trước đây. Năm 1977, các
tác giả của RSA đã treo giải thưởng cho ai phá được RSA có kích thước của N
vào khoảng 428 bít, tức 129 chữ số. Các tác giả này ước đoán phải mất 40 nghìn
triệu triệu năm mới có thể giải được. Tuy nhiên vào năm 1994, câu đố này đã
được giải chỉ trong vòng 8 tháng.
3) Đo thời gian: Đây là một phương pháp phá mã không dựa vào mặt toán học
của thuật toán RSA, mà dựa vào một “hiệu ứng lề” sinh ra bởi quá trình giải mã
RSA. Hiệu ứng lề đó là thời gian thực hiện giải mã. Giả sử người phá mã có thể
đo được thời giải mã M = cd mod N dùng thuật toán bình phương liên tiếp. Trong
thuật toán bình phương liên tiếp, nếu một bít của d là 1 thì xảy ra hai phép modulo,
nếu bít đó là 0 thì chỉ có một phép modulo, do đó thời gian thực hiện giải mã là
khác nhau. Bằng một số phép thử chosen-plaintext, người phá mã có thể biết được
các bít của d là 0 hay 1 và từ đó biết được d.
8. DES
Quy trình mã hoá
5


B1: Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách
hoán vị các bit của x theo phép hoán vị cố định ban đầu IP. Ta viết: x0 = IP(x) =

L0R0, trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.
B2: Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính LiRi, 1≤
i ≤16 theo quy tắc sau: Li = Ri-1; Ri = Li-1  f(Ri-1, ki)
Trong đó:
 là phép loại trừ của hai xâu bit
f là một hàm sẽ được mô tả ở sau
k1, k2, …, k16 là các xâu bit có độ dài 48 được tính như 1 hàm của khóa k
(ki chính là một phép chọn hoán vị bit trong k).
Một vòng của phép mã hóa được mô tả như sau:

B3: Áp dụng phép hoán vị ngược IP-1 cho xâu bit R16L16, ta thu được bản
mã y. Tức là y = IP-1(R16L16) . Hãy chú ý thứ tự đã đảo của L16 và R16
Sơ đồ mã hoá DES

6


9.
- Tính chất của hàm băm không có khoá:
 Tính chất nén
 Tính dễ dàng tính toán
 Tính khó tính toán nghịch ảnh
 Khó tìm nghịch ảnh thứ hai: với x cho trước thì không có khả năng tìm x’
 x sao cho: h(x) = h(x’)
 Tính kháng va chạm: không có khả năng về tính toán để tìm hai đầu vào
khác nhau bất kì x’ và x để h(x) = h(x’)
- Nguyên tắc làm việc của hàm băm có khoá:
Input: Dữ liệu x, mật mã khối E, khoá MAC bí mật k của E.
Output: n bit MAC trên x (n là độ dài khối của E)
(1) Độn và chia khối: Độn thêm các bit vào x nếu cần. Chia dữ liệu đã độn thành

từng khối n bit : x1, …, xt
(2) Xử lý theo chế độ CBC. Ký hiệu Ek là phép mã hoá E với khoá k.Tính khối
Ht như sau:
H1  Ek(x1)
Hi  Ek(Hi-1  xi) 2  i  t
(3) Xử lý thêm để tăng sức mạnh của MAC. Dùng một khoá bí mật thứ hai k 
k’. Tính:
Ht’  Ek-1(Ht)
Ht  Ek(Ht’)
(4) Xử lý thêm để tăng sức mạnh của MAC
(5) Kết thúc: MAC là khối n bit Ht
10. Kryptoknight
Single Sign-On
Thực hiện đăng nhập mạng và thống nhất toàn bộ cho người sử dụng bằng cách
thực hiện các lệnh kklogin trên một máy trạm công khai
kklogin kích hoạt một tin nhắn trao đổi giữa các địa phương (stub) chương trình
KrytoKinght thực hiện lệnh và đưa đến AS. Trong thông điệp đầu tiên, người sử dụng
nói với AS rằng người đó muốn đăng nhập, xác định tên của mình. Thông báo này cho
phép các AS xác thực người sử dụng vì nó có chứa một giá trị là một chức năng của cả
thời gian hiện tại và mật khẩu của người dùng
Thông điệp thứ hai chứa các trả lời từ AS, được niêm phong với khóa dựa vào
mật khẩu của người dùng. Tại thời điểm này, kklogin nhắc người dùng nhập mật khẩu
của mình và sử dụng mật khẩu này để mở niêm phong trả lời của AS, lấy các chứng chỉ
chứa trong nó
Một kết quả thành công có nghĩa là người sử dụng đã cung cấp một mật khẩu
chính xác và đã được chứng minh danh tính của mình

7



Two-Party Authentication (Xác thực 2 bên)
Một thực thể, được gọi là người khởi xướng, bắt đầu quá trình xác thực bằng cách phát
hành một cuộc gọi API trả về một thông báo xác thực
Tin xác thực này được gửi đến thực thể ngang hàng từ xa, được gọi là người trả lời
Khi người trả lời nhận được tin nhắn, nó tạo ra một cuộc gọi API tương ứng mà xác
minh tính hợp lệ của các thông báo xác thực đến
Tùy thuộc vào các thông số xác thực, hoặc là một cách xác thực có thể được thực hiện
Key Distribution(Phân phối khóa)
Để có được một khóa bí mật được chia sẻ, hai bên đầu tiên phải tham gia vào
một cuộc đối thoại với một kryptokinght AS
Toàn bộ quá trình liên hệ với AS, chứng minh danh tính của một người, và nhận
được chìa khóa, được ẩn từ các đơn vị sử dụng kryptoknight. nói cách khác, đã hoặc
không phải là hai bên Share một khóa, họ thực hiện cuộc gọi API cùng với chính xác
các thông số tương tự. một khi một phím được ban hành và recevied, nó được lưu trữ
để sử dụng sau.
Authentication of origin and contents of data (Xác thực nguồn gốc và nội dung của
dữ liệu)
Xác thực thành công
Một phiên kryptoknight được đặc trưng bởi khóa bí mật chung của họ. phiên này
các máy chủ như là một bối cảnh giao tiếp an toàn hơn nữa giữa hai bên. nó sẽ bị chấm
dứt hoặc rõ ràng, bởi một trong các bên giao tiếp gửi cho bên kia một yêu cầu kết thúc
phiên, hoặc ngầm khi hết thời hạn của khóa chia sẻ.

11. RC4
RC4 : Đơn vị mã hóa của RC4 là một byte 8 bít. RC4 dùng 2 mảng S và T gồm
256 số nguyên 8 bít. Khóa K là một dãy gồm N số nguyên 8 bít với N có thể lấy
giá trị từ 1 đến 256. Bộ sinh số mỗi lần sinh ra một byte để sử dụng trong phép
XOR. Hai giai đoạn của RC4 là
• Giai đoạn khởi tạo:
/* Khoi tao day S va T*/

for i = 0 to 255 do
S[i] = i;
T[i] = K[i mod N];
next i
/* Hoan vi day S */
j = 0;
for i = 0 to 255 do
j = (j + S[i] + T[i]) mod 256;
Swap(S[i], S[j]);
8


next i
• Giai đoạn sinh số:
i, j = 0;
while (true)
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
Swap (S[i], S[j]);
t = (S[i] + S[j]) mod 256;
k = S[t];
end while;
12. Mô hình mã Feistel
Mô hình mã Feistel là một dạng tiếp cận khác so với mạng SP. Mô hình do
Horst Feistel đề xuất, cũng là sự kết hợp các phép thay thế và hoán vị. Trong hệ
mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã cuối cùng:
𝐾1

𝐾2


𝐾3

𝐾𝑛−1

P → C1 → C2 → … → Cn
Trong đó bản rõ P và các bản mã Ci được chia thành nửa trái và nửa phải:
P = (L0, R0)
Ci = (Li, Ri) i = 1, 2, …n
Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như
sau:
Li = Ri-1
Ri = Li-1  F(Ri-1, Ki)
Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K
ban đầu theo một thuật toán sinh khóa con (key schedule):
K → K1 → K2 → … → Kn
F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò
như là phép thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị. Bản
mã C được tính từ kết xuất của vòng cuối cùng:
C = Cn = (Ln, Rn)

9


13. Thuật toán MD5
Mô tả thuật toán
- Đầu vào: là một thông điệp có độ dài tuỳ ý
- Đầu ra là một chuỗi có độ dài cố định là 128 bit.
- Thuật toán được thiết kế để chạy trên các máy tính 32 bit.
Thuật toán:
- Thông điệp đầu vào có độ dài b bit bất kỳ. Biểu diễn các bit dưới dạng như sau:

m[0] m[1] m[2] ... m[b-1]
- Bước1: Các bit gắn thêm : Thông điệp được mở rộng, thêm bit vào phía sau sao
cho độ dài của nó (bit) đồng dư với 448 theo môđun 512. Nghĩa là thông điệp
được mở rộng sao cho nó còn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho
512. Việc thêm bit này được thực hiện như sau:
Một bit ‘1’ được thêm vào sau thông điệp
Sau đó các bit ‘0’ được thêm vào để có một độ dài đồng dư với 448 môđun
512.
- Bước 2: Gắn thêm độ dài: Dạng biểu diễn 64 bit độ dài b của chuỗi ban đầu
được thêm vào phía sau kết quả của bước 1.
- Bước 3: Khởi tạo bộ đệm MD: Một bộ đệm 4 từ (A,B,C,D) được dùng để tính
mã số thông điệp. Ở đây mỗi A,B,C,D là một thanh ghi 32 bit. Những thanh ghi
này được khởi tạo theo những giá trị hex sau :
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
- Bước 4 : Xử lý thông điệp theo từng khối 16 từ. Định nghĩa các hàm phụ, các
hàm này nhận giá trị đầu vào là 3 từ 32 bit và tạo tạo ra một word 32 bit.
F(X,Y,Z) = (X  Y)  (  X  Z)
10


G(X,Y,Z)= (X  Z)  (  Z  Y)
H(X,Y,Z) = X  Y  Z
I(X,Y,Z) = Y  (X   Z)
Bước này sử dụng một bảng 64 giá trị T[1 .. 64] được tạo ra từ hàm sin.
Gọi T là phần tử thứ i của bảng, thì T là phần nguyên của 4294967296*|sin(i)| ,
i được tính theo radian
14. Hệ mật khoá công khai

- Tổng quan: Các giải thuật mật mã khóa công khai sử dụng một khóa để mật
hóa và một khóa khác có liên quan để giải mật. Chúng có các đặc điểm:
 Không thể tính lại khóa giải mã nếu biết trước giải thuật mã hóa và khóa
dùng mã hóa.
 Một trong hai khóa đều có thể dùng để mã hóa và khóa còn lại dùng đề giải

- Giải thuật khóa công khai gồm 6 thành phần:
 Bản rõ: thông điệp có thể đọc, đầu vào của giải thuật
 Giải thuật mật hóa: thuật toán dùng để mã hóa
 Khóa công khai và bí mật: một cặp khóa được chọn sao cho 1 khóa dùng
để mã hóa và 1 khóa dùng để giải mã.
 Bản mã: thông điệp đầu ra ở dạng không đọc được, phụ thuộc vào bản rõ
và khóa. Nghĩa là với cùng một thông điệp, 2 khóa khác nhau sinh ra 2
bảng mã khác nhau
 Giải thuật giải mật: thuật toán dùng để giải mã
- Ưu nhược điểm
Ưu:
+ Kích thước khóa lớn
+ Độ an toàn cao
+ Dễ dàng trong việc quản lý và phân phối khóa
Nhược:
+ Do kích thước khóa lớn nên thời gian mã hóa/ giả mã sẽ chậm
+ Độ phức tạp thuật toán cao
15. Ứng dụng Smart Cards cho điện thoại di động: thẻ SIM
- Khóa xác thực có độ dài 128-bit để xác thực trong mạng di động. Mỗi SIM
giữ 1 khóa K duy nhất (không giống với các SIM khác). Khóa K cũng được
luu trong cơ sở dữ liệu tại nhà cung cấp mạng.
- Thẻ SIM được thiết kế để không cho phép đọc (lấy) được khóa K trực tiếp
thông qua các điểm tiếp xúc của thẻ. Thay vào đó, thẻ SIM cung cấp 1 chức
năng chạy thuật toán GSM, chức năng cho phép truyền dữ liệu vào thẻ SIM

để kết hợp với K. Thiết kế này làm cho bắt buộc phải sử dụng SIM, trừ khi
trích xuất được K ra khỏi thẻ SIM, hoặc nhà cung cấp thẻ tiết lộ K. Trong
thực tế, thuật toán mã hóa GSM tính toán SRES_2 từ khóa K có lỗ hổng nhất
định làm cho có thể trích xuất khóa K từ thẻ SIM và tạo 1 thẻ SIM giống hệt.
11


-

-

Quy trình chứng thực:
1. Thiết bị di động khỏi động, nó lấy số xác thực (International Mobile
Subscriber Identity (IMSI)) từ thẻ SIM, và chuyển số đấy cho thiết bị yêu
cầu truy cập và chứng thực.
2. Thiết bị vận hành mạng tìm kiếm trong cơ sở dữ liệu với số IMSI và số
đã kết hợp với K.
3. Thiết bị vận hành mạng sau đó sinh ra 1 số ngẫu nhiên RAND (số ngẫu
nhiên được dùng 1 lần) và kết hợp RAND với K và IMSI (và lưu trong
thẻ SIM), tính toán 1 số khác được gọi là tín hiệu hồi đáp (SRES_1)
4. Thiết bị vận hành mạng sau đó gửi RAND đến thiết bị di động, sau đó
được chuyển cho thẻ SIM. Thẻ SIM kết hợp với K, sinh ra SRES_2. Sau
đó SRES_2 được chuyển cho thiết bị di động cùng với khóa mã hóa (Kc).
Thiết bị di động chuyển SRES_2 cho thiết bị vận hành mạng.
5. Thiết bị vận hành mạng sau đó so sánh SRES_2 với SRES_1. Nếu 2 số
giống nhau, thẻ SIM được chứng thực và thiết bị di động được quyền truy
cập vào mạng. Kc được sử dụng để mã hóa tất cả các liên lạc giữa thiết bị
di động với mạng.
Đa số thẻ SIM đều có bộ nhớ để chứa tin nhắn hoặc số liên lạc.


16. Hệ khoá bí mật
- Tổng quan:
 Khóa phải được giữ bí mật giữa người gửi và người nhận
 Một khóa có thể áp dụng để truyền tin nhiều lần
 Kích thước khoá tương đối ngắn.
 Đảm bảo tính bí mật : Bản mã C được gửi đi trên kênh truyền. Do bản mã
C đã được biến đổi so với bản rõ P, cho nên những người thứ ba can thiệp
vào kênh truyền để lấy được bản mã C, thì không hiểu được ý nghĩa của
bản mã.
 Đảm bảo tính toàn vẹn dữ liệu: Nếu Trudy chặn được bản mã C của Alice
và sửa C thành CT, thì xác suất để PT là văn bản có nghĩa cũng rất bé. Và
Bob biết được C đã bị sửa đổi. Đối với mã hóa hiện đại cũng vậy, nếu
Trudy chọn CT là một dãy bít bất kỳ thì bản rõ PT cũng là một dãy bít lộn
xộn, không có cấu trúc ý nghĩa.
 Tính xác thực (authentication) của mã hóa đối xứng: Mã hóa đối xứng có
thể chống lại các hình thức tấn công sửa đổi thông điệp, mạo danh và phát
lại thông điệp.
 Tính không từ chối (non-repudiation) của mã hóa đối xứng: Mặc dù mã
hóa đối xứng thỏa mãn tính bảo mật nhưng mã hóa đối xứng lại không thỏa
mãn được tính không từ chối. Vì khóa của mã hóa đối xứng chỉ có hai
người biết, nên nếu khóa K bị tiết lộ thì không có cơ sở để quy trách
nhiệm cho Alice hay Bob làm lộ khóa.
12


- Thành phần:
 Bản rõ P (plaintext)
 Thuật toán mã hóa E (encrypt algorithm)
 Khóa bí mật K (secret key)
 Bản mã C (ciphertext)

 Thuật toán giải mã D (decrypt algorithm)
- Ưu nhược điểm:
Ưu:
+ Đơn giản
+ Tốc độ mã hóa/ giải mã nhanh
+ Độ an toàn cao

Nhược: Khó khăn trong việc quản lí và phân phối khoá.
17. Yêu cầu với mã hoá AES, quy trình giải mã AES
Yêu cầu của AES
- Là mã khối đối xứng khoá riêng.
- Kích thước khối dữ liệu 128 bit và độ dài khoá là tùy biến: 128, 192 hoặc 256
bit.
- Chuẩn mã mới phải mạnh và nhanh hơn Triple DES. Mã mới có cơ sở lí thuyết
mạnh để thời gian sống của chuẩn khoảng 20-30 năm (cộng thêm thời gian lưu
trữ).
Khi đưa ra thành chuẩn yêu cầu cung cấp chi tiết thiết kế và đặc tả đầy đủ. Đảm
bảo rằng chuẩn mã mới cài đặt hiệu quả trên cả C và Java.
Giải mã AES
18. Quá trình xử lý thông điệp của SHA1
- SHA1 sử dụng thủ tục xử lý thông điệp tương tự MD5;
- Thông điệp được chia thành các khối 512 bít. Nếu kích thước thông điệp không
là bội số của 512  nối thêm số bít thiếu;
- Phần xử lý chính của SHA1 làm việc trên state 160 bít, chia thành 5 từ 32 bít
(A, B, C, D, E);
+ Các từ A, B, C, D, E được khởi trị bằng một hằng cố định;
+ Từng phần 32 bít của khối đầu vào 512 bít được đưa dần vào để thay đổi
state;
- Quá trình xử lý gồm 80 vòng, mỗi vòng gồm các thao tác: add, and, or, xor,
rotate, mod.

t là số thứ tự của chu kì
A,B,C,D,E là 5 word(32 bit) của trạng thái
F là hàm phi tuyến (thay đổi tùy theo chu kì)
<<⊞ phép cộng modul 232
13


K là hằng số

19. Mô hình trao đổi khoá công khai trong mã hoá công khai
hai người sd muốn truyền dữ liệu với nhau bằng phương pháp mã hóa khóa
công khai, first họ phải trao đổi khóa công khai cho nhau. Vì đây là khóa công
khai nên không cần giữ bí mật việc trao đổi này, khóa có thể truyền công khai
trên kênh thường. Alice và Bob, hay bất cứ người nào khác có thể công bố rộng
rãi khóa công khai của mình.
Tuy nhiên, làm thế nào mà Alice có thể đảm bảo rằng KUB chính là khóa
công khai của Bob? Trudy có thể mạo danh Bob bằng cách lấy khóa KUT của
Trudy và nói rằng đó là khóa công khai của Bob.
Để giải quyết vấn đề này, một mô hình gọi là “chứng chỉ khóa công khai”
(public-key certificate) được sử dụng. Trong mô hình này có một tổ chức làm
nhiệm vụ cấp chứng chỉ được gọi là trung tâm chứng thực (Certificate Authority
– CA). Các bước thực hiện cấp chứng chỉ cho Alice như sau:
1) Alice gửi định danh IDA và khóa công khai KUA của mình đến trung tâm chứng
thực.
2) Trung tâm chứng nhận kiểm tra tính hợp lệ của Alice, ví dụ nếu IDA là
“Microsoft”, thì Alice phải có bằng chứng chứng tỏ mình thực sự là công ty
Microsoft.
3) Dựa trên cơ sở đó, trung tâm chứng thực cấp một chứng chỉ CA để xác nhận
rằng khóa công khai KUA đó là tương ứng với IDA. Chứng chỉ được ký chứng thực

bằng khóa riêng của trung tâm để đảm bảo rằng nội dung của chứng chỉ là do
trung tâm ban hành.
CA = E(IDA|| KUA , KRAuth)
(|| là phép nối dãy bít)
4) Alice công khai chứng chỉ CA .
14


5) Bob muốn trao đổi thông tin với Alice thì sẽ giải mã CA bằng khóa công khai
của trung tâm chứng thực để có được khóa công khai KUA của Alice. Do đó nếu
Bob tin tưởng vào trung tâm chứng thực thì Bob sẽ tin tưởng là KUA là tương ứng
với IDA, tức tương ứng với Alice.
Như vậy có thể thấy rằng nếu Bob muốn gửi thông điệp cho ai thì Bob
không cần phải tin tưởng vào khóa công khai của họ nữa mà chỉ cần tin tưởng
vào trung tâm chứng thực và khóa công khai của trung tâm chứng thực.
20. Ứng dụng của PGP
Mục tiêu ban đầu của PGP nhằm mật mã hóa nội dung các thông điệp thư điện tử
và các tệp đính kèm cho người dùng phổ thông. Các ứng dụng PGP giờ đây bao
gồm: thư điện tử, chữ ký số, mật mã hóa ổ đĩa cứng máy tính xách tay, bảo mật
tệp và thư mục, bảo mật các phiên trao đổi IM, mật mã hóa luồng chuyển tệp, bảo
vệ các tệp và thư mục lưu trữ trên máy chủ mạng.
Phiên bản PGP Desktop 9.x dành cho máy để bàn bao gồm các tính năng: thư
điện tử, chữ ký số, bảo mật IM, mật mã hóa ổ đĩa cứng máy tính xách tay, bảo
mật tệp và thư mục, tệp nén tự giải mã, xóa file an toàn. Các tính năng riêng biệt
được cấp phép theo các cách khác nhau tùy theo yêu cầu.
Phiên bản PGP Universal 2.x dành cho máy chủ cho phép triển khai ứng dụng tập
trung, thiết lập chính sách an ninh và lập báo cáo.

15




×