1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ mã hóa đối xứng và bất đối xứng, các thuật toán des, aes, rsa chữ ký số và ứng dụng

48 3,2K 10

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

Nội dung

Hệ mã hóa đối xứng và bất đối xứng, các thuật toán des, aes, rsa chữ ký số và ứng dụng

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN I

BÁO CÁO THỰC TẬP TỐT NGHIỆP

Đề tài : Hệ mã hóa đối xứng và bất đối xứng, các thuật toán DES,

AES, RSA Chữ ký số và ứng dụng.

Hà Nội , ngày 27 tháng 7 năm 2011

Giảng viên hướng dẫn : DƯƠNG TRẦN ĐỨC Lớp : D07HTTT1

Trang 2

LỜI MỞ ĐẦU

Sự phát triển nhanh chóng của Internet đã tác động đến cả công việc kinh doanh và người

tiêu dùng với sự hứa hẹn về việc thay đổi cách mà con người sống và làm việc Nhưng

mối lo ngại lớn nhất được đề cập đến là việc bảo mật trên Internet, đặc biệt khi các thông

tin mang tính nhạy cảm và riêng tư được gửi đi trên mạng

Quá trình mã hoá trong máy tính dựa vào khoa học về mật mã (Cryptography) đã được

con người sử dụng từ lâu đời Trước thời đại số hoá, người sử dụng mật mã nhiều nhất

vẫn là chính phủ, chủ yếu trong mục đích quân sự Hầu hết các phương pháp mã hoá

được dùng hiện nay dựa vào các máy tính, đơn giản là do các mã do con người sinh ra rất

dễ bị phá bởi công cụ máy tính

Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa và giải mã thông tin mà

còn bao gồm nhiều vấn đề khác cần được nghiên cứu và giải quyết như chứng thực nguồn

gốc nội dung thông tin (kỹ thuật chữ ký số ), chứng nhận xác thực về người sở hữu mã

khóa ( chứng nhận khóa công cộng), các qui trình trao đổi thông tin và thực hiện giao

dịch điện tử an toàn trên mạng …

Khi chọn đề tài này , em mong muốn được tìm hiểu những kiến thức tổng quan về mã

hóa ,đồng thời trình bày và phân tích một số thuật toán về mã hóa và ứng dụng của nó

vào kỹ thuật chữ ký số

Nội dung báo cáo gồm 2 phần chính :

Phần I : Mã hóa

Phần II: Chữ ký số

Mặc dù đã cố gắng hoàn thành bản báo cáo với tất cả nỗ lực nhưng chắc chắn em vẫn còn

những thiếu sót nhất định Kính mong sự thông cảm và sự góp ý của thầy và các bạn

Em xin chân thành cảm ơn !

Hà Nội, ngày 23 tháng 7 năm 2011.

Sinh viên

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Điểm:………(bằng chữ: … ……… ….)

…………, ngày … tháng … năm 2011 GIẢNG VIÊN HƯỚNG DẪN (ký, họ tên)

Trang 4

MỤC LỤC

A MÃ HÓA 5

I Tổng quan về mã hóa 6

II Mã hóa đối xứng và các thuật toán 7

2.1 Khái niệm mã hóa đối xứng 7

2.2 Các kiểu tấn công hệ mã hóa đối xứng 8

2.3 Thuật toán DES ( Data Encryption Standard) 10

2.4 Thuật toán AES (Advanced Encryption Standard) 21

III Mã hóa bất đối xứng 26

3.1 Khái niệm mã hóa bất đối xứng, cơ chế, các thành phần của hệ mã hóa bất đối xứng 26 3.2 Các đặc điểm và yêu cầu của hệ mã hóa bất đối xứng 27

IV Thuật toán mã hóa khóa công khai RSA 28

4.1 Ý tưởng và yêu cầu của thuật toán 28

4.2 Chi tiết về tạo khóa và quá trình mã hóa, giải mã 29

4.3 Đặc điểm của thuật toán 34

B CHỮ KÝ SỐ VÀ ỨNG DỤNG 38

