1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo an toàn thông tin và lập trình

16 240 4

Đ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 16
Dung lượng 139,83 KB

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

Nội dung

sdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFsdassssssssssssssssssfafAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Trang 1

ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG



-BÁO CÁO BÀI TẬP LỚN MÔN HỌC AN TOÀN VÀ BẢO MẬT THÔN TIN

ĐỀ TÀI

HỆ MÃ HÓA GOST

Giáo viên hướng dẫn: Th.s Trịnh Minh Đức

Nhóm 6:

1 Phùng Văn Hạnh

2 Nguyễn Văn Hoàn

3 Triệu Quý Thọ

4 Phùng Ngọc Thịnh

1

Trang 2

CHƯƠNG I: GIỚI THIỆU VỀ GOST

1.1 Giới thiệu

Theo tiêu chuẩn GOST R 34.12-2015, thuật toán mã hóa khối GOST 28147-89 được đặt tên là chuẩn mã khối Magma Đây là thuật toán được phát triển vào những năm 1970 và phân loại “tối mật”, sau đó hạ xuống “mật” vào năm 1990 Đến năm 1994, thuật toán này

đã được công bố công khai

Magma là thuật toán mã hóa khối đối xứng theo kiến trúc mạng Feistel đơn giản, xử lý với các khối rõ/ mã có kích cỡ 64 bit và khóa có kích cỡ 256 bit

Với chi phí cài đặt khá thấp, Magma được cài đặt và sử dụng phổ biến Nó sử dụng các thành phần cấu trúc đơn giản như các hộp S với kích cỡ đầu vào/ ra là 4 bit, các phép cộng module 2^32, phép dịch vòng trái và lược đồ khóa rất đơn giản

Khối dữ liệu được chia thành 2 nửa khối và được biến đổi qua 32 vòng mã hóa ( hàm vòng) Trong mỗi vòng, vế phải của các thông điệp bản rõ được xử lý qua hàm F(hàm vòng) Dữ liệu được biến đổi bởi 3 phép tính mật mã: cộng hoặc trừ theo module 2^32 giữa dữ liệu với khóa con, thay thế dữ liệu bởi các hộp S và dịch vòng sang trái 11 vị trí Đầu ra của hàm F được cộng modulo 2 ( cộng XOR) với nửa bên trái của bản rõ, sau đó đổi chỗ 2 bên trái và phải ở vòng tiếp theo Ở vòng cuối cùng, thuật toán không đổi chỗ hai nửa bên trái và bên phải

Hình 1: Sơ đồ mã hóa tổng thể của thuật toán mã hóa Magma

Trang 3

Khóa bí mật gồm 256 bit và được biểu diễn như một dãy 8 từ (word) 32 bit: k1, k2, k3, k4, k5, k6, k7 và k8 Trong mỗi vòng mã hóa, một trong các word 32 bit được sử dụng như một khóa con Nguyên tắc tính khóa con vòng như sau: từ vòng 1 tới vòng 24 thứ tự là thẳng, nghĩa là được sử dụng một cách lặp lại (k1, k2, k3,k4, k5, k6, k7, k8, k1, k2, k3, k4, k5, k6, k7, k8, k1, k2, k3, k4, k5, k6, k7, k8), từ vòng 25 tới vòng 32 thứ tự được đảo ngược (k8, k7, k6, k5, k4, k3, k2, k1)

Các S-box chấp nhận đầu vào bốn bit và tạo ra đầu ra bốn bit Sự thay thế hộp S trong chức năng tròn bao gồm tám hộp 4 × 4 S Các hộp S phụ thuộc vào việc triển khai thực hiện - các bên muốn bảo mật thông tin liên lạc của

họ bằng GOST phải sử dụng cùng các hộp S Để bảo mật hơn, các hộp S có thể được giữ bí mật Trong tiêu chuẩn ban đầu mà GOST được chỉ định, không có S-box nào được đưa ra, nhưng chúng được cung cấp bằng cách nào

đó Điều này dẫn đến suy đoán rằng các tổ chức mà chính phủ muốn theo dõi

đã được đưa ra các hộp S yếu Một nhà sản xuất chip GOST báo cáo rằng ông đã tự tạo ra các hộp S bằng cách sử dụng bộ tạo số giả ngẫu nhiên

