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

Lý thuyết mật mã và an toàn dữ liệu

78 1,5K 22
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lý thuyết mật mã và an toàn dữ liệu
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Mật mã và An toàn dữ liệu
Thể loại tài liệu học tập
Thành phố Hà Nội
Định dạng
Số trang 78
Dung lượng 886,22 KB

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

Nội dung

Có thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình làm cho kẻ tấn công nếu chặn được thông báo trên đường truyền thì cũng không thể đọc được và phải có một giao thức giữa

Trang 1

1

1 CƠ SỞ TOÁN HỌC 3

1.1 Lý thuyết số 3

1.1.1 Khái niệm đồng dư Modulo 3

1.1.2 Định lý về đồng dư thức 3

1.1.3 Khái niệm phần tử nghịch đảo 4

1.1.4 Thuật toán Euclide 4

1.1.5 Phần tử nguyên thủy và logarith rời rạc 4

1.1.6 Thặng dư bậc hai và ký hiệu Legendre 5

1.1.7 Một số thuật toán kiểm tra tính nguyên tố 6

1.2 Lý thuyết về độ phức tạp tính toán 6

1.2.1 Độ phức tạp tính toán 6

1.2.2 Các lớp phức tạp 7

1.3 Hàm một phía và hàm cửa sập một phía 8

2 GIỚI THIỆU VỀ MÃ HÓA 9

2.1 Các thuật ngữ 9

2.2 Định nghĩa hệ mật mã .9

2.3 Những yêu cầu đối với hệ mật mã 10

2.4 Các phương pháp mã hoá 10

2.4.1 Mã hoá đối xứng khoá bí mật 10

2.4.1.1 Nơi ứng dụng 11

2.4.1.2 Các vấn đề đối với phương pháp mã hoá đối xứng 11

2.4.2 Mã hoá phi đối xứng khoá công khai 12

2.4.2.1 Nơi ứng dụng 12

2.4.2.2 Điều kiện hệ mã hóa khóa công khai 12

2.5 Các hệ mã hóa đơn giản 13

2.5.1 Mã dịch vòng 15

2.5.2 Mã thay thế 17

2.5.3 Mã Apphin 18

2.5.4 Mã Vigenère 19

2.5.5 Mã HILL 21

2.5.6 Mã hoán vị 23

3 HỆ MÃ HÓA DES 24

3.1 Mô tả DES 24

3.1.1 Thuật toán DES 25

Trang 2

2

3.1.3 Mô tả hàm f 25

3.1.4 Mô tả chi tiết các hàm trong DES 27

3.1.5 Tính toán bảng khóa từ khóa K 30

3.2 Ví dụ 34

3.3 Tranh luận về DES 37

3.4 DES trong thực tế 38

3.5 Ứng dụng của DES 42

4 MÃ HÓA KHÓA CÔNG KHAI 43

4.1 Bài toán Logarit rời rạc (DL) 43

4.2 Các thuật toán cho bài toán Logarit rời rạc 43

4.3 Hệ mật RSA 45

4.3.1 Định nghĩa hệ mật RSA 46

4.3.2 Ðộ an toàn của hệ RSA 48

4.3.3 Một số tính chất của hệ RSA 48

4.3.4 Ứng dụng của RSA 50

4.4 Hệ mật Elgamal 50

4.5 CÁC PHƯƠNG PHÁP KIỂM TRA SỐ NGUYÊN TỐ LỚN 51

4.5.1 Kiểm tra Miller-Rabin 51

Kiểm tra Miller-Rabin lặp 53

4.5.2 Kiểm tra Fermat 54

4.5.3 Kiểm tra Solovay-Strassen 55

5 CHỮ KÝ ĐIỆN TỬ 57

5.1 Định nghĩa 57

5.2 Hàm băm 58

5.3 Phân loại các sơ đồ chữ ký điện tử 60

5.3.1 Sơ đồ chữ ký kèm thông điệp 61

5.3.2 Sơ đồ chữ ký khôi phục thông điệp 62

5.4 Sơ đồ chữ ký RSA 63

5.5 Sơ đồ chữ kí ELGAMAL 64

5.5.1 Định nghĩa 65

5.5.2 Độ an toàn của chữ ký Elgamal 66

5.6 Chuẩn chữ ký số DSS (Digital Signature Standard) 69

5.6.1 Giới thiệu 69

5.6.2 Các giải thuật cơ bản của DSS 70

5.6.3 Tính chất của chữ ký của DSS 72

Trang 3

3

5.7 Tấn công chữ ký điện tử 74

5.8 Kết luận 75

6 ỨNG DỤNG 76

7 BÀI TẬP, CHỦ ĐỀ THẢO LUẬN 77

8 TÀI LIỆU THAM KHẢO 78

9 PHỤ LỤC: MÃ NGUỒN 80

9.1 Mã hóa dịch chuyển 80

9.2 Mã hóa thay thế 83

9.3 Mã hóa RSA 88

9.4 Chữ ký số Elgamal 93

Trang 4

Trang 1

AN TOÀN DỮ LIỆU TRÊN MÁY TÍNH

Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụng các công nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết Công nghệ mạng máy tính đã mang lại những lợi ích to lớn

Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập, chia sẻ và khai thác thông tin một cách dễ dàng và hiệu quả Các công nghệ E-mail cho phép mọi người có thể gửi thư cho người khác cũng như nhận thư ngay trên máy tính của mình Gần đây

có công nghệ E-business cho phép thực hiện các hoạt động thương mại trên mạng máy tính Việc ứng dụng các mạng cục bộ trong các tổ chức, công ty hay trong một quốc gia là rất phong phú Các hệ thống chuyển tiền của các ngân hàng hàng ngày có thể chuyển hàng tỷ đôla qua hệ thống của mình Các thông tin về kinh tế, chính trị, khoa học xã hội được trao đổi rông rãi

Tuy nhiên lại nảy sinh vấn đề về an toàn thông tin Đó cũng là một quá trình tiến triển hợp logic: khi những vui thích ban đầu về một siêu xa lộ thông tin, bạn nhất định nhận thấy rằng không chỉ cho phép bạn truy nhập vào nhiều nơi trên thế giới, Internet còn cho phép nhiều người không mời mà tự ý ghé thăm máy tính của bạn

Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi người truy nhập, khai thác, chia sẻ thông tin Những nó cũng là nguy cơ chính dẫn đến thông tin của bạn bị

hư hỏng hoặc phá huỷ hoàn toàn

Có những thông tin vô cùng quan trọng mà việc bị mất hay bị làm sai lệch có thể ảnh hưởng đến các tổ chức, các công ty hay cả một quốc gia Các thông tin về an ninh quốc gia, bí mật kinh doanh hay các thông tin tài chính là mục tiêu của các tổ chức tình báo nước ngoài về chính trị hay công nghiệp hoặc kẻ cắp nói chung Bọn chúng

