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

Chương 2 -Các hệ mã hóa

15 2,8K 52
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Các hệ mã hóa
Tác giả Hổ Ngọc Vinh
Trường học Trường Đại Học
Chuyên ngành Mật Mã Hóa
Thể loại Luận văn
Năm xuất bản 2002
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 505,75 KB

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

Nội dung

an toàn dữ liệu

Trang 1

HỔ NGỌC VINH

3 Hệ mã với khóa công khai

Mục đích của mã hóa thông tin là cho phép hai người A và B có thể giao tiếp an toàn với nhau thông qua các kênh thông tin không an toàn sao cho người thứ ba là © không biết thông tin gì đang thực sự được trao đồi

thông tin

và thu được Người thứ ba là C có thể thu được bản mã gửi đi nhưng không biết được nội dung A muốn gửi hoặc đôi khi biết được thì mắt khá nhiều thời gian và thông tin đó không còn giá trị nữa

Mô hình mã hóa và giải mã thông tin

Trang 2

1 KHÁI NIỆM VẺ MÃ HÓA VÀ GIẢI MÃ

> Định nghĩa:

Một hệ mật mã là một bộ 5 thành phần (P, ©, K, E, D) Trong đó:

P : Tập hợp các bản rõ

C : Tập hợp các bản mã

K : Tập hợp các khoá k e K

k=(E,,D¿)eExD=K E,: P — C Khoa lap ma

D.: G — P Khoa giai mã

=> Với một bản rõ x e P (thường là một xâu kí tự), ta có:

D,( E,(x) ) = x

1 KHAI NIEM VE MA HOA VA GIAI MA

> Hệ mã khóa đối xứng: Là hệ mã mà khi mã hóa và giải mã đều

dùng một khóa

Secret key shared by Secret key shared by sender and recipient sender and recipient

Transmitted

8 ciphertext i,

Plaintext ; Plaintext

input Encryption algorithm Decryption algorithm

(e.g., DES) (reverse of encryption

algorithm)

output

1 KHAI NIEM VE MA HOA VA GIAI MA

> Phân loại hệ mã:

Các hệ mã được phân làm 2 loại:

- Hệ mã khóa đối xứng: Hệ mã dịch vòng, Hệ mã thay tế, Hệ

ma Affine, Hé ma DES,

- Hệ mã không đối xứng (khóa công khai): Hệ mã RSA

1 KHÁI NIỆM VẺ MÃ HÓA VÀ GIẢI MÃ

> Hệ ma khóa công khai: Là hệ mã mà khi mã hóa thì dùng một khóa, còn khi giải mã thì dùng khóa khác

1 key Key Alice's public | 's private

Transmitted ciphertext Ø

——

Plaintext t ti lgorith D mm Plaintext input ncryption algorithm ecryption algorithm output

(e.g., RSA) (reverse of encryption

algorithm)

Trang 3

