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

BÀI tập lớn môn lý THUYẾT mật mã và bảo mật THÔNG TIN đề tài (đề 5) a tutorial on linear and differential cryptanalysis (differential cryptanalysis)

23 2,6K 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

Tiêu đề A tutorial on linear and differential cryptanalysis (differential cryptanalysis)
Tác giả Phạm Xuân Dưỡng, Lê Đăng Hòa, Đinh Văn Thế, Lương Mạnh Cường
Người hướng dẫn PGS.TS. Nguyễn Hiếu Minh
Trường học Học viện Kỹ thuật Quân sự
Chuyên ngành Lý thuyết mật mã và bảo mật thông tin
Thể loại Bài tập lớn
Thành phố Hà Nội
Định dạng
Số trang 23
Dung lượng 1,08 MB

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

Nội dung

Thám mã tuyến tính đã được giới thiệu bởiMatsui tại EUROCRYPT '93 như một loại tấn công lý thuyết trên chuẩn mã hóa dữ liệu Data Encryption Standard - DES [3] và sau đó sử dụng thành côn

Trang 1

HỌC VIỆN KỸ THUẬT QUÂN SỰ

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

Hướng dẫn về thám mã tuyến tính và thám mã vi sai

Howard M Heys Điện và Kỹ thuật Máy tính Khoa Kỹ thuật và Khoa học ứng dụng Đại học Memorial của Newfoundland

St John’s, NF, Canada A1B 3X5email:howard@engr.mun.ca

Tóm tắt: Trong bài báo này, chúng tôi trình bày một hướng dẫn chi tiết

về thám mã tuyến tính và thám mã sự vi sai, hai loại tấn công quan trọng nhất ápdụng đối với những thuật toán mật mã khối khóa đối xứng Mục đích của bàibáo là trình bày một lời giải thích dễ hiểu cho các thám mã mới học làm quenvới các khái niệm về các loại tấn công và chi tiết các ứng dụng thực tế của cácloại tấn công bản mã một cách đơn giản Hướng dẫn này dựa trên phân tích dễhiểu trên cấu trúc mã hóa của mạng hoán vị - thay thế ( Substitution-PermutationNetwork - SPN) cơ bản Việc hiểu biết về các loại tấn công khi nó áp dụng đốivới cấu trúc này là hữu ích, vì như mã hóa Rijndael, gần đây đã được lựa chọncho chuẩn mã hóa nâng cao (Advanced Encryption Standard - AES), đã đượcbắt nguồn từ kiến trúc SPN cơ bản Đồng thời, dữ liệu thử nghiệm từ các loại tấncông được trình bày là một sự xác nhận khả năng ứng dụng của các khái niệmnhư đã nêu

Trang 3

1 Giới thiệu

Trong bài báo này, chúng tôi trình bày một hướng dẫn về hai kỹ thuậtthám mã mạnh mẽ áp dụng cho những hệ mật mã khối khóa đối xứng: thám mãtuyến tính [1] và thám mã vi sai[2] Thám mã tuyến tính đã được giới thiệu bởiMatsui tại EUROCRYPT '93 như một loại tấn công lý thuyết trên chuẩn mã hóa

dữ liệu (Data Encryption Standard - DES) [3] và sau đó sử dụng thành côngtrong thám mã thực tế của DES [4]; thám mã vi sai lần đầu tiên được trình bàybởi Biham và Shamir tại CRYPTO ’90 để tấn công DES và cuối cùng các chitiết của cuộc tấn công đã được đóng gói vào một cuốn sách [5] Mặc dù mục tiêuban đầu của cả hai loại tấn công là DES nhưng khả năng ứng dụng rộng rãi củachúng vào rất nhiều những thuật toán mật mã khối khác đã củng cố tính ưu việtcủa cả hai kỹ thuật thám mã trong việc xem xét sự an toàn của tất cả các loạimật mã khối Ví dụ, gần đây nhiều ứng cử viên đã đệ trình cho cách thức AESđảm nhận bởi Viện Tiêu chuẩn và Công nghệ (Institute of Standards andTechnology)[6] được thiết kế bằng cách sử dụng các kỹ thuật nhằm mục tiêu đặcbiệt cản trở việc thám mã tuyến tính và thám mã vi sai Điều này là hiển nhiên,