có thể làm mọi việc có thể để có được những thông tin quý giá này Thử tưởng tượng nếu có kẻ xâm nhập được vào hệ thống chuyển tiền của các ngân hàng thì ngân hàng

đó sẽ chịu những thiệt hại to lớn như mất tiền có thể dẫn tới bị phá sản Chưa kể nếu

hệ thông thông tin an ninh quốc gia bị đe doạ thì hậu quả không thể lường trước được Theo số liệu của CERT(Computer Emegency Response Team - “Đội cấp cứu máy tính”), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994 Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng Một số vụ tấn công có quy mô khổng

lồ (có tới 100.000 máy tính bị tấn công) Hơn nữa, những con số này chỉ là phần nổi của tảng băng Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do,

Trang 5

Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự phát triển của

việc trao đổi thông tin quảng bá trên toàn cầu thì một giải pháp tốt nhất là mã hoá

thông tin Có thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình làm cho

kẻ tấn công nếu chặn được thông báo trên đường truyền thì cũng không thể đọc được

và phải có một giao thức giữa người gửi và người nhận để có thể trao đổi thông tin, đó

là các cơ chế mã và giải mã thông tin

Ngày nay thì việc mã hoá đã trở nên phổ cập Các công ty phần mềm lớn trên thế giới đều có nghiên cứu và xây dựng các công cụ, thuật toán mã hoá để áp dụng cho thực tế Mỗi quốc gia hay tổ chức đều có những cơ chế mã hoá riêng để bảo vệ hệ thống thông tin của mình

Một số vấn đề an toàn đối với nhiều mạng hiện nay:

 Một người dùng chuyển một thông báo điện tử cho một người sử dụng khác Một bên thứ ba trên cùng mạng LAN này sử dụng một thiết bị nghe trộm gói để lấy thông báo và đọc các thông tin trong đó

 Cũng trong tình huống trên bên thứ ba chặn thông báo, thay đổi các thành phần của nó và sau đó lại gửi cho người nhận Người nhận không hề nghi ngờ gì trừ khi nhận ra thông báo đó là vô lý, và có thể thực hiện vài hành động dựa trên các thành phần sai này đem lại lợi ích cho bên thứ ba

 Người dùng log vào một server mà không sử dụng mật khẩu được mã hoá Một người khác đang nghe trộm trên đường truyền và bắt được mật khẩu logon của người dùng, sau đó có thể truy nhập thông tin trên server như người sử dụng

 Một người quản trị hệ thống không hiểu về khía cạnh an toàn và yêu cầu của hệ thống và vô tình cho phép người dùng khác truy nhập vào thư mục chứa các thông tin hệ thống Người dùng phát hiện ra họ có thể có được các thông tin hệ thống và có thể dùng nó phục vụ cho lợi ích của mình

Trang 6

Trang 3

Trong phần này sẽ trình bày về một số cơ sở toán học của mã hóa, điều này sẽ giúp

ta nắm được một cách chi tiết hơn về các phương pháp mã hóa

1.1.1 Khái niệm đồng dư Modulo

Định nghĩa 1: Giả sử a và b là các số nguyên và m là một số nguyên dương Khi đó

ta vi ết a b(mod m) n ếu b-a chia hết cho m Mệnh đề a b(mod m) được gọi là “a đồng dư với b theo mođun m”

Giả sử chia a và b cho m và ta thu được thương nguyên và phần dư, các phần dư nằm giữa 0 và m-1, nghĩa là a = q1*m + r1 và b = q2*m + r2 trong đó 0 ≤ r1 ≤ m-1 và 0

≤ r2 ≤ m-1 Khi đó có thể dễ dàng thấy rằng a ≡ b(mod m) khi và chỉ khi r1 = r2

Ta sẽ dùng ký hiệu a mod m để xác định phần dư khi a được chia cho m (chính là giá trị r1 ở trên) Như vậy: a≡b(mod m) khi và chỉ khi (a mod m) = (b mod m) Phép rút gọn, thay a bằng a mod m thì ta nói rằng a được rút gọn theo modulo m

Nhận xét: Nhiều ngôn ngữ lập trình của máy tính xác định a mod m là phần dư trong dải -m+1,…,m-1 có cùng dấu với a Ví dụ -18 mod 7 sẽ là –4, giá trị này khác với giá trị 3 là giá trị được xác định theo công thức trên Tuy nhiên, để thuận tiện ta sẽ xác định a mod m luôn là một số không âm

Bây giờ ta có thể định nghĩa số học modulo m: Zm được coi là tập hợp {0,1,…,m-1}

có trang bị hai phép toán cộng và nhân Việc cộng và nhân trong Zm được thực hiện giống như cộng và nhân các số thực ngoại trừ một điểm là các kết quả được rút gọn theo mođun m

1.1.2 Định lý về đồng dư thức

Định lí 1: Đồng dư thức ax b (mod m) ch ỉ có một nghiệm duy nhất x Z m v ới

m ọi b Z m khi và ch ỉ khi UCLN(a,m) = 1

Ta giả sử rằng, UCLN(a,m) = d >1 Khi đó, với b = 0 thì đồng dư thức ax ≡ 0 (mod m) sẽ có ít nhất hai nghiệm phân biệt trong Zm là x = 0 và x = m/d

Trang 7

Trang 4

1.1.3 Khái niệm phần tử nghịch đảo

Định nghĩa 2: Giả sử a Z m Ph ần tử nghịch đảo (theo phép nhân) của a là phần

t ử a -1 Z m sao cho aa -1 a -1 a 1 (mod m)

Ví dụ Z10, a=5, suy ra a-1=9

Bằng các lý luận tương tự như trên, có thể chứng tỏ rằng a có nghịch đảo theo mođun m khi và chỉ khi UCLN(a,m) = 1, và nếu nghịch đảo này tồn tại thì nó phải là duy nhất Ta cũng thấy rằng, nếu b = a-1 thì a = b-1 Nếu m là số nguyên tố thì mọi phần tử khác không của Zm đều có nghịch đảo

1.1.4 Thuật toán Euclide

Cho hai số tự nhiên a, n Ký hiệu (a,n) là ước số chung lớn nhất của a,n; φ(n) là số các số nguyên dương < n và nguyên tố với n, không mất tính tổng quát giả sử n > a Thuật toán Euclide tìm UCLN (a,n) được thực hiện bằng một dãy các phép chia liên tiếp sau đây:

ta dễ chứng minh bằng qui nạp rằng: rj ≡ tjr1 (mod r0)

Do đó, nếu (n,a) = 1, thì tm = a-1 mod n

1.1.5 Phần tử nguyên thủy và logarith rời rạc

Cho số n nguyên dương Ta biết rằng tập các thặng dư thu gọn theo mođun n (tức là tập các số nguyên dương < n và nguyên tố với n) lập thành một nhóm với phép nhân

Trang 8

Trang 5

mod n, ta ký hiệu là Zn* Nhóm đó có cấp (số phần tử) là φ(n) Một phần tử g ∈ Zn* có

