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

một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã

79 689 3

Đ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 79
Dung lượng 1,13 MB

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

Nội dung

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/ii đại học thái nguyên Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG Lấ HỮU THỌ MỘT SỐ PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ ĐỐI X

Trang 1

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

i

đại học thái nguyên

Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG

Trang 2

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

ii

đại học thái nguyên

Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG

Lấ HỮU THỌ

MỘT SỐ PHƯƠNG PHÁP THÁM MÃ

HỆ MẬT MÃ ĐỐI XỨNG VÀ ỨNG DỤNG TRONG

PHÁT TRIỂN HỆ MẬT MÃ

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Chuyờn ngành: KHOA HỌC MÁY TÍNH

Mó số: 60.48.01

Người hướng dẫn khoa học: TS NGUYỄN DUY MINH

Thỏi Nguyờn, 2014

Trang 3

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

iii

LỜI CẢM ƠN

Em xin chân thành cảm ơn trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên đã tạo điều kiện thuận lợi cho em trong quá trình học tập, công tác và thực hiện đề tài luận văn

Em xin nói lên lòng biết ơn sâu sắc và lời cảm ơn chân thành đến thầy giáo

TS Nguyễn Duy Minh, người Thầy mà đã luôn tận tình hướng dẫn, truyền thụ cho

em những kiến thức, kinh nghiệm quý báu và giúp em trong suốt quá trình học tập, nghiên cứu cũng như quá trình thực hiện luận văn

Cuối cùng em xin được gửi lời cảm ơn sâu sắc tới gia đình, bạn bè, đồng nghiệp

đã luôn ủng hộ, động viên em trong quá trình học tập và thực hiện luận văn này

Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự tận tình chỉ bảo của quý thầy cô và các bạn

Thái nguyên, Tháng 9 năm 2014

Lê Hữu Thọ

Trang 4

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

iv

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC iv

DANH MỤC HÌNH vi

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ CHUẨN MÃ HÓA DỮ LIỆU DES 3

1.1 Các hệ mã khóa 3

1.1.1 Hệ mật mã đối xứng 3

1.1.2 Hệ mật mã bất đối xứng 4

1.2 Chuẩn mã hóa dữ liệu DES 6

1.3 Quy trình mã hóa DES 8

1.4 Lập mã và giải mã DES 9

1.5 Các chế độ mã hóa theo DES 10

1.6 Độ an toàn của DES 13

1.7 Kết luận 14

CHƯƠNG 2: CÁC PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ ĐỐI XỨNG 16

2.1 Các thuật ngữ cơ bản 16

2.1.1 Mật mã (Cryptography) 16

2.1.2 Bản rõ (Plain text) 16

2.1.3 Bản mã (Cipher text) 16

2.1.4 Phép biến đổi mã/dịch (Encrytion/decryption transformations) 16

2.2 Thám mã 17

2.2.1 Khái niệm 17

2.2.2 Các bước cơ bản để thám mã 22

2.2.3 Các kiểu tấn công thám mã cơ bản 28

2.3 Các phương pháp thám mã hệ mã đối xứng 31

2.3.1 Phương pháp tấn công vét cạn 31

2.3.2 Phương pháp thám mã tuyến tính 32

2.3.3 Phương pháp thám mã vi sai 42

Trang 5

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

v

2.4 Đánh giá độ an toàn của DES trước một vài phương pháp tấn công phá mã 47

2.5 Kết luận 48

CHƯƠNG 3: CÀI ĐẶT MỘT SỐ PHƯƠNG PHÁP THÁM MÃ HỆ MÃ DES 49

TRONG PHÁT TRIỂN HỆ MẬT MÃ 49

3.1 Đặt vấn đề 49

3.2 Mô tả về DES 50

3.3 Lập mã DES 62

3.4 Xây dựng chương trình thám mã DES 66

3.5 Kết luận 71

KẾT LUẬN 72

TÀI LIỆU THAM KHẢO 73

Trang 6

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

vi

DANH MỤC HÌNH

Hình 1.1 Sơ đồ mã hóa DES 7

Hình 1.2 Một vòng lặp DES 9

Hình 1.3 Mô phỏng mã hóa (a) và giải mã (b) theo DES 10

Hình 1.4 Chế độ CBC 11

Hình 1.5 Chế độ CFB 12

Hình 2.1 Mô hình DES với quy ước mới 33

Hình 2.2 Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vòng 37

Hình 2.3 Sơ đồ xấp xỉ tuyến tính hệ mã DES 5 vòng 40

Hình 2.4 Các xâu vào có thể với XOR vào là 110100 45

Hình 3.1 Một vòng của DES 50

Hình 3.2 Hàm f của DES 52

Hình 3.3 Tính bảng khóa DES 58

Hình 3.4 Giao diện chính của chương trình thám mã DES 67

Hình 3.5 Quá trình tạo khóa 68

Hình 3.6 Quá trình mã hóa bản rõ 69

Hình 3.7 Quá trình giải mã nội dung bản mã 70

Hình 3.8 Quá trình thám mã thành công 71

Trang 7

Có nhiều phương pháp mã hóa dữ liệu được đưa ra Vậy làm thế nào để đánh giá được một phương pháp mã hóa nào là tốt? Hiện nay, có nhiều phương pháp đánh giá nhưng phương pháp tốt nhất và trực quan nhất là phương pháp phân tích trực tiếp bản mã khi không có khóa mã trong tay mà người ta gọi là thám mã

Ngày nay, nhu cầu trao đổi thông tin mật giữa các thành viên trong một nhóm, một tổ chức ngày càng lớn thì việc đảm bảo an toàn thông tin là rất cần thiết Cùng với sự phát triển của mật mã nói chung và của các hệ mã đối xứng nói riêng thì thám

mã là một lĩnh vực cũng thường được quan tâm nghiên cứu, nhưng ít khi được công khai, hoặc công khai không đầy đủ Mặc dù, trong thời gian qua đã có nhiều kết quả nghiên cứu về DES được công bố, DES có thể bị phá khóa bởi các hệ thống chuyên dụng trong vòng chưa đầy 24 giờ, nhưng việc nghiên cứu thám mã DES vẫn rất cần thiết để hướng tới thám mã các hệ mật mã hiện đại có độ dài khóa lớn hơn, đã và đang dần thay thế DES Phân tích mật mã hay thám mã còn đưa ra những khuyến cáo, phản hồi cho các chuyên gia trong thiết kế lại các hệ mật mã để chống lại các tấn công mới Đồng thời nó có ý nghĩa hỗ trợ công tác tình báo, phản gián

Chính vì những lý do trình bày ở trên, em đã chọn đề tài: “Một số phương

pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã”,

nhằm tìm hiểu các phương pháp thám mã và xây dựng qui trình thám mã cho hệ mật

mã đối xứng DES

Trong khuôn khổ đề tài được giao, luận văn được trình bày trong 3 chương có phần

mở đầu, phần kết luận, phần mục lục, tài liệu tham khảo Các nội dung cơ bản của luận văn được trình bày như sau:

Trang 8

2

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Chương 1: “Tổng quan về chuẩn mã hóa dữ liệu DES”, trong chương này tập

chung trình bày về các khái niệm mã hóa, các hệ mật mã, các chế độ mã hóa và quá trình mã hóa, giải mã DES

Chương 2: “Các phương pháp thám mã hệ mật mã đối xứng”, trong chương này

trình bày các thuật ngữ cơ bản về mật mã và thám mã, khái niệm về thám mã, các bước để tiến hành thám mã, đặc biệt trong chương này tập trung trình bày về 3 phương pháp thám mã là phương pháp tấn công vét cạn, phương pháp thám mã tuyến tính, phương pháp thám mã vi sai

Chương 3: “Đề xuất phương pháp thám mã DES và ứng dụng trong phát triển hệ