ví dụ, trong mật mã Rijndael [7], các thuật toán mã hóa lựa chọn để đạt các tiêuchuẩn mới Các khái niệm thảo luận trong bài báo này có thể được sử dụng đểhình thành một sự hiểu biết ban đầu cần thiết để hiểu các nguyên tắc thiết kế vàphân tích sự bảo mật của mã hóa Rijndael, cũng như nhiều thuật toán mã hóakhác được đề xuất trong những năm gần đây

Bài báo có cấu trúc như một hướng dẫn, và như vậy, được dự định đểkhông cần chính xác chặt chẽ quá Bài báo giới thiệu các khái niệm cơ bản vềthám mã tuyến tính và thám mã vi sai nhưng không có nghĩa là một tài liệu cuốicùng để hiểu biết tất cả các tinh túy và cải tiến về các loại tấn công trong nhữngnăm qua Mục đích cơ bản của bài báo là sử dụng một cấu trúc mật mã đơn giảnnhưng có phần thực tế để nghiên cứu các khái niệm cơ bản nhất của hai loại tấn

Trang 4

2 Cơ bản về mạng hoán vị - thay thế (SPN)

Các thuật toán mã hóa mà chúng ta sẽ sử dụng để trình bày các khái niệm

là một SPN cơ bản Chúng tôi sẽ tập trung thảo luận trên một thuật toán mã hóa,minh họa trong Hình 1, có một khối đầu vào 16-bit và xử lý khối bằng này bằngcách lặp lại các hoạt động cơ bản của bốn vòng Mỗi vòng bao gồm (1) thay thế,(2) hoán vị của các bit (hoán vị vị trí của các bit), và (3) trộn khóa Cấu trúc cơbản này đã được trình bày bởi Feistel vào năm 1973 [15] và các hoạt động cơbản này là tương tự như những gì được tìm thấy trong DES và nhiều thuật toán

mã hóa hiện đại khác, bao gồm Rijndael Do đó, mặc dù chúng tôi đang xem xétmột cấu trúc có phần khá đơn giản nhưng sự phân tích của cuộc tấn công trênthuật toán mã hóa như vậy đã trình bày cái nhìn sâu sắc có giá trị vào sự an toàncủa các công trình nghiên cứu lớn hơn, thiết thực hơn

2.1 Thay thế

Trong thuật toán mã hóa này, chúng tôi chia khối dữ liệu 16-bit thành bốnkhối con, mỗi khối 4-bit Mỗi khối con tạo thành một đầu vào cho một hộp S4x4 (một sự thay thế với 4 bit đầu vào và 4 bit đầu ra), mỗi hộp này có thể đượcthực hiện dễ dàng với một bảng tra cứu có mười sáu giá trị 4-bit, tạo thành bảngcác số nguyên miêu tả bởi 4 bit đầu vào Đặc tính quan trọng nhất của một hộp S

là một ánh xạ phi tuyến, tức là, các bit đầu ra không thể có quan hệ hàm tuyếntính với các bit đầu vào

Đối với thuật toán mã hóa, chúng ta sẽ sử dụng ánh xạ phi tuyến cho tất

cả các hộp S (Trong DES tất cả các hộp S trong một vòng khác nhau, trong khitất cả các vòng sử dụng cùng một tập hợp hộp S.) Các cuộc tấn công của thám

mã tuyến tính và thám mã vi sai áp dụng như nhau cho dù có một ánh xạ hoặctất cả các hộp S là các ánh xạ khác nhau Ánh xạ lựa chọn cho thuật toán mật mãđược đưa ra trong Bảng 1, được chọn từ các hộp S của DES (Đây là dòng đầutiên của hộp S đầu tiên) Trong bảng, bit quan trọng nhất của các ký hiệu hệ 16đại diện cho bit tận cùng bên trái của hộp S trong Hình 1