cấp m, nếu m là số nguyên dương bé nhất sao cho gm = 1 trong Zn*

Theo một định lý đại số, ta có m |φ(n) (ký hiệu m là ước số của φ(n)) vì vậy với mọi

b ∈ Zn* ta luôn có: bφ(n) ≡ 1 (mod n)

Nếu p là số nguyên tố, thì do φ(p) = p-1, nên ta có với mọi b nguyên tố với p

bp-1 ≡ 1 (mod p) (1)

Nếu b có cấp p-1, thì p-1 là số mũ bé nhất sao cho có công thức (1), do đó các phần

tử b, b2,…, bp-1 đều khác nhau, và lập thành Zp* Nói cách khác, b là một phẩn tử sinh,

hay như thường gọi là phần tử nguyên thủy của Zp* ; và khi đó Zp* là một nhóm cyclic

Trong lý thuyết số, người ta đã chứng minh đươc các định lý sau đây:

• Với mọi số nguyên tố p, Zp* là nhóm cyclic, và số các phần tử nguyên thủy của

Zp* bằng φ(p-1)

• Nếu g là phần tử nguyên thủy theo mođun p, thì β = gi, với mọi i mà (i,p-1) = 1,

cũng là phần tử nguyên thủy theo mođun p

1.1.6 Thặng dư bậc hai và ký hiệu Legendre

Cho p là một số nguyên tố lẻ, và x là một số nguyên dương ≤ p-1 x được gọi là một

thặng dư bậc hai theo mođun p, nếu phương trình: y2 ≡ x (mod p) có nghiệm

Ta có tiêu chuẩn Euler sau đây: x là thặng dư bậc hai theo mođun p, nếu và chỉ nếu

Tiêu chuẩn đó được chứng minh như sau: Giả sử có x≡ y2 (mod p) Khi đó có:

x(p-1)/2 ≡ (y2)(p-1)/2 ≡ yp-1 ≡ 1 (mod p) ;

Ngược lại, giả sử rằng x(p-1)/2 ≡ 1 (mod p) Lấy b là một phần tử nguyên thủy (mod

p), ta có x ≡ bi (mod p) với số i nào đó

Ta có:

x(p-1)/2 ≡ (bi)(p-1)/2 (mod p)

≡ bi(p-1)/2 (mod p)

Vì b có cấp p-1, do đó p-1 phải là ước số của i(p-1)/2, suy ra i phải là số chẵn, và

căn bậc hai của x là ±bi/2

Giả sử p là số nguyên tố lẻ Với mọi a ≥0, ta định nghĩa ký hiệu 

Trang 9

Trang 6

Ta có tính chất quan trọng sau đây: nếu p là số nguyên tố lẻ thì với mọi số nguyên a

≥0, ta có:

≡ a(p-1)/2 (mod p)

1.1.7 Một số thuật toán kiểm tra tính nguyên tố

Ta phát biểu một số tính chất sau đây, chúng là cơ sở cho việc phát triển một số thuật toán xác suất thử tính nguyên tố của các số nguyên

a ≡ a(n-1)/2 (mod n)}| ≤ (n-1)/2

Solovay_Strassen (cải tiến bởi Lehmann):

Nếu n là số nguyên tố, thì với mọi 1 ≤ a ≤ n-1:

đã bù đắp cho khoảng trống đó, cho ta nhiều tri thức cơ bản, đồng thời có nhiều ứng dụng thực tế rất phong phú



 p a

Trang 10

Độ phức tạp tính toán của một bài toán (của một hàm) được định nghĩa là độ phức tạp của một thuật toán tốt nhất có thể tìm được để giải bài toán (hay tính hàm) đó

Một bài toán được cho bởi:

• Một tập các dữ liệu vào Y

• Một câu hỏi dạng R(I)? với I ∈ Y, lời giải bài toán là đúng hay không

Ví dụ:

• Bài toán đồng dư bậc hai

o Dữ liệu: Các số nguyên dương a,b,c

o Câu hỏi: Có hay không số x < c sao cho x2 ≡ a mod b ?

• Bài toán hợp số

o Dữ liệu: Số nguyên dương N

o Câu hỏi: Có hay không hai số m,n > 1 sao cho N = m×n ?

Nhiều bài toán được chứng tỏ là thuộc lớp NP, nhưng chưa ai chứng minh được là chúng thuộc lớp P hay không Và một vấn đề cho đến nay vẫn còn mở, chưa có lời giải là: NP = P ?

Một cách trực giác, lớp NP bao gồm các bài toán khó hơn phức tạp hơn các bài toán thuộc lớp P, nhưng điều có vẻ hiển nhiên trực giác đó vẫn chưa được chứng minh hay bác bỏ

Trang 11

Trang 8

Giả sử NP ≠ P, thì trong NP có một lớp con các bài toán được gọi là NP_đầy đủ , đó

là những bài toán mà bản thân thuộc lớp NP, và mọi bài toán bất kỳ thuộc lớp NP đều

có thể qui dẫn về bài toán đó bằng một hàm tính được trong thời gian đa thức

Cho đến nay, người ta đã chứng minh được hàng trăm bài toán thuộc nhiều lĩnh vực khác nhau là NP_đầy đủ Bài toán đồng dư bậc hai kể trên là NP_đầy đủ, bài toán hợp

số không là NP_đầy đủ, nhưng chưa tìm được một thuật toán làm việc trong thời gian

đa thức giải nó

Hàm f(x) được gọi là hàm một phía, nếu tính y = f(x) là dễ, nhưng việc tính ngược x=f-1(y) là rất khó Có thể hiểu “dễ” là tính được trong thời gian đa thức (với đa thức bậc thấp), và “khó” là không tính được trong thời gian đa thức

Ví dụ: Hàm f(x) = gx (mod p) (p là số nguyên tố, g là phần tử nguyên thủy theo mođun p) là hàm một phía Vì biết x tính f(x) là khá đơn giản, nhưng biết f(x) để tính x thì với các thuật toán đã biết hiện nay đòi hỏi một khối lượng tính

toán cỡ O(exp(lnp lnlnp) 112

) phép tính (nếu p là số nguyên tố cỡ 200 chữ số thập phân, thì khối lượng tính toán trên đòi hỏi một máy tính 1 tỷ phép tính/giây làm việc không nghỉ trong khoảng 3000 năm)

Hàm f(x) được gọi là hàm cửa sập một phía, nếu tính y = f(x) là dễ, tính x = f-1(y) là rất khó, nhưng có cửa sập z để tính x = fz-1(y) là dễ

Ví dụ: Cho n = p×q là tích của hai số nguyên tố lớn,a là số nguyên, hàm f(x)=xa(mod n) là hàm cửa sập một phía, nếu chỉ biết n và a thì tính x = f-1(y) là rất khó, nhưng nếu biết cửa sập, chẳng hạn hai thừa số của n, thì sẽ tính được

f-1(y) khá dễ

