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

Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối

99 677 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 99
Dung lượng 661,97 KB

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

Nội dung

Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối

Trang 1

ĐỒ ÁN TỐT NGHIỆP

Đề tài: Nghiên cứu tìm hiểu đánh giá chất lượng một số

lược đồ khóa trong mã khối

HÀ NỘI 2010

Trang 2

HỌC VIỆN KỸ THUẬT MẬT MÃ

ĐỒ ÁN TỐT NGHIỆP

Đề tài: Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ

khóa trong mã khối

HÀ NỘI 2010

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU……….………

Chương 1: M Ở ĐẦU VỀ MÃ KHỐI 8

1.1 Giới thiệu chung về mã khối 8

1.2 Độ an toàn của các hệ mã khối 10

1.2.1 Các kiểu tấn công 11

1.2.2 Độ an toàn vô điều kiện và độ an toàn tính toán 11

1.2.3 Độ phức tạp xử lý và độ phức tạp dữ liệu của một tấn công cụ thể13 1.2.4 Các tham số của mã khối 14

1.2.4.1 Độ dài khối m 14

1.2.4.2 Độ dài khóa k và cỡ khóa đúng kt 15

1.3 Các chế độ hoạt động của mã khối 15

1.3.1 Vector khởi tạo – IV .15

1.3.2 Chế độ ECB 16

1.3.3 Chế độ CBC 17

1.3.4 Chế độ CFB 18

1.3.5 Chế độ OFB 19

1.3.6 Chế độ CTR 20

1.4 Nguyên lý thiết kế mã khối 21

1.4.1 Nguyên lý thiết kế chung về độ an toàn 21

1.4.2 Nguyên lý thiết kế cho ứng dụng 22

1.5 Các cấu trúc mã khối cơ bản 22

1.5.1 Cấu trúc mã Feistel 22

1.5.2 Cấu trúc cộng-nhân 24

Chương 2: L ƯỢC ĐỒ KHểA CỦA MÃ KHỐI VÀ MỘT SỐ LƯỢC ĐỒ CỤ THỂ 25

Trang 4

2.1 Phân loại các lược đồ khoá của các hệ mã khối 25

2.2 Một số lược đồ khoá mạnh 28

2.3 Chuẩn mã dữ liệu Xô viết (GOST) 29

2.4 Thuật toán mã dữ liệu quốc tế IDEA 30

2.4.1 Lược đồ khoá của IDEA 32

2.4.1.1 Tính tuyến tính trong các phép toán số học MÔĐULÔ 32

2.4.1.2 Lớp khoá yếu bao hàm yếu tố tuyến tính 34

2.4.1.3 Lớp khoá yếu vi sai 37

2.4.1.3.1 Lớp khoá yếu có đặc trưng xác suất 1 37

2.5 Chuẩn mã dữ liệu DES 39

2.5.1 Mô tả DES 39

2.5.2 Một số ý kiến thảo luận về lược đồ khóa của DES 51

2.5.3 Các cơ chế hoạt động của DES 53

Chương 3 : CHUẨN MÃ HểA NÂNG CAO AES 56

3.1 Tổng quan về chuẩn mã hóa nâng cao và thuật toán Rịjdael 56

3.2 các chức năng bên trong của mật mã khối rijndael 59

3.2.1 Các byte như các đa thức 59

3.2.1.1 Các biểu diễn của byte 59

3.2.1.2 Phép cộng 2 byte 59

3.2.1.3 Phép nhân 2 byte 60

3.2.1.4 Phép dịch chuyển vòng của từ vào 60

3.2.2 Các chức năng bên trong của mật mã Rijndael 63

3.2.2.1 Chức năng thay thế các byte: SubBytes (State) 65

3.2.2.2 Chức năng dịch chuyển các dòng: ShiftRows(State) 66

3.2.2.3 Chức năng xáo trộn các cột: MixColumns (State) 66

3 2.2.4 Chức năng cộng khóa: AddRoundKey(State, RoundKey) 67

3.2.2.5 Chức năng mở rộng khóa: KeyExpansion(CipherKey, ExpandedKey) 68

Trang 5

3.2.2.6 Chức năng tạo các hằng: Rcon[i] (Round keys and

constants) 69

3.2.2.7 Chức năng Mã hóa Rijndael 70

3.2.2.8 Chức năng giải mã 70

3.3 Tóm tắt vai trò các chức năng bên trong Rijndael 71

3.4 Thực hiện nhanh và an toàn 72

3.5 Một vài chú ý về AES trong mật mã ứng dụng 73

3.6 Lược đồ khóa của AES 73

3.6.1 Tính tuyến tính của lược đồ khóa AES với độ dài khóa 128 bít.76 3.6.2 Mô tả đúng đắn 78

3.6.3 Kết luận về khóa AES 128 bit 81

3.7 Tăng sức mạnh cho lược đồ khóa AES 82

3.7.1 Các lược đồ khóa của mã khối 82

3.7.1.1 Hàm 1 chiều 83

3.7.1.2 Thông tin t ương hỗ tối thiểu 83

3.7.1.3 Cài đặt hiệu quả 83

3.7.2 Lược đồ khóa của AES 84

3.7.2.1 Mô tả lược đồ khóa 84

3.7.2.2 Thám mã trước đó 85

3.7.2.3 Phân tích của các tác giả bài báo 85

3.7.2.4 Cài đặt 88

3.7.3 Một đề xuất lược đồ khóa mới cho AES 89

3.7.3.1 Đề xuất lược đồ khóa 128-bit 89

3.7.3.2 Hiệu quả cài đặt của lược đồ khóa đề xuất 91

3.7.3.3 Phân tích tính an toàn của lược đồ khóa đề xuất 93

3.7.4 Kết luận về việc làm mạnh lược đồ khóa của AES 94

KẾT LUẬN 96

TÀI LIỆU THAM KHẢO 97

Trang 7

LỜI NÓI ĐẦU

Ngà y nay với sự phát triển mạnh mẽ của Internet và các ứng dụngcủanó,nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng càng được quantâm và có ý nghĩa hết sức quan trọng, vì vậy các ứng dụng mã hóa và bảo mậtthông tin đang được sử dụng ngày càng phổ biến trong các lĩnh vực khác nhautrên thế giới, từ lĩnh vực an ninh, quân sự, quốc phòng, cho đến các lĩnh vựcdân sự như thương mại điện tử, ngân hàng, và tất cả các hệ thống thông tinthông dụng khác

Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu vàứng dụng của mật mã học ngày càng trở nên đa dạng hơn, mở ra nhiều hướngnghiên cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặctrưng riêng,ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hóa vàgiả mã thông tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiêncứu và giải quyết, ví dụ như chữ ký điện tử, xác thực người dùng

Các hệ mật hiện nay được chia thành hai loại: hệ mật khóa bí mật và hệ mậtkhóa công khai Trong hệ mật khóa bí mật thường được chia thành các hệ mãkhối và hệ mã dòng Các hệ mã khối được sử dụng phổ biến hơn vì dể dàngchuẩn hóa và do các đơn vị xử lý thông tin hiện nay thường có dạng khối nhưbyte hoặc words

Mặc dù mã khối được sử dụng rộng rãi và khá an toàn tuy nhiên vẫn có nhiềuloại tấn công nhằm vào bản thân cơ chế mã cũng như thành phần quan trọngnhất đấy là lược đồ khóa của mã khối Ví dụ như tấn công khóa quan hệ vàtấn công trượt khóa của Binham, tấn công nội suy của Ferguson

Vì vậy mục tiêu của đề tài “Nghiên cứu tìm hiểu đánh giá chất lượng một sốlược đồ khóa trong mã khối” do TS Trần Văn Trường hướng dẫn là nhằmnghiên cứu lược đồ khóa và phương pháp làm mạnh các lược đồ khóa của mãkhối để có thể chống lại các kiểu tấn công nhằm vào lược đồ khóa

Bố cục của đề tài gồm có :

Lời mở đầu – Nêu lý do sử dụng mã khối , tầm quan trọng của mã khối trongvẫn đề mã hóa bảo mật thông tin từ đấy đưa ra mục đích của đề tài, lời cảm

ơn