I Chữ ký số 38

1.1 Khái niệm 38

1.2 Tạo và sử dụng chữ ký số bằng kỹ thuật mã hóa bất đối xứng 38

II Chứng chỉ số 41

2.1 Khái niệm chứng chỉ số (Digital Certificate) 41

2.2 Quá trình xác minh chữ ký số thông qua chứng chỉ số 41

III Giải pháp ứng dụng chữ ký số 42

KẾT LUẬN 46

TÀI LIỆU THAM KHẢO 47

Trang 5

DANH MỤC CÁC HÌNH VẼ

Hình 1 : Mô hình trao đổi thông tin qua mạng thông thường 6

Hình 2 : Quy trình mã hóa thông tin 7

Hình 3 : Mô hình mã hóa đối xứng 8

Hình 4 : Cấu trúc thuật toán Feistel dùng trong DES 12

Hình 5 : Hàm F (F-function) dùng trong DES 13

Hình 6 : Quá trình tạo khóa con trong DES 14

Hình 7 : Sơ đồ Rijndael 22

Hình 8 : Sơ đồ biểu diễn thuật toán mã hóa RSA 31

Hình 9 : Sơ đồ tạo và kiểm tra chữ ký số 39

Hình 10 : Mô tả giải thuật MD5 43

Hình 11 : Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 44

Hình 12 : Sơ đồ mô tả quá trình nhận các tệp văn bản 45

Trang 6

DANH MỤC THUẬT NGỮ VIẾT TẮT

AES Advanced Encryption

Standard

Tiêu chuẩn mã hóa tiên tiến

CA

Certificate Authority Chứng thực sốCFB Cipher FeedBack Mã phản hồi ngược

CBC Cipher Block Chaining Dây chuyền mã khối

DES Data Encryption Standard Tiêu chuẩn mã hóa dữ liệu

IDEA International Data

Encryption Algorithm

Thu t toán mã hóa d li u qu c tật toán mã hóa dữ liệu quốc tế ữ liệu quốc tế ệu quốc tế ốc tế ế

ECB Electronic Codebook Book Sách mật mã điện tử

MD5 Message Digest 5 Giải thuật MD5

OFB Output FeedBack Phản hồi ngược đầu ra

bang Hoa KỳRSA Algorithm Thuật toán mật mã hóa khóa công

khai

A MÃ HÓA.

Trang 7

Mã hóa là quá trình biến đổi thông tin sang một dạng khác nhưng có thể biến đổi ngược

về dạng ban đầu Giải mã là quá trình biến đổi ngược lại của mã hóa

Tại sao cần mã hóa thông tin?

Mọi công việc hàng ngày của chúng ta đều có thể thực hiện đựợc từ xa với sự hổ trợ củamáy vi tính và mạng internet (từ việc học tập, đi mua sắm, gửi thư… đến việc đi chợ củamột cô đầu bếp) Tất cả thông tin liên quan đến những công việc này đều do máy vi tínhquản lý và truyền đi trên hệ thống mạng Đối với những thông tin bình thường thìkhông có ai chú ý đến, nhưng đối với những thông tin mang tính chất sống còn đối vớimột số cá nhân (hay tổ chức) thì vấn đề bảo mật thật sự rất quan trọng Do đó mà cầnphả mã hõa thông tin lại trước khi gửi đi Cụ thể:

Hình 1 : Mô hình trao đổi thông tin qua mạng thông thường

Thông thường việc trao đổi thông tin giữa hai người được mô tả ở hình 1, các bước thựchiện như sau:

- Tạo ra thông tin cần gửi đi

- Gửi thông tin này cho các đối tác

Theo cách này thì chúng ta sẽ không thể quản lý được sự bí mật của thông tin và ngườithứ ba không mong muốn nào đó có thể đón được thông tin trên Vì vậy ta có thể xâydựng một mô hình trao đổi thông tin bảo mật như ở hình 2, các bước thực hiện như sau:

- Tạo ra thông tin cần gửi đi