Trên đây là hai thí dụ điển hình, và cũng là hai trường hợp được sử dụng rộng rãi về hàm một phía và hàm cửa sập một phía Vì đây là những điểm then chốt của lý thuyết mật mã khóa công khai, nên việc tìm kiếm các loại hàm một phía và cửa sập một phía được nghiên cứu rất khẩn trương, và đến nay tuy có đạt được một số kết quả, nhưng việc tìm kiếm vẫn tiếp tục, đầy hứng thú nhưng cũng đầy khó khăn

Trang 12

4 Giải mã là quá trình chuyển ngược lại thông tin được mã hoá thành bản rõ

5 Thuật toán mã hoá là các thủ tục tính toán sử dụng để che dấu và làm rõ thông tin

Thuật toán càng phức tạp thì bản mã càng an toàn

6 Một khoá là một giá trị làm cho thuật toán mã hoá chạy theo cách riêng biệt và

sinh ra bản rõ riêng biệt tuỳ theo khoá Khoá càng lớn thì bản mã kết quả càng an toàn Kích thước của khoá được đo bằng bit Phạm vi các giá trị có thể có của khoá được gọi là không gian khoá

7 Phân tích mã là quá trình hay nghệ thuật phân tích hệ mật mã hoặc kiểm tra tính

toàn vẹn của nó hoặc phá nó vì những lý do bí mật

8 Một kẻ tấn công là một người (hay hệ thống) thực hiện phân tích mã để làm hại hệ

thống Những kẻ tấn công là những kẻ thọc mũi vào chuyện người khác, các tay hacker, những kẻ nghe trộm hay những các tên đáng ngờ khác, và họ làm những việc thường gọi là cracking

Hệ mật mã: là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các tính chất sau

P ( Plaintext ) là tập hợp hữu hạn các bản rõ có thể

C ( Ciphertext ) là tập hợp hữu hạn các bản mã có thể

K ( Key ) là tập hợp các bản khoá có thể

E ( Encrytion ) là tập hợp các qui tắc mã hoá có thể

D ( Decrytion ) là tập hợp các qui tắc giải mã có thể

Chúng ta đã biết một thông báo thường được tổ chức dưới dạng bản rõ Người gửi

sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu được gọi là bản mã Bản mã này được gửi

đi trên một đường truyền tới người nhận sau khi nhận được bản mã người nhận giải mã

Trang 13

Trang 10

nó để tìm hiểu nội dung Dễ dàng thấy được công việc trên khi sử dụng định nghĩa hệ mật mã :

E K ( P) = C và D K ( C ) = P

Cung cấp một mức cao về độ tin cậy, tính toàn vẹn, sự không từ chối và sự xác thực

 Độ tin cậy: cung cấp sự bí mật cho các thông báo và dữ liệu được lưu bằng việc

che dấu thông tin sử dụng các kỹ thuật mã hóa

 Tính toàn vẹn: cung cấp sự bảo đảm với tất cả các bên rằng thông báo còn lại

không thay đổi từ khi tạo ra cho đến khi người nhận mở nó

 Tính không từ chối: có thể cung cấp một cách xác nhận rằng tài liệu đã đến từ ai

đó ngay cả khi họ cố gắng từ chối nó

 Tính xác thực: cung cấp hai dịch vụ: đầu tiên là nhận dạng nguồn gốc của một

thông báo và cung cấp một vài sự bảo đảm rằng nó là đúng sự thực Thứ hai là kiểm tra đặc tính của người đang logon một hệ thống và sau đó tiếp tục kiểm tra đặc tính của họ trong trường hợp ai đó cố gắng đột nhiên kết nối và giả dạng là người sử dụng

2.4.1 Mã hoá đối xứng khoá bí mật

Thu ật toán đối xứng hay còn gọi thuật toán mã hoá cổ điển là thuật toán mà tại đó

khoá mã hoá có th ể tính toán ra được từ khoá giải mã Trong rất nhiều trường hợp,

khoá mã hoá và khoá gi ải mã là giống nhau Thuật toán này còn có nhiều tên gọi khác

nh ư thuật toán khoá bí mật, thuật toán khoá đơn giản, thuật toán một khoá Thuật toán

này yêu c ầu người gửi và người nhận phải thoả thuận một khoá trước khi thông báo được gửi đi, và khoá này phải được cất giữ bí mật Độ an toàn của thuật toán này vẫn

ph ụ thuộc vào khoá, nếu để lộ ra khoá này nghĩa là bất kỳ người nào cũng có thể mã

hoá và gi ải mã thông báo trong hệ thống mã hoá

Sự mã hoá và giải mã của thuật toán đối xứng biểu thị bởi :

EK( P ) = C và DK( C ) = P

Trang 14

2.4.1.2 Các vấn đề đối với phương pháp mã hoá đối xứng

 Các phương mã hoá cổ điển đòi hỏi người mã hoá và người giải mã phải cùng chung một khoá Khi đó khoá phải được giữ bí mật tuyệt đối, do vậy ta dễ dàng xác định một khoá nếu biết khoá kia

 Hệ mã hoá đối xứng không bảo vệ được sự an toàn nếu có xác suất cao khoá người gửi bị lộ Trong hệ khoá phải được gửi đi trên kênh an toàn nếu kẻ địch tấn công trên kênh này có thể phát hiện ra khoá

 Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử dụng hệ mã hoá

cổ điển Người gửi và người nhận luôn luôn thống nhất với nhau về vấn đề khoá Việc thay đổi khoá là rất khó và dễ bị lộ

 Khuynh hướng cung cấp khoá dài mà nó phải được thay đổi thường xuyên cho mọi người trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở rất nhiều tới việc phát triển hệ mật mã cổ điển

Trang 15

Trang 12

2.4.2 Mã hoá phi đối xứng khoá công khai

Vào những năm 1970 Diffie và Hellman đã phát minh ra một hệ mã hoá mới được

gọi là hệ mã hoá công khai hay hệ mã hoá phi đối xứng

Thuật toán mã hoá công khai khác biệt so với thuật toán đối xứng Chúng được thiết

kế sao cho khoá sử dụng vào việc mã hoá là khác so với khoá giải mã Hơn nữa khoá

giải mã không thể tính toán được từ khoá mã hoá Chúng được gọi với tên hệ thống mã hoá công khai bởi vì khoá để mã hoá có thể công khai, một người bất kỳ có thể sử dụng khoá công khai để mã hoá thông báo, nhưng chỉ một vài người có đúng khoá giải

mã thì mới có khả năng giải mã Trong nhiều hệ thống, khoá mã hoá gọi là khoá công

khai (public key), khoá giải mã thường được gọi là khoá riêng (private key)

2.4.2.2 Điều kiện hệ mã hóa khóa công khai

Diffie và Hellman đã xác đinh rõ các điều kiện của một hệ mã hoá công khai như sau:

Khoá giải mã k2

Hình 2.2 Mã hoá với khoá mã và khoá giải khác nhau

Khoá mã hóa k1

Trang 16