Ví dụ: Ngân hàng Trung ương Liên bang Nga sử dụng các hộp S sau:

1 4 10 9 2 13 8 0 14 6 11 1 12 7 15 5 3

2 14 11 4 12 6 13 15 10 2 3 8 1 0 7 5 9

3 5 8 1 13 10 3 4 2 14 15 12 7 6 0 9 11

4 7 13 10 1 0 8 9 15 14 4 6 12 11 2 5 3

5 6 12 7 1 5 15 13 8 4 10 9 14 0 3 11 2

6 4 11 10 0 7 2 1 13 3 6 8 5 9 12 15 14

7 13 11 4 1 3 15 5 9 0 10 14 7 6 8 2 12

số

8 1 15 13 0 5 7 10 4 9 2 3 14 6 11 8 12

Trang 4

Tuy nhiên, phiên bản mới nhất của tiêu chuẩn, GOST R 34.12-2015 , bổ sung thêm thông

số kỹ thuật S-Box còn thiếu và định nghĩa nó như sau

# GOST R 34.12-2015 S-Box

1 C 4 6 2 A 5 B 9 E 8 D 7 0 3 F 1

2 6 8 2 3 9 A 5 C 1 E 4 7 BD 0 F

3 B 3 5 8 2 FADE 1 7 4 C 9 6 0

4 C 8 2 1 D 4 F 6 7 0 A 5 3 E 9 B

5 7 F 5 A 8 1 6 D 0 9 3 EB 4 2 C

6 5 DF 6 9 2 CAB 7 8 1 4 3 E 0

7 8 E 2 5 6 9 1 CF 4 B 0 DA 3 7

số 8 1 7 ED 0 5 8 3 4 FA 6 9 CB 2

1.2- Các định nghĩa liên quan

1.2.1-Kiến trúc mạng Feistel

Trong mật mã , một Feistel là một cấu trúc đối xứng được sử dụng trong việc

xây dựng các thuật toán mã hóa khối , đặt theo tên của nhà vật lý – nhà mật

mã người Đức Horst Feistel người đã nghiên cứu tiên phong trong khi làm

việc cho IBM (Mỹ); nó cũng thường được gọi là mạng Feistel

Một tỷ lệ lớn mật mã khối sử dụng lược đồ, bao gồm Tiêu chuẩn mã hóa dữ liệu (DES)

Cấu trúc Feistel có lợi thế là các hoạt động mã hóa và giải mã rất giống nhau, thậm chí giống hệt nhau trong một số trường hợp, chỉ yêu cầu đảo ngược thứ

tự khóa Do đó, kích thước của mã hoặc mạch cần thiết để thực hiện một mật mã như vậy là gần một nửa.

Trang 5

Một mạng Feistel là một thuật toán mã hóa lặp với hàm bên trong được gọi

là hàm tròn.

Nhiều mật mã khối đối xứng hiện đại và cũng có một số thuật toán khối đối xứng cũ dựa trên mạng Feistel (ví dụ: mật mã khối GOST 28147-89 ), và cấu trúc và tính chất của mật mã Feistel đã được các nhà mật mã khám phá rộng rãi

**Chi tiết xây dựng mạng feistel:

Để cho F là hàm lặp; K0,K1,…Kn là các khóa phụ cho các vòng 0,1,…n tương ứng Sau đó, thao tác cơ bản như sau:

Tách bản rõ thành hai phần bằng nhau, (Lo, Ro)

Với mỗi vòng i=0,1 n, tính toán

Li+1=Ri

Ri+1= Li XOR F(Ri,Ki)

Sau đó, bản mã là (Rn+1,Ln+1)

Giải mã 1 bản mã (Rn+1,Ln+1) được thực hiện bằng cách tính i=n, n-1, …., 0

Ri= Li+1

Li=Ri+1 XOR F(Li+1,Ki)

Sau đó (L0,R0) lại là bản rõ

Hình 2: Sơ đồ minh họa cả mã hóa và giải mã

Trang 6

Lưu ý việc đảo ngược thứ tự khóa con để giải mã; đây là sự khác biệt duy nhất giữa mã hóa và giải mã

1.2.2.Phép cộng modulo

Phép toán modulo là phép toán tìm số dư của phép chia 2 số (đôi khi được

gọi là modulus).

