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

Bài giảng an toàn thông tin thuật toán DES và các hàm băm

61 215 1

Đ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 61
Dung lượng 0,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

từ K16 đến K1, nghĩa là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K chứ không phải với K... Thời gian thực hiện Tính bảo mật của một hệ mã hoá đối xứ

Trang 1

I THUẬT TOÁN DES

(THE DATA ENCRYPTION STANDARD)

Trang 2

LỊCH SỬ CỦA THUẬT TOÁN DES

- Ngày 13/5/1973 ủy ban quốc gia về tiêu chuẩn của Mỹ công bố yêu cầu về hệ mật mã áp dụng cho toàn quốc Điều này đã đặt nền móng cho chuẩn mã hóa dữ liệu, hay là DES

- Lúc đầu Des được công ty IBM phát triển từ hệ

mã Lucifer, công bố vào năm 1975

- Sau đó Des được xem như là chuẩn mã hóa dữ liệu cho các ứng dụng

Trang 3

CẤU TRÚC THUẬT TOÁN

DES là thuật toán mã hóa khối, độ dài mỗi khối là

64 bit

Khóa dùng trong DES có độ dài toàn bộ là 64 bit Tuy nhiên chỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra

Des xuất ra bãn mã 64 bit

Trang 4

MÔ TẢ THUẬT TOÁN

Thuật toán được thực hiện trong 3 giai đoạn:

1. Cho bản rõ x (64bit) được hoán vị khởi tạo IP

(Initial Permutation) tạo nên xâu bit x0

x0=IP(x)=L0R0

L0 là 32 bit đầu tiên của x0

R0 là 32 bit cuối của x0

Trang 6

MÔ TẢ THUẬT TOÁN (tt.)

Trang 7

Một vòng của quá trình lập mã được

mô tả qua hình

Trang 8

MÔ TẢ THUẬT TOÁN

3 Áp dụng hoán vị ngược IP -1 cho xâu bit R 16 L 16 ta nhận được bản mã y.

Trang 9

Hoán vị IP-1

 Hàm f lấy đối số đầu là xâu nhập Ri (32 bit)

đối số thứ hai là Ki (48bit) và tạo ra xâu xuất có

độ dài 32 bit Các bước sau được thực hiện

1. Đối số đầu Ri sẽ được “mở rộng” thành xâu có

độ dài 48 bit tương ứng với hàm mở rộng E cố định

E(Ri) bao gồm 32 bit từ Ri, được hoán vị theo một cách thức xác định, với 16 bit được tạo ra 2

Trang 11

2 Tính E(Ri)  Ki và viết kết quả như là nối của 8 xâu 6bit.

b2b3b4b5 xác định biểu diễn nhị phân của cột c của Sj (0<=c<=15)

Trang 12

Ví dụ: Ta có B1=011000 thì b1b6=00 (xác định r=0), b2b3b4b5=1100 (xác định c=12), từ đó ta tìm được phần tử ở vị trí (0,12) > S1(B1)=0101 (tương ứng với số 5).

Trang 13

4 Xâu bit C = C1C2C3C4C5C6C7C8 có độ dài 32 bit được hoán vị tương ứng với hoán vị cố định P Kết quả có P(C)= f(Ri,Ki).

Trang 15

Khóa K

- K là một xâu có độ dài 64 bit trong đó 56 bit dùng làm khóa và 8 bit dùng để kiểm tra sự bằng nhau (phát hiện lỗi)

Trang 16

Quá trình tạo các khóa con (subkeys) từ khóa K được

mô tả như sau:

1. Cho khóa K 64 bit, loại bỏ các bit kiểm tra và

hoán vị các bit còn lại của K tương ứng với hoán vị cố định PC-1 Ta viết PC1(K) = C0D0, với C0 bao gồm 28 bít đầu tiên của PC-1(k) và

D0 là 28 bit còn lại

Trang 18

2 Với i nằm trong khoảng từ 1 đến 16, ta tính Ci, Di như sau:

for(i=1;i<=16;i++){

Ci = LSi(Ci-1)

Di = LSi(Di-1) }

Và Ki = PC-2(CiDi)

- PC-2 là 1 hoán vị cố định khác.

- LSi biểu diễn phép chuyển chu trình sang trái của 1 hoặc của 2 vi trí tùy thuộc vào giá trị của i

