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

Đề cương ôn thi môn học an toàn thông tin

34 1K 2

Đ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 34
Dung lượng 1,17 MB

Nội dung

Với cùng một bản gốc, một thuật toán, mã hóa với các khóa khác nhau sẽ cho ra bản mãkhác nhautương tự như vậy với giải mã..  Để đảm bảo tính bí mật của thông tin, một hệ mã hóa đối xứng

Trang 1

Câu 1: Các khái niệm cơ bản của lý thuyết mã, các thao tác mã hóa cơ bản, khóa và thuật toán mã/giải mã.

1.1 Các khái niệm cơ bản của lý thuyết mã.

- Bản gốc là dữ liệu ban đầu, có thể được hiểu mà không cần sử dụng những công cụ, những biến đổi đặc biệt nào Bản gốc hay còn được gọi là bản rõ

- Bản mã hóa là kết quả của việc áp dụng phương pháp mã hóa lên bản gốc Với bản mã hóa, ta không thể thu được thông tin đúng mà không áp dụng những cách thức đặc biệt Bản mã hóa chính là dữ liệu đã được mã hóa

- Mã hóa là phương pháp ngụy trang để ấn dấu đi nội dung thực sự của dữ liệu

- Giải mã là phương pháp chuyển đổi bản mã thành bản rõ

- Khoa học mật mã là khoa học nghiên cứu về việc tạo mã và giải mã

- Khoa học phân tích mã là khoa học nghiên cứu các nguyên lý giải mã mà không biết khóa

- Lược đồ mã hóa là lược đồ mô tả cách thức mã hóa của người gửi và giải

mã của người nhận

1.2 Các thao tác mã hóa cơ bản.

- Phép thế:

+ ) Caesar cipher:

Bản chất trong mã hóa của Ceasar là thay thế các ký tự trong thư bằng

các ký tự khác theo một nguyên tắc nào đó

4 x 1026 bảng chữcái mật mã khác nhau

- Monoalphabetic cipher là loại mã hóa thay thếchỉsửdụng một bảng chữcái mật mã đểthay thếcác ký tựtrong thông điệp gốc

+) Substitution ciphers(mã thế)

Mã thế(substitution cipher) là hình thức mã hóa mà các ký tự trong

thông điệp ban đầu được thay thếbởi các ký tự khác hoặc ký hiệu mới

Trang 2

• Theo đường chéo từ dưới lên khi đạt tới cột thấp nhất

• Và khi đạt tới cột cao nhất, lại viết theo đường chéo từtrên xuống

Cứ lặp lại như thế cho đến khi viết hết toàn bộ nội dung của thông

điệp

+) Mã Transposition

Mã chuyển vị là hình thức mã hóa mà các ký tự trong thông điệp ban đầu được hoán đổi vị chí cho nhau Với những thông điệp ngắn, chẳng hạnNhư thông điệp chỉ có một từ thì phương pháp này không đủ an toàn

1.3 Khóa và thuật toán mã/giải mã.

• Thuật toán mã hóa(giải mã) là một thủ tục thể hiện cách thức xử lý bản gốc(bản mã hóa) thành bản mã hóa(bản gốc) Thuật toán mã hóa sẽ là một

• Khóa là một tham số đặc biệt thường được giữ bí mật Khóa giúp cho sự

mã hóa(giải mã) không lệ thuộc hoàn toàn vào thuật toán Với cùng một bản gốc, một thuật toán, mã hóa với các khóa khác nhau sẽ cho ra bản mãkhác nhau(tương tự như vậy với giải mã)

• Số lượng khóa khả dĩ hay tiềm năng của một thuật toán mã hóa(giải mã) là

số lượng khóa có thể được lựa chọn như một tham số cho thuật toán mã hóa(giải mã).Số lượng khóa khả dĩ là tùy thuộc vào thuật toán mã hóa(giải mã)

Chú ý: nguyên lý Kerckhoff được đưa ra: “ Sự an toàn của một hệ thống mật

mã không phải phụ thuộc vào việc giữ bí mật thuật toán mật mã Sự an toàn này chỉ phụ thuộc vào việc giữ bí mật khóa.”

Câu 2: Trình bày về mã đối xứng.

Mã đối xứng là loại mật mã mà việc mã hóa và giải mã có thể sử dụng

chung một khóa, người mã hóa cũng có thể giải mã và ngược lại người giải

mã cũng có thể mã hóa Mã đối xứng còn được gọi là mã một khóa