mật mã”, trên cơ sở lý thuyết đã được trình bày ở chương 1 và chương 2, đặc biệt ở chương 2 đã đưa ra một số phương pháp thám mã đối với hệ mã DES Từ đó đã đề xuất phương pháp thám mã DES bằng phương pháp mã vi sai trên hệ mã DES-6 vòng Kết quả của phương pháp sẽ được trình bày rõ ở chương 3

Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với giả thiết người thám mã biết được các thông tin về bản mã đã được mã hóa bởi DES (chế độ CBC) từ bản rõ tương ứng là một thông điệp dạng Text Từ giả thiết này xây dựng thuật toán để xác định khóa mật K đã sử dụng để mã hóa cũng như tìm ra

bản rõ tương ứng

Trang 9

3

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG 1 TỔNG QUAN VỀ CHUẨN MÃ HÓA DỮ LIỆU DES

1.1 Các hệ mã khóa

1.1.1 Hệ mật mã đối xứng

Thuật toán đối xứng hay còn gọi là thuật toán mã hóa cổ điển Thuật toán này còn có nhiều tên gọi khác như thuật toán khóa bí mật, thuật toán đơn giản, thuật toán một khóa

Là thuật toán mà tại đó khóa mã hóa có thể tính toán ra được từ khóa giải mã Trong rất nhiều trường hợp, khóa mã hóa và khóa giải mã là giống nhau

Thuật toán này yêu cầu người gửi và người nhận phải thỏa thuận một khóa trước khi thông báo được gửi, và khóa 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 khóa, nếu để lộ ra khóa này nghĩa là bất kì người nào cũng có thể mã hóa và giải mã hệ thống mật mã

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

Trang 10

4

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

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

- Hệ mã hóa đối xứng không bảo vệ được sự an toàn nếu có xác suất cao khóa người gửi bị lộ Trong hệ khóa 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 khóa

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

mã hóa 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 đề khóa Việc thay đổi khóa là rất khó và rất dễ bị lộ

- Khuynh hướng cung cấp khóa 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 sự phát triển của hệ mật mã cổ điển

Thuật toán đối xứng có thể được chia làm hai loại, mật mã luồng (stream ciphers) và mật mã khối (block ciphers) Mật mã luồng mã hóa từng bit của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng như một đơn vị

Cỡ khối được dùng thường là các khối 64 bit Thuật toán tiêu chuẩn mã hóa tân tiến (Advanced Encryption Standard), được NIST công nhận tháng 12 năm 2001, sử dụng các khối gồm 128 bit

Trang 11

5

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

hệ thống, khóa mã hóa được gọi là khóa công khai (public key), khóa giải mã thường được gọi là khóa riêng (private key)

K1 K2

Bản rõ Bản mã Bản rõ gốc

K1 không trùng K2hoặc K2 không thể tính toán từ K1

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

Việc tính toán ra một cặp khóa công khai KB 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

1 Người gửi A có được khóa 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 bản mã C

C = EKB(P) = EBP

Trong đó:

E: Thuật toán mã hóa

KB: khóa công khai P: Bản tin cần gửi đi C: Bản tin mã hóa Công việc này cũng trong thời gian đa thức

2 Người nhận B khi nhận được bản tin mã hóa C với khóa bí mật kB thì có thể giải

mã bản tin trong thời gian đa thức

P = DkB(C) = DB[EB(M)]

Trong đó:

D: Thuật toán giải mã

Trang 12

6

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

kB: Khóa bí mật C: Bản tin mã hóa

3 Nếu kẻ địch biết khóa công khai KB cố gắng tính toán khóa bí mật thì khi đó chúng ta 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