- Đẩy sang trái 1 vị trí nếu i= 1, 2, 9 hoặc 16, và đẩy 2

vị trí trong những trường hợp còn lại

Trang 19

Sơ đồ tạo các khóa con

Trang 20

từ K16 đến K1, nghĩa là trong bước 2 của quá trình

mã hoá dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K chứ không phải với K

Trang 21

Thời gian thực hiện

 Tính bảo mật của một hệ mã hoá đối xứng là một hàm hai tham số: độ phức tạp của thuật toán và độ dài của khoá.

 Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật toán.

 Có nghĩa rằng sẽ không có phương pháp nào để phá vỡ

hệ thống mật mã hơn là cố gắng thử mọi khoá có thể, phương pháp đó được gọi là brute-force attack Nếu khoá

có độ dài 8 bít, suy ra sẽ có 28=256 khoá Vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra khoá đúng

Trang 22

Thời gian thực hiện (tt)

 Nếu khoá có độ dài 56 bít, thì sẽ có 256 khoá có thể

sử dụng Giả sử một Suppercomputer có thể thử một triệu khoá trong một giây, thì nó sẽ cần 2000 năm để tìm ra khoá đúng Nếu khoá có độ dài 64 bít, thì với chiếc máy trên sẽ cần 600,000 năm để tìm ra khoá đúng trong số 264 khoá Nếu khoá có độ dài 128 bít, thì sẽ mất 1025 năm để tìm ra khoá đúng Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025 thì một thời gian quá dài Với một khoá 2048 bít, một máy tính song

Trang 23

Đặc điểm của mã DES

E K là bản mã hóa của E với khóa K P và C là văn

bản rõ (trước khi mã hóa) và văn bản mã (sau khi mã hóa)

Trang 24

2 Các khóa yếu trong mã Des:

Ngoài ra DES còn có 4 khóa yếu (weak keys) Khi

sử dụng khóa yếu thì mã hóa (E) và giải mã (D) sẽ cho

ra cùng kết quả:

E K (E K (P)) = P or equivalently, E K = D K

Bên cạnh đó, còn có 6 cặp khóa nửa yếu weak keys) Mã hóa với một khóa trong cặp, K1, tương đương với giải mã với khóa còn lại, K2:

E K1 (E K2 (P))=P or equivalently E K1 =D K2

Trang 25

3 Triple DES:

Triple-DES chính là DES với hai chìa khoá 56 bit Cho một bản tin cần mã hoá, chìa khoá đầu tiên được dùng để mã hoá DES bản tin đó.

Kết quả thu được lại được cho qua quá trình giải mã DES nhưng với chìa khoá là chìa khoá thứ hai.

Bản tin sau qua đã được biến đổi bằng thuật toán DES hai lần như vậy lại được mã hoá DES một lần nữa với chìa khoá đầu tiên để ra được bản tin mã hoá cuối cùng

Trang 26

Ứng dụng của DES

DES thường được dùng để mã hoá bảo mật các thông tin trong quá trình truyền tin cũng như lưu trữ thông tin Một ứng dụng quan trọng khác của DES là kiểm tra tính xác thực của mật khẩu truy nhập vào một hệ thống (hệ thống quản lý bán hàng, quản lý thiết bị viễn thông…), hay tạo và kiểm tính hợp lệ của một mã số bí mật (thẻ

internet, thẻ điện thoại di động trả trước), hoặc

Trang 27

HÀM BĂM

Trang 28

Giới thiệu

Định nghĩa:

Một hàm Băm H sẽ lấy ở đầu vào một thông tin X có kích thước biến thiên và sinh kết quả là một chuỗi có độ dài cố định, được gọi là cốt của bức điện (message digest)

Ví dụ như khi B muốn ký một bức điện x (độ dài bất kỳ), đầu tiên anh ta tính cốt của bức điện z = h(x) (độ dài cố định) và sau đó ký y = sigK(z) Anh ta phát cặp (x,y) lên kênh truyền, bây giờ việc kiểm tra có thể thực

Trang 30

Tính chất của hàm băm

Trang 31

Thuật toán MD5

Trang 32

Phát triển bởi Rivest (MIT)

Đầu vào có độ dài bất kỳ

Đầu ra 128 bit

Trang 33

Sơ đồ chung

Trang 34