Bảng 1 Sự miêu tả hộp S (trong hệ 16)

Trang 5

2.2 Hoán vị

Phần hoán vị của một vòng chỉ đơn giản là thay đổi vị trí của các bit hoặchoán vị của các vị trí bit Sự hoán vị của hình 1 được đưa ra trong Bảng 2 (cáccon số đại diện cho các vị trí bit trong khối, với 1 là bit tận cùng bên trái và 16 làbit ngoài cùng bên phải) và có thể được mô tả một cách đơn giản là: đầu ra i củahộp j được kết nối tới đầu vào j của hộp i Lưu ý rằng không có hoán vị ở vòngcuối cùng

Bảng 2 Hoán vị

Trang 6

Hình 1 SPN cơ bản

Trang 7

2.3 Trộn khóa

Để hoàn tất quá trình trộn khóa, chúng tôi sử dụng hàm XOR giữa các bitkhóa kết hợp với một vòng (gọi là một khóa con) và các khối dữ liệu đầu vàocho vòng đó Cứ như vậy một khóa con được áp dụng tiếp tiếp theo tới vòngcuối cùng, đảm bảo rằng lớp cuối cùng của sự thay thế không được thám mã dễdàng bỏ qua mà chỉ đơn thuần là phải hoạt động từ sự thay thế ở vòng cuối cùngquay ngược lên trên Thông thường, trong một thuật toán mã hóa, khóa con chomột vòng được tạo ra từ khóa chính của thuật toán mã hóa thông qua một quátrình được gọi là sinh khóa Trong thuật toán mã hóa này chúng tôi sẽ giả địnhrằng tất cả các bit của khóa con được độc lập tạo ra và không liên quan tới thuậttoán

Trang 8

4 Thám mã vi sai

Trong phần này, chúng ta xoay quanh chủ đề ứng dụng của thám mã vi saitác động vào hệ mật SPN cơ bản

4.1.Tổng quan về tấn công cơ bản

Thám mã vi sai khai thác sự xảy ra xác suất cao của các sai phân (sự khácnhau) của bản rõ và các sai phân vào vòng cuối cùng của thuật toán mật mã Ví

dụ, hãy xem xét một hệ thống với đầu vào X = [X1X2 Xn] và đầu ra Y =[Y1Y2 Yn] Cho hai đầu vào hệ thống là X và X "với các kết quả đầu ratương ứng là Y và Y" Sai phân đầu vào được cho bởi ΔX = X' X = X'  X'' ở đó ""đại diện cho phép XOR (hoặc có loại trừ) của các véc tơ n-bit, và do đó,

là số bit của X Thám mã vi sai tìm cách khai thác một kịch bản mà một ΔX = X' Y xảy

ra phụ thuộc vào sai phân của đầu vào ΔX = X' X với một xác suất rất cao pD (nghĩa là

lớn hơn nhiều so với 1/2n) Cặp (ΔX = X' X, ΔX = X' Y) được gọi là một chênh lệch (vi sai).

Thám mã vi sai là một loại tấn công bản rõ chọn lựa, có nghĩa là kẻ tấncông có thể chọn các đầu vào và kiểm tra kết quả các đầu để cố gắng lấy đượckhóa mã Để thám mã vi sai, những kẻ tấn công sẽ lựa chọn các cặp đầu vào X'

và X" để tính toán một ΔX = X' X cụ thể, biết rằng đối với giá trị ΔX = X' X này thì một giá trị

ΔX = X' Y cụ thể nào đó xảy ra với xác suất cao

Trang 9