+) Mã dịch chuyển Caesar:

- Ta lần lượt đánh chỉ số cho các chữ cái bắt đầu từ 0

- Khi đó mã dịch chuyển Caesar có thể mô tả một cách hình thức như sau:

+ k là một số nguyên từ 0 tới 25 được gọi là khóa

+ Hàm mã hóa: E(k,p)=(p+k) mod 26 với p là chỉ số của ký tự cần mã hóa

Trang 3

+Hàm giải mã: D(k,c)=|c-k| mod 26 với c là chỉ số của ký tự cần giải mã.

+ Như vậy số lượng khóa tiềm năng của mã dịch chuyển Caesar là 25(do k=0 không có giá trịmã hóa)

+) Mã Hill.

- Ta cũng lần lưlượt đánh chỉ số cho các chữ cái bắt đầu từ 0

- Mã Hill dựa trên ý tư tưởng mã hóa từng nhóm các ký tự

Cụ thể như sau:

–k là một ma trận vuông cỡ n(n là số lượng ký tự trong một nhóm)

– Hàm mã hóa: E(k,p)=k.p mod 26 với p là ma trận(1xn) với

các phần tử là chỉ số của n ký tự liên tiếp trong bản gốc

–Hàm giải mã: D(k,c)=k1c mod 26 với k1 là ma trận đảo của

k và c là ma trận(1xn) mà mỗi phần tử là chỉ số của n ký tự liên tiếp trong bản mã hóa

 Để đảm bảo tính bí mật của thông tin, một hệ mã hóa đối

xứng phải đáp ứng hai yêu cầu sau:

• Thuật toán mã hóa phải mạnh – đảm bảo rằng đối phương không thể giải

mã mà không biết khóa mã

• Khóa mã phải được giữ bí mật Do đó mà mã đối xứng còn được gọi là mãkhóa bí mật

 Để có thể thực hiện trao đổi thông tin bí mật bằng mã xứng, người sử dụng phải:

- Thống nhất với nhau thuật toán mã hóa và giải mã được sử dụng trong quá trình trao đổi

- Thống nhất với nhau khóa bí mật sẽ đưđược sử dụng trong quá trình trao đổi Cũng bởi vậy mã đối xứng còn được gọi là mã thỏa thuận

 Việc phải thống nhất khóa bí mật là nhược điểm lớn của mã đối xứng.Nhược điểm này được gọi là vấn đề phân phối khóa

- Mã khóa bí mật, mã thỏa thuận, mã một khóa là các tên Khác nhau của

Câu 3: Trình bày mã bất đối xứng.

+) Vấn đề phân phối khóa

• Như ta đã biết vấn đề chính yếu tồn tại lâu dài trong mã hóa đối xứng là:

Trang 4

Làm như thế nào để trao đổi khóa một cách bí mật giữa những người, những

tổ chức mong muốn được trao đổi với nhau một cách bí mật?

• Vấn đề này được gọi là vấn đề phân phối khóa

Cái khó của vấn đề là tồn tại một nghịch lý giữa sự bí mật và sự công

khai Khóa mã rõ ràng là bí mật nhưngnhưng lại muốn đưđược biết bởi một

số cá nhân hay tổ chức

+) Giải pháp phân phối khóa

Cuối cùng thì giải pháp cho vấn đề phân phối khóa được gọi là Lược đồ trao đổi khóa Diffie-Hellman-Merkle Lược đồ cho phép thiết lập một kênh trao đổi khóa bí mật trên hệ thống công cộng

 Lược đồ trao đổi khóa Diffie-Hellman-Merkle

A và B thống nhất với nhau hai số Y và P: (7,11)

A và B chọn hai số ngẫu nhiên x và z : (3,6)

Thật kỳ lạ là A, B đều tính ra số 9 Đó chính là khóa mà A,B sẽ sử dụng

để trao đổi thông tin với nhau một cách bí mật

 Alice Alice và Bob ra công khai

Diffie đã đưa ra ý tưởng mã hóa khóa công khai

– Sử dụng một cặp khóa: một khóa công khai và một khóa

riêng

– Một trong hai khóa có thể được sử dụng để mã hóa và khóa

còn lại để giải mã

 Tính an toàn của mã hóa khóa công khai

• Cũng như với mã hóa đối xứng, mã hóa khóa công khai cũng luôn phảiđương đầu với tấn công vét cạn Do đó tính an toàn của khóa công khai cũng phải dựa trên số lượng khóa tiềm năng