4 Nếu kẻ địch biết được cặp (KB, 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

- Dung lượng dùng cho việc lưu trữ khóa lớn

Mỗi hệ thống mã hóa có ưu nhược điểm riêng Mã hoá đối xứng xử lý nhanh nhưng độ an toàn không cao Mã hóa bất đối xứng xử lý chậm hơn, nhưng độ an toàn

và tính thuận tiện trong quản lý khóa cao Trong các ứng dụng mã hóa hiện tại, người

ta thường kết hợp các ưu điểm của cả hai loại mã này

1.2 Chuẩn mã hóa dữ liệu DES

Chuẩn mã hóa dữ liệu DES được văn phòng tiêu chuẩn của Mỹ(U.S National Bureau for Standards) công bố năm 1971 để sử dụng trong các cơ quan chính phủ liên bang Giải thuật được phát triển tại Công ty IBM dựa trên hệ mã hóa LUCIFER của Feistel

DES là thuật toán mã hóa khối (block algrithm), với cỡ của một khối là 64 bit Một khối 64 bit bản rõ được đưa vào, sau khi mã hóa dữ liệu đưa ra là một khối bản mã 64 bit Cả mã hóa và giải mã đều sử dụng chung cùng một thuật toán và khóa

Khóa mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ được sử dụng để kiểm soát lỗi Các bit chẵn lẻ nằm ở các vị trí 8, 16, 24, ,64 Tức là cứ 8 bit khóa thì trong đó có 1 bit kiểm soát lỗi, bit này quy định số bit có giá trị “1” của khối 8 bit

đó theo tính bù sẵn

Trang 13

7

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹ thuật thay thế và hoán vị bản rõ dựa trên khóa Đó là các vòng lặp DES sử dụng 16 vòng lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản vẽ 16 lần

Thuật toán chỉ sử dụng các phép toán số học và logic trên các số 64 bit, vì vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện công nghệ về phần cứng lúc bấy giờ Ban đầu, sự thực hiện các phần mềm kiểu này rất thô sơ, nhưng hiện tại thì việc đó đã tốt hơn, và với đặc tính lặp đi lặp lại của thuật toán đã tạo nên

ý tưởng sử dụng chip với mục đích đặc biệt này

Hình 1.1 Sơ đồ mã hóa DES

Tóm lại DES có một số đặc điểm sau:

Sử dụng khóa 56 bit

Xử lý khối vào 64 bit, biến đổi khối vào thành khối ra 64 bit

Mã hóa và giải mã được sử dụng cùng một khóa

Trang 14

8

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

DES được thiết kế để chạy trên phần cứng

DES thường được sử dụng để mã hóa các dòng dữ liệu mạng và mã hóa

dữ liệu được lưu trữ trên đĩa

1.3 Quy trình mã hóa DES

DES thực hiện trên từng khối 64 bit bản rõ Sau khi thực hiện hoán vị khởi đầu, khối dữ liệu được chia làm hai nửa trái và phải, mỗi nữa 32 bit.Tiếp đó, có 16 vòng lặp giống hệt nhau được thực hiện được gọi là các hàm f, trong đó dữ liệu được kết hợp với khóa Sau 16 vòng lặp, hai nửa trái và phải được kết hợp lại và hoán vị cuối cùng(hoán vị ngược) sẽ kết thúc thuật toán

Trong mỗi vòng lặp các bit của khóa được dịch đi và có 48 bit được chọn ra

từ 56 bit của khóa Nửa phải của dữ liệu được mở rộng thành 48 bit bằng một phép hoán vị mở rộng, tiếp đó khối 48 bit này được kết hợp với khối 48 bit đã được thay đổi và hoán vị của khóa bằng toán tử XOR được lựa chọn ra 32 bit bằng cách sử dụng thuật toán thay thế và hoán vị lần nữa Đó là bốn thao tác tạo nên hàm f Tiếp

đó đầu ra của hàm f được kết hợp với nửa trái bằng toán tử XOR Kết quả của các bước thực hiện này trở thành nửa phải mới, nửa phải cũ trở thành nửa trái mới; Sự thực hiện này được lặp lại 16 lần, tạo thành 16 vòng của DES

Nếu Bi là kết quả của vòng thứ i, Li và Ri là hai nửa trái và phải của Bi, Ki là khóa 48 bit của vòng thứ i và f là hàm thực hiện thay thế, hoán vị và XOR với khóa,

ta có biểu diễn của một vòng sẽ như nhau:

Li=Ri-1

Ri=Li-1 XOR f(Ri-1,Ki)

Trang 15

bit rõ số

Giai đoạn 4: Các đoạn 64 bit Mã số → 64 bit Mã số (Dạng nhị phân)

Trang 16

10

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Quy trình mã hóa, giải mã khối gồm 2 thuật toán là mã hóa(ký hiệu là E) và giải mã (ký hiệu là D) Cả hai thuật toán đều tác động lên một khối đầu vào 64 bit

sử dụng khóa 56 bit để cho ra khối 64 bit Đối với bất kỳ khóa k nào, giải mã là hàm ngược của mã hóa, nghĩa là:

- Mã hóa khối: Ek(M)

- Giải mã khối: M = Dk(Ek(M))

Trong đó M là khối thông tin 64 bit và K là khóa 56 bit

a.Quy trình mã hóa b.Quy trình giải mã

Hình 1.3: Mô phỏng mã hóa (a) và giải mã (b) theo DES

Quy trình giải mã của DES là quy trình ngược lại với quy trình mã hóa DES, xuất phát từ bản mã Y ( Đầu vào), kết quả là bản rõ X( đầu ra)

Do xác định mục tiêu, phương pháp thám mã khối DES là thám mã “Hộp đen”, thám mã “vét cạn có định hướng” dựa trên các yếu tố độ dài khóa(số lượng bit của khóa), bản mã, và độ dài khối mã nên khi xây dựng thuật toán thám mã không cần phân tích chi tiết thuật toán DES

1.5 Các chế độ mã hóa theo DES

Có 4 chế độ làm việc đã được phát triển cho DES: Chế độ chuyển mã điện tử (ECB), chế độ phản hồi mã (CFB), chế độ liên kết khối mã (CBC) và chế độ phản hồi đầu ra (OFB) Chế độ ECB tương ứng với cách dùng thông thường của mã khối: với một dãy các khối bản rõ cho trước x1, x2…(mỗi khối có 64 bit), mỗi xi sẽ được

mã hóa bằng cùng một khóa K để tạo thành một chuỗi các khối bản mã y1y2… theo quy tắc yi = ek(yi-1 xi)i≥1

Trang 17

mã lặp véc tơ khởi tạo 64 bit (véc tơ IV) Ta xác định z0= IV và rồi tính dòng khóa

z1z2…theo quy tắc z1=ek(zi-1), i≥1 Dãy bản rõ x1x2…sau đó sẽ được mã hóa bằng cách tính yi = xi zi, i≥1

Trong chế độ CFB, ta bắt đầu với y0= IV( là một véc tơ khởi tạo 64 bit) và tạo phần tử zi của dòng khóa bằng cách mã hóa khối bản mã trước đó Tức zi = ek(yi-

1), i≥1 Cũng như trong chế độ OFB: yi= xi zi, i≥1 Việc sử dụng CFB được mô tả trên hình 4( chú ý rằng hàm mã DES ek được dùng cho cả phép mã và phép giải mã

ở các chế độ CFB và OFB)

Trang 18

12

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Hình 1.5 Chế độ CFB

Cũng còn một số biến tấu của OFB và CFB được gọi là các chế độ phản hồi

k bit (1<K<64) Ở đây ta cũng mô tả chế độ phản hồi 64 bit Các chế độ phản hồi 1 bit và 8 bit thường được dùng trong thực tế cho phép mã hóa đồng thời 1 bit ( hoặc byte) số liệu

Bốn chế độ công tác có chế độ ưu nhược điểm khác nhau Ở chế độ ECB và OFB, sự thay đổi của một khối bản rõ xi 64 bit sẽ làm thay đổi khối bản mã yi tương ứng, nhưng các khối bản mã khác không bị ảnh hưởng

Trong một số tình huống đây là một tính chất đáng mong muốn Ví dụ chế

độ OFB thường được dùng để mã khi truyền vệ tinh

Mặt khác ở các chế độ CBC và CFB, nếu một khối bản rõ xi bị thay đổi thì

yi và tất cả các khối bản mã tiếp theo sẽ bị ảnh hưởng Như vậy các chế độ CBC và CFB có thể được sử dụng rất hiệu quả cho mục đích xác thực Đặc biệt hơn, các chế

độ này có thể được dùng để tạo mã xác thực bản tin (MAC- Message Authentication Code) MAC được gắn thêm vào các khối bản rõ để thuyết phục Bob tin rằng, dãy

Trang 19

13

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

bản rõ đó thực sự là của Alice mà không bị Oscar giả mạo Như vậy MAC đảm bảo tính toàn vẹn (hay tính xác thực) của một bản tin ( nhưng tất nhiên là MAC không đảm bảo độ mật)

Ta sẽ mô tả cách sử dụng chế độ BCB để tạo ra một MAC Ta bắt đầu bằng véc tơ khởi tạo IV chứa toàn số 0 Sau đó dùng chế độ CBC để tạo các khối bản mã

y1, ,yn theo khóa K Cuối cùng ta xác định MAC là yn, Alice sẽ phát đi dãy các khối bản rõ x1,x2,…,xn cùng với MAC Khi Bob thu được x1…xn a ta sẽ khôi phục lại y1…yn bằng khóa K bí mật và xác minh xem liệu yn có giống với MAC mà mình

đã thu được hay không

Nhận thấy Oscar không thể tạo ra một MAC hợp lệ do không biết khóa K mà Alice và Bob đang dùng Hơn nữa Oscar thu chặn được dãy khối bản rõ x1…xn và thay đổi ít nhiều nội dung thì chắc chắn là Oscar không thể thay đổi MAC để được Bob chấp nhận

Thông thường ta muốn kết hợp cả tính xác thực lẫn độ bảo mật Điều đó có thể thực hiện như sau: Trước tiên Alice dùng khóa K1 để tạo MAC cho x1…xn Sau

đó Alice xác định Xn+1 là MAC rồi mã hóa dãy x1…xn+1 bằng khóa thứ hai K2 để tạo ra bản mã y1…yn+1 Khi đó Bob thu được y1…yn+1, trước tiên Bob sẽ giải mã (bằng K2) và kiểm tra xem xn+1 có phải là MAC đối với dãy x1…xn dùng K1 hay không

Ngược lại, Alice có thể dùng K1 để mã hóa x1…xn và tạo ra được y1…yn, sau

đó dùng K2 để tạo MAC yn+1 đối với dãy y1…yn Bob sẽ dùng K2 để xác minh MAC

và dùng K1 để giải mã y1…yn

1.6 Độ an toàn của DES

Đã có rất nhiều sự nghiên cứu về độ dài của khoá, số vòng lặp, và thiết kế của hộp S (S-boxes) Hộp S có đặc điểm là khó hiểu, không có bất cứ sự rõ ràng nào như tại sao chúng phải như vậy Mọi tính toán trong DES ngoại trừ các hộp S đều tuyến tính, tức việc tính XOR của hai đầu ra cũng giống như phép XOR hai đầu vào rồi tính toán đầu ra Các hộp S chứa đựng thành phần phi tuyến của hệ là yếu tố

Trang 20

14

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

quan trọng nhất đối với sự an toàn của hệ thống Tính bảo mật của một hệ mã hoá đối xứng là một hàm hai tham số: độ phức tạp của thuật toán và độ dài của khoá

Giả sử rằng tính bảo mật chỉ phụ thuộc vào độ phức tạp của thuật toán.Có nghĩa rằng sẽ không có phương pháp nào để phá vỡ hệ thống mật mã hơn là cố gắng thử mọi khoá có thể, phương pháp đó được gọi là brute-forceattack Nếu khoá có độ dài 8 bít, suy ra sẽ có 28=256 khoá Vì vậy, sẽ mất nhiều nhất 256 lần thử để tìm ra khoá đúng Nếu khoá có độ dài 56 bít, thì sẽ có 256 khoá có thể sử dụng Giả sử một Suppercomputer có thể thử một triệu khoá trong một giây, thì nó sẽ cần 2000 năm

để tìm ra khoá đúng Nếu khoá có độ dài 64 bít, thì với chiếc máy trên sẽ cần 600,000 năm để tìm ra khoá đúng trong số 264 khoá Nếu khoá có độ dài 128 bít, thì

sẽ mất 1025 năm để tìm ra khoá đúng Vũ trụ chỉ mới tồn tại 1010 năm, vì vậy 1025thì một thời gian quá dài Với một khoá 2048 bít, một máy tính song song thực hiện hàng tỉ tỉ phép thử trong một giây sẽ tiêu tốn một khoảng thời gian là 10597 năm để tìm ra khoá Lúc đó vũ trụ có lẽ không còn tồn tại nữa

Khi IBM đưa ra thiết kế đầu tiên của hệ mã hoá LUCIFER, nó có khoá dài

128 bít Ngày nay, DES đã trở thành một chuẩn về mã hoá dữ liệu sử dụng khoá 56 bít, tức kích thước không gian khoá là 256 Rất nhiều nhà mã hoá hiện đang tranh luận về một khoá dài hơn của DES Nhiều thiết bị chuyên dụng đã được đề xuất nhằm phục vụ cho việc tấn công DES với bản rõ đã biết Sự tấn công này chủ yếu thực hiện tìm khoá theo phương pháp vét cạn.Tức với bản rõ X 64 bít và bản mã Y tương ứng, mỗi khoá có thể đều được kiểm tra cho tới khi tìm được một khoá k thoả mãn Ek(X)=Y (có thể có nhiều hơn một khoá k như vậy)

Vào năm 1979, Diffie và Hellman tuyên bố rằng với một máy tính chuyên dụng bản mã hoá DES có thể được phá bằng cách thử mọi trường hợp của khoá trong vòng một ngày – giá của máy tính đó là 20 triệu đôla Vào năm 1981, Diffie đã tăng lên là cần hai ngày để tìm kiếm và giá của chiếc máy tính đó là 50 triệu đôla

1.7 Kết luận

Ở chương này trình bày những khái niệm cơ bản về hai hệ mật mã đối xứng

và mật mã công khai, đặc biệt trình bày về quá trình lập mã và giải mã trên DES,

Trang 21

15

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

các chế độ mã hóa theo DES, độ an toàn của DES Nội dung trình bày ở chương 1 là

cơ sở lý thuyết cơ bản để vận dụng vào chương 2 và chương 3 trong luận văn

Trang 22

16

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƯƠNG 2 CÁC PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ ĐỐI XỨNG 2.1 Các thuật ngữ cơ bản

2.1.1 Mật mã (Cryptography)

Mật mã là tập hợp mọi phương pháp (hoặc quy tắc) biến đổi nào đó nhằm chuyển các thông báo (messges) dưới dạng nhận thức được nội dung (như chữ viết, tiếng nói, hình vẽ, hình ảnh,…) thành dạng bí mật mà người ngoài cuộc không hiểu được nội dung nếu họ không biết được phương pháp (hoặc quy tắc) biến đổi đó

Còn mật mã học (Crytology) là một bộ môn khoa học chuyên nghiên cứu về mật mã và thám mã

2.1.2 Bản rõ (Plain text)

Ta hiểu rõ tức là một bản thông báo có mang nội dung thông tin mà người đọc có thể tìm hiểu được nó nói cái gì hoặc là nó có ý nghĩa rõ ràng Bản rõ (bản thông báo) có thể tồn tại dưới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng… tương ứng ta sẽ có khái niệm mã ký tự, mã thoại, mã fax, mã dữ liệu…

Bản rõ thường được biểu diễn (viết) dưới dạng một dãy các chữ cái theo quy tắc cú pháp nào đó hoặc ký hiệu thuộc bảng chữ cái A hữu hạn được xác định trước

Để trình bày, ta ký hiệu M là không gian các bản rõ (message space)

Ví dụ: M có thể là gồm các dãy nhị phân, các văn bản tiếng Việt hoặc mã chương trình máy tính…

2.1.3 Bản mã (Cipher text)

Bản mã thường cũng được biểu diễn dưới dạng một dãy các ký hiệu có thể cũng thuộc A nhưng không theo quy tắc cú pháp nào cả Người ta nói rằng đó là ngẫu nhiên Ta ký hiệu tập tất cả các bản mã ứng với các bản rõ m là C Chú ý rằng các ký hiệu của c C có thể không thuộc A

2.1.4 Phép biến đổi mã/dịch (Encrytion/decryption transformations)

Trong việc tạo ra bản mã từ bản rõ, người ta cần đến hai yếu tố: các tham số

và một quy tắc mã/dịch Tham số đó người ta gọi là khóa mã/dịch(key seed) Tập tất

cả các khóa (mầm khóa) đó tạo thành một không gian khóa và được ký hiệu là K

Trang 23

17

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Còn một quy tắc mã là một ánh xạ từ không gian M vào không gian C phụ thuộc vào một khóa K cho trước Ta ký hiệu nó là Ee: M C với e K Ánh xạ này phải

là song ánh (ánh xạ lên và 1 – 1) và ánh xạ ngược của ánh xạ Ee được gọi là quy tắc dịch (Translation) tức là quy tắc biến đổi bản mã c C thành bản rõ tương ứng m

M được ký hiệu là Dd, ở đây d K Các khóa mã e và khóa dịch d tạo thành một cặp khóa mã/dịch và được viết là (e, d), e và d có thể trùng nhau

- Quá trình áp dụng phép biến đổi bản rõ m M thành bản mã tương ứng c

C được gọi là mã hóa

- Quá trình áp dụng phép biến đổi Dd vào bản mã C để tạo ra bản rõ m tương ứng được gọi là giải mã (decryption hoặc deciphering)

- Lược đồ mã hóa (enryption scheme) là gồm tập hợp tất cả các hàm mã hóa

Ee ứng với mỗi e K và tất cả các hàm gải mã Dd ứng với d K Hàm Dd và Eephải thỏa mãn hệ thức:

Dd = Ee-1 với (e,d) K x K

Tức là m = Dd (c) = Ee-1(Ee(m)) m M

Như vậy để người nhận đích thực dịch được bản mã từ người gửi tới thì đương nhiên người nhận phải có khóa dịch d và quy tắc dịch Dd Việc này có thể thực hiện được bằng sự trao đổi khóa giữa hai bên, ta ký hiệu hai bên đó là A và B Trong mật mã cổ điển truyền thống, việc trao đổi này phải được đảm bảo bí mật không để cho bất kỳ một đối tác C ( đối tác thứ 3) nào biết Vì khóa mã quyết định đến độ an toàn mật mã Trong lúc thuật toán mã/dịch thường đơn giản và được quy ước giữa 2 bên A và B

2.2 Thám mã

2.2.1 Khái niệm

Thám mã là quá trình khôi phục lại bản rõ hoặc khóa khi chỉ có bản mã tương ứng cho trước (không biết khóa và quy tắc mã/dịch) gọi là thám mã Người làm công tác thám mã được gọi là người mã thám (Cryptanalysist) hay gọi là mã

thám viên

Trang 24

18

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Tổ chức làm công tác thám mã được gọi là đơn vị mã thám Mã thám là một

bộ phận không thể thiếu của ngành tình báo điện tử Hầu hết các quốc gia đều có bộ phận tình báo điện tử này, nhưng sự phát triển và hiệu quả của nó lại phụ thuộc vào trình độ khoa học - công nghệ của từng nước Nước nào có trình độ khoa học - công nghệ càng cao thì khả năng của công tác thám mã nói riêng, tình báo điện tử nói chung càng mạnh

Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc không an toàn tổng phương pháp mật mã hóa.Thám mã có thể được thực hiện bởi những kẻ tấn công

ác ý, nhằm làm hỏng hệ thống; hoặc bởi những người thiết kế ra hệ thống với ý định đánh giá độ an toàn của hệ thống

Để nghiên cứu thám mã được các bản mã truyền thống, người mã thám phải nghiên cứu các đặc trưng cơ bản của bản rõ Nói một cách khác, trong mọi ngôn ngữ tự nhiên đều có những đặc trưng bất biến mà mã thám viên cần nắm vững để phục vụ việc phân tích các bản mã Đó là quy luật tần số, quy luật trùng lặp, quy luật văn phong, v.v

a Tần số (Frequency)

Người ta định nghĩa tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay một vần v.v trong một văn bản là số lần xuất hiện của ký tự, nhóm ký tự, từ, vần

đó trong văn bản đã cho

Người ta có thể tính tần số từ một hoặc nhiều văn bản (thông báo) của một loại ngôn ngữ nào đó để rút ra những quy luật riêng của ngôn ngữ đó Có nhiều loại tần số như: Tần số từng ký tự (tần số đơn), tần số từng cặp 2 ký tự (tần số bộ đôi) Ngay tần số bộ đôi cũng có nhiều cách tính khác nhau như: Tần số bộ đôi thông thường; Tần số bộ đôi móc xích (concatenate); Tần số bộ k ký tự (k=1, 2, 3, 4 ) Ngoài ra còn có: tần số từ, tần số vần chữ cái (ví dụ – tion, trong tiếng Anh), tần số các nhóm nguyên âm, tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ Một điểm cần lưu ý là mỗi loại ngôn ngữ tự nhiên khác nhau có các tần số không giống nhau Ngay trong một ngôn ngữ, các loại văn bản có tính chất văn học sẽ có các tần

Trang 25

19

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

số không hoàn toàn giống nhau Những tính chất đó người ta gọi là các đặc trưng ngôn ngữ

Ta lưu ý rằng, các văn bản khác nhau thường có độ dài (số lượng các ký tự trong văn bản đó) khác nhau Do đó khái niệm tần số như định nghĩa trên có nhiều trường hợp rất khó trong thực hành Vì vậy người ta đưa ra khái niệm tần số tương đối (tần suất - relative frequency) Tần suất của một ký tự x nào đó trong văn bản là

số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó Còn tần suất bộ đôi móc xích xy nào đó trong một văn bản là số lần xuất hiện bộ đôi đó có trong văn bản chia cho độ dài của văn bản trừ đi một Ví dụ, giả sử văn bản có độ dài n, khi đó số lượng bộ đôi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất của cặp “nh” sẽ là mnh / (n-1)

b Sự trùng lặp

Là một quy luật của bất cứ ngôn ngữ tự nhiên nào Đó là đặc trưng thứ 2 của ngôn ngữ được thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ) Ngoài quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không thể thiếu đối với công tác thám mã truyền thống

