1. Trang chủ
  2. » Công Nghệ Thông Tin

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

15 1,8K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 839,69 KB
File đính kèm đáp án mat ma hoc PTIT.rar (2 MB)

Nội dung

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à 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õ 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...pn1 (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...sn1 (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ó đượcbản mã.c0 = p0 s0, c1 = p1 s1...; C = c0c1c2...cn1 Ứ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 Sbox, hay bij = S(aij)

Trang 1

1

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õ

2

1m

m 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)

Trang 2

2

- 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)

Trang 3

3

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ì E k (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 :

Trang 4

4

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

Trang 5

5

- Tính Ф(N)=(p-1)(q-1)

- Chọn ngẫu nhiên khoá mã e trong đó 1<e< Ф(N), e nguyên tố cùng nhau với Ф(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≤M<N

Giả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 mã 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á

Trang 6

6

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

Trang 7

7

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

Trang 8

8

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]);

Trang 9

9

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:

P 𝐾→ C1 1

𝐾2

→ C2

𝐾3

→ … 𝐾→ C𝑛−1 n 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)

Trang 10

10

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ướ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)

Ngày đăng: 08/08/2016, 07:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w