• Tính an toàn của mã hóa khóa công khai phụ thuộc vào tính khó của những vấn đề tính toán

Do dựa trên tính khó của vấn đề tính toán, nên các thuật toán mã hóakhóa công khai thường phải thao tác trên các con số khá lớn để đảm bảovấn đề tính toán có độ khó đủ để không có lời giải khả thi Cũng chính vìvậy các thuật toán mã hóa khóa công khai thường chạy chậm

 Ứng dụng của khóa công khai

- Mã hóa giúp đảm bảo tính bí mật của thông tin

Trang 5

- Được sử dụng để trao đổi khóa.

Câu 4: Trình bày về RSA.

RSA: Mã hóa khóa công cộng

- Là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất

- Dựa trên lũy thừa trên trường hữu hạn các số nguyên modulo nguyên tố

- Phép lũy thừa cần O((log n)3) phép toán (dễ)

- Sử dụng các số rất lớn 1024 bit

- Tính an toàn dựa vào độ khó phân tích ra thừa số các số lớn Lũy thừa yêu cầu O(e^log n log log n) phép toán

 Lược đồ sinh khóa

- Mỗi người sử dụng sẽ được tạo một RSA publickey và một

RSA privatekey tương ứng.Khóa được tạo theo thuật toán

sau:

Algorithm: Key generation cho RSA public-key encryption

- Sinh ra hai sốnguyên tố“lớn” p và q phân biệt và có cỡ

Tính n=p.q do đó Ø(n)=(p-1).(q-1)

Chọn số ngẫu nhiên e sao cho: 1<e< Ø(n) và gcd(e, Ø(n))=1

Tính số nguyên d sao cho: 1<d <Ø(n) và e.d ≡1 mod Ø(n)

Publickey là PU{e,n} và Privatekey là PR{d,n} hoặc PR{d,p,q}

RSA Public-key encryption

 Lược đồ mã hóa

Khi đối tượng B muốn gửi một thông điệp cho đối tượng A

Sau khi đã nhận được khóa công khai(RSA Publickey) B có

thể tiến hành mã hóa theo thuật toán sau:

Algorithm: RSA Publickey encryption

Thi hành việcxácnhận publickey (n,e)

Đặc tả thông điệp cần mã hóa như một số nguyên m: m thuộc [0,n-1].Tính c = me mod n

Gửi cho c cho A (c chính là cipher text)

 Lược đồ giải mã

Khi A nhận được do B gửi đến.A sẽ sử dụng private key tương

ứng của mình đề giải mã thông điệp theo thuật toán sau:

Algorithm RSA private-key Decryption

m= cd mod n

RSA Public-key encryption

Chứng minh: Ta có e.d đồng dưvới 1 modul Ø(n) do vậy ta có: e.d= 1+k Ø(n)

* Khi đó nếu gcd(m,p)=1 thì theo định lý Fermat ta sẽcó: mp-1 đồng dư với 1 modul

Trang 6

p vậythì: m1+k(p-1)(q-1) ≡m (mod p) => me.d ≡m (mod p)

* Nếugcd(m,p) =p thì me.d ≡m (mod p)

Tương tự ta chứng minh: me.d ≡m (mod q)

Cuối cùng do p,q là hai số nguyên tố phân biệt nên ta có me.d ≡m (mod n) Vậycd = (me)d ≡m (mod n).Tức m= (me)d mod n=c d mod n (đpcm)

 Sinh khoá RSA

- Người sử dụng RSA cần phải

Xác định ngẫu nhiên 2 số nguyên tố

Chọn e hoặc d và tính số kia

- Các số nguyên tố p, q không dễ suy ra nếu biết tích n = p.q

Như vậy p, q cần phải là các sốđủlớn

p, q thường được đoán và qua kiểm tra xác suất số nguyên tố Các số e và d là nghịch đảo nhau, có thể dùng thuật toán nghịch đảo để tính số nọ khi biết số kia

 An toàn của RSA

– Có các bước tiến chậm theo thời gian

– Hiện tại cho rằng RSA 1024 hoặc 2048 là an toàn

– Tấn công thời gian (trong khi giải mã)

+ Paul Kocher chỉ ra rằng kẻ thám mã có thể xác định được khoá riêng nếu theo dõi thời gian máy tính cần để giải mã các bản tin

+ Tấn công thời gian không chỉ áp dụng cho RSA, mà cả với các hệ mã công khai khác

+ Tấn công thời gian giống như kẻ cướp đoán sự an toàn bằng cách quansát một người nào đó trong bao lâu chuyển quay điện thoại từ số nàysang số khác