- Mã hóa và gửi thông tin đã được mã hóa đi

- Đối tác giải mã thông tin nhận được

- Đối tác có được thông tin ban đầu của người gởi

Trang 8

Hình 2 : Quy trình mã hóa thông tin

Hơn nữa, mã hóa dữ liệu ngăn chặn được các việc sau :

 Nghe trộm và xem lén dữ liệu

II.1 Khái niệm mã hóa đối xứng.

Mã hóa đối xứng là kiểu mã hóa hai bên tham gia truyền dữ liệu sử dụng chung mộtkhóa để mã hóa và giải mã

Một khoá có thể là một con số, một từ, hoặc một cụm từ được dùng vào mục đích mã hóa

và giải mã dữ liệu

Trước khi hai bên trao đổi dữ liệu, khóa phải được chia sẽ dùng chung cho cả 2 bên.Người gửi sẽ mã hóa thông tin bằng khóa riêng và gửi thông tin đến người Trong quátrình nhận thông tin, người nhận sủ dụng cùng một khóa để giải mã thông điệp

Trang 9

Hình 3 : Mô hình mã hóa đối xứng

 Các thành phần của thuật toán (5 thành phần):

 Plaintext: bản tin (dữ liệu) gốc

 Encryption algorithm: Thuật toán mã hóa – thực hiện thay thế và biến đổi

Với mỗi K, Dk là nghịch đảo của Ek : DK(EK(M))=M , với mọi M

II.2 Các kiểu tấn công hệ mã hóa đối xứng

Có 2 kiểu tấn công hệ mã hóa đối xứng: Phân tích mã hóa và Tấn công vét cạn

- Phân tích mã hóa: là quá trình cố gắng phát hiện bản tin gốc hoặc khóa Có cáchkiểu tấn công phân tích là:

Trang 10

Ciphertext only- chỉ dùng bản mã: đối phương chỉ có bản tin gốc đã mã hóa,dùng phương pháp thống kê, xác định bản gốc p

Known plaintext- biết bản tin gốc: đối phương có ciphertext và 1 số cặp p và ckhác

Chosen plaintext: c và một engine biến đổi p-c, Đột nhập được vào máy mãhoá Tự chọn văn bản p và mã hoá lấy được văn bản mã c tương ứng

Chosen ciphertext: đối phương có c +một engine biến đổi c-p, Đột nhập đượcvào máy giải mã Tự chọn văn bản mã c và giải mã lấy được văn bản p tương ứng

- Tấn công vét cạn: thử với mọi trường hợp có thể Phần lớn công sức của các tấncông đều tỉ lệ với kích thước khóa

Giả thiết là biết hoặc nhận biết được các bản tin gốc p:

Key size

(bit)

Thời gian vétcạn

Thời gian (106encrypt/Ms)

32 231 Ms= 35p 2 Ms

Trang 11

Một vấn đề khác là khi hệ thống mã hóa đồng bộ xữ lý một lượng thông tin lớn, việc quả

lý các khóa sẽ trở thành một công việc vô cùng khó khăn Kết hợp với việc thiết lặp cáccặp khóa, phân phối, và thay đổi theo định kỳ đều đòi hỏi thời gian và tiền bạc

Hệ hống mã hóa đối xứng đã giải quyết vấn đề đó bằng việc đưa ra hệ thống mã hóa đốixứng Đồng thời, họ cũng tăng tính năng bảo mật trong suốt quá trình chuyển vận Chúng

ta sẽ được tham khảo thêm về hệ thống mã hóa bất đối xứng ở phần sau

II.3 Thuật toán DES ( Data Encryption Standard).

II.3.1 Lịch sử của thuật toán DES

DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976 Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau

để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp thám mã tương ứng

Từ cuối thập niên 1980, đầu thập niên 1990, xuất phát từ những lo ngại về độ an toàn và tốc độ thấp khi áp dụng bằng phần mềm, giới nghiên cứu đã đề xuất khá nhiều thuật toán