c Văn phong (Quy luật hành văn trong văn bản)

Trong thực tế, các loại văn bản khác nhau sẽ có văn phong không giống nhau

do phụ thuộc vào thói quen của từng người soạn thảo ra văn bản đó Đây cũng là quy luật đáng lưu ý trong việc thám mã Văn phong được chia thành các dạng:

- Dạng đầu văn bản (gọi là quy luật đầu điện);

- Dạng thân văn bản (quy luật thân điện): Văn bản thường có chia theo từng mục hoặc khôngchia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại nội dung như ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v ;

- Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thường cũng có những quy luật: Mỗi người soạn thảo văn bản khác nhau sẽ có quy luật khác nhau

Trang 26

20

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ví dụ, thường chấm hết thì có chữ stop, stopend; câu chào Salam và sau cùng

là tên, chức vụ, cấp bậc của người gửi thông báo, v.v Những thông tin này đôi khi rất quan trọng, giúp nhà mã thám thành công trong nhiệm vụ của mình

d Quy luật tình huống

Như đã được trình bày ở phần trước, thám mã là tìm mọi biện pháp có thể để khôi phục lại bản rõ và/hoặc khoá mã từ một số bản mã cho trước Điều này cho thấy thám mã là một loại công việc khó khăn và phức tạp, nó vừa mang tính khoa học lại vừa mang tính nghệ thuật Rõ ràng, khoa học về mật mã càng phát triển thì