– Tấn công với bản mã chọn trước

+ RSA có điểm yếu với tấn công bản mã chọn trước

+ Kẻ tấn công chọn bản mã và đoán bản rõ được giải mã

Trang 7

+ Có thể tính với bộ đệm ngẫu nhiên của bản rõ Hoặc sử dụng bộ đệm

- Vấn đề thừa số nguyên(Integer factorization problem)

-Vấn đề SQ-Root(Square roots modulo composite n)

Đưa ramột hợp số n và một số a thuộc tập Qn(tập các số thặng dư bậc hai modulo n).Vấn đề đặt ra là tìm căn bậc hai của a modulo n tức là tìm số xsao cho: x2 đồng dư với a modulo n

 Lược đồ sinh khóa

Mỗi thực thể được tạo một publickey và một privatekey tương ứng.Khóa được tạo theo thuật toán sau:

Algorithm: Key generation cho Rabin-key encryption

Sinh ra hai sốnguyên tố“lớn” p va q phân biệt và có cỡ“tuơng tự nhau”Tính n=p.q

Publickey là n và Privatekey là (p,q)

 Lược đổ mã hóa:

Khi đối tượng B muốn gửi một thông điệp cho đối tượng A B tiến hành

mã hóa như sau:

Algorithm Rabin Publickey encryption

Thi hành việc xác nhận publickey n

Đặc tả thông điệp cần mã hóa như một số nguyên m:m thuộc [o,n-1]Tính c=m 2 mod n

Gửi cho c cho A(c là cipher text)

 Lược đổ giải mã:

Khi đối tượng A nhận được thông điệp từ B A tiến hành giải mã như sau:

Algorithm Rabin Publickey dencryption

Trước hết cần tìm bốn số m1,m2,m3 và m4 là cănbậc hai của c modulo n.Thông điệp được gửi có thể là một trong bốn số m1,m2,m3,m4 A bằngmột phương pháp nào đó có thể quyết định được đâu là m(plain text thực sự)

Câu 6: Mã hóa khóa công khai ELGAMAL.

 Cơ sở toán học

Trang 8

ELGamal public-key encryption key encryption còn được xem là Hellman key agreement là một kỹ thuật xây dựng giao thức phân phối khóa.

Diffie Tính bảo mật của nó cơ bản dựa trên tính “rắn” của vấn đề tính toán là : + The discrete logarithm problem

The discrete logarithm problem là một vấn đề tính toán được áp dụng khánhiều trong các giải pháp bảo mật.The discrete logarithm problem liên quan tới một số vấn đề toán học đặc thù như:

Vần đề có phát biểu toán học như sau:

Cho G là một nhóm cyclic hữu hạn sinh bởi phần tử sinh α cấp n và cho βthuộc G The discrete logarithm của β với cơ số α là log α β là số nguyên duy nhất x sao cho 0 ≤ x ≤ n-1 và β=α x

+ The Diffie-Hellman problem

Vấn đề này có phát biểu toán học đơn giản như sau:

Cho một số nguyên tố p,α là một phân tử sinh của Z*p Đồng thời cho αa

mod p và α b mod p.Vấn đề đặt ra là tìm α a.b mod p

Vấn đề tổng quát hơn của DHP là GDHP(Generalized Diffie-Hellman Problem) có phát biểu toán học như sau:

Đưa ra một nhóm cyclic hữu hạn G với phần tử sinh α và các phân tử α

a,α b.Vấn đề đặt ra là tìm:αa.b

 Lược đồ sinh khóa

Mỗi thức thể được tạo một publickey và một privatekeytương ứng.Khóa được tạo theo thuật toán sau:

Algorithm: Key generation cho EL Gmal-key encryption

Sinh ngẫu nhiên số nguyên tố p và phần tử sinh α của nhóm nhân Z*pcủa modulo p

Chọn một số ngẫu nhiên a sao cho: 1≤a ≤p-2.Tính αa mod p

Publickey là : (p,α,αa) và Privatekey là : a

 Lược đổ mã hóa:

Khi đối tượng B muốn gửi một thông điệp cho đối tượng A B tiến hành

mã hóa như sau:

Algorithm EL Gamal Publickey encryption

Thi hành việcxácnhận publickey (p,α,αa)

Đặc tả thông điẹpcần mã hóa như một số nguyên m:m thuộc [o,p-1]