Trang 13

1 Việc tính toán ra cặp khoá công khai KA và bí mật KB dựa trên cơ sở các điều kiện ban đầu phải được thực hiện một cách dễ dàng, nghĩa là thực hiện trong thời gian đa thức

2 Người gửi A có được khoá công khai của người nhận B và có bản tin P cần gửi

đi thì có thể dễ dàng tạo ra được bản mã C

C = EKA (P) Công việc này cũng trong thời gian đa thức

3 Người nhận B khi nhận được bản tin mã hóa C với khoá bí mật kB thì có thể giải mã bản tin trong thời gian đa thức

P = DkB (C) = DKB[EKA(P)]

4 Nếu kẻ địch biết khoá công khai KA cố gắng tính toán khoá bí mật thì khi đó chúng phải đương đầu với trường hợp nan giải, trường hợp này đòi hỏi nhiều yêu cầu không khả thi về thời gian

5 Nếu kẻ địch biết được cặp (KA,C) và cố gắng tính toán ra bản rõ P thì giải quyết bài toán khó với số phép thử là vô cùng lớn, do đó không khả thi

Đối tượng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh không mật cho hai người sử dụng (tạm gọi là Alice và Bob) sao cho đối phương (Oscar) không thể hiểu được thông tin được truyền đi Kênh này có thể là một đường dây điện thoại hoặc một mạng máy tính Thông tin mà Alice muốn gửi cho Bob (bản rõ) có thể là một văn bản tiếng Anh, các dữ liệu bằng số hoặc bất cứ tài liệu nào có cấu trúc tuỳ ý Alice

sẽ mã hoá bản rõ bằng một khóa đã được xác định trước và gửi bản mã kết quả trên kênh Oscar có bản mã thu trộm được trên kênh song không thể xác định nội dung của bản rõ, nhưng Bob (người đã biết khoá mã) có thể giải mã và thu được bản rõ

Ta sẽ mô tả hình thức hoá nội dung bằng cách dung khái niệm toán học như sau:

Định nghĩa:

Một hệ mật là một bộ 5 (P,C,K,E,D) tho ả mãn các điều kiện sau:

P là một tập hữu hạn các bản rõ có thể

C là một tập hữu hạn các bản mã có thể

K (không gian khoá) là tập hữu hạn các khoá có thể

Đối với mỗi k∈ K có một quy tắc mã ek: P → C và một quy tắc giải mã tương ứng

dk ∈ D Mỗi ek: P → C và dk: C → P là những hàm mà:

d k (e k (x)) = x v ới mọi bản rõ x ∈P

Trang 17

Trang 14

Trong tính chất 4 là tính chất chủ yếu nhất Nội dung của nó là nếu một bản rõ x được mã hoá bằng ek và bản mã nhận được sau đó được giải mã bằng d k thì ta phải thu được bản rõ ban đầu x Alice và Bob sẽ áp dụng thủ tục sau dùng hệ mật khoá riêng Trước tiên họ chọn một khoá ngẫu nhiên k ∈ K Điều này được thực hiện khi họ ở cùng một chỗ và không bị Oscar theo dõi hoặc khi họ có một kênh mật trong trường hợp họ ở xa nhau Sau đó giả sử Alice muốn gửi một thông báo cho Bob trên một kênh không mật và ta xem thông báo này là một chuỗi:

x = x1,x2 , .,xn với số nguyên n ≥ 1 nào đó Ở đây mỗi ký hiệu của mỗi bản rõ xi ∈ P , 1 ≤ i ≤ n Mỗi xi sẽ được mã hoá bằng quy tắc mã ek với khoá k xác định trước đó Bởi vậy Alice

sẽ tính yi = ek(xi), 1 ≤ i ≤ n và chuỗi bản mã nhận được:

y = y1, y2 , ., yn

sẽ được gửi trên kênh Khi Bob nhận đươc y1,y2 , .,yn anh ta sẽ giải mã bằng hàm giải mã dk và thu được bản rõ gốc x1,x2 , .,xn Hình dưới là một ví dụ về một kênh liên lạc

Hình 3.3 Kênh liên lạc

Rõ ràng là trong trường hợp này hàm mã hoá phải là hàm đơn ánh ( tức là ánh xạ 1), nếu không việc giải mã sẽ không thực hiện được một cách tường minh Ví dụ

1-y = ek(x1) = ek(x2) trong đó x1 ≠ x2 , thì Bob sẽ không có cách nào để biết liệu sẽ phải giải mã có x1 hay

x2 Chú ý rằng nếu P = C thì mỗi hàm mã hoá là một phép hoán vị, tức là nếu tập các bản mã và tập các bản rõ là đồng nhất thì mỗi một hàm mã sẽ là một sự sắp xếp lại (hay hoán vị ) các phần tử của tập này

Trang 18

Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)

Giả sử P = C = K = Z26 với 0 ≤ k ≤ 25 , định nghĩa:

ek(x) = x +k mod 26

và dk(y) = y + (-k) mod 26 (x,y ∈ Z26)

-k là phẩn tử đối với k trong Z26, ví dụ phần tử đối của 3 là 23, phần tử đối của

15 là 11 xét trong Z26

Nh ận xét: Trong trường hợp k = 3, hệ mật thường được gọi là mã Caesar đã từng

được Julius Caesar sử dụng

Ta sẽ sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thông thường bằng cách thiết lập sự tương ứnggiữa các kí tự và các thặng dư theo modulo 26 như sau: A ↔ 0,B ↔ 1, , Z ↔ 25

Ví dụ 1:

Giả sử khoá cho MDV là K = 11 và bản rõ là: wewillmeetatmidnight

Trước tiên biến đổi bản rõ thành dãy các số nguyên nhờ dùng phép tương ứng trên

Trang 19

2 Đối phương dựa trên xâu bản mã phải không có khả năng xác định khoá K

đã dùng hoặc không có khả năng xác định được xâu bản rõ x

Tính chất thứ hai xác định (theo cách khá mập mờ) ý tưởng ý tưởng "bảo mật" Quá trình thử tính khoá K (khi đã biết bản mã y) được gọi là mã thám (sau này khái niệm này sẽ đực làm chính xác hơn) Cần chú ý rằng, nếu Oscar có thể xác định được K thì anh ta có thể giải mã được y như Bob bằng cách dùng dK Bởi vậy, việc xác định K chí ít cũng khó như việc xác định bản rõ x

Nhận xét: MDV (theo modulo 26) là không an toàn vì nó có thể bị thám theo phương pháp vét cạn Do chỉ có 26 khoá nên dễ dàng thử mọi khoá dK có thể cho tới khi nhận được bản rõ có nghĩa Điều này được minh hoạ theo ví dụ sau:

Tới đây ta đã xác định được bản rõ và dừng lại Khoá tương ứng K = 9