Trong bài báo này, chúng tôi nghiên cứu việc xây dựng một vi sai (ΔX = X' X,

ΔX = X' Y) liên quan đến các bit của bản rõ X và đầu vào của vòng cuối cùng của thuậttoán mã hóa Y Chúng ta sẽ làm điều này bằng cách kiểm tra các đặc trưng vi sai

có khả năng cao ở đó một đặc trưng vi sai là một chuỗi các sai phân của đầu vào

và đầu ra tới các vòng với mục đích là sai phân đầu ra từ một vòng tương ứngvới sai phân đầu vào cho vòng tiếp theo Việc sử dụng đặc trưng vi sai có khảnăng cao cho chúng ta cơ hội để khai thác thông tin vào vòng cuối cùng củathuật toán mật mã để lấy được các bit từ lớp cuối cùng của các khóa con

Cũng như thám mã tuyến tính, để xây dựng các đặc trưng vi sai có khảnăng cao, chúng tôi kiểm tra các thuộc tính của các hộp S riêng biệt và sử dụngcác thuộc tính để xác định đặc trưng vi sai đầy đủ Một cách cụ thể, chúng taxem xét các sai phân đầu vào và đầu ra của các hộp S để xác định một cặp saiphân có xác suất cao Kết hợp các cặp sai phân hộp S từ vòng nọ đến vòng kia

để các bit sai phân đầu ra khác không từ một vòng tương ứng với các bit saiphân đầu vào khác không của vòng tiếp theo, cho phép chúng tôi tìm ra vi sai cóxác xuất cao của sai phân bản rõ và sai phân đầu vào đến vòng cuối cùng Cácbit khóa con của thuật toán mã hóa kết thúc biến mất từ biểu thức vi sai bởi vì

nó được tham gia vào cả hai tập dữ liệu, và do đó, xem xét ảnh hưởng của nó về

sự sai phân liên quan đến phép XOR với chính nó, kết quả là số không

4.2 Phân tích các thành phần của thuật toán mã hóa

Bây giờ chúng ta kiểm tra tại các cặp sai phân của một hộp S Xem xéthộp S 4x4 ở hình 2 với đầu vào X = [X1X2X3X4] và đầu ra Y = [Y1Y2Y3Y4] Tất

cả các cặp vi sai của một hộp S, (ΔX = X' X, ΔX = X' Y), có thể được kiểm tra và xác suất của

ΔX = X' Y đưa ra ΔX = X' X có thể được bắt nguồn bằng việc xem xét từng cặp đầu vào (X',X") với X'  X" = ΔX = X' X Vì thứ tự của phép toán là không quan trọng nên vớimỗi hộp S 4x4 chúng ta chỉ cần xem xét tất cả 16 giá trị cho X' và sau đó giá trịcủa ΔX = X' X buộc giá trị của X" theo công thức X" = X' ΔX = X' X

Trang 10

Xem xét các hộp S của thuật toán mã hóa được đưa ra tại mục 2, chúng ta

có thể lấy được các giá trị kết quả của ΔX = X' Y cho mỗi cặp đầu vào (X', X'' = X' 

ΔX = X' X).Ví dụ, các giá trị nhị phân của X, Y, và các giá trị tương ứng ΔX = X' Y cho cáccặp đầu vào đã biết (X, X ΔX = X' X) được trình bày trong Bảng 6 với các giá trị

ΔX = X' Xlà 1011 (tương đương B hệ 16), 1000 (tương đương 8 hệ 16), và 0100(tương đương 4 hệ 16) Ba cột cuối của bảng biểu diễn cho các giá trị ΔX = X' Y tươngứng với giá trị của X (đưa ra bởi hàng) và giá trị ΔX = X' X cụ thể cho mỗi cột Từbảng, chúng ta có thể thấy rằng số lượng xuất hiện của ΔX = X' Y = 0010 với ΔX = X' X =

1011 là 8 trong số 16 giá trị có thể (tức là, xác suất 8/16), số lần xuất hiện của

ΔX = X' Y = 1011 cho ΔX = X' X = 1000 là 4 trong số 16, số lượng xuất hiện của ΔX = X' Y = 1010cho ΔX = X' X = 0100 là 0 trong số 16 Nếu hộp S có thể là "lý tưởng", số lần xuất hiệncủa các giá trị cặp sai phân đều là 1 với một xác suất 1/16 của sự xuất hiện củamột giá trị ΔX = X' Y cụ thể cho ΔX = X' X đã biết

Chúng ta có thể xếp thành bảng dữ liệu hoàn chỉnh cho một hộp S trongmột bảng phân phối sai phân, trong đó các hàng đại diện cho các giá trị ΔX = X' X(trong hệ 16) và các cột đại diện cho các giá trị ΔX = X' Y (trong hệ 16) Bảng phânphối sai cho hộp S của Bảng 1 được đưa ra trong Bảng 7 Mỗi phần tử của bảngđại diện cho số lần xuất hiện của giá trị sai phân đầu ra ΔX = X' Y tương ứng với giá trịsai phân đầu vào ΔX = X' X đã biết Lưu ý rằng, bên cạnh trường hợp đặc biệt (ΔX = X' X = 0,

ΔX = X' Y = 0), giá trị lớn nhất trong bảng là 8, tương ứng với ΔX = X' X = B và ΔX = X' Y = 2 Do

đó, xác suất ΔX = X' Y = 2 cho một cặp tùy ý các giá trị đầu vào thỏa mãn ΔX = X' X = B là8/16 Giá trị nhỏ nhất trong bảng là 0 và xảy ra đối với nhiều cặp sai phân.Trong trường hợp này, xác suất xảy ra của các giá trị ΔX = X' Y với giá trị ΔX = X' X đã biết

là 0

Trang 11

Bảng 6 Ví dụ về các cặp sai phân của hộp S

Trang 12

Có một số thuộc tính chung của bảng phân phối sai phân nên được đề cập.Đầu tiên, nên lưu ý rằng tổng của tất cả tất cả các thành phần trên một dòng là

2n=16, tương tự như tổng của tất cả tất cả các thành phần trên một cột bất kỳ là

2n = 16 Ngoài ra, tất cả các giá trị thành phần là chẵn, có kết quả này bởi vì mộtcặp các giá trị đầu vào (hoặc đầu ra) đại diện cho (X ', X ") có giá trị ΔX = X' X giốngnhư cặp (X'', X') do ΔX = X' X = X'  X'' = X''  X' Đồng thời, sai phân đầu vào của

ΔX = X' X = 0 phải dẫn đến một sai phân đầu ra ΔX = X' Y = 0 thỏa ánh xạ một - một của hộp

S Do đó, góc trên bên trái của bảng có một giá trị của 2n = 16 và tất cả các giátrị khác trong hàng đầu tiên và cột đầu tiên là 0 Cuối cùng, nếu chúng ta có thểxây dựng một S lý tưởng mà không đưa ra thông tin sai phân về giá trị đầu ravới đầu vào đã biết thì hộp S sẽ có tất cả các thành phần trong bảng bằng 1 vàxác suất xảy ra của một giá trị cụ thể cho ΔX = X' Y với một giá trị ΔX = X' X cụ thể đã biết

sẽ là 1/2n = 1 / 16 Tuy nhiên với các thuộc tính thảo luận ở trên phải giữ vữngthì điều này rõ ràng là không thể thực hiện được

Trước khi chúng tôi tiến hành thảo luận về sự kết hợp của các cặp vi saicủa hộp S để lấy được một đặc trưng vi sai và ước tính của một vi sai tốt để sửdụng trong cuộc tấn công thì chúng ta phải thảo luận về ảnh hưởng của khóatrên vi sai hộp S Hãy xem xét hình 4 Đầu vào hộp S không có khóa là X và đầu

ra là Y Tuy nhiên, trong cấu trúc của thuật toán mã hóa chúng ta phải xem xétcác khóa áp dụng tại các đầu vào của mỗi hộp S Trong trường hợp này, nếuchúng ta để cho đầu vào cho các hộp S có khóa là W = [W1 W2 W3 W4], chúng ta

có thể xem xét sai phân đầu vào cho hộp S có khóa như sau:

Trang 13

Hình 4 Hộp S có khóa 4.3 Xây dựng các đặc trưng sai phân

Một khi các thông tin sai phân đã được biên dịch cho S-hộp trong SPN,chúng tôi có dữ liệu để tiến hành xác định một đặc trưng sai phân hữu ích củathuật toán mã hóa tổng thể Điều này có thể được thực hiện bằng cách nối cáccặp sai phân thích hợp của hộp S Bằng cách xây dựng một đặc trưng sai phâncủa các cặp sai phân của hộp S trong mỗi vòng, như vậy một sai phân liên quanđến các bit của bản rõ và các bit dữ liệu đầu vào của vòng cuối cùng của hộp S,

nó có thể tấn công các thuật toán mã hóa bằng cách khôi phục một tập con củacác bit khóa con sau vòng cuối cùng Chúng tôi minh họa việc xây dựng một đặctrưng vi sai với một ví dụ

Hãy xem xét một đặc trưng vi sai bao gồm S12, S23, S32, S33 Như trườnghợp thám mã tuyến tính, nó rất hữu ích để hình dung đặc trưng vi sai trong dạngcủa một sơ đồ như trong hình 5 Sơ đồ minh họa các ảnh hưởng của các sai phânkhác không trong các bit khi nó đi qua hệ thống, hoạt động của nó là các đường

tô đậm qua các hộp S (ví dụ, cho một vi sai khác không) Lưu ý rằng điều nàyphát triển một đặc trưng vi sai cho 3 vòng đầu tiên của thuật toán mã hóa và

Trang 14

S32: X = B → Y = 2 với xác xuât 6/16

S33: X = B → Y = 2 với xác xuât 6/16Tất cả các hộp S khác sẽ có sai phân đầu vào là 0 và kết quả sai phân đầu

ΔX = X' Vi = [0000 0010 0000 0000]

Xem xét các cặp sai phân cho S12 ở trên và sau hoán vị vòng 1:

U2 = [0000 0000 0100 0000]

P = [0000 1011 0000 0000]

Trang 16

Bây giờ xác định vi sai vòng thứ hai sử dụng các cặp sai phân cho S23,kết quả là:

Sau đó, chúng ta có thể sử dụng các sai phân cho các hộp S của vòng thứ

ba, S32 và S33, và các hoán vị của vòng thứ ba để đi đến

Trong quá trình thám mã, có nhiều cặp bản rõ mà ΔX = X' P = [0000 1011 00000000] sẽ được mã hóa Với xác suất cao, 27/1024, đặc trưng vi sai đã minh họa

sẽ xảy ra Chúng tôi gọi cặp ΔX = X' P như như vậy là cặp đúng Cặp sai phân bản rõ

mà đặc trưng này không xảy ra được gọi là cặp sai

4.4 Trích xuất các bit khóa

Ngày đăng: 26/12/2013, 11:09

HÌNH ẢNH LIÊN QUAN

Hình 1. SPN cơ bản - BÀI tập lớn môn lý THUYẾT mật mã và bảo mật THÔNG TIN đề tài (đề 5) a tutorial on linear and differential cryptanalysis (differential cryptanalysis)
Hình 1. SPN cơ bản (Trang 6)
Bảng 6. Ví dụ về các cặp sai phân của hộp S - BÀI tập lớn môn lý THUYẾT mật mã và bảo mật THÔNG TIN đề tài (đề 5) a tutorial on linear and differential cryptanalysis (differential cryptanalysis)
Bảng 6. Ví dụ về các cặp sai phân của hộp S (Trang 11)
Hình 4. Hộp S có khóa  4.3. Xây dựng các đặc trưng sai phân - BÀI tập lớn môn lý THUYẾT mật mã và bảo mật THÔNG TIN đề tài (đề 5) a tutorial on linear and differential cryptanalysis (differential cryptanalysis)
Hình 4. Hộp S có khóa 4.3. Xây dựng các đặc trưng sai phân (Trang 13)

TỪ KHÓA LIÊN QUAN

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