Chương I: Mở đầu về mã khối – Trong chương này giới thiệu qua về mã khối,

độ an toàn, cá kiểu tấn công , cơ chế hoạt động và nguyên lý thiết kế mã khối

Trang 8

Chương II: Lược đồ khóa của mã khối và một số lược đồ khóa cụ thể – Trongchương này giới thiệu các loại lược đồ khóa trong mã khối và tìm hiểu một sốlược đồ khóa cụ thể như GOST,IDEA,DES

Chương III: Chuẩn mã hóa nâng cao AES – Trong chương này giời thiệu tổngquan về AES, chức năng cách thức hoạt động,lược đồ khóa và nghiên cứu cácbài bào về tính tuyến tính và làm mạnh cho lược đồ khóa của AES

Kết luận – Trong này nêu ra những kết quả nghiên cứu đạt được trong đề tàicũng như những việc chưa làm được và phương hướng phát triển của đề tài

Do thời gian có hạn nên nội dung của đề tài còn sơ sài, kết quả dạt được cũngchưa nhiều rất mong sự đóng góp ý kiến và nhận xét từ phía các thầy ,cô vàcác bạn Trong thời gian làm đề tài của mình, tôi đã nhận được sự hướng dẫn

và giúp đỡ tận tình của thầy giáo ,TS Trần Văn Trường

Xin gửi lời cảm ơn chân thành tới thầy giáo

Trang 9

Chương I: MỞ ĐẦU VỀ MÃ KHỐI

1.1 Giới thiệu chung về mã khối

Ngày nay với sự phát triển lớn mạnh của nền công nghệ thông tin trêntoàn thế giời, hầu hết các ban nghành , tổ chức, công ty đều sử dụng hệ thốngthông tin trong hoạt động của mình Vì vậy một khối lượng lớn các thông tinđược truyền trên các kênh thông tin và mạng máy tính hiện nay đang ngàycàng gia tăng đặc biệt đòi hỏi cần phải được bảo vệ khỏi các dò rỉ khôngmong muốn, tức là đảm bảo tính bí mật, đồng thời cũng cần phải được bảo vệtránh sự giả mạo và sự từ chối trách nhiệm, tức là đảm bảo tính xác thực Kỹthuật mật mã được phát triển và vận dụng để đảm bảo cả tính bí mật và tínhxác thực đó

Các hệ mật hiện nay được chia thành hai loại: hệ mật khóa bí mật và hệmật khóa công khai Trong hệ mật khóa bí mật, những người sử dụng hợppháp (người gửi và người nhận) phải chia sẻ một khóa bí mật chung và khóa

đó không được biết đối với thám mã đối phương Trong hệ mật khóa côngkhai, người sử dụng hợp pháp chỉ cần các thông tin trung thực công khai nào

đó Mặc dù các hệ mật khóa công khai tỏ ra là lý tưởng đối với nhiều ứngdụng mật mã, nhưng tốc độ thấp và giá thành cao đã ngăn cản việc sử dụngchúng trong nhiều trường hợp Trong phần này chúng ta chỉ thảo luận về các

hệ mật khóa bí mật

Chúng ta sẽ sử dụng mô hình hệ mật của Shannon trong Hình 1.1.Trong mô hình này, khóa bí mật Z được phân phối tới người gửi và ngườinhận theo một kênh an toàn Khóa này sau đó được sử dụng để mã hóa bản rõ

X thành bản mã Y bởi người gửi và được dùng để giải mã bản mã Y thànhbản rõ X bởi người nhận Bản mã được truyền trên kênh không an toàn, vàchúng ta giả thiết là thám mã đối phương luôn có thể truy nhập để nhận đượccác bản mã Tất nhiên thám mã không thể truy nhập được tới khóa bí mật Hệmật khóa bí mật như thế được gọi là hệ mật đối xứng để phân biệt với hệ mậtkhóa công khai không đối xứng trong đó các khóa khác nhau được sử dụngbởi người mã và người dịch Chú ý rằng X, Y, và Z trong mô hình này là cácbiến ngẫu nhiên Trong mô hình này chúng ta cũng luôn giả thiết bản rõ X vàkhóa Z là độc lập thống kê

Trang 10

Các hệ mật khóa bí mật thường được chia thành các hệ mã khối và hệ

mã dòng Đối với mã khối bản rõ có dạng các khối "lớn" (chẳng hạn 128-bit)

và dãy các khối đều được mã bởi cùng một hàm mã hóa, tức là bộ mã hóa làmột hàm không nhớ Trong mã dòng, bản rõ thường là dãy các khối "nhỏ"(thường là 1-bit) và được biến đổi bởi một bộ mã hóa có nhớ

Các hệ mã khối có ưu điểm là chúng có thể được chuẩn hóa một cách

dễ dàng, bởi vì các đơn vị xử lý thông tin hiện này thường có dạng block nhưbytes hoặc words Ngoài ra trong kỹ thuật đồng bộ, việc mất một block mãcũng không ảnh hưởng tới độ chính xác của việc giải mã của các khối tiếpsau, đó cũng là một ưu điểm khác của mã khối

Trang 11

thức móc xích khối mã (CBC-Cipher Block Channing mode) trong đó hàm

mã hóa không nhớ được áp vào tổng XOR của block rõ và block mã trước đó.Phép mã lúc này có kiểu cách kỹ thuật như mã dòng áp dụng đối với các khối

"lớn"

không mất tổng quát rằng, bản rõ X, bản mã Y lấy các giá trị trong không

m-là độ dài bít của các khối rõ và mã, còn k-là độ dài bit của khóa bí mật

Hàm có ngược E(., z) được gọi là hàm mã hóa tương ứng với khóa z.ánh xạ nghịch đảo của E(., z) được gọi là hàm giải mã tương ứng với khóa z

và sẽ được ký hiệu là D(., z) Chúng ta viết Y = E(X, Z) đối với một mã khối

có nghĩa là bản mã Y được xác định bởi bản rõ X và khóa bí mật Z theo ánh

xạ E Tham số m được gọi là độ dài khối còn tham số k được gọi là độ dàikhóa của hệ mã khối đó Cỡ khóa đúng của hệ mã khối được xác định bởi số

đối với chuẩn mã dữ liệu DES, độ dài khóa là k = 64 bit, trong khi cỡ khóa

khối mã bằng độ dài khối rõ

1.2 Độ an toàn của các hệ mã khối

Như đã nói ở trên, một mã khối được sử dụng nhằm bảo vệ chống sự dò

dỉ không mong muốn của bản rõ Nhiệm vụ của thám mã đối phương là phá

hệ mã này theo nghĩa anh ta có thể mở ra được các bản rõ từ các bản mã chặnbắt được Một hệ mã là bị phá hoàn toàn nếu như thám mã có thể xác địnhđược khóa bí mật đang sử dụng và từ đó anh ta có thể đọc được tất cả cácthông báo một cách dễ dàng như là một người dùng hợp pháp Một hệ mã là

bị phá thực tế nếu thám mã có thể thường xuyên mở ra được các bản rõ từ cácbản mã nhận được, nhưng vẫn chưa tìm ra được khóa

Độ an toàn luôn gắn với các đe dọa tấn công Như đã nói ở trên, chúng

ta giả sử rằng kẻ tấn công luôn có thể truy nhập tới mọi thứ được truyền thôngqua kênh không an toàn Tuy nhiên, có thể có các thông tin khác đối với thám

Trang 12

mã Khả năng tính toán của thám mã phải luôn được xem xét trước khi xemxét độ an toàn của một mã có thể bị truy nhập.

1.2.1 Các kiểu tấn công

Một giả thiết được chấp nhận phổ biến nhất trong mật mã đó là thám

mã đối phương luôn có thể truy nhập hoàn toàn tới các bản mã được truyềntrên kênh không an toàn Một giả thiết đã được chấp nhận khác nữa là:

Giả thiết Kerckhoff: Thám mã đối phương là được biết toàn bộ chi tiết của

quá trình mã hóa và giải mã chỉ trừ giá trị khóa bí mật