mã hóa khối để thay thế DES Những ví dụ tiêu biểu bao gồm: RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 và FEAL Hầu hết những thuật toán này có thể sử dụng từ

Trang 12

khóa 64 bit của DES mặc dù chúng thường được thiết kế hoạt động với từ khóa 64 bit hay 128 bit.

Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu

là độ dài 56 bit của khóa là quá nhỏ Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù trên lý thuyết phương pháp này vẫn có thể bị phá Triple DES được xem là an toàn mặc

dù tốc độ thực hiện khá chậm Một phương pháp khác ít đòi hỏi khả năng tính toán hơn làDES-X với việc tăng độ dài từ khóa bằng cách thực hiện phép XOR từ khóa với phần thêm trước và sau khi thực hiện DES Một phương pháp nữa là GDES được đề xuất làm tăng tốc độ mã hóa nhưng nó được chứng tỏ là không an toàn trước tấn công vi sai

(differential cryptanalysis)

Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra một thuật toán mới, AES, để thay thế cho DES Thuật toán được trình diện dưới tên là Rijndael Những thuật toán khác có tên trong danh sách cuối cùng của cuộc thi AES bao gồm: RC6, Serpent, MARS và Twofish

II.3.2 Mô tả thuật toán.

DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có

độ dài không thay đổi Trong trường hợp của DES, độ dài mỗi khối là 64 bit DES cũng

sử dụng khóa để cá biệt hóa quá trình chuyển đổi Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản mã 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 Vì thế, độ dàithực tế của khóa chỉ là 56 bit

Giống như các thuật toán mã hóa khối khác, khi áp dụng cho các văn bản dài hơn 64 bit, DES phải được dùng theo một phương pháp nào đó

Tổng thể

Cấu trúc tổng thể của thuật toán được thể hiện ở Hình 2.2:

Trang 13

Hình 4 : Cấu trúc thuật toán Feistel dùng trong DES

Có 16 chu trình giống nhau trong quá trình xử lý Ngoài ra còn có hai lần hoán vị đầu và

cuối (Initial and final permutation - IP & FP) Hai quá trình này có tính chất đối nhau

(Trong quá trình mã hóa thì IP trước FP, khi giải mã thì ngược lại) IP và FP không có vaitrò xét về mật mã học và việc sử dụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đưa

Trang 14

thông tin vào và lấy thông tin ra từ các khối phần cứng có từ thập niên 1970 Trước khi đivào 16 chu trình chính, khối thông tin 64 bit được tách làm hai phần 32 bit và mỗi phần

sẽ được xử lý tuần tự (quá trình này còn được gọi là mạng Feistel)

Cấu trúc của thuật toán (mạng Feistel) đảm bảo rằng quá trình mã hóa và giải mã diễn ra tương tự Điểm khác nhau chỉ ở chỗ các khóa con được sử dụng theo trình tự ngược nhau.Điều này giúp cho việc thực hiện thuật toán trở nên đơn giản, đặc biệt là khi thực hiện bằng phần cứng

Ký hiệu sau: thể hiện phép toán XOR Hàm F làm biến đổi một nửa của khối đang xử

lý với một khóa con Đầu ra sau hàm F được kết hợp với nửa còn lại của khối và hai phầnđược tráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùng thì 2 nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistel khiến cho quá trình mã hóa và giải mã trở nên giống nhau

Hàm Feistel (F)

Hàm F, như được miêu tả ở Hình 5 , hoạt động trên khối 32 bit và bao gồm bốn giai đoạn:

Hình 5 : Hàm F (F-function) dùng trong DES

1 Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán hoán vị mởrộng (expansion permutation) với việc nhân đôi một số bit Giai đoạn này được ký hiệu là E trong sơ đồ

Trang 15

2 Trộn khóa: 48 bit thu được sau quá trình mở rộng được XOR với khóa con Mười sáu khóa con 48 bit được tạo ra từ khóa chính 56 bit theo một chu trình tạo khóa con (key schedule) miêu tả ở phần sau.