Chọn mộtsố nguyên ngẫu nhiên k sao cho 1 ≤k ≤p-2

Trang 9

Algorithm EL Gamal Publickey dencryption

Sử dụng private key a tính γp-1-a mod p

Khôi phục plaintext như sau:m= (γ-a).δmod p

Chứng minh:Như miêu tả việc mã hóa ta có : (γ-a).δ≡α –a.k.m.α a.k ≡m (mod p)

Câu 7: Xét trên một phương diện nào đó, mã khối tổng quát tương

tự như một mật mã một bảng chữ cái cổ điển? Anh chị hãy chỉ ra sự tương đương đó? Từ đó giải thích vì sao mã khối tổng quát lại tỏ ra

an toàn hơn so với mã một bảng chữ cái cổ điển? Theo anh chị thì

mã khối có an toàn tuyệt đối không, giải thích vì sao?

Như thế phương thức mã hóa có thể được diễn đạt thông qua một bảng chữ cái mã hóa mà ở đó mỗi chữ cái cũng là một bộ n bits

=> Như vậy mã khối tổng quát tương đương với mã một bảng chữ cái cổ điển

 Mã khối tổng quát tỏ ra an toàn hơn mã môt bảng chữ cái cổ điển:

- Mã một bảng chữ cái:Việc mã hóa được tiến hành bằng cách thay thế một chữ cái trong bản rõ thành một chữ cái trong bản mã.Như vậy số lượng hoán vị của 26 chữ cái là 26!.Đây cũng chính là số lượng khóa của phương pháp này Vì 26! Là khá lớn nên khó có thể tấn công vét cạn tuy nhiên nó bị tấn công bằng cách phân tích tần suất các chữ cái tiếng anh:Trong ngôn ngữ TA tần suất sử dụng của các chữ cái không đều nhau, chữ E được sử dụng nhiều nhất, còn các chữ ít được sử dụng thường là Z,Q,J Tương tự như vậy đối với cụm hai chữ cái và

ba chữ cái, cụm chữ TH được sử dụng nhiều nhất,

- Mã khối tổng quát: Mã hóa theo từng khối, mỗi khối có kích thước là

n bits Với ngõ vào là n bits => sẽ có 2n bản rõ khác nhau,và cũng sẽ

có 2n bản mã khác nhau, để có thể giải mã được, mỗi bản rõ này cần tạo ra 1 bản mã duy nhất.Như vậy số phép biến đổi là 2n! Khi n càng lớn thì mã khối tổng quát càng an toàn vì không thể tìm ra mối liên hệ thống kê và không thể vét cạn vì hàm E tăng lên rất nhanh

 Mã khối tổng quát tỏ ra an toàn hơn mã một bảng chữ cái

Trang 10

 Mã khối không an toàn tuyệt đối vì:

Khi n lớn rõ ràng là rất an toàn nhưng chưa hẳn khả thi với nhà lập mã:

- Vì để tạo ra hàm E tổng quát => khóa đơn giản chính là mô tả của hàm E

- Khi đó với n lớn => để mô tả hàm E sẽ rất phức tạp

Chẳng hạn: với n=64

Để mô tả hàm E cần 64*264=270 bits

Câu 8: Anh chị hãy trình bày ý tưởng xấp xỉ mã hóa khối của Feistel,

từ đó xác định các vấn đề cơ bản phải quan tâm khi thiết kế một mã khối dựa trên ý tưởng chứa Horst Feistel.

Trả lời:

 Ý tưởng xấp xỉ mã hòa khối của Horst Feistel:

- Theo lý thuyết của Shannon để có môt giải thuật mã hóa đủ mạnh, cần xây dựng từ hai thao tác cơ bản:

1 confusion: Sự rối loạn là thuật ngữdùng để chỉ những kỹ thuật nhằm làm cho quá trình tìm kiếm mối quan hệ thống kê giữa khóa và bản mã trở nên

“không thể” và được thể hiện qua phép thay thế(substitution)

2 diffusion: Sự khuyếch tán là thuậtngữ dùng để chỉ những kỹ thuật nhằm làm cho quá trình tìm kiếm mối quan hệ thống kê giữa bản gốc và bản mã trở nên “không thể” và được thể hiện qua phép hoán vị

- Horst Feistel đề nghị sủ dụng mã tích thay vì các hàm tuyến tính

- Ông đề nghị sử dụng luân phiên phép thế và phép hoán vị để tạo nên một thuật toán mã hóa mạnh