Các bước thực hiện

 Được bổ xung các bit để độ dài đồng dư với 448 mod 512.

 Việc bổ xung luôn luôn thực hiện (thậm chí với độ dài mong muốn).

 Số lượng bit bổ xung 1-512

 Các bit bổ xung 10…0

Trang 35

Bước 2 : Bổ sung giá trị độ dài

 Một khối 64 bit (thể hiện độ dài của ban tin khởi đầu) được thêm vào.

 Ghi độ dài tin tức theo mod 2 64

 A = 67452301,

 B = EFCDAB89,

 C = 98BADCFE,

 D = 10325476.

Trang 36

 Để lưu giữ các kết quả trung gian và cuối cùng của hàm băm, sẽ sử dụng 128 bit đệm.

 Đệm có thể trình bày dưới dạng bốn ghi dịch 32 bit (A,

B, C, D).

word A : 01 23 45 67

word B : 89 ab cd efword C : fe dc ba 98

Trang 37

khối theo 16 từ).

 Bốn công đoạn xử lý.

 Các công đoạn có cấu trúc giống nhau.

 Mỗi công đoạn sử dụng hàm logic nguyên thủy của mình

F, G, H, I.

 Lưu A vào AA, B vào BB, C vào CC, D và DD AA=A

BB=B

Trang 38

Gia công một khối 512 bit trong MD5

Trang 39

Trong mỗi công đoạn cũng được sử dụng một phần tư của bảng 64 phần tử T[1…64], bao gồm từ các giá trị của hàm sin

Trong bảng T, phần tử thứ i, được ký hiệu T[i], là phần nguyên của giá trị 232  abs(sin(i)), ở đây i là góc tính theo radian

Trang 40

Rõ ràng rằng abs(sin(i)) có giá trị nằm trong dải từ 0…

1, mỗi phần tử T là một số nguyên, mà có thể trình bày trong dạng 32 bit

Bảng bảo đảm”phân đều” tập mã 32 bit, nó có sứ mệnh “đập tan” sự đều dặn bất kỳ của số liệu đầu vào

Trang 41

Giá trị đầu ra của công đoạn thứ bốn được bổ xung thêm giá trị đầu vào của công đoạn thứ nhất (CVq) và kết quả nhận được CVq+1

 Phép cộng được thực hiện theo modul 2 32

Trang 42

Các giá trị của hàm logic

Trang 43

F(b,c,d)=bcvnot(c)d

Trang 44

Bảng T

Trang 45

Phần tử cơ bản của 1 vòng

Trang 46

Định nghĩ các hàm