Giả thiết Kerckhoff suy ra rằng độ an toàn của một hệ mật khóa bí mật chỉcòn phụ thuộc vào chính khóa mật mà thôi Dưới giả thiết Kerckhoff, các tấncông có thể được phân loại theo các tri thức của thám mã như sau:

- Tấn công chỉ biêt bản mã: thám mã đối phương không biết thêm tí thông tin

gì ngoài bản mã nhận được

- Tấn công bản rõ đã biết: Thám mã đối phươnng biết thêm một vài cặp Rõ/

Mã đối với khóa đang dùng

- Tấn công bản rõ lựa chọn: Thám mã đối phươnng có thể đạt được các bản

mã tương ứng với các bản rõ ấn định đặc biệt bất kỳ đối với khóa đang dùng

Tấn công bản rõ lựa chọn là tấn công mạnh nhất trong các tấn côngtrên Nếu một hệ mã là an toàn chống lại tấn công bản rõ lựa chọn thì nó cũng

an toàn trước các tấn công khác Trong thực tế, ta nên dùng hệ mã có độ antoàn chống lại tấn công bản rõ lựa chọn, ngay cả khi thám mã đối phươnghiếm có cơ hội thu lượm được thông tin gì đó hơn so với tấn công chỉ biết bảnmã

1.2.2 Độ an toàn vô điều kiện và độ an toàn tính toán

Độ an toàn của một hệ mật phụ thuộc rất lớn vào khả năng tính toáncủa thám mã đối phương Một hệ mật được gọi là an toàn vô điều kiện nếu nó

an toàn chống lại thám mã đối phương có khả năng tính toán vô hạn Độ antoàn vô điều kiện cũng được gọi là độ an toàn lý thuyết liên quan tới tínhkhông thể phá được của một hệ mật Một hệ mật là an toàn chống lại đốiphương có khả năng tính toán bị hạn chế nào đó được gọi là an toàn tính toán

Độ an toàn tính toán cũng được gọi là độ an toàn thực tế, liên quan tới tínhkhó phá của một hệ mật Tất cả các hệ mật an toàn vô điều kiện đều là không

Trang 13

có tính thực tế vì lý do sẽ được nói dưới đây Tuy nhiên cũng không có một

hệ mật thực tế nào là đã được chứng minh là an toàn theo nghĩa tính toán

Độ an toàn vô điều kiện

Mặc dù trong hầu hết các ứng dụng độ an toàn vô điều kiện là không cần thiết

và cũng là không thể thực hiện được trên thực tế, nhưng nghiên cứu về độ antoàn vô điều kiện cho chúng ta nhiều gợi ý có ích cho việc thiết kế và sử dụngcác hệ mật thực tế Chẳng hạn lý do cơ bản của hệ mã dòng đó là độ mật hoànthiện được cung cấp bởi hệ thống đệm một lần "one-time-pad"

Định nghĩa 1.2 (Shannon 1949): Một hệ mật sẽ cung cấp độ mật hoàn thiện

nếu các khối rõ và các khối mã là độc lập thống kê

Khả năng thực thi hệ mật bí mật hoàn thiện đã được cho thấy bởiShannon trong bài báo của ông ta năm 1949 Hệ "Mã nhóm khóa dùng mộtlần"sau đây (được mô tả trong ví dụ 1) cung cấp một hệ mật bí mật hoàn thiệnnhư thế ý tưởng sử dụng hệ thống khóa dùng một lần đầu tiên được đề xuấtbởi Vernam trong năm 1926 Mã Vernam thường được gọi là hệ mật một lần

"one-time-pad" Mặc dù trong một thời gian dài người ta tin rằng hệ mật một

là là không thể bị phá, nhưng phải đến công trình của Shannon mới chứngminh được tính bí mật hoàn thiện của nó

Ví dụ 1: (hệ mã khối nhóm khóa dùng một lần): Xét hệ mã khối cho trong

có độ bí mật hoàn thiện nếu khóa được chọn ngẫu nhiên đều và độc lập vớimỗi khối rõ

, X2, X1  ., Y2, Y1

, Z2, Z1

ngẫu nhiên đều và độc lập

Hệ thống bí mật hoàn thiện thường là không thực tế, bởi vì Shannon đã chothấy một lượng khóa không giới hạn cần phải có nếu như ta cho phép mộtlượng thông báo không hạn chế Tuy nhiên, ý tưởng của hệ mật hoàn thiện

Trang 14

thiết lập nên một nguyên lý đã biết trong thực tế mật mã là để đảm bảo độ antoàn thì nên thay khóa một cách thường xuyên.

Độ an toàn tính toán

Trong thực tế không kẻ tấn công nào có khả năng tính toán vô hạn Độ antoàn của một hệ mật thực tế phụ thuộc vào tính không thể phá hệ mã đó vềmặt lý thuyết mà đúng hơn là phụ thuộc độ khó thực tế của các tấn công Một

hệ mật được gọi là an toàn tính toán nếu độ khó của tấn công tối ưu vượt quákhả năng tính toán của thám mã Shannon đã mô tả độ khó của tấn công nhưthế (tấn công chỉ biết bản mã) bởi đặc trưng W(n) xem như là khối lượngcông việc đòi hỏi để xác định khóa khi n-bản mã là được biết Ta cũng có thểxem xét W(n) đối với các kiểu tấn công khác Trong suốt phần này , chúng ta

sử dụng từ "độ phức tạp" để mô tả độ khó như thế Độ phức tạp của một tấncông hiểu một cách chung chung là số trung bình các phép toán (thao tác)dùng trong tấn công đó Chú ý rằng một hệ mã là an toàn tính toán có nghĩa là

độ phức tạp của tấn công tối ưu vượt quá khả năng tính toán của thám mã đốiphương Để chứng minh một hệ mật là an toàn tính toán cần phải chỉ ra đượccận dưới hữu ích về độ phức tạp của việc giải quyết một bài toán tính toánnào đó Hiện tại, điều này là không thể đối với tất cả các bài toán tính toán

Do vậy, trong thực tế, việc đánh giá độ an toàn của mọt hệ mật phụ thuộc vào

độ phức tạp của tấn công tốt nhất cho tới hiện tại Một mã khối thực tế đượcxem là an toàn tính toán nếu không có tấn công đã biết nào có thể làm tốt hơn

so với tấn công vét cạn khóa Trong tấn công vét cạn khóa chỉ biết bản mãtrên một mã khối, mỗi một khóa có thể đều được thử để giải mã của một hoặchiều hơncác khối mã chặn bắt được cho tới khi nào một khóa cho kết quả khối

rõ có thể đọc được Độ phức tạp của tấn công này, xem như là số các phép

đối với một hệ mã khối có cỡ

thể áp vào hệ mã khối bất kỳ Như vậy một hệ mã khối muốn an toàn thì cỡkhóa đúng của nó là phải đủ lớn để tạo cho tấn công vét cạn khóa là không thểthực hiện được

Trang 15

1.2.3 Độ phức tạp xử lý và độ phức tạp dữ liệu của một tấn công cụ thể

Độ phức tạp của một tấn công được chia ra làm hai phần: độ phức tạp

dữ liệu và độ phức tạp xử lý Độ phức tạp dữ liệu là lượng dữ liệu đầu vào cầncho tấn công đó trong khi độ phức tạp xử lý là lượng các tính toán cần để xử

lý dữ liệu như thế Thành phần dominant-trội hơn thường được mô tả như là

độ phức tạp của tấn công này Chẳng hạn, trong tấn công vét cạn khóa, lượng

dữ liệu đầu vào cần cho tấn công này là số các khối mã chặn bắt được (hoặc

số các cặp rõ/mã trong tấn công bản rõ đã biết), nói chung đó là một số lượng

phép giải mã với cáckhóa khác nhau trong việc tìm ra khóa đúng) cần thiết của tấn công này Dovậy độ phức tạp của tấn công duyệt khóa thường chính là độ phức tạp xử lý

Ví dụ khác là tấn công vi sai của Biham và Shamir, đó là kiểu tấn công bản rõlựa chọn Đối với tấn công vi sai độ phức tạp vượt trội lên bởi số các cặprõ/mã cần trong tấn công đó, trong khi số các tính toán sử dụng trong tấn côngnày lại tương đối nhỏ Do đó độ phức tạp của tấn công vi sai thực chất là độphức tạp dữ liệu