3 Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit và được xử lý qua hộpthay thế S-box Đầu ra của mỗi khối 6 bit là một khối 4 bit theo một chuyển đổi phi tuyến được thực hiện bẳng một bảng tra Khối S-box đảm bảo phần quan trọngcho độ an toàn của DES Nếu không có S-box thì quá trình sẽ là tuyến tính và việc thám mã sẽ rất đơn giản

4 Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp xếp lại theo một thứ tự cho trước (còn gọi là P-box)

Quá trình luân phiên sử dụng S-box và sự hoán vị các bít cũng như quá trình mở rộng đã thực hiện được tính chất gọi là sự xáo trộn và khuyếch tán (confusion and diffusion) Đây

là yêu cầu cần có của một thuật toán mã hoá được Claude Shannon phát hiện trong nhữngnăm 1940

Quá trình tạo khóa con

Hình 6 : Quá trình tạo khóa con trong DESHình 6 mô tả thuật toán tạo khóa con cho các chu trình Đầu tiên, từ 64 bit ban đầu củakhóa, 56 bit được chọn (Permuted Choice 1, hay PC-1); 8 bit còn lại bị loại bỏ 56 bit thu

Trang 16

được được chia làm hai phần bằng nhau, mỗi phần được xử lý độc lập Sau mỗi chu trình,mỗi phần được dịch đi 1 hoặc 2 bit (tùy thuộc từng chu trình) Các khóa con 48 bit được tạo thành bởi thuật toán lựa chọn 2 (Permuted Choice 2, hay PC-2) gồm 24 bit từ mỗi phần Quá trình dịch bit (được ký hiệu là "<<<" trong sơ đồ) khiến cho các khóa con sử dụng các bit khác nhau của khóa chính; mỗi bit được sử dụng trung bình ở 14 trong tổng

Một số đặc điểm của giải mã DES

- DES có tính chất bù:

trong đó là phần bù của x theo từng bít (1 thay bằng 0 và ngược lại) EK 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) Do tính bù, ta có thể giảm độ phức tạp của tấn công bạo lực xuống 2 lần (tương ứngvới 1 bít) với điều kiện là ta có thể lựa chọn bản rõ

- 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ả:

EK(EK(P)) = P or equivalently, EK = DK