Hệ mã dịch chuyên là một bộ 5 thành phan (P,

:_ Tập hợp các bản rõ

:_ Tập hợp các bản mã

: Là các hệ mã cũ, đơn giản, hiên nay không có tính bảo : Tập hợp các khoá k e

mật cao, đó là: Hệ mã dịch chuyén, Hệ mã thay tế, Hé ma Affine Với khóa k € K Ta dinh nghia:

: : Là những hệ mã mới xuất hiện vài thập kỹ gần đây, chúng có tính bảo mật cao, đó là: Hệ mã DES, Hệ mã RSA

= Trong trường hợp k = 3, Hệ mật thường được gọi là Caesar (đã từng được Hoang dé Julius Caesar str dung)

Hãy mã hóa câu sau:

Hệ mã thay thế là một bộ 5 thành phần (P,

0 1 r2 3 4 sì L2 7 8 9 10 11 12 13 14 15 16 17 #=18 19 20 21 22 23 24 25 : Tập hợp các bản ma Với

: Tap hop cac khoa

chứa mọi hoán vị có thể của 26 ký hiệu Anphabet)

Sử dụng mã dịch chuyễn với k = 9, ta có bản mã là: Với mỗi phép hoán vị khóa r e K Ta định nghĩa:

các số đề chỉ các chữ cái Tiếng Việt có dấu, các chữ số, dấu cách và các ký hiệu khác

Trang 4

Hãy mã hóa câu sau:

: Tập hợp các bản mã Với P =

: Tap hop cac khoa k e

= { (a, b) € Log X LNoe |

11

A B CD E FGằH I J KL MẶN OPGR ST UV

Khi đó, ta có bản mã là:

—> Với bảng chữ cái Anphabet có 26 chữ cái, Hệ mã Aiffine có 12 x 26 khóa

Trang 5

2.4 Hé ma Vigenere 2.4 Hé ma Vigenere

Hé ma Vigenere la hé ma cai tién cua hé ma dich chuyén bằng cách chia khối văn bản thành các đoạn có độ dài m với khóa k = k.,

ko, «es Kn Khi đó mỗi chữ tại vị trí thứ ¡ sẽ được mã hóa với khóa k

(Hệ mã này do B Vigenere đưa ra ở thế kỷ XVI)

Hệ mã Vigenere là một bộ 5 thành phần (P, C, K, E, D) Thỏa mãn:

Voi kK = (kj, ka, ., K„) e K Ta định nghĩa:

Dy(Y1; vey my Ym) - | Y4 5 k,, Yo 5 Kạ, — Ym 7 se (mod 26)

— V6im> 1, cé6 tất cả 26m khóa có thê

Chương 2: Các hệ mã hóa

2.5 Hệ mã hoán vị

Giả sử m = 6, khóa k là từ CIPHER (nghĩa là k = (2, 8, 15, 7, 4, 17))

Hãy mã hóa câu sau:

x = “ HEN TOI THU BAY DI CHOI HO TAY ”

- Ban ro x được chia thành từng đoạn có độ dài m = 6 như sau:

7 | 4/13/19 |14) 8 19 7 20 1 iL 3 8 4 a| 7 | 1a] 19] 0 | 26

- Dé lap bang ma, ta cong với khóa k thì được bản mã:

9 12 2 0 18.25 21 15 9 8 Mem 5 | 16) 17) 14) 18 | 25 lslzla|z ||

jm 6A s z v p ¿ ¡ : 'MNEVEIFIEIEERIDIRDB

=> y=“JMC ASZ VPJ IEP FQ ROSZ JW IHC ”

Chương 2: Các hệ mã hóa

2.5 Hệ mã hoán vị

Khác với các mã khác, mã hoán vị không thay đổi các ký tự trong

bản rõ, mà chỉ hoán vị các ký tự trong từng bộ m ký tự của bản rõ

Ký hiệu S, là tập hợp tất cả các hoán vị của (1, 2, ., m)

Hệ mã hoán vị là một bộ 5 thành phân (P, C, K, E, D) Thỏa mãn:

ChomeZ*, P=C=Z,.", K=S,, Voi k =a € K Ta dinh nghia:

—=_ Với m >1, có tất cả mI khóa có thê

Chương 2: Các hệ mã hóa

Giả sử m = 6, khóa mã và khóa giải mã được cho như hình sau:

Hãy mã hóa câu sau: x = “WE WILL MEET AT MIDNIGHT ” -_ Bản rõ x theo qui ước phải chia thành các khối nhỏ 6 ký tự

wu: wirt_m=cTMNMNFEINDNNHEBHHN

-_ Với phép hoán vị z trên, ta có xâu được mã hóa như sau:

v- wirwmrLree_ EMDNUINNHUHDHNN

Chương 2: Các hệ mã hóa

Trang 6

2.6 Hé ma Hill

Hé ma Hill nay được đề xuất bởi Lester.S.Hill vào năm 1929,

hệ mã cũng được thực hiện trên từng bộ m ký tự, mỗi ký tự trong bản

mã là một tổ hợp tuyến tính (trên Z;¿) của m ký tự trong bản rõ Khóa

sẽ được cho bởi một ma trận cấp m, tức là một phần tử của Z„¿mxm,

Hệ mã Hill là một bộ 5 thành phân (P, C, K, E, D) Thỏa mãn:

Chome Zt, P=C=Z,.™

K={k € Z,.™*™ | USCLN( det(k), 26 ) = 1 }

Với k e K Ta định nghĩa:

BU0/10/90/)000n002/90/.1 0/790 -122)

Chương 2: Các hệ mã hóa

2.6 Hé ma Hill

2.6 Hé ma Hill

Gia sw m = 2, ta chon khóa k như sau:

hs 8 det(k) = 1 (mod 26) lí 18

-_ Với bộ hai ký tự x = (x1, x2), ta có thê mã hóa theo công thức sau:

4 h

3)

7

(Yj, Yo) = (Xj; Xp)-K = (%, Xp) = (11.xX,+ 3 xX, , 8.x,,+ 7.x)

2

- Khóa giải mã sẽ là:

Chương 2: Các hệ mã hóa

-_ Với khóa k có kích thước mxm Khi đó khóa lập mã sẽ là:

1,m 2,m Ver Y2: _- Vm) = Cer nor mtg en »

hay nói cách khác: y = x.k

- Để giải ma, ta đi tìm ma trân nghịch đảo k1 của ma trận khóa k Khi

đó bản mã được giải mã bằng công thức: x = y.k '

Lựu ý: Không phải mọi ma trận khóa đều có nghịch đảo Tuy nhiên, nếu tồn tại thì nó

la duy nhat

Chương 2: Các hệ mã hóa

2.6 Hé ma Hill

Giả sử m = 2, và với khóa mã k và khóa giải mã k'' như trên:

Hay ma hoa cau sau: X = “ WE WILL MEET AT MIDNIGHT ”

- Chia bản rõ thành các bộ m = 2 ký tự:

2 4 2298 11 11 12 4 4 190 19 12 8 3 15 8 6 7 19

- Mã hóa các bộ hai ký tự theo hệ thức mã hóa: (y;, yz) = (X;, X¿).k

=> y=“UW GYYJ OUXJ FD AWULCCEH ”

Chương 2: Các hệ mã hóa

Trang 7

3 HE MA HOA CHUAN DES

Hệ mã hóa DES (Data Encryption Standard) la hé ma hoa bao mat

được sử dụng rộng rãi nhất trên thế giới, thậm chí đối với nhiều người

DES và mã hoá bảo mật là đồng nghĩa với nhau Ở thời diém DES ra đời

(tiền thân của nó là thuật toán mật mã Lucifer do IBM phát triển) người ta

đã tính toán rằng việc phá được khoá mã DES là rất khó khăn, nó đòi hỏi

chi phi hang chục triệu USD và tiêu tôn khoảng thời gian rất nhiều năm

Cùng với sự phát triển của các loại máy tính và mạng máy tính có

tốc độ tính toán rất cao, khoá mã DES có thể bị phá trong khoảng thời

gian ngày càng ngắn với chỉ phí ngày càng thấp Dù vậy, việc này vẫn

vượt quá khả năng của các Hacker thông thường và Hệ mã hoá DES vẫn

tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông

tin nhiều năm nữa đặc biệt với sự ra đời của thế hệ DES mới

ng 2: Các hệ mã hóa

3.1 Câu trúc thuật toán DES

> Thuật toán có 3 bước cơ bản như Sau:

B,: Cho chuỗi bit từ hiện x, chuỗi bit xạ được sinh ra bằng cách hoán vị chuỗi

bít x dùng bảng hoán vị khởi tạo IP Ta viết xạ = IP(x) = LạRạ

B„: Thực hiện 16 lần lặp Mỗi lần tính L, R; (voi i = 1 16) theo quy tắc:

ak

ati Li | ST K; )