Nói chung đối với một mã khối độ dài khối m-bit và cỡ khóa đúng là

có thể được đo bởi số các cặp rõ/mã đã biết (hay lựa chọn) cần cho tấn công

phép mã hóa do đặc tínhcủa tấn công vét cạn khóa và do nói chung thao tác mã hóa là được tính toánnhanh, hiệu quả Như vậy chúng ta có thể nói rằng một hệ mật là an toàn tínhtoán nếu như không có tấn công nào trên hệ mật đó có độ phức tạp dữ liệu

phép mã hóa Một hệ mật được gọi là an toàn thực tế chống lại một tấn công

phép mã hóa Đối với thám mã,

độ phức tạp dữ liệu là loại độ phức tạp bị động, anh ta phải chờ người sử dụngtạo ra các cặcp rõ /mã cho anh ta Mặt khác, độ phức tạp xử lý lại là kiểu độphức tạp chủ động và có thể khắc phục nói chung bằng cách sử dụng nhiềumáy tính mạnh

Trang 16

1.2.4 Các tham số của mã khối

1.2.4.1 Độ dài khối m

Để một hệ mã khối là an toàn, độ dài khối m của nó phải đủ lớn ngăncản các tấn công phân tích thống kê, tức là để không cho đối phương thu đượcthông tin có ích nào về khối rõ nào đó thường xuất hiện nhiều hơn các khối rõkhác Ngoài ra độ dài khối m cũng phải được chọn sao cho số các cặp rõ/mã

mà đối phương có thể thu nhận được trong thực tế phải nhỏ hơn rất nhiều so

Khi độ dài khối của hệ mã trở nên lớn thì độ phức tạp của ứng dụngcũng tăng theo Dù rằng độ phức tạp trong ứng dụng chọn ngẫu nhiên hàm cóngược là tăng theo cỡ mũ so với độ dài khối, nhưng chỉ có hàm đơn giản mớixuất hiện ngẫu nhiên, điều này tạo cơ hội phục vụ hàm mã hóa thực tế khi độdài khối m là lớn Tuy nhiên, Shannon đã chỉ ra rằng sự dễ dàng trong tínhtoán các hàm mã hóa E(., z) và hàm giải mã D(., z) với mọi z không suy rađược việc giải tìm khóa z từ các phương trình y = E(x, z) và x = D(y, z) sẽ là

dễ dàng khi biết x và y

1.2.4.2 Độ dài khóa k và cỡ khóa đúng k t

Để hệ mã khối an toàn chống lại tấn công vét cạn khóa, cỡ khóa đúng

phép mã hóa cần cho tấn công này là vượt xakhả năng của thám mã Mặt khác, độ dài khóa k cũng cần nhỏ ở mức nào đósao cho việc tạo, phân phối và lưu trữ khóa có thể thực hiện được hiệu quả và

an toàn Chẳng hạn, DES có độ dài khóa là 64 bít, còn cỡ khóa đúng là 56 bit.Tấn công vét cạn khóa là không thể nhưng cũng không là quá xa vời Nhiềugợi ý muốn tăng cỡ khóa đúng của DES Chẳng hạn, mở rọng cỡ khóa dúngcủa DES tới 128 bit bằng phép mã bội ba dùng hai khóa xem là một cách thứcchuẩn để sử dụng DES

1.3 Các chế độ hoạt động của mã khối

Trong mật mã , mã khối hoạt động dựa trên các khối có chiều dài cốđịnh, thường là 64 hoặc 128 bit Do cac thông báo đầu vào có chiều dài bất kỳ

và việc mã hóa với cùng một bản rõ với cùng một khóa cố định luôn tạo racùng một bản mã, một vài chế độ hoạt động của mã khối đã được đưa ra đểcho phép các mã khối cung cấp tính bí mật cho các thông báo có chiều dài bất

kỳ Các chế độ được biết đến sớm nhất chỉ cung cấp tính bí mật của thông báonhưng không cung cấp tính toàn vẹn của nội dung thông báo như ECB,

Trang 17

bảo cả tính bí mật và tính toàn vẹn của nội dung thông báo như: CCM,EAX

và OCB Các chế độ LRW, CMC và EME được thiết kế để mã hóa các Sectorcủa các thiết bị lưu trữ (đĩa cứng) Trong phần này chúng ta xét đến 5 chế độứng dụng dùng mã khối thường gặp nhất trong các hệ thống mật mã bảo vệthông tin Đó là các chế độ:

Sách mã điện tử (ECB – Electronic Code Book), Móc xích khối mã (CBC –Cipher Block Channing), Phản hồi khối mã (CFB – Cipher FeedBack), Phảnhồi đầu ra (OFB – Output FeedBack), Bộ đếm (CTR - Counter)

1.3.1 Vector khởi tạo – IV

Hầu hết các chế độ hoạt động (trừ ECB) của mã khối đều yêu cầu mộtvector khởi tạo để khởi tạo cho việc xử lý khối dữ liệu đầu tiên và thườngđược tạo một cách ngẫu nhiên Không cần thiết phải giữ bí mật giá trị của IVnhưng không bao giờ được dùng lại giá trị IV với cùng một khóa bí mật Vớichế độ CBC và CFB việc dùng lại IV là dò gỉ một số thông tin về khối bản rõđầu tiên và một số thông tin đã được chia sẽ trước bởi hai thông báo Với chế

độ OFB và CTR việc dùng lại IV gây phá hủy tính an toàn Trong chế độCBC, IV cần thiết và phải được sinh ngẫu nhiên tại thời điểm mã hóa

1.3.2 Chế độ ECB

Đây là chế độ hoạt động đơn giản nhất của mã khối , bản rõ đầu vàođược chia nhỏ thành các khối và mỗi khối được xử lý mã hóa riêng biệt Điểmbất lợi chính của chế độ này là việc các khối bản rõ được xử lý độc lập để tạo

ra các khối bản mã tương ứng, vì vậy nó không cung cấp tính toàn vẹn củatoàn bộ nội dung thông báo và nó cũng không được đề nghị sử dụng cho hầuhết các giao thức mật mã

Trang 18

Hình 1.3 : Mã hóa và giải mã theo mô hình ECB

Độ bền của chế độ ECB chính bằng độ bền của thuật toán Tuy nhiêncấu trúc của bản rõ trong trường hợp đó không được giấu kín Mỗi khối nhưnhau của bản rõ dẫn đến sự xuất hiện giống nhau của bản mã Tốc độ mã hóabằng tốc độ của mã pháp khối

Chế độ ECB cho phép song hành đơn giản để nâng cao tốc độ mã hóa

Ví dụ về việc sử dụng chế độ ECB cho việc mã một bức ảnh

Ảnh gốc Mã hóa dùng chế độ ECB

Hinh 1.4 : Ví dụ về mã hóa theo mô hình ECBHiển nhiên qua việc quan sát kết quả thu được khi bức ảnh bị mã hóadùng chế độ ECB ta vẫn dễ dàng nhận được các thông tin của bức ảnh banđầu

1.3.3 Chế độ CBC

Với chế độ hoạt động CBC mỗi khối bản rõ đầu vào được kết hợp vớikhối bản mã trước đó dung phép XOR, theo cách này mỗi khối bản mã đềuphụ thuộc vào các khối bản rõ trước đó Do đó cần phải có một vector khỏitạo (IV) cho khối bản rõ đầu tiên

Trang 19

Hinh 1.5: Mã hóa và giải mã theo mô hình CBCCông thức việc mã hóa và giải mã thông báo tiến hành như sau:

Độ bền của chế độ CBC bằng độ bền của mã pháp mà nó dựa vào Cấu trúccủa bản rõ được che giấu nhờ cộng khối trước của bản mã với khối kế tiếpcủa bản rõ Độ bền mã hóa văn bản tăng vì không thể thao tác trực tiếp bản rõngoài cách loại trừ các khối từ đầu cuối bản mã.Tốc độ mã hóa bằng tốc độlàm việc của mã pháp khối, nhưng phương phá đơn giản song hành của quátrình mã hóa không tồn tại, cho dù quá trình dịch mã có thể tiến hành mộtcách song song.Chế độ hoạt động CBC được sử dụng rất rộng rãi, thông báođược mã hóa tuần tự và đòi hỏi chiều dài của thông báo phải là bội số củachiều dài khối và do đó nội dung thông báo rõ cần phải được sử lý đệm trước