kỹ thuật thám mã càng gặp nhiều khó khăn

Để chống lại việc thám mã của đối phương, các nhà sản xuất mật mã phải thiết kế các thuật toán mã hoá và các loại khoá mã sao cho các thông tin về khoá mã

và bản rõ không lộ rõ trên bản mã Tuy nhiên, do đặc điểm của bản thân mật mã và việc phân cấp sử dụng, nên trên thực tế, mật mã luôn chứa đựng những mâu thuẫn nội tại mà các nhà mã thám vẫn có thể dựa vào đó khai thác, khám phá, đó là:

- Trình độ về mật mã ở các nước khác nhau sẽ khác nhau Hiện nay, bên cạnh những nước có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít nước vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nước dùng mật

mã truyền thống tương đối đơn giản Và ngay trong cùng một nước, các lực lượng, ngành khác nhau lại dùng các hệ mã khác nhau Ví dụ, mật mã dùng trong quân sự khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã dùng trong ngân hàng, tài chính v.v

- Thông thường, những nhà lập mã không phải là người sử dụng mật mã Các nhà lập mã có trình độ cao trong lĩnh vực mật mã nhưng những người sử dụng mật mã lại không cần như vậy Người sử dụng thường có xu hướng muốn đơn giản hoá công việc của mình, chính vì vậy họ dễ vi phạm các qui tắc đảm bảo an toàn mật mã

- Khoá mã không được bảo vệ cẩn thận theo quy định, và một sơ hở nhỏ cũng đủ tạo khe hở cho các nhà mã thám lấy cắp được khóa mà mật mã viên không

Trang 27

21

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

hề biết Vì vậy, khoá đó vẫn được sử dụng và các nhà mã thám khi nhận được các bản mã chỉ việc dùng khoá đó mà dịch bình thường

- Độ dư ngôn ngữ cũng là một quy luật rất quan trọng của ngôn ngữ tự nhiên Độ dư ngôn ngữ tồn tại trong chính bản mã của nhiều luật mã khác nhau, đặc biệt là trong hệ mã truyền thống

- Tiêu chuẩn bản rõ: chính là quy luật bản rõ được thể hiện qua quy luật tần

số, quy luật trùng lặp Đây là một yếu tố trọng yếu giúp cho nhà mã thám thành công không những đối với mật mã truyền thống mà cả đối với mật mã khoá đối xứng nói chung (như mã DES, IDEA, AES v.v )

Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám

mã, đặc biệt là thám mã hiện đại Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng, các ngôn ngữ tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng lặp Hai quy luật này đã bị biến mất đối với bản mã Với phương pháp mã hoá phức tạp thì hai quy luật này hoàn toàn bị biến mất Một trong những điều khác nhau cơ bản của bản rõ và bản mã là ở chỗ đó Giả sử nhà mã thám nhận được một (hoặc một số) bản mã và bằng cách nào đó, họ đã biết được một vài thông tin về thuật toán mã hoá (và dịch) Tuy không biết được cách mã/dịch cụ thể nhưng nhà mã thám có thể biết được tất cả khả năng có thể của khoá Từ đó, người ta thử cho đầu vào (Input) là bản mã và “khoá” (dự đoán) lấy trong không gian khoá rồi dịch thử Kết quả đầu ra (output) sẽ là một dãy nào đó (có thể đọc được có nghĩa hoặc cũng

có thể không có nghĩa) mà ta vẫn gọi là “bản rõ” Nhưng bản rõ này chưa thể hiện được quy luật tần số và trùng lặp Nó chỉ thể hiện được quy luật tần số và trùng lặp nếu khoá mà ta đưa vào là đúng hoặc có sai cũng chỉ sai một vài ký tự Nhưng làm cách nào để biết được quy luật tần số và trùng lặp được thể hiện trên “bản rõ” mà ta vừa tạo ra từ khoá và bản mã ban đầu (gọi là bản mã gốc) Do số liệu khoá đưa vào

là rất lớn nên dùng mắt thường để quan sát xem “bản rõ” nào thể hiện được quy luật tần số và trùng lặp là không khả thi về khía cạnh thời gian tìm kiếm

Tiêu chuẩn bản rõ giúp ta tự động xác định “bản rõ” nào thể hiện quy luật tần

số và trùng lặp, “bản rõ” nào không Nhờ tiêu chuẩn bản rõ, nhà mã thám có thể

Trang 28

22

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

chia không gian khoá thành hai nhóm, một nhóm cho phép tạo ra được “bản rõ” có quy luật tần số và trùng lặp, một nhóm gồm các khoá còn lại Trong thực tế, nhóm gồm các khoá cho phép tạo ra “bản rõ” có quy luật (ta gọi là bản rõ có nghĩa) là rất

ít so với nhóm còn lại Từ đó chúng ta tiến hành kiểm tra tiếp và kết hợp với mắt thường, chúng ta có thể giải ra được bản rõ ban đầu (bản rõ gốc) cần tìm và khoá

mà ta mong muốn

Có nhiều phương pháp khác nhau để tạo ra các Tiêu chuẩn bản rõ Do không gian khoá thường rất lớn, nên cần có một tiêu chuẩn bản rõ có tốc độ tính toán càng nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán được ưu tiên số một

2.2.2 Các bước cơ bản để thám mã

Khi nhận được một số bản mã, các nhà thám mã cần thực hiện một loạt các bước nghiên cứu nhằm khôi phục được bản rõ (hoặc khóa) từ các bản mã nhận được Ta tìm hiểu các bước cơ bản nhất đó là:

Người ta có nhiều phương pháp thực thi giai đoạn này, một trong số đó là áp dụng kỹ thuật phân lớp các đối tượng Ý tưởng của bài toán phân lớp như sau:

Giả sử ta nhận được m bản mã M1, M2, , Mm với m $ 2 Mỗi bản mã ta gọi

là một đối tượng Tập hợp m bản mã (các đối tượng) ta ký hiệu là G

Vậy G = {M1, M2, , Mm} Ứng với mỗi đối tượng ta cần tìm ra các đặc trưng tham số Giả sử đối tượng Mi có pi đặc trưng Ở đây, để cho đơn giản, ta giả

Trang 29

23

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

thiết p1 = p2 = = pm= p Vấn đề đặt ra là hãy phân tập hợp G thành k lớp không giao nhau mà ta ký hiệu là G1, G2, , Gk, k > 1 sao cho:

Bước 2: Xác định mã pháp

Sau khi hoàn thành việc phân lớp (phân loại mã pháp) ở bước 1, chúng ta tiến hành xác định phương pháp mã dịch ứng với từng lớp cụ thể (cần chú ý rằng, thường thì chúng ta tiến hành xác định mã pháp đối với các bản mã có nhiều đặc điểm nhất theo quan điểm của các nhà thám mã) Đây là một khâu rất quan trọng của công tác thám mã truyền thống Tuy nhiên đối với một số hệ mật đối xứng hiện đại như mã DES, 3DES, AES, IDEA, PGP thì bước này coi như được bỏ qua bởi ngay từ đầu bản mã, người ta đã chỉ ra rằng bản mã đó thuộc loại bản mã pháp nào

Ở đây chúng ta chỉ trình bày cách thức xác định mã pháp đối với các luật mã truyền thống (bước này được bỏ qua đối với những hệ mật mà thuật toán mã hoá - phương pháp mã - được công khai hoàn toàn) Bước này bao gồm các công việc sau đây:

a Tính tần số

Mục đích của việc tính tần số là để phát hiện tính quy luật không ngẫu nhiên tồn tại trong bản mã Có rất nhiều loại tần số khác nhau cần tính, mà đối với mỗi mã pháp có thể tồn tại tính không ngẫu nhiên (có quy luật) đặc thù riêng cho nó Theo kinh nghiệm phân tích mà người ta tiến hành tính tần số loại phù hợp nhất thông qua đó có thể bộc lộ rõ nhất tính quy luật (không ngẫu nhiên) trong bản mã Việc tính tần số thường gồm:

- Tần số đơn:

Tần số đơn là tần số từng kí tự một trong bản mã

Trang 30

24

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Sau khi có được kết quả tính tần số đơn, ta tiến hành sắp xếp lại thứ tự các

ký tự theo tần số từ cao đến thấp

Cũng có thể lập bảng tần xuất bằng cách chia tần số từng ký tự cho độ dài bản mã cần tính để xem tần số tương đối của chúng

- Tần số bộ đôi móc xích (concatenate frequency of pairs)

Tần số bộ đôi móc xích là tần số bộ đôi nhưng các cặp kề đè lên nhau một ký tự Mục đích của việc tính tần số bộ đôi móc xích là để xem quan hệ phụ thuộc giữa ký tự sau với ký tự kề ngay trước đó như thế nào, (ta thường gọi là quan hệ xích Makov cấp 1) Từ đó có thể ước lượng được xác suất xuất hiện một ký tự nào

đó khi biết trước ký tự đứng ngay trước nó

- Tần số bộ đôi thường: Tần số bộ đôi thường là tần số bộ đôi rời nhau

Ví dụ: cho đoạn văn : Vi ee tj na m thì tần số bộ đôi thường gồm:

Vi: xuất hiện 1 lần

e e: xuất hiện 1 lần

t j: xuất hiện 1 lần

na: xuất hiện 1 lần

Ký tự cuối cùng được bỏ qua (chỉ gồm có 4 bộ đôi) Trong khi đó, tần số bộ đôi móc xích sẽ được thể hiện là: Vi, ie, ee, et, tj, jn, na, am gồm 8 bộ đôi Lưu ý:

- Số tất cả các bộ đôi móc xích trong văn bản độ dài n là n – 1

Khi tính trùng mã (các bộ) ta phải quan tâm các tham số sau đây:

1 Tần số trùng mã (trùng lặp)

Trang 31

5 Trùng mã trong một bản mã và trong các bản mã khác nhau

Những tham số trên đây rất có ích trong việc xác định mã pháp

c Tần số định kỳ

Ngoài việc tính tần số đơn, bộ đôi móc xích, bộ đôi thường v.v và trùng mã (sự trùng lặp) trong bản mã hoặc các bản mã, trong nhiều trường hợp người ta phải tính tần số định kỳ Giả sử ta có bản mã M độ dài n nào đó Thường n khá lớn và càng lớn càng tốt Bây giờ ta lập bảng k cột (k $ 2 và thường thì k $ 3) và n/k hàng Sau đó, ta viết bản mã lần lượt trái qua phải và viết từ trên xuống dưới cho đến hết thì dừng Bây giờ ta tiến hành tính tần số đơn theo cột từ cột 1 đến cột k Như vậy ta thường phải tính toán tần số các “định kỳ” khác nhau lần lượt k = 3, 4, 5 , 10 Tần