Cho hai số dương, (số bị chia) a và (số chia) n, a modulo n (viết tắt

là a mod n) là số dư của phép chia có dư Euclid của a cho n Ví dụ, biểu thức

"5 mod 2" bằng 1 vì 5 chia cho 2 có thương số là 2 là số dư là 1, trong khi "9 mod 3" bằng 0 do 9 chia 3 có thương số là 3 và số dư 0;

Công thức cộng modulo:

Nếu a=b(mod n) và x=y(mod n) thì a+x=b+y(mod n)

Cái này giống như phép cộng chúng ta vẫn thường làm, tức là nếu a=b và x=y thì a+x=b+y Ở đây, ta chỉ việc bỏ thêm cái đuôi modulo n vào mà thôi

Ví dụ, từ 13=1(mod4) và 2=6(mod4) chúng ta có 15=7(mod4)

1.2.3.Phép dịch vòng trái

Trong dịch chuyển số học, các bit được dịch chuyển ra khỏi đầu hoặc đuôi sẽ

bị loại bỏ Trong phép dịch chuyển số học về bên trái, các số 0 được dịch chuyển vào bên phải; trong phép dịch chuyển số học bên phải, bit thể hiện dấu được thêm vào bên trái, do đó dấu của số được giữ nguyên.

Ví dụ dưới đây sử dụng thanh ghi 8-bit:

00010111 (số thập phân +23) Dịch chuyển trái

= 00101110 (số thập phân +46)

Hình 3: Dịch chuyển số học trái Những số tận cùng bên trái được dịch chuyển khỏi thanh ghi, một số 0 mới được thêm vào cuối bên phải của thanh ghi

Trang 7

Dịch chuyển số học bên trái n lần tương đương nhân với 2n (nếu giá trị đó không gây tràn bộ nhớ)

1.2.4- Phép thao tác bit XOR

Phép toán thao tác bit XOR lấy hai dãy bit có cùng độ dài và thực hiện phép toán logic bao hàm XOR trên mỗi cặp bit tương ứng Kết quả ở mỗi vị trí là 1 chỉ khi bit đầu tiên là

1 hoặc nếu chỉ khi bit thứ hai là 1, nhưng sẽ là 0 nếu cả hai là 0 hoặc cả hai là 1 Ở đây ta thực hiện phép so sánh hai bit, kết quả là 1 nếu hai bit khác nhau và là 0 nếu hai bit giống nhau Ví dụ:

0101 (số thập phân 5)

XOR 0011 (số thập phân 3)

0110 (số thập phân 6)

(cách nhớ dễ nhất là: 2 bit giống nhau trả về 0, 2 bit khác nhau trả về 1)

Bảng chân trị cho XOR:

Trang 8

CHƯƠNG 2: VÍ DỤ THUẬT TOÁN GOST

Thuật toán GOST

+Quy trình thuật toán thực hiện 32 vòng lặp

+Sử dụng thuật toán mã hóa khối 64- bit với khóa 256 bit

+Sử dụng 8 S-box khác nhau và toán tử XOR và Circular Shift Left

Cấu trúc của GOST:

+Bộ lưu trữ khóa ( KSU) lưu trữ chuỗi 256bit bằng thanh ghi 32 bit ( K0,K1,…,K7) +Hai trong số 32 bit đăng ký (R1, R2)

+Bộ cộng 32 bit modulo 232 (CM1)

+Toán tử thao tác bit XOR

+Khối thay thế (S) , mỗi 8 của 64 bit S-Box

+Thanh ghi dịch chuyển xoay trái (R), 11 bit

2.1-CẤU TRÚC CỦA KHÓA

Quá trình cấu trúc khóa là kỹ thuật soạn mật khẩu để mã hóa bản rõ Quá trình này có thể được xem như sau

1 Khóa đầu vào, khóa 256 bit (k1, k2, k3, k4,…, k256)

2 Tạo tám KSU

K0 = (k32, …, k1)

K1 = (k64, …, k33)

K2 = (k96, …, k65)

K3 = (k128, …, k97)

K4 = (k160, …, k129)

K5 = (k192, …, k161)

K6 = (k224, …, k193)

K7 = (k256, …, k225)

A Sinh khóa