Trang 20

khi thực hiện mã hóa Chế độ hoạt động CBC cung cấp cơ chế toàn vẹn dữliệu, chỉ cần một bit trong nội dung thông báo bị thay đổi sẽ dẫn đến thay đổitoàn bộ các khối sau bit đó.

1.3.4 Chế độ CFB

Chế độ hoạt động CFB biến mã khối thành một hệ mã dòng tự đồng

bộ và được thực hiện như sau:

Trang 21

Hình 1.6 : Mã hóa và giải mã theo mô hình CFB

Độ bền của chế độ CFB bằng độ bền của mã pháp mà nó dựavào,còn cấu trúc của bản rõ được che giấu nhờ sử dụng phép toán cộng theomodul 2 Việc thao tác bản rõ bằng cách loại trừ các khối từ đầu và cuối củabản mã là không thể được Trong chế độ CFB nếu hai khối bản rõ là đồngnhất thì kết quả mã hóa chúng ở bước tiếp theo cũng đồng nhất, điều này gây

Chế độ này biến mã khối thành một hệ mã dòng đồng bộ , quá trình

mã hóa và giải mã tiến hành như sau:

Hình 1.7 : Mã hóa và giải mã theo mô hình OFBChế độ OFB tương tự như chế độ CFB tuy nhiên nó có ưu thế hơnchế độ CFB ở chổ bất kỳ các bit lỗi nào xuất hiện trong quá trình truyền đềukhông ảnh hưởng đến sự dịch mã các khối tiếp theo

Trang 22

1.3.6 Chế độ CTR

Cũng giống như chế độ OFB, chế độ CTR biến mã khối thành một

mã dòng Giá trị IV/Nonce và bộ đếm Counter có thể được nối, cộng hoặcXor với nhau để tạo thành một giá trị duy nhất cho mỗi khối xử lý

Hinh 1.8 : Mã hóa và giải mã theo mô hình CTR

Ưu điểm lớn nhất của chế độ CTR là cho phép việc mã hóa và giải

mã có thể thực hiện song song nên tốc độ hoạt động được cải thiện

Các mã khối chịu hai tấn công quan trọng là tấn công lượng sai vàtấn công tuyến tính

Tấn công lượng sai (Differential Cryptanalysis) dựa trên xác suet củacác mẫu lượng sai của các cặp rõ và mã hay chính xác hơn là mẫu lượng saicủa các cặp đầu ra và đầu vào của các hàm phi tuyến trong mã khối để tìm racác thành phần khóa tương ứng có thể từ đó tìm ra toàn bộ khóa của mã khối

Các cặp bản rõ, bản mã muốn thõa mãn các mẫu lượng sai thì phảilựa chọn thích hợp

Các cặp mẫu lượng sai của các cặp rõ và các cặp mã có xác suet cao

sẽ được sử dụng hiệu quả trong tấn công lượng sai

Trong tấn công tuyến tính thì người ta tìm các sự phụ thuộc tuyếntính với xác suất khác 1/2 giữa các mẫu bít rõ, khóa và bản mã với xác suất cólợi để từ đó tìm ra các bit có thể của khóa Nhiều bit khóa được tìm ra bằngcách này còn các bit khóa còn lại sẽ được tìm ra bằng cawsch duyệt toàn bộ

Trang 23

Đối với mã khối, độ an toàn của nó phụ thuộc vào thiết kế của mãkhối và khóa lập mã Thiết kế của mã khối là quan trọng và phải tránh việctuyến tính hóa càng cao càng tốt Khóa phải đủ lớn để tránh tấn công nghịch

lý ngày sinh Khóa cũng phải chú ý không có dạng đặc biệt Đối với mã khốithì tốt nhất là phải không chứa các lớp khóa yếu dễ nhận ra

1.4 Nguyên lý thiết kế mã khối

Một hệ mã khối tốt là phải "khó phá và dễ sử dụng" Cả hai hàm mãhóa E(., z) và hàm giải mã D(., z) nên dễ dàng tính toán Còn việc giải khóa z

từ y = E(x, z) và x = D(y, z) nên là bài toán khó Nguyên lý thiết kế cho một

hệ mã khối có thể chia thành các nguyên lý ứng dụng và các nguyên lý antoàn

1.4.1 Nguyên lý thiết kế chung về độ an toàn

Chỉ có hai nguyên lý thiết kế được chấp nhận chung đối với các mã antoàn thực tế là các nguyên lý về độ méo (confusion) và độ khuyếch tán(diffusion) đã được gợi ý bởi Shannon

Nguyên lý về độ méo (confusion):

Sự phụ thuộc của khóa trên bản rõ và bản mã nên phải phức tạp sao cho nókhông có ích gì đối với thám mã Chẳng hạn, phương trình nhị phân mô tả mãkhối nên là phi tuyến và phức tạp sao cho để việc giải khóa z từ x và y = E(x,z) là không thể

Nguyên lý về độ khuyếch tán (diffusion):

Với mỗi khóa cụ thể hàm mã hóa không nên có sự phụ thuộc thống kê nàogiữa các cấu trúc đơn giản trong bản rõ và các cấu trúc đơn giản trong bản mã

và rằng không có quan hệ đơn giản nào giữa các hàm mã hóa khác nhau.Nguyên lý khuyếch tán đòi hỏi, chẳng hạn một hệ mã khối cần được thiết kế

có tính đầy đủ-hay hoàn thiện "complete", tức là mỗi bit rõ và mỗi bit khóađều ảnh hưởng tới mỗi bit mã

1.4.2 Nguyên lý thiết kế cho ứng dụng

Một hệ mã khối có thể ứng dụng cả phần cứng và phần mềm Trongứng dụng cứng thường được thực hiện bởi các chíp VLSI có tốc độ cao.Trong ứng dụng mềm phải có tính mềm dẻo và giá thành thấp Trên cơ sở đặc

Trang 24

tính khác nhau của phần cứng và phần mềm, các nguyên lý thiết kế cho mãkhối cũng chia thành hai phần.

Nguyên lý thiết kế cho ứng dụng mềm

Sử dụng khối con: Các thao tác mã khối nên thực hiện trên các khối con có độdài tự nhiên cho phần mềm là 8, 16, 32 bit Hoán vị bit là khó thực hiện trongphần mềm nên tránh

Sử dụng các phép toán đơn giản: Các thao tác mã trên các khối con nên chọn

dễ dàng cho ứng dụng với các tập lệnh cơ sở của các bộ xử lý chuẩn chẳnghạn như phép cộng, phép nhân, phép dịch

Nguyên lý thiết kế cho ứng dụng phần cứng

Sự tương tự trong phép mã hóa và phép giải mã: Quá trình mã hóa và giải mãnên chỉ khác nhau ở cách sử dụng khóa mật sao cho cùng một thiết bị có thể

sử dụng được cho cả phép mã hóa và phép giải mã

1.5 Các cấu trúc mã khối cơ bản

* Bản rõ P được mã hoá theo n-bước như sau:

Bản rõ:

Vòng 1: (x0, x1)  (x1, x2)Vòng 2: (x1, x2)  (x2, x3)

P = (x 0 , x 1 )

Trang 25

Vòng i: (xi-1, xi)  (xi, xi+1) -Vòng n: (xn-1, xn)  (xn, xn+1)

Bản mã là:

Trong đó xi+1 = xi-1  Fi(xi)

Với cấu trúc mã hoá trên đây, quá trình dịch mã sẽ rất đơn giản: Giữ nguyêncác thao tác như quá trình mã hoá, chỉ cần thay đổi thứ tự sử dụng khoá vàcác hàm vòng tương ứng:

miễn sao chúng là hàm có tính chất mật mã tốt, và do đó sẽ càng thuận tiệncho thao tác mã dịch

b/ Qua mô hình cấu trúc mã dịch Feistel trên có thể thấy ngay các dạng khoá