số như vậy được gọi là tần số định kỳ Trong nhiều trường hợp tần số đơn, đôi, bộ 3 của bản mã tương đối san bằng (tức là không vi phạm các tiêu chuẩn 3s và c2) nhưng tần số định kỳ lại có quy luật rất rõ

e Phân tích kết quả tính các tần số và trùng mã

Bước này dựa vào các kết quả tính các loại tần số, trùng mã để kết luận bản

mã (các bản mã) đó thuộc loại mã pháp nào Để đánh giá độ chênh lệch tần số hoặc

Trang 32

26

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

tính độc lập của các ký tự trong bản mã, người ta thường dùng các tiêu chuẩn thống

kê toán học, chẳng hạn tiêu chuẩn 3s, tiêu chuẩn c2 hoặc tiêu chuẩn MLR (Most Likelihood Ratio- tỷ số hợp lý cực đại) Nói chung việc xác định mã pháp là công việc rất phức tạp, nó phụ thuộc một phần vào trình độ và kinh nghiệm của các mã thám viên Có nhiều trường hợp thoáng nhìn bản mã người ta đã dự đoán được phương pháp mã nhưng cũng có rất nhiều trường hợp phải nghiên cứu rất công phu

mà độ rủi ro không phải là không có

* Thám mã thủ công

Bằng cách thống kê tần suất các ký tự trong bản mã ta có thể dự đoán ký tự tương ứng trong bản rõ Dựa vào đó ta xác định được khóa k Tiến hành giải mã với khóa k vừa tìm được

* Thám mã có sự trợ giúp của máy tính

Hệ mã dịch vòng có số khóa ít nên hoàn toàn có thểthám mã bằng cách thử tất cả các khóa có thể

b Xây dựng phương pháp thám

Nếu mã pháp thuộc loại mới, công việc yêu cầu phức tạp hơn là phải xây dựng phương pháp thám thì có hai phương pháp thám là phương pháp phân tích và phương pháp dự đoán “Từ phỏng chừng”

Trang 33

27

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Phương pháp phân tích: được sử dụng trong trường hợp nhà mã thám đã biết được cấu trúc khoá mã đã được sử dụng làm “mầm khoá” (key seed) để mã hoá bản

mã này Khi đó có nhiều kiểu để xác định khoá có thể, ví dụ: phương pháp “thử - sai”, phương pháp “lượng sai”, phương pháp “những phần tử tách biệt”, phương pháp “tuyến tính” Tóm lại tuỳ theo thuật toán mã hoá của bản mã như thế nào mà chọn phương pháp phân tích nào cho hợp lý

Phương pháp “từ phỏng chừng”: Phương pháp này chủ yếu là dựa vào thông tin tiên nghiệm về khoá và thông tin về bản rõ mà đối tượng sử dụng (quy luật ngôn ngữ) để dự đoán khoá được sử dụng Nội dung của phương pháp này là dự đoán cụm từ có thể xuất hiện trong bản rõ gốc ứng với bản mã, sau đó tìm cách xác định khoá đúng Nếu khoá là đúng thì có thể dịch bản mã để cho ra bản rõ

Ngoài một số phương pháp truyền thống trên, ngày nay, nhờ tốc độ máy tính

đã được cải thiện đáng kể, trong những bài toán mà không gian khoá không quá lớn người ta còn có thể áp dụng một phương pháp nữa đó là “vét cạn” Đối với không gian khoá lớn, đây thật sự là phương pháp kém hiệu quả nếu chúng ta chỉ thực hiện vét cạn một cách thông thường Tuy nhiên nếu áp dụng đồng thời các kỹ thuật bổ trợ thì nó vẫn phát huy được hiệu quả tốt Các kỹ thuật hỗ trợ được nói tới ở đây là xây dựng một thư viện phục vụ việc “vét cạn” bao gồm cơ sở dữ liệu về khoá và các tiêu chuẩn bản rõ tốt Trên cơ sở đó tìm cách phân hoạch không gian khoá S thành hai tập con rời nhau là S1 và S2 sao cho khoá đúng sẽ “chắc chắn” thuộc một trong hai tập con đó Từ đó tiến hành sử dụng thuật toán vét cạn trên tập con có chứa khoá đúng, khi đó việc “vét cạn” trong tập con nhanh chóng thể hiện tính hiệu lực của nó Việc này cũng có thể thực hiện ngay đối với một số phương pháp truyền thống đã

có được những kết quả đáng ngạc nhiên Khi thám ra bản rõ ta chỉ cần đọc được lỗ chỗ đã là thành công vì lúc đó bằng quy luật ngôn ngữ ta sẽ khôi phục được bản rõ gốc như mong muốn

Ngày nay, người ta đã có những công cụ tính toán cực nhanh nhờ công nghệ cluster Từ đó người ta có thể xây dựng mạng tính toán song song với tốc độ tính toán đạt tới gần 100GF (một trăm tỷ phép tính dấu phảy động trên một giây) Như

Trang 34

28

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

vậy người ta có phân rã bài toán để thực hiện việc tính toán song song cực kỳ có hiệu quả, đặc biệt đối với những bài toán có độ phức tạp tính toán lớn

2.2.3 Các kiểu tấn công thám mã cơ bản

Phần này sẽ trình bày một vài kiểu thám mã Giả thiết chung ở đây là luôn coi đối phương biết hệ mật đang dùng Giả thiết này được gọi là nguyên lý Kerekhoff[5] Dĩ nhiên, nếu đối phương không biết hệ mật được dùng thì nhiệm vụ của anh ta sẽ khó khăn hơn.Tuy nhiên ta không muốn độ mật của một hệ mật lại dựa trên một giả thiết không chắc chắn là đối phương không biết hệ mật được sử dụng Do đó, mục tiêu trong việc thiết kế một hệ mật là phải đạt được độ mật dưới giả thiết Kerekhoff

Việc thám mã có thể quy về việc tìm được bản rõ hoặc phát hiện khoá mã, khi biết trước hệ mật mã được dùng Ngoài việc biết hệ mật mã, người thám mã còn cần có thông tin khác để tìm bản rõ và phát hiện khoá Tuỳ theo thông tin đó là gì

mà ta phân các bài toán thám mã thành các loại: chỉ biết bản mã, biết các cặp rõ/mã,

có bản rõ được chọn và có bản mã được chọn

a Tấn công chỉ biết bản mã

Trong trường hợp này, người phân tích chỉ có một vài bản tin của bản mã, tất

cả trong số chúng đều đã được mã hoá và cùng sử dụng chung một thuật toán Công việc của người phân tích là tìm lại được bản rõ của nhiều bản mã có thể hoặc tốt hơn nữa là suy luận ra được khoá sử dụng mã hoá, và sử dụng để giải mã những bản

mã khác với cùng khoá này

Trang 35

Người thám mã được quyền truy nhập tạm thời vào cơ chế mã hoá, nên anh

Người thám mã được quyền truy nhập tạm thời vào cơ chế giải mã, nên từ các bản mã c1, c2, , ci anh ta nhận được các bản rõ tương ứng m1, m2, , mi từ đó anh ta sẽ phỏng đoán khoá K và có thể tìm được bản rõ mi+1 từ một vài bản mã mới

ci+1 = eK(mi+1) cũng được mã bởi cùng khoá K

Trong mỗi trường hợp đối tượng cần phải xác định chính là khoá đã sử dụng

Rõ ràng 4 mức độ tấn công (thám mã) trên đã được liệt kê theo độ tăng của sức mạnh tấn công và cách tấn công các bản mã được lựa chọn là thích hợp đối với hệ mật mã khoá công khai

Trang 36

f Lựa chọn khóa

Đây không phải là một cách tấn công khi mà bạn đã có khoá Nó không phải