Quá trình hình thành khóa này yêu cầu đầu vào dữ liệu với độ dài khóa là 256 bit hoặc 64

chữ số thập lục phân hoặc 32 ký tự

Quá trình này có thể được nhìn thấy trong ví dụ sau: Giả sử khóa: "Nguyen Van Hoan GOST Cipher 2018", sau đó quá trình hình thành khóa trên khóa là trong bảng sau

Trang 9

0

0

0

1

0

0

1

0

1

1

1

0

0

Trang 10

0

0

0

1

0

Trong Bảng 1, có 32 mẩu ký tự được chuyển đổi thành chữ số nhị phân Nó được sử dụng như một chìa khóa để xử lý mã hóa trong thuật toán GOST Việc chuyển đổi sang khóa nhị phân của 256-bit là như sau:

010011100110011101110101011110010110010101101110001000000101011001100001 011011100010000001001000011011110110000101101110001000000100011101001111 010100110101010000100000010000110110100101110000011010000110010101110010

0010000000110010001100000011000100111000

Khóa sẽ được chia thành tám phần

K[0]: 01001110011001110111010101111001 K[1]: 01100101011011100010000001010110 K[2]: 01100001011011100010000001001000 K[3]: 01101111011000010110111000100000 K[4]: 01000111010011110101001101010100 K[5]: 00100000010000110110100101110000 K[6]: 01101000011001010111001000100000 K[7]: 00110010001100000011000100111000

B Qúa trình mã hóa

Quy trình mã hóa GOST của phương thức xử lý dữ liệu văn bản thuần túy đầu vào 64 bit hoặc 16 chữ số thập lục phân hoặc ký tự 8 đến 32 giai đoạn lặp (vòng) Giả sử chọn khóa trên hình và chữ "ATVABMTT", sau đó quá trình mã hóa như sau:

MÃ HÓA, VÒNG 0

1 Bản rõ là : ATVABMTT

Trang 11

Chuyển sang nhị phân: 01000001010101000101011001000001

01000010010011010101010001010100

L(0)= 00101010001010101011001001000010

R(0) = 10000010011010100010101010000010

2 R(0) + K(0) mod 232

R(0)= 2187995778

K(0)= 1315403129

R= 3503398907 mod 2^32 = 3503398907 = 11010000110100011001111111111011

3 Chia thành 8 phần và đưa vào SBox.

1101=13 = S-Box(0)=15= 1111

0000=0 = S-Box(1)=14 =1110

1101=13 = S-Box(2)=0 =0000

0001=1 = S-Box(3)=13 =1101

1001=9 = S-Box(4)=10 =1010

1111=15 = S-Box(5)=14 =1110

1111=15 = S-Box(6)=12 =1100

1011=11 = S-Box(7)=14 =1110

4 Nối và Xoay Trái Shift 11 lần.

11111110000011011010111011001110

 RLS(11) = 00110110101110110011101111111000

5 R(1) = R(0) XOR L(0)

R(0)=00110110101110110011101111111000

L(0)= 00101010001010101011001001000010

XOR

R(1)= 00011100100100011000100110111010

6 L(1) = R(0) trước khi xử lý

L(1) = 10000010011010100010101010000010

Trang 12

MÃ HÓA, VÒNG 1

1 L(1) = 10000010011010100010101010000010

R(1) = 00011100100100011000100110111010

2 R(1) + K(1) mod 232

R(1) = 479300026

K(1) =1701716054

R= 2181016080 mod 2^32 =

2181016080=1000.0001.1111.1111.1010.1010.0001.0000

3 Chia thành 8 phần và đưa vào S-Box

1000=8 = S-Box(0)=6= 0110

0001=1 = S-Box(1) = 11= 1011

1111= 15 = S-Box(2) =11= 1011

1111=15 = S-Box(3)= 3 = 0011

1010 = 10 = S-Box(4) = 9 = 1001

1010=10=S-Box(5)= 8 = 1000

0001 = 1 = S-Box(6) = 11= 1101

0000=0=S-Box(7) =1= 0001

4 Nối và Xoay Trái Shift 11 lần.

01101011101100111001100011010001

 RLS(11) = 10011100110001101000101101011101

5 R(2) = R(1) XOR L(1)

R(1)= 10011100110001101000101101011101