- Khoá yếu là các khoá có dạng:

kn = k1;

kn-1 = k2;

kn-2 = k3; -

C = (x n+1 , x n )

Trang 26

Tức là D(.) = E(.), hay là E2 = I Như vậy thám mã chỉ cần mã hoá chính bản

mã thu được là sẽ có được bản rõ cần tìm

- Cặp khoá nửa yếu là các cặp khoá có dạng:

1.5.2 Cấu trúc cộng-nhân

Cấu trúc cộng-nhân có thể xem như là một trong các kiểu hạt nhân cấutạo nên các hàm vòng, trong đó hoàn toàn sử dụng các phép toán số học tươngđối đơn giản và được chọn lọc cẩn thận Một số cấu trúc biến đổi khác mà ta

đã làm quen như các hộp nén, các phép hoán vị, các phép dịch vòng, chúng đãđược sử dụng trong DES, trong hệ mã dữ liệu Xôviết Cấu trúc cộng-nhânđược đề xuất bởi J L Massey và X Lai khi họ xây dựng nên một chuẩn mã

dữ liệu mới là PES và sau đó được cải tiến đổi tên thành IDEA Hình 1.10 cho

ta mô hình của cấu trúc cộng-nhân

Trang 27

 

V1 V2

Hình 1.9 : Sơ đồ cấu trúc cộng-nhân (MA).

Trong sơ đồ trên thì các phép toán  và + là các phép nhân môdulo hoặccộng môdulo trên các nhóm tương ứng với không gian đầu vào của các hạng

Chương II: LƯỢC ĐỒ KHÓA CỦA MÃ KHỐI VÀ MỘT SỐ

LƯỢC ĐỒ CỤ THỂ

2.1 Phân loại các lược đồ khoá của các hệ mã khối

Một vấn đề hết sức quan trọng trong thiết kế mã khối đó là xây dựnglược đồ tạo khoá cho hệ mã Thông thường một hệ mã khối lặp thường có sốvòng tương đối lớn Khoá phiên không thể có dộ dài tuỳ ý, do đó từ khoá bímật cần thiết phải xây dựng một thuật toán để tạo ra đủ số khoá con cần thiết

để cung cấp cho các vòng lặp Khoá chính thường dài từ 128 bít đến 512 bit,trong khi tổng số bít khoá con có thể lên tới hàng ngàn bít Do vậy việcnghiên cứu lược đồ tạo khoá là không thể tránh khỏi Lược đồ tạo khoá khôngchỉ đơn thuần cung cấp các khoá con cho các vòng lặp trong hệ mã khối mà

nó còn đóng góp vai trò quan trọng trong độ an toàn của chính hệ mã đó.Tuy nhiên chúng ta cũng đã thấy một số lược đồ khoá đã có những điểm sơ

hở để thám mã có thể lợi dụng, như lược đồ quá đơn giản, lược đồ tạo ra cácdạng khoá quan hệ, hay có sự tương tự lặp lại trong các giai đoạn tạo khoácon Để tránh các dạng tấn công đã xét, Knudsen đã đưa ra một số yêu cầuđối với một lược đồ tạo khoá mạnh đó là tất cả các khoá phải tốt như nhau, vàkhông có các quan hệ đơn giản

Định nghĩa 5.1: Xét một hệ mã khối lặp r-vòng, cỡ khối là 2m-bit với r khoá

con vòng, mỗi khoá con có độ dài là n-bit Một lược đồ khoá mạnh phải cócác tính chất sau:

Trang 28

-Cho trước bất kỳ s-bit của r khoá con vòng được thiết kế từ một khoá chínhchưa biết, khi đó khó có thể tìm ra được rn-s bít khoá còn lại từ s-bit khoá đãbiết.

-Cho trước một quan hệ nào đó giữa hai khoá chính, khi đó khó có thể dựđoán được các quan hệ giữa bất kỳ các khoá con vòng nào được thiết kế từcác khoá chính đó

Nói một cách đơn giản hơn là lược đồ khoá mạnh là lược đồ mà các hiểu biết

về một khoá con nào đó không làm dò dỉ bất kỳ thông tin gì đối với các khoácon khác trong lược đồ đó Trong phần này trước hết chúng ta đi phân loạicác lược đồ khoá đã có, và sau đó đưa ra một số đề xuất liên quan đến việcxây dựng lược đồ khoá mạnh

Các lược đồ khoá hiện tại có thể được chia thành hai kiểu

Kiểu 1: là kiểu ở đó tri thức về một khoá con vòng sẽ cung cấp một cách duynhất các bít khoá của các khoá con vòng khác hay của khoá chính Trong đó:+Kiểu 1A là kiểu đơn giản nhất dùng khoá chính trong mỗi vòng mã hoá +Kiểu 1B, các khoá con vòng được tạo từ khoá chính theo cách sao cho hiểubiết về một khoá con vòng bất kỳ có thể xác định trực tiếp các bít khoá kháctrong các khoá con vòng khác hay trong khoá chính DES, IDEA, LOKI,GOST là các ví dụ về kiểu này

+Kiểu 1C, tri thức về một khoá con vòng có thể giúp xác định một cáchkhông trực tiếp các bít khoá khác trong các khoá con vòng khác hay trongkhoá chính Một vài thao tác cần thiết phải dược sử dụng giúp xác định tìm racác bít khoá khác hay trong khoá chính Ví dụ về kiểu này là lược đồ khoácủa hệ CAST, SAFER

Trong CAST, mỗi một vòng trong 4 vòng đầu tiên đều sử dụng 16 bít củakhoá chính, chia nó thành 2 khối 8-bit, mỗi khối cho qua một S-hộp cố định.Các đầu ra của mỗi S-hộp là 32-bit, và kết quả được XOR với nhau tạo nên

vào cho mỗi S-hộp để tìm ra xâu bít nào cho đầu ra phù hợp với khoá con đãbiết Chú ý rằng nếu biết bất kỳ khoá con nào từ vòng thứ 5 trở đi nó đềukhông thể áp dụng cách trên đây để thu được các thông tin khác về khoá

Trang 29

Trong SAFER, nếu K = (k1,1, k1,8) là một khoá chính 8-byte, khi đó khoá con

ki-1, j + bias[i-1, j] mod 256, ở đây bias[i-1, j] là hằng số đã biết Như vậy các

vòng trước đó Rõ ràng thủ tục này có thể được tiếp tục để xác định ra đượckhoá chính

Kiểu 2: là các lược đồ tạo khoá của các hệ mã mà ở đó tri thức về một khoácon vòng bất kỳ đều không ta biết thêm bất kỳ bít nào của các khoá con vòngkhác hay của khoá chính như trong trường hợp của Kiểu 1 Nhiều hệ mã hiệnđại thuộc lớp này Trong quá trình tạo khoá cụ thể, một số hệ mã sử dụngthông tin về các đại lượng đã dùng để tạo ra khoá con vòng trước đó Trongnhiều trường hợp khoá con được tạo mới thường được sử dụng như là mộtphần của quá trình tạo của các khoá tiếp theo Như vậy tri thức về một khoávòng cụ thể không cung cấp khả năng có thể tìm được khoá ngay trước hoặccác khoá tiếp theo RC5 là một ví dụ, trong hệ mã này khoá con vòng thứ i,

định được S[i+1] Lược đồ như thế được gọi là thuộc kiểu 2A

Các lược đồ trong đó tri thức về một khoá con vòng không cung cấpmột tí gì về thông tin đối với các khoá con vòng khác hay khoá chính, cho tớikhi nào có thể giải được các bài toán khó chẳng hạn như việc nghịch đảo hàmmột chiều, chúng ta gọi nó thuộc kiểu 2B Hệ mã REDOC II có lược đồ khoáthoả mãn tính chất này Một cách để tạo ra lược đồ khoá kiểu 2B đó là đảmbảo rằng mỗi khoá con vòng là một hàm một chiều của chỉ riêng một mìnhkhoá chính Theo cách đó, các khoá con vòng xuất hiện một cách độc lập dù

Trang 30