là thực hành thám mã mà chỉ là sự giải mã thông thường, bạn chỉ cần lựa chọn khoá cho phù hợp với bản mã

Một điểm đáng chú ý khác là đa số các kỹ thuật thám mã đều dùng phương pháp thống kê tần suất xuất hiện của các từ, các ký tự trong bản mã Sau đó thực hiện việc thử thay thế với các chữ cái có tần suất xuất hiện tương đồng trong ngôn ngữ tự nhiên Tại đây chúng ta chỉ xem xét đối với ngôn ngữ thông dụng nhất hiện nay đó là tiếng Anh Việc thống kê tần suất xuất hiện của các ký tự trong trường hợp này được tiến hành dựa trên các bài báo,sách, tạp chí và các văn bản cùng với một số loại khác

Nhiều kỹ thuật thám mã sử dụng đặc điểm thống kê của tiếng Anh, trong đó dựa vào tần suất xuất hiện của 26 chữ cái trong văn bản thông thường để tiến hành phân tích mã Becker và Piper đã chia 26 chữ cái thành năm nhóm và chỉ ra xác suất của mỗi nhóm như sau:

1 E, có xác suất khoảng 0.120

2 T, A, O, I, N, S, H, R, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.06 đến 0.09

3 D, L, mỗi chữ cái có xác xuất xấp xỉ 0.04

4 C, U, M, W, F, G, Y, P, B, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.015 đến 0.023

5 V, K, J, X, Q, Z, mỗi chữ cái có xác xuất nhỏ hơn 0.01

Trang 37

Với bất cứ phương pháp mã hóa nào, kiểu tấn công cơ bản và đơn giản nhất

là tấn công kiểu vét cạn: thử lần lượt tất cả các khóa có thể cho đến khi tìm ra khóa đúng Độ dài của khóa sẽ xác định số lượng phép thử tối đa cần thực hiện và do đó thể hiện tính khả thi của phương pháp

Với DES, độ dài khóa là 56 bit, như thế tối đa cần 256 lần để cho ra kết quả Giả

sử có cặp bản rõ, bản mã tương ứng (X, Y), với mỗi khóa K trong 256 khóa có thể qua mã hóa bản rõ X được bản mã YK, nếu YK trùng với Y thì khóa phải tìm là K

Trang 38

32

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

2.3.2 Phương pháp thám mã tuyến tính

2.3.2.1 Nguyên lý chung của phương pháp thám mã tuyến tính đối với hệ DES

Như ta đã biết ở trên, hệ DES đã công khai toàn bộ các phép biến đổi trong

nó, trong đó chỉ có các hộp nén mới là các phép biến đổi phi tuyến Các bí mật còn lại duy nhất khi sử dụng DES đó là khóa K được sử dụng cụ thể Nếu tất cả các phép biến đổi của DES đều là tuyến tính, thì với ẩn số là khóa K cho trước cố định, bằng công cụ mô phỏng trên máy tính và sử dụng các cặp bản rõ – mã tương ứng chúng ta có thể thiết lập được hệ thống phương trình tuyến tính để tìm lại được các bit khóa K trong thời gian đa thức Tuy nhiên, các hộp nén (thành phần quan trọng nhất của hệ DES) là các phép biến đổi phi tuyến được chọn lựa cẩn thận, nên muốn thám DES thì phải tấn công vào chính thành trì này Mục đích của phương pháp thám mã tuyến tính trên DES là tìm một biểu diễn xấp xỉ tuyến tính cho hệ này để

có thể phá chúng nhanh hơn phương pháp tấn công vét cạn Và tất nhiên, những nhược điểm của các hộp nén sẽ lại được tiếp tục khai thác cho mục đích này

Trước hết ta quy ước lại các yếu tố liên quan đến sơ đồ thuật toán mã DES Đầu tiên, cũng giống như trong phần thám mã vi sai đối với DES, ta có thể bỏ qua các hoán vị đầu IP và hoán vị cuối IP-1 Và trong suốt phần này, ta quy ước bít tận cùng bên phải luôn được xem là bít thứ không (0)

Các ký hiệu được sử dụng trong mô hình là:

P: là bản rõ 64 bit

PH: 32 bit bên trái của P

CH: 32 bit bên trái của C

Xi: Giá trị 32 bit trung gian tại vòng thứ i

Fi(Xi, Ki): Hàm vòng thứ i C: là bản mã 64 bit tương ứng

PL: 32 bit bên phải của P

CL: 32 bit bên phải của C

Ki: Khóa con 48-bit được sử dụng tại vòng thứ i A[i]: Bit thứ i của A

A[i, j, , k]: là tổng A[i] A[j] A[k]

Mục đích của phương pháp thám mã tuyến tính với hệ DES là tìm các biểu diễn tuyến tính hiệu quả có dạng sau :

Trang 39

33

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

P[i1, i2, , ia] C[j1, j2, , jb] = K[k1, k2, , kc] (2.1) Trong đó i1, i2, ., ia, j1, j2, ., jb và k1, k2, ., kc là ký hiệu các vị trí bit cố định, và phương trình (2.1) đúng với xác suất p ½ với giả thiết bản rõ P được lấy ngẫu nhiên còn C là bản mã tương ứng với khóa K cố định cho trước nào đó Giá trị tuyệt đối |p – ½| được xem như độ hiệu quả của chương trình(2.1)

Hình 2.1 Mô hình DES với quy ước mới

Nếu ta có thể thành công trong việc tìm một biểu diễn tuyến tính hiệu quả, thì khi đó có thể sử dụng nó để tìm ra được bít dạng khóa quan trọng K[k1,k2, ,kn] theo thuật toán sau dựa trên phương pháp hợp lý cực đại

Thuật toán 1

Bước 1: Gọi T là số các bản rõ sao cho vế trái của phương trình (2.1) là bằng

không Ký hiệu N là số các bản rõ được thực hiện trong tấn công

Ngày đăng: 18/12/2014, 00:21

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Sơ đồ mã hóa DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 1.1. Sơ đồ mã hóa DES (Trang 13)
Hình 1.2. Một vòng lặp DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 1.2. Một vòng lặp DES (Trang 15)
Bảng 1.1. Quy trình mã hóa của mật mã khối và hệ mã DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Bảng 1.1. Quy trình mã hóa của mật mã khối và hệ mã DES (Trang 15)
Hình 1.3: Mô phỏng mã hóa (a) và giải mã (b) theo DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 1.3 Mô phỏng mã hóa (a) và giải mã (b) theo DES (Trang 16)
Hình 1.4. Chế độ CBC - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 1.4. Chế độ CBC (Trang 17)
Hình 1.5. Chế độ CFB - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 1.5. Chế độ CFB (Trang 18)
Hình 2.1. Mô hình DES với quy ước mới - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 2.1. Mô hình DES với quy ước mới (Trang 39)
Hình 2.2. Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vòng - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 2.2. Sơ đồ xấp xỉ tuyến tính hệ mã DES 3 vòng (Trang 43)
Hình 2.4. Các xâu vào có thể với XOR vào là 110100 - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 2.4. Các xâu vào có thể với XOR vào là 110100 (Trang 51)
Hình 3.1 Một vòng của DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 3.1 Một vòng của DES (Trang 56)
Hình 3.2 Hàm f của DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 3.2 Hàm f của DES (Trang 58)
Bảng chọn E bít - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Bảng ch ọn E bít (Trang 59)
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 - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
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 (Trang 59)
Hình 3.3 Tính bảng khóa DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 3.3 Tính bảng khóa DES (Trang 64)
Hình 3.4 Giao diện chính của chương trình thám mã DES - một số phương pháp thám mã hệ mật mã đối xứng và ứng dụng trong phát triển hệ mật mã
Hình 3.4 Giao diện chính của chương trình thám mã DES (Trang 73)

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