L(1)= 10000010011010100010101010000010

XOR

R(2)=00011110101011001010000111011111

6 L(2) = R(1) trước khi xử lý

L(2) = 00011100100100011000100110111010

Quá trình này sẽ tiếp tục cho đến Vòng 31.

Trang 13

CHƯƠNG III Độ an toàn và ứng dụng của GOST

3.1- Độ an toàn của GOST

Từ khi được công bố công khai năm 1994, Magma được cộng đồng mật mã trên thế giới quan tâm, phân tích và đánh giá

Vào năm 2010, GOST đã được đệ trình lên ISO 18033,trở thành một tiêu chuẩn mã hóa công nghiệp trên toàn thế giới

Cho đến năm 2011 các nhà nghiên cứu nhất trí rằng GOST rất an toàn, được tóm tắt vào năm 2010 bằng những từ này: “mặc dù những nỗ lực mã hóa đáng kể đã chi tiêu trong 20 năm qua, GOST là vẫn chưa bị phá vỡ ”

Không may, gần đây đã phát hiện ra rằng GOST có thể bị phá vỡ và là một mật mã thiếu sót sâu sắc

Việc giải mã mới nhất của GOST cho thấy rằng nó không an toàn trong ý nghĩa lý thuyết Trong thực tế,độ phức tạp của dữ liệu và bộ nhớ của các cuộc tấn công được công bố tốt nhất đạt đến mức độ thực tế, trong khi độ phức tạp thời gian của cuộc tấn công tốt nhất vẫn là 2 192 khi có sẵn 2 64 dữ liệu

Từ năm 2007, một số cuộc tấn công đã được phát triển chống lại việc triển khai GOST với việc giảm số lượng khóa vòng and / or , thêm các thuộc tính đặc biệt

Vào năm 2011, một số tác giả đã phát hiện ra nhiều lỗ hổng quan trọng hơn trong thuật toán GOST, có khả năng tấn công GOST 32 vòng đầy đủ với các phím tùy ý lần đầu tiên Nó thậm chí còn được gọi là "mật mã thiếu sót sâu sắc" bởi Nicolas

Courtois Các cuộc tấn công đầu tiên có thể giảm thời gian phức tạp từ 2 256 xuống còn 2 228 với chi phí yêu cầu bộ nhớ khổng lồ, và ngay sau đó chúng được cải thiện tới

2 178 độ phức tạp (với chi phí 2 70 bộ nhớ và 2 64 dữ liệu)

Trong tháng 12 năm 2012, Courtois, Gawinecki, và Song cải thiện cuộc tấn công trên GOST bằng cách tính chỉ có 2 101 vòng GOST Isobe đã công bố một đòn tấn công chính trên mật mã GOST đầy đủ, mà Dinur, Dunkelman và Shamir cải thiện, đạt độ phức tạp 2222 lần cho 2 32 dữ liệu và 2 bộ nhớ 236 , và độ phức tạp 2 192 cho 2 64 dữ liệu

Kể từ khi các cuộc tấn công làm giảm sức mạnh dự kiến từ 2 256 (chiều dài khóa) đến

2 178 hoặc như vậy, mật mã có thể được coi là bị phá vỡ Tuy nhiên, đối với bất kỳ mật

mã khối nào có kích thước khối n bit, số lượng tối đa của bản rõ có thể được mã hóa trước khi nhập lại phải diễn ra là 2 n / 2 khối, do birthday paradox , và không có cuộc tấn công nào nói trên yêu cầu ít hơn 2 32 dữ liệu

Một số kết quả về thám mã vi sai

Cho tới nay, có một số kết quả nổi bật về việc áp dụng thám mã vi sai lên thuật toán GOST 28147-89 như sau:

Kết quả của Seki và Kaneko [4]:

Nhóm tác giả chỉ ra khả năng tấn công GOST 28147-89 với số vòng rút gọn sử dụng tập của các đặc trưng vi sai Trong trường hợp sử dụng bộ S-hộp đã xác định cho Ngân hàng Trung ương Liên bang Nga, khi đó trung bình cần 251 bản rõ lựa chọn thì nhận được khóa của 13 vòng GOST 28147-89 Trường hợp mà các khóa tạo ra xác suất đặc trưng vi sai là cao nhất, thì GOST 28147-89 17 vòng có thể bị tấn công Với 256 bản rõ lựa chọn, ta có thể khôi phục được khóa của GOST 28147-89 21 vòng