rằng tất cả chúng dều phụ thuọcc vào khoá chính Sự khác nhau giữa các kiểu2A và 2B là ở chỗ trong kiểu 2A, nếu biết thêm một chút thông tin thì nó cóthể trở thành một bài toán đơn giản trong việc suy diễn ra các khoá con vòngkhác; trong khi ở kiểu 2B, việc biết thêm một chút thông tin vẫn còn là bàitoán khó đối với việc tìm ra thông tin về khoá con vòng khác hay khoá chính

Kiểu 2C là kiểu trong đó việc tạo các khoá con vòng là hoàn toàn độclập Rất ít hệ mã có lược đồ khoá thuộc kiểu này, lý do là bài toán quản lýkhoá sẽ trở nên không thể khi độ dài khoá chính quá lớn Một ví dụ về kiểu2C đó là DES với khoá con vòng độc lập (768 bít khoá chính-gọi là DESI).Theo sự phân loại trên chúng ta thấy mỗi kiểu loại đều có những ưu điểm vànhược điểm, có những kiểu cho độ an toàn cao nhưng khong thuận tiện trong

sử dụng, có kiểu thuận tiện trong sử dụng thực tế nhưng độ an toàn lại phụthuộc vào phần ngẫu nhiên hoá dữ liệu, thậm chí phần lược đồ khoá có thểtạo ra các kẽ hở để thám mã có thể áp các tấn công trên chúng Việc sử dụngkiểu loại nào phụ thuộc vào sự cân đối độ an toàn và tính tiện dụng trong thựctiễn cũng như tính khả thi của hệ mật trong các môi trường thực tế

2.2 Một số lược đồ khoá mạnh

Trong phần này chúng tôi đề xuất một lược đồ khoá kiểu 2B sau đây.Trước hết giả thiết tồn tại một hàm một chiều mạnh OWF Giả sử MK là khoáchính của một hệ mã khối r-vòng, quá trì tạo các khoá con vòng hư sau:

+Bước 1: OWF(MK) = Khoá con vòng (1)

+Bước 2: Với i =1 đến r-1

Một chú ý trong thuật toán trên là mỗi một khoá con vòng đều được tạo bởitoàn bộ các bit của khoá chính MK Điều này có thể tạo ra hiệu ứng thác, tức

là sự thay đổi một bít của khoá chính sẽ tạo ra sự thay đổi nhiều ở trong mỗikhoá con

*Knudsen cũng đã đề xuất một lược đồ khoá sau

chính K tạo ra r khoá con vòng độ dài n-bit, với n  2m

Trang 31

+Bước 1 Xác định một lược đồ khoá khởi động (ban đầu), với chúng đầu vào

nhiều nhất r bản rõ đã biết, theo nghĩa rút gọn thông tin trong đó việc có đượcmột thông tin không tầm thường là không thể

hằng số

phép mã hoá như sau

2.3 Chuẩn mã dữ liệu Xô viết (GOST)

Ngoài chuẩn mã dữ liệu DES đã được biết, chuẩn mã dữ liệu Xô viết làmột trong những kiểu đặc trưng của hệ mã khối sử dụng cấu trúc Feistel vớihạt nhân là các hộp thế, phép dịch vòng, kết hợp với các phép toán số học nhưphép XOR và phép cộng môdulo

Mô hình mã dịch của chuẩn mã dữ liệu Xô viết cũng gần tương tự như DES,tuy nhiên nó dùng một độ dài khoá lớn hơn là 256 bit để mã hoá bản rõ 64-bit.Ngoài ra, tám hộp thế của chuẩn mã dữ liệu Xô viết là hoàn toàn bí mật,không được công khai như trong DES Dưới đây là mô hình cụ thể

Thuật toán GOST bao gồm 32 vòng lặp, trong đó mỗi một vòng lặp được cho

Trang 32

phép tương ứng trong các hộp thế này cũng được giữ bí mật Với 32 vòng lặpthuật toán GOST sử dụng khoá bí mật tương ứng theo thứ tự sau:

K0, , K7, K0, , K7,K0, , K7,K7, , K0

Sơ bộ có thể thấy thuật toán GOST tuân thủ cấu trúc mã Feistel, quátrình mã dịch thực hiện dễ dàng, đồng thời có một số yếu tố cần lưu ý đó là độdài khoá bí mật khá lớn cùng với việc giữ kín các hộp thế trong sơ đồ mã hoá

Hình 2.1: Sơ đồ một vòng lặp của thuật toán GOST

2.4 Thuật toán mã dữ liệu quốc tế IDEA

Thuật toán mã dữ liệu IDEA là một thuật toán điển hình chỉ sử dụngcác phép toán số học thông qua việc liên kết các cấu trúc cộng-nhân Sơ đồ cụthể của thuật toán được cho trong Hình 2.2 dưới đây

Thuật toán mã khối IDEA thực hiện sơ đồ mã dịch khối, biến đổi các khối rõ64-bit thành các khối mã 64-bit, nhờ sử dụng một khoá mật dài 128-bit Cácphép biến đổi trong thuật toán đều là các phép toán số học, trong đó  là phép

hiện một nửa để đảm bảo qui cách mã dịch được dễ dàng 52 bộ khoá con bit được tạo từ 128-bít khoá chính theo một sơ đồ dễ thực hiện, quá trình dịch

16-mã được thực hiện theo thứ tự ngược lại của các khoá con

+

Trang 33

Hình 2.2: Sơ đồ thuật toán IDEA.

2.4.1 Lược đồ khoá của IDEA

Sơ bộ có thể thấy IDEA được thiết kế mã dịch hướng word, và nó đãđược các tác giả J.L Massey, X Lai và S Murphy cải tiến từ hệ PES nhằmtránh tấn công vi sai

Hệ mã khối IDEA là kiếu mã khối lặp một hàm vòng mật mã nào đó một sốlần Trong các hàm vòng, các phép toán lại phụ thuộc vào từng khoá cụ thể.Khác với hệ mã DES, hàm vòng của nó sử dụng các hộp nén cố định có độphi tuyến cao được thiết kế sẵn không phụ thuộc khoá Vì thế nói chung DESkhông có lớp khoá yếu Tuy nhiên, do đặc điểm của cấu trúc thiết kế, hệIDEA chắc chắn có các lớp khoá yếu tương ứng với tính tuyến tính cục bộcủa các phép toán đã sử dụng trong lược đồ mã hoá Trong phần này chúng ta

sẽ chỉ ra các lớp khoá yếu cụ thể và thảo luận xung quanh vấn đề khắc phụclớp khoá yếu đó trong khi sử dụng hệ IDEA

Trang 34

2.4.1.1 Tính tuyến tính trong các phép toán số học MÔĐULÔ

xi

yi = xi  zi  ci (1)

y0 = x0  z0 (2)

tính hoá" trong dạng sau

Trang 35

2.4.1.2 Lớp khoá yếu bao hàm yếu tố tuyến tính

Yếu tố tuyến tính ở đây là một phương trình tuyến tính giữa các bítkhoá, đầu vào, đầu ra đúng cho tất cả các đầu vào có thể

Sử dụng tính tuyến tính của phép cộng và phép nhân đã nêu trên, chẳng hạn ta

có thể biểu diễn XOR của đầu ra của bít có nghĩa thấp nhất của khối con thứ

y1  y2 = (X1 Z1) 0  1  x2  z3

y1  y2 = x1  x3  z1  z3  1

tuyến tính giữa các đầu vào và đầu ra có chỉ số tương ứng Ta ký hiệu yếu tốtuyến tính này bởi (1,0,1,0)  (1,1,0,0)

Thực hiện tương tự cho các tổ hợp khác của 4 bít có nghiã nhỏ nhất của

4 khối -16 bít, ta có thể liệt kê các yếu tố tuyến tính dạng

(x1, x2, x3, x4 )  ( y1, y2, y3, y4) cùng với các điều kiện tương ứng trong Bảng 2 dưới đây

Trang 37

kiện cho các bít khoá mật ban đầu Bảng 3 cho ta một yếu tố tuyến tính toàncục (giữa bản rõ và bản mã qua 8 1/2 vòng của IDEA)

Do các bít khoá còn lại trong các vị trí 26 - 28, 72 - 74, 111 - 127 không xuất

cho hệ mã này trở thành hệ mã tuyến tính bậc 64