( Trong do:

i:

B;: Dùng hoán vị nghịch đảo IP-! đối với chuỗi bít R,¿L,¿ thu được chuỗi y,

tức lày = IP-(R,sL,,)

ng 2: Các hệ mã hóa

3 HE MA HOA CHUAN DES

Thuật toán sử dụng trong Hệ mã hóa DES là thuật toán mở, nghĩa

là mọi người đều biết thuật toán này Điều quan trọng nhất là chìa khoá

của DES có độ dài tới 56 bit, nghĩa là số lần thử tối đa để tìm được chìa

khoá lên đến 2°Š = 72.057.594.037.927.936 lần (một con số rất lớn!)

Hệ mã DES được thực hiện nhờ các phép dịch, hoán vị và các phép toán logic trên các bit DES mã hoá từng khối 64 bit Để thực hiện việc

mã hoá DES sử dụng một chìa khoá cũng 64 bịt (tức 8 byte), nhưng các bít thứ 8 trong các byte này bị bỏ qua trong khi mã hoá vì vậy độ lớn thực

tế của chìa khoá là 56 bit

Hệ mã DES thực hiện bao gồm 16 vòng, nghĩa là thuật toán chính được lặp lại 16 lần để tạo ra bản tin được mã hoá

ng 2: Các hệ mã hóa

R;=L:+ F(R:.K›)

_ Ỷ

F(Ru.Eez)

Sơ đồ hệ mã DES

Trang 8

R (32 bit) K (48 bit)

|

»

E(R) (48 bit)

Chuỗi bít R được mở rộng thành 48 bit qua hàm hoán vị mở rộng

Thực hiện phép và kết quả được tách thành 8 nhóm, mỗi nhóm 6 bít

Tiếp theo dùng 8 khối S (S-box) Mỗi khối S; là một ma trận , các phân tử là sô nguyên từ 0 đên 15 (4 bit) Khi có chuôi đâu vào

là chuỗi bit B, = , ta tính kết quả như sau: Với + Hai bit xác đinh vị trí r trong khối

+ Bồn bit còn lại xác định cột œ trong khối

Chudi bit C = có độ dài 32 bit được hoán vị theo bảng

K (64 bit)

|

Cho bang hoan vi : Khóa Loại bỏ các bit kiểm tra và

Voii=1 16, ta tinh:

- LS; (

- LS; (

een cen?)

LS, biéu dién phép dịch vòng sang trai 1 hoac 2 vị trí phụ thudc vao i (néu i = 1, 2, 9, 16 thì dịch 1; còn lại thì dịch 2 )

Sơ đồ mô tả cách xác định dãy các bit khóa

Trang 9

Khi mới ra đời, DES được xem là khó thám mã Tuy nhiên, sau một thời gian dài sử dụng (đúng 20 năm), với sự phát triển của các siêu máy tính thì DES không còn là an toàn nữa, bởi vì độ dài của khóa chi 56 bit thì số lượng

chìa (có thể sinh ra) là không đủ nhiều so với số lượng chips và tốc độ xử lý

của các siêu máy tính chuyên dùng để phá mã

Chính vì vậy, ngày từ đầu những năm 90, đã xuất hiện nhiều hệ mã biến

thê của DES với độ dài khóa lớn hơn, đó là:

(Sử dụng DES ba lần với những khóa khác nhau):

(International Data Encryption Algorithm) hỗ trợ khóa 128 bit;

(Advances Encryption Stardand) hỗ trợ độ dài khóa lơn hon 128 bit

Thuật toán IDEA có 8 vòng, sử dụng 52 khóa con (được sinh ra

từ khóa ban đầu có độ dài 128 bit) Mỗi khóa con có độ dài 16 bit Tại

mỗi vòng của IDEA sử dụng tới 6 khóa con (4 khóa dùng đề “chỉnh

trang” dữ liệu trước khi vào vòng còn 2 cái dùng cho việc biến đổi bên

trong của từng vòng) Sau vòng cuối cùng nó sử dụng thêm 4 khóa con nữa

Mỗi khối dữ liệu trong IDEA có độ dài 64 bit và được chia thành

4 phần, mỗi phần 16 bit

Chương 2: Các hệ mã hóa

IDEA sử dụng 3 phép toán trên xâu số nhị phân có độ dài 16 bit,

đó là:

- Phép loại trừ bít XOR;

- Phép cộng thông thường theo modul 2!

- Phép nhân thông thường 2!°+

Chương 2: Các hệ mã hóa

- Ký hiệu 4 phan của khối dữ liệu nguôn là X., X;, Xa, X; và 52 khóa con được gọi tên là K,, Ko, ., Kso

= LẺ)

-_ Trước vòng lặp 1, ta thực hiện việc “chỉnh trang dữ liệu toán:

với các phép

bq.JỆ

a Ae + Ka yaa

Trang 10

pliamtext (Xị, Xa, Xa, X4) Xi: Xe subkeys #{;”” for round r Xz, X4

4 THUAT TOAN MA HOA CHUAN IDEA

Ki) py l6 `

lọ = K; x (X; xor Xa)

round ]

ph? + —

g 2: Các hệ mã hóa

pla:intext (Xi, Xa, Xa, X4) subkeys Kj” for round r

4 THUAT TOAN MA HOA CHUAN IDEA

Lặp lại như vòng 1 cả thay 8 lân:

round 1

Từ lần lặp thứ 2 trở đi, ta sử dụng các khóa từ K; tới K.,s cho lần lặp

thứ 2 và Ka¿a tới K¿s cho lần lặp thứ 8 nhưng không thực hiện việc trao đổi

X› cho Xa sau vòng thứ 8 và thay vào đó là các phép toán:

(2<r<8)

16 16 16 16

ni bề Ae Yì Yạ ciphertext (Y1, Yo, Ys, Ya) Yea Y4

@ bitwise XOR

= addition mod 2!®

(@® multiplication mod 2°44 (with O interpreted as 218

output transformation

Trang 11

Khóa 128 bit ban đầu được chia thành 8 khóa con dau tién K,, Ko, .,

K; (mỗi khóa 16 bít) Tám khóa tiếp theo nhận được bằng cách tương tự, nhưng sau khi cho chìa khóa gốc (128 bít) xoay vòng về trái 25 bít

Lặp lại cho đến khi sinh đủ 52 khóa con, các khóa con này đóng vai

trò chìa khóa lập mã (Encrytion Subkeys) trong thuật toán IDEA

P), Phương pháp sinh khóa ở trên tuy đơn gian, nhưng đủ mạnh để làm

cho hệ mã này có độ an toàn rất cao, đứng vững trước mọi kiểu tắn công

của cộng động nghiên cứu mã chuyên nghiệp cho đến tân bây giờ

Chương 2: Các hệ mã hóa

Cơ sở của việc xây dựng các hệ mã khóa công khai là sự tồn tại

của các “ ” tức là các hàm có thể tính toán

tương đối nhanh, nhưng việc tìm hàm ngược của nó lại rất khó khăn, nếu

không biết trước một số thông tin cần thiết Đó là, rất khó tìm dù đã biết được

Ưu điểm của hệ mã công khai là bên A có thể gửi thông tin được

mã hóa cho B với hàm mã hóa E, được công khai của B (

) Và chỉ có B biết hàm giải mã D, mới

giải mã được thông tin mà bên A đã gửi

Tất cả các hệ mã trình bày ở trên đều là các hệ mã đối xứng, vì việc lập mã và giải mã thường dùng chung một chìa khoá hoặc nếu có dùng hai chìa thì khi chìa khoá lập mã bị lộ thì người ta có thể tìm ra chìa khoá giải mã trong một thời gian tương đối ngắn

Tất cả các hệ mã loại này đều có chung một nhược điểm là trước khi trao đổi thông tin cần trao đổi khóa mã Và trong thực tế việc có được một

kênh thông tin an toàn đề trao đổi khóa không phải luôn dễ dàng thiết lập

Để khắc phục nhược điểm đó, xuất hiện ý tưởng dùng hệ mã khóa công khai (còn gọi là Hệ mã phi đối xứng) Ý tưởng này được và dé xuất vào năm 1976 và nó được xem là cuộc cách mạng trong công nghệ mã

Nó không chỉ khắc phục được điểm yếu của các hệ mã đối xứng, mà còn thoả

mãn được nhiều yêu câu thực tiễn khác về an toàn thông tin trong thời đại

toàn cầu hoá

Chương 2: Các hệ mã hóa

Chương 2: Các hệ mã hóa

ma

đây là hàm một chiêu với p và q là các số nguyên tô lớn

Đề tính thì lại là bài toán cực khó (đây chính là bài toán nỗi tiếng phân tích một số ra thừa số nguyên tố - có độ phức tạp thời gian

là hàm mũi)

“Ham f có độ phức tạp thời gian là đa thức

Chương 2: Các hệ mã hóa

Ngày đăng: 12/04/2013, 22:19

TỪ KHÓA LIÊN QUAN

w