- Bên cạnh đó, còn có 6 cặp khóa nửa yếu (semi-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:

or equivalently,

Trang 17

Tuy nhiên có thể dễ dàng tránh được những khóa này khi thực hiện thuật toán, có thể bằng cách thử hoặc chọn khóa một cách ngẫu nhiên Khi đó khả năng chọn phải khóa yếu

là rất nhỏ

DES đã được chứng minh là không tạo thành nhóm Nói một cách khác, tập hợp {EK} (cho tất cả các khóa có thể) theo phép hợp thành không tạo thành một nhóm hay gần với một nhóm (Campbell and Wiener, 1992) Vấn đề này đã từng là một câu hỏi mở trong khá lâu và nếu như tạo thành nhóm thì DES có thể bị phá vỡ dễ dàng hơn bởi vì việc áp dụng DES nhiều lần (ví dụ như trong Triple DES) sẽ không làm tăng thêm độ an toàn củaDES

II.3.3 Các kiểu tấn công

Hiện nay có 3 kiểu tấn công có khả năng phá vỡ DES (với đủ 16 chu trình) với độ phức tạp thấp hơn phương pháp bạo lực: phá mã vi sai (differential cryptanalysis - DC), phá

mã tuyến tính (linear cryptanalysis - LC) và phá mã Davies (Davies' attack) Tuy nhiên các dạng tấn công này chưa thực hiện được trong thực tế

 Phá mã vi sai được Eli Biham và Adi Shamir tìm ra vào cuối những năm 1980 mặc dù nó đã được IBM và NSA biết đến trước đó Để phá mã DES với đủ 16 chutrình, phá mã vi sai cần đến 247 văn bản rõ DES đã được thiết kế để chống lại tấn công dạng này

 Phá mã tuyến tính được tìm ra bởi Mitsuru Matsui và nó đòi hỏi 243 văn bản rõ (Matsui, 1993) Phương pháp này đã được Matsui thực hiện và là thực nghiệm phá

mã đầu tiên được công bố Không có bằng chứng chứng tỏ DES có khả năng chống lại tấn công dạng này Một phương pháp tổng quát hơn, phá mã tuyến tính

đa chiều (multiple linear cryptanalysis), được Kaliski và Robshaw nêu ra vào năm

1994, Biryukov và cộng sự tiếp tục cải tiến vào năm 2004 Nghiên cứu của họ cho thấy mô phỏng tuyến tính đa chiều có thể sử dụng để giảm độ phức tạp của quá trình phá mã tới 4 lần (chỉ còn 241 văn bản rõ) Kết quả tương tự cũng có thể đạt được với kiểu tấn công tuyến tính kết hợp với lựa chọn bản rõ (Knudsen and Mathiassen, 2000) Junod (2001) đã thực hiện một số thực nghiệm để tìm ra độ phức tạp thực tế của phá mã tuyến tính và thấy rằng quá trình thực tế nhanh hơn

dự đoán: 239×241

 Phá mã Davies: trong khi phá mã vi sai và phá mã tuyến tính là các kỹ thuật phá

mã tổng quát, có thể áp dụng cho các thuật toán khác nhau, phá mã Davies là một

kỹ thuật dành riêng cho DES Dạng tấn công này được đề xuất lần đầu bởi Davies vào cuối những năm 1980 và cải tiến bởi Biham và Biryukov (1997) Dạng tấn

Trang 18

công mạnh nhất đòi hỏi 250 văn bản rõ, độ phức tạp là 250 và có tỷ lệ thành công là 51%.

1 Ngoài ra còn có những kiểu tấn công dựa trên bản thu gọn của DES - DES với ít hơn 16 chu trình Những nghiên cứu này cho chúng ta biết số lượng chu trình cần

có và ranh giới an toàn của hệ thống Năm 1994, Langford và Hellman đề xuất phá

mã vi sai - tuyến tính (differential-linear cryptanalysis) kết hợp giữa phá mã vi sai

và tuyến tính Một dạng cải tiến của phương pháp này có thể phá vỡ DES 9 chu trình với 215.8 văn bản rõ và có độ phức tạp là 229.2 (Biham et al, 2002)

II.3.4 Vấn đề về mã hóa khối

Mã khối mã các block có kích thước cố định Chẳng hạn DES mã các block 64 bítvới khoá 56 bít Cần phải có cách áp dụng vào thực tế vì các thông tin cần mã có kíchthước tùy ý Trwosc kia có 4 kiểu thao tác được định nghĩa cho DES theo chuẩn ANSI:ANSI X3.106-1983 Modes of Use Bây giờ mở rộng them có 5 cách cho DES và chuẩn

mã nâng cao (AES – Advanced Encryption Standards) Trong đó có kiểu áp dụng chokhối và có kiểu áp dụng cho mã dòng

2.3.4.1 Sách mật mã điện tử (Electronic Codebook Book - ECB)

- Mẫu tin được chia thành các khối độc lập, sau đó mã từng khối

- Mỗi khối là giá trị cần thay thế như dùng sách mã, do đó có tên như vậy

- Mỗi khối được mã độc lập với các mã khác Ci = DESK1 (Pi)

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

- Ưu và nhược của ECB

 Lặp trên bản mã được chỉ rõ lặp trên bản tin

 Nếu dóng đúng khối

 Đặc biệt với hình ảnh

Trang 19

 Hoặc với bản tin mà thay đổi rất ít sẽ trở thành đối tượng để thám mã

- Nhược điểm là các khối được mã độc lập

- Được sử dụng chủ yếu khi gửi một ít dữ liệu

2.3.4.2 Dây chuyền mã khối (Cipher Block Chaining - CBC)

- Các mẫu tin được chia thành các khối

- Nhưng chúng được liên kết với nhau trong quá trình mã hoá

- Các block được sắp thành dãy, vì vậy có tên như vậy

- Sử dụng véctơ ban đầu IV để bắt đầu quá trình

Ci = DESK1(Pi XOR Ci-1)

C-1 = IV

Dùng khi: mã dữ liệu lớn, xác thực

- Ưu và nhược của CBC

 Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ

 Sự thay đổi của bản tin ở đâu đó sẽ kéo theo sự thay đổi của mọi khối mã

 Cần giá trị véc tơ ban đầu IV được biết trước bởi người gửi và người nhận

Tuy nhiên nếu IV được gửi công khai, kẻ tấn công có thể thay đổi bít đầu tiên và thayđổi cả IV để bù trừ Vậy IV cần phải có giá trị cố định trước hoặc mã hoá trong chế độECB và gửi trước phần còn lại của mẩu tin Ở cuối bản tin, để kiểm soát các block ngắncòn lại

 Có thể bổ sung các giá trị không phải dữ liệu như NULL

 Hoặc dùng bộ đệm cuối với số byte đếm kích thước của nó

Ví dụ

[ b1 b2 b3 0 0 0 0 5] <- 3 data bytes,

vậy có 5 bytes dành cho đệm và đếm

Trang 20

2.3.4.3 Mã phản hồi ngược (Cipher FeedBack - CFB)

- Bản tin coi như dòng các bít

- Bổ sung vào đầu ra của mã khối

- Kết quả phản hồi trở lại cho giai đoạn tiếp theo, vì vậy có tên như vậy

- Nói chung cho phép số bít phản hồi là 1, 8, 64, hoặc tuỳ ý: ký hiệu tương ứng làCFB1, CFB8, CFB64,…

- Thường hiệu quả sử dụng cả 64 bít

Ci = Pi XOR DESK1(Ci-1)

C-1 = IV

- Được dùng cho mã dữ liệu dòng, xác thực

- Ưu và nhược điểm của mã phản hồi ngược

 Được dùng khi dữ liệu đến theo byte/bit

 Chế độ dòng thường gặp nhất

 Hạn chế là cần ngăn chuồng khi mã khối sau mỗi n bit

 Nhận xét là mã khối được dùng ở chế độ mã ở cả hai đầu

- Lỗi sẽ lan ra một vài block sau lỗi

2.3.4.4 Phản hồi ngược đầu ra (Output FeedBack - OFB)

- Mẩu tin xem như dòng bit

- Đầu ra của mã được bổ sung cho mẩu tin

- Đầu ra do đó là phản hồi, do đó có tên như vậy

- Phản hồi ngược là độc lập đối với bản tin

- Có thể được tính trước

Ci = Pi XOR Oi

Oi = DESK1(Oi-1)

-1 = IV

Trang 21

Được dùng cho mã dòng trên các kênh âm thanh

- Ưu điểm và nhược điểm của OFB

 Được dùng khi lỗi phản hồi ngược lại hoặc ở nơi cần mã trước khi mẩu tin sẵnsang

 Rất giống CFB

 Nhưng phản hồi là từ đầu ra của mã và độc lập với mẩu tin

 Là biến thể của mã Vernam, suy ra không sử dụng lại với cùng một dãy (Key +IV)

 Người gửi và người nhận phải đồng bộ, có phương pháp khôi phục nào đó là cầnthiết để đảm bảo việc đó

 Nguyên bản chỉ rõ m bit phản hồi ngược theo các chuẩn

 Các nghiên cứu tiếp theo chỉ ra rằng chỉ có OFB64 là dùng được

2.3.4.5 Bộ đếm CTR (Counter)

- Là chế độ mới, tuy đã được đề xuất từ lâu

- Giống như OFB, nhưng mã giá trị đếm thay vì giá trị phản hồi tuỳ ý

- Cần phải có khoá khác và giá trị đếm cho mỗi khối bản rõ (không bao giờ dùnglại)

Ci = Pi XOR Oi

i = DESK1(i)

Được dùng mã trên mạng với tốc độ cao

- Ưu và nhược điểm của CTR

 Hiệu quả

Do có thể mã song song

Chuẩn bị trước nếu cần

 Tốt cho các kết nối với tốc độ rất cao

Trang 22

 Truy cập ngẫu nhiên đến các khối dữ liệu mã

 Tính an toàn có thể chứng minh được

 Nhưng phải tin tưởng không bao giờ dùng lại khoá/đếm, nếu không cóthể bẻ

II.4 Thuật toán AES (Advanced Encryption Standard).

AES được dựa trên một nguyên tắc thiết kế được biết đến như là một mạng hoán vị thay thế Đó là nhanh chóng ở cả hai phần mềm và phần cứng Không giống như thuật toán tiền nhiệm của nó, DES, AES không sử dụng mạng Feistel

AES có một cố định kích thước khối là 128 bit và kích thước khóa 128, 192, hoặc 256 bit, trong khi Rijndael có thể được chỉ định với khối và kích thước quan trọng trong bất

kỳ bội số của 32 bit, với tối thiểu là 128 bit Kích cỡ khối có tối đa là 256 bit, nhưng keysize không có lý thuyết tối đa

AES hoạt động trên một ma trận 4 × 4 byte, gọi là nhà nước (các phiên bản của Rijndael với một kích thước khối lớn hơn có các cột bổ sung trong tiểu bang) Hầu hết các tính toán AES được thực hiện trong một đặc biệt lĩnh vực hữu hạn

Các thuật toán mã hóa AES được quy định như một số lần lặp lại của vòng chuyển đổi

mà chuyển đổi các chữ thô đầu vào vào đầu ra cuối cùng của bản mã Mỗi vòng bao gồm nhiều bước xử lý, trong đó có một phụ thuộc vào khóa mã hóa Một tập hợp các vòng đảongược được áp dụng để biến đổi bản mã trở lại bản rõ ban đầu bằng cách sử dụng cùng một khóa mã hóa

Trang 23

II.4.1 Mô tả của thuật toán

Sơ đồ Rijndael

Hình 7 : Sơ đồ Rijndael

Trang 24

Sau đây ta xét chi tiết hơn các quá trình mã hoá, sinh khoá và giải mã AES Xét cụ thểquá trình mã hóa bao gồm 4 bước:

1 AddRoundKey - mỗi byte của khối được kết hợp với khóa con, các khóa con nàyđược tạo ra từ quá trình tạo khóa con Rijndael

Hình 2.5: Mô tả hoạt động bước AddRoundKey

2 SubBytes - đây là quá trình thay thế (phi tuyến) trong đó mỗi byte sẽ được thay thếbằng một byte khác theo bảng tra (Tìm trong tài liệu tương ứng)

Hình 2.6: Mô tả hoạt động bước SubBytes

3 ShiftRows - đổi chỗ, các hàng trong khối được dịch vòng

Hình 2.7: Mô tả hoạt động bước ShiftRows

Ngày đăng: 03/02/2016, 14:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw- Hill, 2001 Sách, tạp chí
Tiêu đề: Introduction to Algorithms
3. Phan Đình Diệu. Lý thuyết mật mã &amp; An toàn thông tin. NXB Đại học Quốc gia Hà Nội , 2002 Sách, tạp chí
Tiêu đề: Lý thuyết mật mã & An toàn thông tin
Nhà XB: NXB Đại học Quốc gia Hà Nội
4. Dương Anh Đức , Trần Minh Triết . Mã hóa và ứng dụng . Đại học Khoa học Tự nhiên , Đại học Quốc gia TP Hồ Chí Minh .2005 Sách, tạp chí
Tiêu đề: Mã hóa và ứng dụng
5. FIPS . Announcing the Advanced Encryption Standard (AES) . 2001 Sách, tạp chí
Tiêu đề: Announcing the Advanced Encryption Standard (AES)
6. Mohan Atrey , Ben Hammond , Stephen Paine, Paul Starrett, Stephen Wu . Digital Signatures, RSA.2002 Sách, tạp chí
Tiêu đề: Digital Signatures, RSA

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w