- Horst Feistel thực sự thành công trong việc thực hiện ý tưởng S-P Networkcủa Claude Shannon

* Cấu trúc của mã Feistel:

1 Mã hóa

- Một khối của plaintext(PB) sẽ chạy qua n vòng mã hóa để sinh ra một khốicủa ciphertext(CB)

- Đầu tiên PB được chia làm 2 phần ký hiệu là:R0,L0.

-Khoá mã hóa K sẽ được sử dụng để sinh ra n khóa con: ki với 1≤i≤n

-Tại vòng mã hóa i:

2 Giải mã:

Để giải mã quá trình được thực hiện qua các vòng theo thứ tự ngược lại:

Trang 11

* Mô hình mã hóa Feistel

Nhận xét:

- Hàm thế được áp dụng trên nửa trái(F và phép XOR)

- Các vòng có cùng cấu trúc nhưng được đặc biệt hóa bởi khóa con k1

- Cuối cùng phép hoán vị được thực hiện bằng cách đảo ngược vị trí hainửa

b) từ đó xác định các vấn đề cơ bản phải quan tâm khi thiết kế một mã khối dựa trên ý tưởng chứa Horst Feistel

- Tăng kích thước khối sẽ làm tăng độ an toàn , nhưng làm giảm tốc độ mã

- Tăng kích thước khóa sẽ làm tăng độ an toàn, tìm khóa khó hơn nhưng làm chậm mã

- Tăng số vòng làm tăng độ an toàn nhưng làm chậm mã

- Phát sinh khóa con càng phức tạp làm cho việc thám mã khó hơn nhưnglàm chậm mã

- Hàm vòng F càng phức tạp làm cho việc thám mã khó hơn nhưng làm chậm mã

- Phần mềm mã hóa và giải mã nhanh và khó thám mã là tiêu chí hay được đề cập đến đối với ứng dụng và kiểm nghiệm thực tế

- Ứng với các hàn F và thuật toán sinh khóa con khác nhau thì ta có các phương pháp mã hóa khác nhau,

Trang 12

Câu 9: Trình bày cấu trúc Feistel Cipher.

Được xây dựng dựa trên ý tưởng của Feistel

• Một khối của plaintext(PB) sẽ chạy qua n vòng mã hóa để sinh ra mộtkhối của ciphertext(CB)

• Đầu tiên PB đưđược chia làm 2 phần ký hiệu là: R0,L0

• Khóa mã hóa K sẽ được sử dụng để sinh ra n khóa con(subkey): ki với

1 ≤ i ≤ n

• Tại vòng mã hóa i:

- Input : Ri-1,Li-1 ( là kết quả của vòng i-1)

– Output : Ri = F(Ri-1,ki) xor Li-1

Li= Ri-1

CB = Rn || Ln

+) Nhận xét:

• Hàm thế được áp dụng trên nửa trái(F và phép xor)

• Các vòng có cùng một cấu trúc nhưng được đặc biệt hóa bởi khóa con

ki

• Cuối cùng phép hoán vị được thực hiện bằng cách đảo vị trí hai nửa

 Cấu trúc của Feistel bản chất là việc thực hiện luân phiên các chứcNăng rối loạn và khuyếch tán.Cấu trúc của Feistel là một cái đặt cụ thể cho ý tưởng của Claude Shannon

Câu 10 : Hãy trình bày một cách ngắn gọn mật mã DES( cả mã hóa

và giải mã) Hãy cho biết DES được xây dựng trên ý tưởng mã khối tổng quát hay ý tưởng xấp xỉ của Horst Feistel.Giải thích vì sao?

Trả lời:

Trong phương pháp DES, kích thước khối là 64 bit DES thực hiện mã hóa

dữ liệu qua 16 vòng lặp mã hóa, mỗi vòng sử dụng một khóa chu kỳ 48 bitđược tạo ra từ khóa ban đầu có độ dài 56 bit DES sử dụng 8 bảng hằng sốS-box để thao tác

Quá trình mã hóa của DES có thể được tóm tắt như sau: Biểu diễn thôngđiệp nguồn xP∈ bằng dãy 64bit Khóa k có 56 bit Thực hiện mã hóa theo

ba giai đoạn:

1 Tạo dãy 64 bit 0x bằng cách hoán vị x theo hoán vị IP (InitialPermutation)

gồm 32 bit bên phải của x0

Trang 13

2 Thực hiện 16 vòng lặp từ 64 bit thu được và 56 bit của khoá k (chỉ sửdụng 48 bit của khoá k trong mỗi vòng lặp) 64 bit kết quả thu được qua mỗivòng