FF(a,b,c,d,Mj,s,ti): a = b + ((a + F(b,c,d) + Mj + ti)

Trang 47

Các chu kỳ thực hiện

 Vòng1:

[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]

[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]

[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

 Vòng 2:

[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]

[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]

[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

Trang 48

Các chu kỳ thực hiện(tiếp)

 Vòng 3:

[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]

[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]

[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]

[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

 Vòng 4:

[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]

[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]

[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]

[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

Sau đó làm các phép cộng sau ( Nghĩa là cộng vào mỗi thanh ghi giá trị của nó trước khi vào

Trang 49

Bước 5 : Đầu ra

Mã số thông điệp được tạo ra là A,B,C,D Nghĩa là chúng ta bắt đầu từ byte thấp của A, kết thúc với byte cao của D

Trang 50

HÀM BĂM SHA

Trang 51

1 Khái niệm hàm Băm

 Năm 1995, tổ chức NIST cùng NSA đã thiết kế ra thuật toán hàm Băm an toàn (SHA) sử dụng cho chuẩn chữ

ký điện tử DSS SHA được thiết kế dựa trên những nguyên tắc của MD4/MD5,tạo ra 160-bit giá trị Băm.

 SHA (Secure Hash Algorithm) là các thuật giải dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu

có chiều dài không đổi với xác suất khác biệt cao.

 Việc tìm lại được đoạn dữ liệu gốc là không khả thi.

 Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm là không khả thi.

 Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ

Trang 52

Thuật toán hàm băm SHA có 2 bước là tiền

xử lý và tính toán giá trị băm.

- Bước tiền xử lý gồm các thao tác + Mở rộng bức điện

+ Phân tích bức điện đã mở rộng thành các khối m bit.

+ Khởi tạo giá trị băm ban đầu.

- Bước tính toán giá trị băm bao gồm:

Làm N lần các công việc sau:

+ Tạo bảng phân bố bức điện từ khối thứ i.

2 Mô hình thực hiện:

Trang 53

Cũng giống với MD5, bức điện được cộng thêm một bit 1 và các bit 0 ở cuối bức điện có thể chia hêt cho 512 SHA sử dụng 5 thanh ghi dịch:

Bức điện được chia ra thành nhiều khối 512-bit Ta cũng đặt là

a, b, c, d và e thay cho A, B, C, D và E đối với khối 512-bit đầu tiên của bức điện SHA có bốn vòng lặp chính với mỗi vòng thực hiện 20 lần biến đổi: bao gồm thực hiện với một hàm phi

2 Mô hình thực hiện: (tt)

Trang 54

 SHA xác lập bốn hàm phi tuyến tính như sau:

 ft(X,Y,Z) = (X Y)  ((¬X) Z) vớiX) Z) với 0 ≤ t ≤ 19

Trang 55

Các khối bức điện được mở rộng từ 16 word 32 bit (M0 đến M15) thành

80 word 32 bit (W0 đến W79) bằng việc sử dụng thuật toán mở rộng:

Wt = Mt với 0 ≤ t ≤ 15

Wt= (Wt-3 Wt-8 Wt-14 Wt-16 ) với 16 ≤ t ≤ 79.

Ta có thể miêu tả 1 vòng lặp SHA như sau:

2 Mô hình thực hiện: (tt)

Trang 56

 Nếu gọi Wt là biểu diễn của khối con thứ t của bức điện được

mở rộng và <<<s là biểu diễn dịch trái s bít thì vòng lặp chính của SHA như sau:

Trang 57

3 Khung thuật toán chung của các hàm băm SHA

 Trong các hàm băm SHA

chúng ta cần sử dụng thao tác quay phải một từ, ký hiệu là ROTR và thao tác dịch phải một từ, ký hiệu là SHR.

Trang 58

 for t = 0 to 63

 T1 = h + ∑1(e) + Ch(e, f, g) + Kt + Wt

 T2 = ∑0(a) + Maj(a, b, c)

H0(i) = a+H0(i-1) H1(i) = b+H1(i-1) H2(1)=c+H2(i-1) H3(1)=d+H3(i-1) H4(1)=e+H4(i-1) H5(1)=f+H5(i-1)

3 Khung thuật toán chung của các hàm băm SHA (tt)

Trang 59

4 Tính bảo mật trong SHA:

Để hiểu rõ hơn về tính bảo mật của SHA ta hãy

so sánh SHA với MD5 để có thể tìm ra những điểm khác nhau của hai hằm băm này:

- MD5 và SHA đều cộng thêm các bit giả để tạo thành những khối chia hết cho 512-bit, nhưng SHA sử dụng cùng một hàm phi tuyến tính f cho

cả bốn vòng

- MD5 sử dụng mỗi hằng số duy nhất cho mỗi bước biến đổi, SHA sử dụng mỗi hằng số cho

Trang 60

 - Trong hàm phi tuyến thứ 2 của MD5 có sự cải tiến so với MD4, SHA thì sử dụng lại hàm phi tuyến của MD4, tưc (X Y)  (X Z)  (Y Z).

 - Trong MD5 với mỗi bước được cộng kết quả của bước trước đó Sự khác biệt đối với SHA là cột thứ 5 được cộng (không phải b, c hay d trong MD5), điều này làm cho

phương pháp tấn công của Boer-Bosselaers đối với SHA

bị bất bại (den Boer và Bosselaers là hai người đã phá thành công 2 vòng cuối trongMD4).

 Cho đến nay, chưa có một công bố nào được đưa ra trong

3 Tính bảo mật trong SHA (tt)

Trang 61

5 Một số ứng dụng của hàm Băm

Là sử dụng với các hệ chữ ký điện tử, trong đó thay vì ký trực tiếp lên các văn bản, thông điệp (mà trong đa số trường hợp là rất lớn, tốc độ chậm) người ta sẽ ký lên giá trị băm đại diện cho toàn bộ văn bản đó

Ngoài việc sử dụng với các hệ chữ ký điện tử hàm băm còn được sử dụng vào các mục đích khác như: xác thực hóa thông điệp, xác thực hóa người dùng

Hiện nay tất cả các hệ quản trị cơ sở dữ liệu đều được trang bị các hàm băm để cho phép người

Ngày đăng: 28/03/2019, 15:26

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w