Trung bình có thể tính được bản rõ sau khi thử 26/2 = 13 quy tắc giải mã Như đã chỉ ra trong ví dụ trên , điều kiện để một hệ mật an toàn là phép tìm khoá vét cạn phải không thể thực hiện được; tức không gian khoá phải rất lớn Tuy nhiên, một không gian khoá lớn vẫn chưa đủ đảm bảo độ mật

Trang 20

Trang 17

2.5.2 Mã thay thế

Một hệ mật nổi tiếng khác là hệ mã thay thế Hệ mật này đã được sử dụng hàng

trăm năm Trò chơi đố chữ "cryptogram" trong các bài báo là những ví dụ về MTT

Trên thực tế MTT có thể lấy cả P và C đều là bộ chữ cái tiếng anh, gồm 26 chữ cái

Ta dùng Z26 trong MDV vì các phép mã và giải mã đều là các phép toán đại số Tuy nhiên, trong MTT, thích hợp hơn là xem phép mã và giải mã như các hoán vị của các

kí tự

Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)

Cho P =C = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu 0,1, ,25

Với mỗi phép hoán vị π ∈K , ta định nghĩa:

eπ(x) = π(x)

và dπ(y) = π-1(y) trong đó π-1 là hoán vị ngược của π

Sau đây là một ví dụ về phép hoán vị ngẫu nhiên π tạo nên một hàm mã hoá (cũng như trước, các kí hiệu của bản rõ được viết bằng chữ thường còn các kí hiệu của bản

Bởi vậy dπ(A) = d, dπ(B) = 1,

Bài tập: giải mã bản mã sau bằng cách dùng hàm giải mã đơn giản:

M G Z V Y Z L G H C M H J M Y X S S F M N H A H Y C D L M H A Mỗĩ khoá của MTT là một phép hoán vị của 26 kí tự Số các hoán vị này là 26!, lớn hơn 4 ×1026 là một số rất lớn Bởi vậy, phép tìm khoá vét cạn không thể thực hiện

Trang 21

e(x) = ax + b mod 26, a,b ∈ Z26 Các hàm này được gọi là các hàm Affine (chú ý rằng khi a = 1, ta có MDV)

Để việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải là đơn ánh Nói cách khác, với bất kỳ y ∈ Z26, ta muốn có đồng nhất thức sau:

ax + b ≡ y (mod 26) phải có nghiệm x duy nhất Đồng dư thức này tương đương với:

ax ≡ y+(-b) (mod 26) Lưu ý: -b là phần tử đối của b trong Z26

Vì y thay đổi trên Z26 nên y+(-b) cũng thay đổi trên Z26 Bởi vậy, ta chỉ cần nghiên cứu phương trình đồng dư:

ax ≡ y (mod 26) (y∈ Z26 )

Ta biết rằng, phương trình này có một nghiệm duy nhất đối với mỗi y khi và chỉ khi

UCLN(a,26) = 1 (ở đây hàm UCLN là ước chung lớn nhất của các biến của nó)

Trước tiên ta giả sử rằng, UCLN(a,26) = d >1 Khi đó, đồng dư thức ax ≡ 0 (mod 26)

sẽ có ít nhất hai nghiệm phân biệt trong Z26 là x = 0 và x = 26/d Trong trường hợp này, e(x) = ax + b mod 26 không phải là một hàm đơn ánh và bởi vậy nó không thể là hàm mã hoá hợp lệ

Giải thích theo một cách khác như sau:

Phép lập mã được cho bởi một hàm apphin dạng:

e(x) = ax + b mod 26

Để có được phép giải mã tương ứng, tức là để cho phương trình sau có nghiệm:

ax + b = c mod 26

có lời giải đối với x (với bất kỳ c cho trước), theo một định lý số học, điều kiện cần

và đủ là a nguyên tố với 26, tức là UCLN(a,26) = 1 Khi UCLN(a,26)=1 thì có:

a-1 ⊆Z26 sao cho a.a-1=a-1.a=1 mod 26

và do đó nếu y=ax+b mod 26 thì x=a-1(y-b) mod 26 và ngược lại

Trang 22

Trang 19

Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)

Cho P = C = Z26 và K= { (a,b) ∈ Z26 × Z26 : UCLN(a,26) =1 }

Với k = (a,b) ∈K , ta định nghĩa:

ek(x) = ax +b mod 26

và dk(y) = a-1(y-b) mod 26, x,y ∈ Z26

Ví dụ: Giả sử k = (7,3) Như đã nêu ở trên, 7-1 mod 26 = 15 Hàm mã hoá là

7x7 +3 mod 26 = 52 mod 26 = 0

7 x14 + 3 mod 26 = 101 mod 26 =23

7 x19 +3 mod 26 = 136 mod 26 = 6

Bởi vậy 3 ký hiệu của bản mã là 0, 23 và 6 tương ứng với xâu ký tự AXG Việc giải

mã sẽ do bạn thực hiện như một bài tập

2.5.4 Mã Vigenère

Trong cả hai hệ MDV và MTT (một khi khoá đã được chọn) mỗi ký tự sẽ được ánh

xạ vào một ký tự duy nhất Vì lý do đó, các hệ mật còn được gọi hệ thay thế đơn biểu Bây giờ ta sẽ trình bày một hệ mật không phải là bộ chữ đơn, đó là hệ mã Vigenère nổi tiếng Mật mã này lấy tên của Blaise de Vigenère sống vào thế kỷ XVI

Sử dụng phép tương ứng A ⇔ 0, B ⇔ 1, , Z ⇔ 25 mô tả ở trên, ta có thể gắn cho mỗi khóa K với một chuỗi kí tự có độ dài m được gọi là từ khoá Mật mã Vigenère

sẽ mã hoá đồng thời m kí tự: Mỗi phần tử của bản rõ tương đương với m ký tự

Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)

Cho m là một số nguyên dương cố định nào đó Định nghĩa P = C = K =

(Z26)m Với khoá K = (k1, k2, ,km) ta xác định :

eK(x1, x2, ,xm) = (x1+k1, x2+k2, , xm+km)

Trang 23

Trang 20

dK(y1, y2, ,ym) = (y1-k1, y2-k2, , ym-km)

trong đó tất cả các phép toán được thực hiện trong Z26

Ví dụ: Giả sử m =6 và từ khoá là CIPHER Từ khoá này tương ứng với dãy số K =

(2,8,15,7,4,17) Giả sử bản rõ là xâu: thiscryptosystemisnotsecure

Ta sẽ biến đổi các phần tử của bản rõ thành các thặng dư theo modulo 26, viết chúng thành các nhóm 6 rồi cộng với từ khoá theo modulo 26 như sau:

Bởi vậy, dãy ký tự tương ứng của xâu bản mã sẽ là:

Trong hệ mật Vigenère có từ khoá độ dài m,mỗi ký tự có thể được ánh xạ vào trong

m ký tự có thể có (giả sử rằng từ khoá chứa m ký tự phân biệt) Một hệ mật như vậy được gọi là hệ mật thay thế đa biểu (polyalphabetic) Nói chung, việc thám mã hệ thay thế đa biểu sẽ khó khăn hơn so việc thám mã hệ đơn biểu