lặp sẽ là đầu vào cho vòng lặp sau Các cặp từ 32 bitđược xác định theo quy tắc sau:

với ⊕ biểu diễn phép toán XOR trên hai dãy bit, là các dãy 48bit phát sinh từ khóa K cho trước (Trên thực tế, mỗi khóa Ki được phát sinhbằng cách hoán vị các bit trong khóa K cho trước)

3 Áp dụng hoán vị ngược đối với dãy bit , thu được từ ygồm

64 bit Như vậy

Hàm f được sử dụng ở bước 2 là hàm có gồm hai tham số: Tham số thứ nhất

A là một dãy 32 bit, tham số thứ hai J là một dãy 48 bit Kết quả của hàm f

là một dãy 32 bit Các bước xử lý của hàm như sau: Tham số thứnhất A (32 bit) được mở rộng thành dãy 48 bit bằng hàm mở rộng E Kết quảcủa hàm là một dãy 48 bit được phát sinh từ A bằng cách hoán vị theomột thứ tự nhất định 32 bit của A, trong đó có 16 bit của A được lặp lại hai lần trong

Thực hiện phép toán XOR cho hai dãy 48 bit và J, ta thu được một dãy

48 bit B Biểu diễn B thành từng nhóm 6 bit như sau:

Sử dụng tám ma trận , mỗi ma trận Si có kích thước 4x16 vàmỗi dòng của ma trận nhận đủ 16 giá trị từ 0 đến 15 Xét dãy gồm 6 bit

được xác định bằng giá trị của phần tử tại dòng r cột c của Sj, trong đó, chỉ số dòng r có biểu diễn nhị phân là , chỉ số cột c cóbiểu diễn nhị phân là Bằng cách này, ta xác định được các dãy 4bit

Trang 14

Tập hợp các dãy 4 bit Cj lại, ta có được dãy 32 bit Dãy

32 bit thu được bằng cách hoán vị C theo một quy luật P nhất định chính làkết quả của hàm

a) DES được xây dựng trên ý tưởng xấp xỉ của Horst Feistel

- Được xây dựng trên ý tưởng một khối của plaintext(PB) sẽ chạy qua nvòng mã hóa để sinh ra một khối của ciphertext(PC)

- Trong cấu tạo của DES sử dụng 2 nửa 32 bit trái và 32 bit phải Như đối với mọi mã Feistel, nửa phải của vòng trước được chuyển qua nửatrái của bước sau và lấy đầu ra của hàm vòng trên nửa phải và khóa con cộng cơ số 2 với nửa trái Tại vòng mã hóa i:

Input : Ri-1, Li-1

Ouput: Ri = F(Ri-1,Ki),Li = Ri-1

• Là một tính chất mong muốn của các mật mã

• Nếu thay đổi một bit ở đầu vào hoặc khóa thì đầu ra sẽ thay đổi trên nhiều bits (1/2)

• DES có thể hiện rất tốt tính chất này

+) Cỡ của khóa:

• Với 56 bits khóa, cho 256≈7.2 *1016 khóa tiềm năng

• DES bị tấn công vét cạn:

Trang 15

• Có nhiều nghiên cứu về thám mã trên DES.

• Lợi dụng những yếu điđiểm trong thiết kế của DES(S-box)

• Sử dụng kết quả thống kê=> cần một lượng thông tin lớn

• DES là hoàn hảo để đối phó với hình thức tấn công này

• DES có thể kháng cự được với hình thức tấn công Differential

cryptanalysis

• Việc sử dụng các S-box và các hàm hoán vị (P) làm cho DES mạnh hơnLucifer trong việc đối phó với thám mã sai phân

Câu 12: Trình bày AES:

+) Mã hóa và giải mã AES

- input cho cả mã hóa và giải mã là các khối 128 bits

- khóa có cỡ là 128 bits

 Add round key( thêm khóa vòng)

• XOR trạng thái với 128 bit với khoá

• Xử lý theo từng cột

• Dễ tìm hàm ngưngược

• Thiết kế để đơnđơn giản nhất có thể:

+ Dạng mã Vernam với khoá mở rộng

+ Đòi hỏi thêm một số bước tăng độ phức tạp/tính an toàn

+ Hàng 2 dịch quay vòng sang trái 1 bytes

+ Hàng 3 dịch quay vòng sang trái 2 bytes

+ Hàng 4 dịch quay vòng sang trái 3 bytes