Trang 14

Các tác giả cũng chỉ ra tấn công này có thể áp dụng được với các S-hộp được sinh ngẫu nhiên Trung bình 12 vòng của GOST có thể bị tấn công với một tập của các đặc trưng vi sai và 19 vòng của GOST có thể bị tấn công khi kết hợp với tấn công khóa quan hệ

Kết quả của Babenko và cộng sự [1]:

Babenko và cộng sự thực hiện phân tích tìm kiếm đặc trưng vi sai có xác suất cao cho

mã pháp GOST 28147-89 Nhóm tác giả đưa ra chiến lược tìm kiếm bằng cách hạn chế không gian tìm kiếm Một khẳng định quan trọng đóng vai trò cơ sở cho tấn công là sai khác qua phép cộng modulo 232 sẽ không thay đổi với xác suất ½

Tấn công vi sai cải tiến của Courtois và

Misztal [2]:

Nhóm Courtois và cộng sự nghiên cứu đưa ra một khái niệm rộng hơn là vi sai gộp

(Aggregated Differential) là tập các đặc trưng

vi sai có thể mà có sai khác đầu vào a bất kỳ và sai khác đầu ra b bất kỳ Xác suất gắn với

nó là xác suất cao nhất của các đặc trưng trong tập đó (thỏa mãn theo các mẫu sai khác đầu vào và sai khác đầu ra cụ thể)

Khi đó, việc tìm kiếm các đặc trưng vi sai được hạn chế với việc tìm xác suất lớn nhất cho vi sai gộp Courtois hạn chế với vi sai gộp dạng (∆, ∆) là tập sai khác lên 64 bit có từ

1 - 14 bit tích cực theo mẫu mặt che Có tổng số 214 - 1 sai khác trong tập này Các đặc trưng vi sai mà Courtois và Misztal tìm được có xác suất cao hơn so với kết quả trước đó Thêm vào đó, các tác giả đề xuất sử dụng tấn công vi sai bội (nghĩa là sử dụng nhiều vi sai mà có cùng mẫu sai khác trong một vi sai gộp) lên GOST 28147-89 Như vậy, khả năng tấn công có thể sẽ hiệu quả hơn

Tuy nhiên, tấn công này chưa được cộng đồng thế giới đánh giá cao về tính chính xác

và thực tế Bởi với một tập vi sai cụ thể (ví dụ: 0x70707070, 0x07070707) theo đánh giá

lý thuyết có giá trị xác suất là 2-160 qua 32 vòng mã, nhưng theo đánh giá của Courtois thì giá trị này chỉ là 2-40 Dẫn tới, có thể có rất nhiều dự tuyển nhầm (false positives) Trong thực tế, tấn công sẽ không thể xử lý với các trường hợp này

Một số kết quả mã thám vi sai khóa có quan hệ

Các khóa tấn công có quan hệ là mô hình tấn công không thực tế , vi chúng đòi hỏi nắm được quan hệ giữa các cặp khóa được sử dụng Tuy nhiên, theo giả thiết này

Tấn công của Isobe [10]

Isobe là người đầu tiên đưa ra phương pháp thám mã lên GOST mà không sử dụng các

lớp khóa yếu (chỉ dùng 1 khóa mã) Tấn công gặp ở giữa cơ sở lên 8 vòng GOST:

Giả sử ta có hai cặp đầu vào/ra 8 vòng của GOST là ( I , O) và ( I *, O*) Tấn công

MITM cơ sở lên 8 vòng GOST sử dụng hai cặp này như sau:

Bước 1: Với mỗi giá trị có thể của khóa k1 − k4 (có tất cả 2128 giá trị) tính:

U = F K [1, 4]( I ) U * = F K [1, 4]( I *)

Lưu U và U* vào một danh sách, sắp xếp chúng tương ứng với 128 bit khóa k1 − k4 đã

sử dụng Gọi mỗi phần tử của danh sách này là

(U , U*) k –k

4 Số phần tử của danh sách này là

1

Ngày đăng: 07/11/2018, 21:30

TỪ KHÓA LIÊN QUAN

w