Trang 24

Trang 21

2.5.5 Mã HILL

Trong phần này sẽ mô tả một hệ mật thay thế đa biểu khác được gọi là mật mã Hill Mật mã này do Lester S.Hill đưa ra năm 1929 Giả sử m là một số nguyên dương, đặt

P = C = (Z26)m Ý tưởng ở đây là lấy m tổ hợp tuyến tính của m ký tự trong một phần

tử của bản rõ để tạo ra m ký tự ở một phần tử của bản mã

Ví dụ nếu m = 2 ta có thể viết một phần tử của bản rõ là x = (x1,x2) và một phần tử của bản mã là y = (y1,y2) Ở đây, y1cũng như y2 đều là một tổ hợp tuyến tính của x1và

x2 Chẳng hạn, có thể lấy

y1 = 11x1+ 3x2

y2 = 8x1+ 7x2 Tất nhiên có thể viết gọn hơn theo ký hiệu ma trận như sau

11 8 ( y ) ( )

3 7

y x x  

Nói chung, có thể lấy một ma trận K kích thước m × m làm khoá Nếu một phần tử

ở hàng i và cột j của K là ki,,j thì có thể viết K = (ki,,j), với x = (x1, x2, ,xm) ∈ P và

mã Bản mã được giải mã bằng công thức y K-1

Trang 25

Như vậy Bob đã nhận được bản đúng

Cho tới lúc này ta đã chỉ ra rằng có thể thực hiện phép giải mã nếu K có một nghịch đảo Trên thực tế, để phép giải mã là có thể thực hiện được, điều kiện cần là K phải có nghịch đảo ( Điều này dễ dàng rút ra từ đại số tuyến tính sơ cấp, tuy nhiên sẽ không chứng minh ở đây) Bởi vậy, chúng ta chỉ quan tâm tới các ma trận K khả nghich Tính khả nghịch của một ma trận vuông phụ thuộc vào giá trị định thức của nó Để tránh sự tổng quát hoá không cần thiết, ta chỉ giới hạn trong trường hợp 2×2

Định nghĩa : Định thức của ma trận A = (a ,i j ) c ấp 2× 2 là giá tr ị

det A = a 1,1 a 2,2 - a 1,2 a 2,1

Một ma trận thức K là có nghịch đảo khi và chỉ khi định thức của nó khác 0 Tuy nhiên, điều quan trọng cần nhớ là ta đang làm việc trên Z26 Kết quả tương ứng là ma trận K có nghịch đảo theo modulo 26 khi và chỉ khi UCLN(det K,26) = 1

Định lý: Giả sử A = (ai j) là một ma trận cấp 2 × 2 trên Z26 sao cho det A = a1,1a2,2 -

 =(11.7-8.3) mod 26 = 77 - 24 mod 26 = 53 mod 26 =1

Vì 1-1 mod 26 = 1 nên ma trận nghịch đảo là

Trang 26

Trang 23

2.5.6 Mã hoán vị

Tất cả các hệ mật thảo luận ở trên ít nhiều đều xoay quanh phép thay thế: các ký tự của bản rõ được thay thế bằng các ký tự khác trongbản mã Ý tưởng của MHV là giữ các ký tự của bản rõ không thay đổi nhưng sẽ thay đổi vị trí của chúng bằng cách sắp xếp lại các ký tự này MHV (còn được gọi là mã chuyển vị) đã được dùng từ hàng trăm năm nay Thật ra thì sự phân biệt giữa MHV và MTT đã được Giovani Porta chỉ

ra từ 1563 Định nghĩa hình thức cho MHV được nêu ra bên dưới

Không giống như MTT, ở đây không có các phép toán đại số nào cần thực hiện khi

mã hoá và giải mã nên thích hợp hơn cả là dùng các ký tự mà không dùng các thặng

dư theo modulo 26 Dưới đây là một ví dụ minh hoạ

Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)

Cho m là một số nguyên dương xác định nào đó Cho P = C = (Z26 )m và cho

K gồm tất cả các hoán vị của {1, , m} Đối với một khoá π ( tức là một hoán vị) ta xác định

eπ(x1, , xm ) = (xπ(1), , xπ(m))

và dπ(x1, , xm ) = (yπ-1(1), , yπ-1(m))

trong đó π-1 là hoán vị ngược của π

Ví dụ: Giả sử m = 6 và khoá là phép hoán vị (π ) sau:

Khi đó phép hoán vị ngược π-1 sẽ tương ứng như trên:

Bây giờ giả sử có bản rõ

Shesellsseashellsbytheseashore

Trước tiên ta nhóm bản rõ thành các nhóm 6 ký tự:

shesel | lsseas | hellsb | ythese | ashore

Bây giờ mỗi nhóm 6 chữ cái được sắp xếp lại theo phép hoán vị π, ta có:

EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS

Như vậy bản mã là

EESLSH SALSES LSHBLE HSYEET HRAEOS

Như vậy bản mã đã được mã theo cách tương tự bằng phép hoán vị đảo π -1

Trang 27

Trang 24

Thực tế mã hoán vị là trường hợp đặc biệt của mật mã Hill Khi cho phép hoán vị π của tập {1, ,m}, ta có thể xác định một ma trận hoán vị m × m thích hợp Kπ = {

ki,j} theo công thức: , 1 neu j= (i)

0 neu nguoc lai

i j

= 

(ma trận hoán vị là ma trận trong đó mỗi hàng và mỗi cột chỉ có một số "1", còn tất

cả các giá trị khác đều là số "0" Ta có thể thu được một ma trận hoán vị từ ma trận đơn vị bằng cách hoán vị các hàng hoặc cột)

Dễ dàng thấy rằng, phép mã Hill dùng ma trận Kπ trên thực tế tương đương với phép mã hoán vị dùng hoán vị π Hơn nữa K-1π= Kπ -1 tức ma trận nghịch đảo của Kπ là

ma trận hoán vị xác định theo hoán vị π -1 Như vậy, phép giải mã Hill tương đương với phép giải mã hoán vị

Đối với hoán vị π được dung trong ví dụ trên, các ma trận hoán vị kết hợp là:

Bạn có thể kiểm tra để thấy rằng, tích của hai ma trận này là một ma trận đơn vị

Ngày 15.5.1973 Uỷ ban tiêu chuẩn quốc gia Mỹ đã công bố một khuyến nghị cho các hệ mật trong Hồ sơ quản lý liên bang Điều này cuối cùng đã dẫn đến sự phát triển của Chuẩn mã dữ liệu (DES) và nó đã trở thành một hệ mật được sử dụng rộng rãi nhất trên thế giới DES được IBM phát triển và được xem như một cải biên cuả hệ mật LUCIPHER Lần đầu tiên DES được công bố trong Hồ sơ Liên bang vào ngày 17.3.1975 Sau nhiều cuộc trânh luận công khai, DES đã được chấp nhận chọn làm chuẩn cho các ứng dụng không được coi là mật vào 5.1.1977 Kể từ đó cứ 5 năm một lần, DES lại được Uỷ ban Tiêu chuẩn Quốc gia xem xét lại Lần đổi mới gàn đây nhất của DES là vào tháng 1.1994 và tiếp tới sẽ là 1998 Người ta đoán rằng DES sẽ không còn là chuẩn sau 1998