• Hàm ngược đơn giản chỉ là dịch sang phải

• Do add round key thực hiện theo cột Do đó bước này có vai trò hoán vịcác bytes giữa các cột

+) Khóa mở rộng AES

Trang 16

• Dùng khoá 128 bits(16 bytes) và mở rộng thành mảng gồm 44/52/60 từ

32 bits

• Bắt đầu bằng việc copy khoá vào 4 từ đầu

• Các nhóm 4 từ tiếp theo, mỗi từ được xây dựng dựa trên từ đứng trước nó(wi-1 ) và từ của nhóm trước có vị trí tương ứng với nó (wi-4)

• Lưu ý từ đầu tiên trong nhóm = xor(g(wi-1),wi-4) các từ

còn lại trong nhóm đưđược tính = xor(wi-1,wi-4)

g là một hàm thực hiện liên tiếp: dịch trái, S-box, cuối cùng là xor với một hằng số

+) Cơ sở lý luận mở rộng khóa:

• Thiết kế chống các tấn công đã biết

• Các tiêu chuẩn thiết kế bao gồm:

– Biết một phần khoá không đủ để biết nhiều hơnhơn

– Phép biến đổi nghịch đảo đưđược

– Nhanh đối với nhiều kiểu CPU

– Sử dụng hằng số vòng để làm mất tính đối xứng

– Khuếch tán bit khoá thành khoá vòng

– Có đủ tính phi đối xứng để chống thám mã

– Đơn giản trong việc giải mã

Câu 13: Trình bày stream cipher?

Trả lời:

• Stream cipher xử lý plaintext theo từng bits hoặc theo từng nhóm nhỏ

• Stream cipher được xây dựng như sau:

– Khóa đóng vai trò làm input cho một bộ sinh số giả ngẫu nhiên(PGN).– Output của PGN được gọi là keystream

– Keystream được tổ hợp với plaintext để tạo thành ciphertext

Khi thiết kế stream cipher ta lưu ý hai yếu tố sau:

- Tính ngẫu nhiên của PNG khi sinh keystream

- Key size

Stream cipher đưđược chia thành hai loại:

- Stream cipher đối xứng và stream cipher bất đối xứng

• Nếu PNG thỏa mãn những yêu cầu đặt ra trong thiết kế thì tính an toàn của stream cipher là tương đương với block cipher

• Cài đặt của stream cipher thường đơn giản và chạy nhanh hơn block cipher

• Stream cipher cần tránh việc sử dụng lại khóa

• Nếu có được những tính chất của plaintext thì stream cipher không được an toàn

Trang 17

 Với những đặc điểm như vậy, Stream cipher thường được sử dụng cho:

- Mã hóa các dữ liệu ngẫu nhiên

- Những ứng dụng tương tác đòi hỏi thời gian mã và giải mã phải nhanhnhư: mã hóa âm thanh, giọng nói

Câu 14: Trình bày RC4:

Trả lời:

- Nền tảng của RC4 là phép hoán vị ngẫu nhiên

- RC4 có cấu trúc đơnđơn giản; dễ để hiểu và phân tích

- RC4 cho phép khóa K có cỡ từ 1- tới 256 bytes(8-1024 bits)

- RC4 sử dụng hai vector 256 bytes:

+ T là vector tạm thời và S là vector trạng thái

- RC4 hoạt động như sau:

1 Khởi tạo vector S

2 Khóa K được sử dụng để khởi tạo vector T

3 Vector T được sử dụng để hoán vị S

4 Thực hiện sinh keystream và mã hóa(giải mã)

+) sinh keystream(ks) và mã hóa

- Mã hóa đơn giản là sử dụng ks để xor với plaintext

Câu 15: Chế độ thi hành mật mã khối là gì ? Nêu ngắn gọn chế độ ECB

và CBC? Phân tích ưu nhược điểm của 2 chế độ trên.

Trả lời:

+) Một chế độ thi hành là một kỹ thuật nhằm nâng cao hiệu quả của mật mã khối cho một loại ứng dụng cụ thể

+) Chế độ ECB-electronic code book(sách mật mã điện tử)

- ECB là chế độ đơn giản nhất, mỗi khối được mã hóa một cách riêng

rẽ, chung một khóa K cho tất cả các khối của plaintext

- Khi dùng : truyền an toàn từng giá trị riêng lẻ

- Mã hóa ECB

Ngày đăng: 26/02/2015, 14:28

TỪ KHÓA LIÊN QUAN

w