Lớp khoá này gọi là lớp khoá yếu, bởi vì để nhận biết chúng chỉ cầnquan sát một vài tổ hợp rõ - mã là có thể phát hiện ra được Còn sau khi đã

Trang 38

nhận biết khoá thuộc lớp đó thì chỉ cần thử nhiều nhất là 2 23 khoá là có thểtìm được khoá đúng đã sử dụng.

2.4.1.3 Lớp khoá yếu vi sai

2.4.1.3.1 Lớp khoá yếu có đặc trưng xác suất 1

Đây là lớp khoá liên quan tới kiểu tấn công vi sai của hệ IDEA, tươngứng với định nghĩa vi sai theo phép toán XOR Sử dụng tập khoá con có giátrị 1 hay -1 ta sẽ xây dựng được các đặc trưng vi sai với xác suất 1 trong cáchàm vòng

1 còn lại tất cả các bít khác bằng 0 Ký hiêu X' là XOR của các đầu vào X vàX* Giả sử X và X* chỉ khác nhau ở bít cao nhất tại khối thứ 4, tức là ta có

X'1 = X'2 = X'3 = 0 và X'4 = v

nhau đối với X và X*, còn đầu vào bên phải hộp MA sẽ khác nhau một lượng

là v Giá trị XOR này sẽ không thay đổi từ phép cộng phía trên bên phải tới

v Vi sai này sẽ không đổi khi qua bộ cộng và phép XOR phía trên bên trái tới

4 khối con Khi đó vi sai đầu ra Y' của vòng mã sẽ là (v,v,v,0) Như vây nếu

là (0,0,0,v) sẽ cho XOR đầu ra là (v,v,v,0) với xác suất 1

Tương tự ta có thể lập được một bảng vi sai 1 -vòng với xác suất 1 cho

15 XOR đầu vào tương ứng với véc tơ v (tức là chỉ có bít có nghĩa cao nhấtcủa kết quả XOR các khối con là có thể bằng 1)

Trang 39

Từ các đặc trưng 1-vòng này ta có thể xây dựng được đặc trưng toàn cục cho

hệ IDEA 8 1/2 vòng như sau

Trang 40

6 (0,v,v,0) - 4 – 18

-Bảng 5: Một đặc trưng toàn cục xác suất 1

Bảng trên cho ta đặc trưng vi sai (0,v,0,v)  (0,v,v,0) với xác suất 1 tươngứng với các điều kiện đối với các khoá con cụ thể Theo đó, căn cứ vào lược

đồ tạo khoá của IDEA ta thấy các khoá con chỉ khác 0 ở các vị trí 26 - 40, 72- 76 và 108 - 122 Có cả thảy là 35 vị trí khác không của khoá và rõ ràng làcác khoá thoả mãn điều kiện trên là rất dễ phát hiện bằng cách quan sát XORđầu vào và XOR đầu ra như bảng 5 đã chỉ dẫn Như vậy ta thấy IDEA sẽ có

2.5 Chuẩn mã dữ liệu DES

2.5.1 Mô tả DES

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 bit x củabản rõ độ dài 64 bằng một khoá 56 bit Bản mã nhận được cũng là một xâu bit

có độ dài 64 Trước hết ta mô tả ở mức cao về hệ thống

Thuật toán tiến hành theo 3 giai đoạn:

cách hoán vị các bit của x theo phép hoán vị cố định ban đầu IP Ta viết:

cuối

, 1≤i≤16 theo quy tắc sau:

L i=R i−1

R i=L i−1 ⊕f (R i−1 , k i)

Ngày đăng: 20/11/2014, 13:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] TS. Trần Văn Trường, ThS. Trần Quang Kỳ,Giáo trình mật mã học nâng cao, Học viện kỹ thuật Mật Mã, Hà Nội, 2006 Khác
[2] TS. Dương Anh Đức, ThS. Trần Minh Triết, Mật mã học, Đại học Khoa học tự nhiên-Đại học quốc gia TPHCM,2005 Khác
[3] Frederik Armknecht and Stefan Lucks, Linearity of the AES keyschedule [4] Lauren May, Matt Henricksen, William Milan, Gary Carter, and Ed Dawson, Strengthening the Key Schedule of the AES Khác
[6] J. Daemen and V. Rijmen: The Dessign of Rijndael, 2002, Springer Khác
[7] Niels Ferguson, John Kelsey, Stefan Lucks, Bruce Schneier, Mikel Stay, David Wagner, and Doug Whiting. Improved Crypanalysis of Rijndael. Fast Software Encryption 2000, Springer Lecture Notes in Computer Science Khác
[8] E. Biham. New Types of Cryptanalytic Attacks using Related Keys, Advances in Cryptology-EUROCRYPT’93 LNCS 765, Springer-Verlag, 1993, pp 398-409 Khác
[9] J. Daemen, R.Govaerts and J. Vandewalle. Weak Keys for IDEA, Advances in Cryptogogy-CRYPTO’93, LNCS 773, Springer-Verlag,1993, pp 224-231 Khác
[10] L. Knudsen. New Potentially Weak Keys for DES and LOKI, Advances in Cryptology-EUROCRYPT’94, LNCS 950, Spring-Verlag, 1994, pp 419- 424 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Mô hình hệ mật khóa bí mật - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 1.1 Mô hình hệ mật khóa bí mật (Trang 7)
Hình 1.3  : Mã hóa và giải mã theo mô hình ECB - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 1.3 : Mã hóa và giải mã theo mô hình ECB (Trang 14)
Hình  1.7 : Mã hóa và giải mã theo mô hình OFB - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
nh 1.7 : Mã hóa và giải mã theo mô hình OFB (Trang 18)
Hình 2.1: Sơ đồ một vòng lặp của thuật toán GOST. - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2.1 Sơ đồ một vòng lặp của thuật toán GOST (Trang 29)
Bảng 2: các yếu tố tuyến tính trong các hàm vòng với điều kiện trên các tập khoá con. ở đây ký hiệu ( - )1 là khoá con có 15 bít đầu bằng 0. - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Bảng 2 các yếu tố tuyến tính trong các hàm vòng với điều kiện trên các tập khoá con. ở đây ký hiệu ( - )1 là khoá con có 15 bít đầu bằng 0 (Trang 33)
Bảng 4: Bảng các đặc trưng 1 - vòng với xác suất 1 với các điều kiện của khoá con. - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Bảng 4 Bảng các đặc trưng 1 - vòng với xác suất 1 với các điều kiện của khoá con (Trang 35)
Bảng 5: Một đặc trưng toàn cục xác suất 1. - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Bảng 5 Một đặc trưng toàn cục xác suất 1 (Trang 36)
Hình 2.3: Một vòng của DES - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2.3 Một vòng của DES (Trang 37)
Hình 2.4: Hàm f của DES - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2.4 Hàm f của DES (Trang 39)
Bảng này có nghĩa là bit thứ 58 của x là bit đầu tiên của  IP ( ) x - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Bảng n ày có nghĩa là bit thứ 58 của x là bit đầu tiên của IP ( ) x (Trang 40)
Hình 2.5: Tính bảng khoá  DES22      11         4      25 - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2.5 Tính bảng khoá DES22 11 4 25 (Trang 43)
Hình 2.6:  Chế độ CBC - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2.6 Chế độ CBC (Trang 51)
Hình 1 trong mục 4 thể hiện biểu diễn tuyến tính của K 0 ,…, K 43 . - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 1 trong mục 4 thể hiện biểu diễn tuyến tính của K 0 ,…, K 43 (Trang 76)
Hình 2 thể hiện 30 quan hệ tuyến tính không tầm thường độc lập tuyến tính của K 0 ,…, K 43 - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2 thể hiện 30 quan hệ tuyến tính không tầm thường độc lập tuyến tính của K 0 ,…, K 43 (Trang 77)
Hình 2. 30 quan hệ tuyến tính không tầm thường độc lập tuyến tính của các - Nghiên cứu tìm hiểu đánh giá chất lượng một số lược đồ khóa trong mã khối
Hình 2. 30 quan hệ tuyến tính không tầm thường độc lập tuyến tính của các (Trang 79)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

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

w