Trang 28

Trang 25

Mô tả đầy đủ của DES được nêu trong Công bố số 46 về các chuẩn xử lý thông tin Liên bang (Mỹ) vào 15.1.1977 DES mã hoá một xâu bít x của bẳn rõ độ dài 64 bằng một khoá 54 bít Bản mã nhận được cũng là một xâu bít có độ dài 48 Trước hết ta mô

tả ở mức cao của hệ thống

3.1.1 Thuật toán DES

1 Với bản rõ cho trước x với độ dài 64 bit, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít 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 bít đầu và R0 là 32 bít cuối

2 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 đó ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2) f là một hàm mà ta sẽ mô tả ở sau, còn K1,K2, ,K16 là các xâu bít độ dài 48 được tính như hàm của khoá K (trên thực tế mỗi Ki là một phép chọn hoán vị bít trong K) K1, , K16 sẽ tạo thành bảng khoá Một vòng của phép mã hoá được mô tả trên hình dưới

3 Áp dụng phép hoán vị ngược IP-1 cho xâu bít 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

3.1.2 Mô tả một vòng của DES

3.1.3 Mô tả hàm f

Hàm f có hai biến vào: biến thứ nhất A là xâu bít độ dài 32, biến thứ hai J là một xâu bít độ dài 48 Đầu ra của f là một xâu bít độ dài 32 Các bước sau được thực hiện:

Trang 29

Trang 26

1 Biến thứ nhất A được mở rộng thành một xâu bít độ dài 48 theo một hàm mở rộng cố định E E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuất hiện hai lần

2 Tính E(A) ⊕ J và viết kết quả thành một chuỗi 8 xâu 6 bít = B1B2B3B4B5B6B7B8

3 Bước tiếp theo dùng 8 bảng S1, S2, ,S8 ( được gọi là các hộp S ) Với mỗi Si là một bảng 4×16 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bít có độ dài

6 (Kí hiệu Bi = b1b2b3b4b5b6), ta tính Sj(Bj) như sau: Hai bít b1b6 xác định biểu diễn nhị phân của hàng r của Sj ( 0 ≤ r ≤ 3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0 ≤ c ≤ 15 ) Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một xâu bít có độ dài 4 ( Bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài 4, còn đầu

ra là một xâu bít có độ dài 4) Bằng cách tương tự tính các Cj = Sj(Bj), 1 ≤ j ≤ 8

4 Xâu bít C = C1C2 C8 có độ dài 32 được hoán vị theo phép hoán vị cố định P Xâu kết quả là P(C) được xác định là f(A,J)

Hàm f được mô tả trong hình dưới Chủ yếu nó gồm một phép thế (sử dụng hộp S), tiếp sau đó là phép hoán vị P 16 phép lặp của f sẽ tạo nên một hệ mật tích nêu như ở phần trên

Trang 30

Trang 27

3.1.4 Mô tả chi tiết các hàm trong DES

Phép hoán vị ban đầu IP như sau: bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ 50 của x là bít thứ hai của IP(x), v.v

IP -1

Trang 33

3.1.5 Tính toán bảng khóa từ khóa K

Trên thực tế, K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16, , 64 được xác định sao cho mỗi byte chứa một số lẻ các số "1" Bởi vậy một sai sót đơn lẻ có thể phát hiện được trong mỗi nhóm 8 bít Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá

1 Với một khoá K 64 bít cho trước, ta loại bỏ các bít kiểm tra tính chẵn lẻ và hoán

vị các bít còn lại của K theo phép hoán vị cố định PC-1 Ta viết:

PC-1(K) = C 0 D 0

2 Với i thay đổi từ 1 đến 16:

C i = LS i (C i-1 )

D i = LS i (Di-1) Việc tính bảng khoá được mô tả trong hình sau:

Các hoán vị PC-1 và PC-2 được dùng trong bảng khoá là:

PC-1

Trang 35

Trang 32

41 44 35 34 17 2 3 10 9 36 27 50

29 39 46 61 12 15 54 37 47 28 30 4 5 63 45 7 22 31 20 21 55 6 62 38

Trang 36

Phép giải mã được thực hiện nhờ dùng cùng thuật toán như phép mã nếu đầu vào là

y nhưng dùng bảng khoá theo thứ tự ngược lại K16, K1 Đầu ra của thuật toán sẽ là bản rõ x

Sau khi thay đổi, hóan vị, ⊕, và dịch vòng, bạn có thể nghĩ rằng thuật toán giải mã hoàn toàn khác và phức tạp, khó hiểu như thuật toán mã hóa Trái lại, DES sử dụng cùng thuật toán làm việc cho cả mã hóa và giải mã

Trang 37

Trang 34

Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hóa một khối Chỉ có

sự khác nhau đó là các khóa phải được sử dụng theo thứ tự ngược lại Nghĩa là, nếu các khóa mã hóa cho mỗi vòng là k1, k2, k3 , , k15, k16 thì các khóa giải là k16, k15, ,

k3, k2, k1 Thuật toán dùng để sinh khóa được sử dụng cho mỗi vòng theo kiểu vòng quanh Khóa được dịch phải, và số ở những vị trí được dịch được tính từ cuối của bảng lên, thay vì từ trên xuống

Ngày đăng: 22/06/2014, 20:35

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Mã hoá với khoá mã và khoá giải giống nhau - Lý thuyết mật mã và an toàn dữ liệu
Hình 2.1. Mã hoá với khoá mã và khoá giải giống nhau (Trang 14)
Hình 2.2. Mã hoá với khoá mã và khoá giải khác nhau - Lý thuyết mật mã và an toàn dữ liệu
Hình 2.2. Mã hoá với khoá mã và khoá giải khác nhau (Trang 15)
Hình 3.3. Kênh liên lạc - Lý thuyết mật mã và an toàn dữ liệu
Hình 3.3. Kênh liên lạc (Trang 17)
Sơ đồ các bước thực hiện mã hóa theo thuật toán RSA - Lý thuyết mật mã và an toàn dữ liệu
Sơ đồ c ác bước thực hiện mã hóa theo thuật toán RSA (Trang 50)
Sơ đồ chữ ký kèm thông điệp. - Lý thuyết mật mã và an toàn dữ liệu
Sơ đồ ch ữ ký kèm thông điệp (Trang 65)
Sơ đồ chữ ký khôi phục thông điệp - Lý thuyết mật mã và an toàn dữ liệu
Sơ đồ ch ữ ký khôi phục thông điệp (Trang 66)

TỪ KHÓA LIÊN QUAN

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

w