0
Tải bản đầy đủ (.doc) (79 trang)

.MỘT SỐ HÀM BĂM DỰA TRÊN MD4

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG HỆ MẬT TRÊN CẤP SỐ NHÂN CYCLIC TRONG HÀM BĂM (Trang 69 -79 )

4.4. CÁC LOẠI TẤN CÔNG HÀM BĂM CƠ BẢN

4.4.1. Tấn công vào độ dài MDC

Cho trước một thông báo m cố định và mã băm ( )h m có độ dài n bit, phương pháp vét cạn để tìm một xung đột với m chọn ngẫu nhiên một chuỗi m′ và tính thử xem ( )h m′ =h m( ) hay không. Giả sử mã băm là một biến ngẫu nhiên có phân phối chuẩn thì xác suất để tìn được m′xung đột là 1 2n

.

4.4.2. Tấn công vào khơng gian khóa của MAC

Khóa bí mật của MAC có thể xác định bằng cách tìm trên tồn bộ khơng gian khóa. Với một cặp đầu vào/đầu ra (thơng báo/ MAC) cho trước, ta có thể thử tất cả các khóa có thể để tính MAC từ thơng báo đã cho, và kiểm tra giá trị MAC có trùng

với đầu ra ban đầu. Khi đó sẽ xác định được khóa bó mật của MAC. Nếu chiều dài khóa của MAC là t bit thì khóa bí mật có thể tìm được với xác suất 1 2 ;t t n< .

4.4.3. Tấn công vào độ dài MAC

Với một hàm băm MAC n bit, việc tìm được giá trị hàm băm MAC của một thơng báo cho trước hoặc tìm nghịch ảnh có xác suất thành cơng là khoảng 1 2n. Tuy nhiên, các giá trị băm tìm thấy khơng thể kiểm chứng được nếu không biết trước cặp đầu vào/đầu ra (thơng báo/mã băm), hoặc biết trước khóa bí mật của MAC. Mục tiêu xây dựng các hàm băm MAC là khơng thể tìm được chính xác một cặp (thơng báo/mã băm) mới với xác suất thành công lớn hơn (1 2 ,1 2 )t n , nghĩa là lớn hơn xác suất tìm được khóa bí mật và xác suất tìm mã băm MAC.

4.4.4. Tấn cơng bằng các kết quả tính tốn được

Việc tính tốn trước một số lượng các cặp đầu vào/đầu ra của hàm băm sẽ giúp nhanh chóng tìm được nghịch ảnh cũng như nghịch ảnh thứ hai của một mã băm. Ở đây, ta đánh đổi chi phí tính tốn và khơng gian lưu trữ để đạt mục tiêu trong thời gian ngắn. Chẳng hạn với mã băm 64 bit, người ta sẽ chọn ngẫu nhiên

40

2 thơng báo đầu vào và tính mã băm của chúng, sau đó lưu trữ kết quả thành các cặp đầu vào/đầu ra. Việc tốn thời gian và khơng gian để tính tốn trước giúp tăng khả năng tịm được một nghịch ảnh của một mã băm đó từ 1 2 lên 64 1 2 . Tương24

tự, xác suất để tìm một nghịch ảnh thứ hai tăng lên rlần nếu córcặp đầu vào/đầu ra của hàm OWHF đã được tính trước.

4.4.5. Tấn công đa mục tiêu

Để tấn công kháng nghịch ảnh thứ hai của một hàm băm, người ta thường cố định một mục tiêu (mã băm của nghịch ảnh thứ hai) rồi tìm một nghịch ảnh khác thỏa mãn mục tiêu đó. Nhưng nếu có r mục tiêu, ta chỉ cần tìm một nghịch ảnh

thứ hai tăng lên r lần so với phương pháp sử dụng một mục tiêu. Điều này có nghĩa là khi sử dụng các hàm băm có khóa, việc sử dụng nhiều lần một khóa duy nhất sẽ giảm độ an tồn của chính hàm băm. Nếu có r thông báo kèm theo mã băm, khả

năng xuất hiện một xung đột của hàm băm tăng lên r lần.

4.4.6. Tấn công bằng các thông báo dài

Giả sử h là một hàm băm n bit có hàm nén là f và khơng áp dụng thuật tốn

mở rộng thơng báo. Đặt m là một thông báo được chia thành t khối thơng báo con.

Khi đó, nghịch ảnh thứ hai của ( )h m có thể được tìm thấy trong khoảng thời gian

tương đương với việc thực hiện (2n s)+s hàm nén f và cần không gian lưu trữ

( lg( ))

n s+ s bit, với mọi s trong khoảng 2

1 min( ,2 ).n

s t

≤ ≤

Như vậy, đối với các thơng báo có chiều dài lớn, việc tìm nghịch ảnh thứ hai nhìn chung dễ dàng hơn tìm nghịch ảnh của một mã băm (trường hợp xấu nhất là phải thực hiện hàm nén f đến 2n lần). Với t ≥2n2, chi phí tính tốn sẽ thấp nhất nếu chọn s=2n2, khi đó ta sẽ phải thực hiện khoảng 2n2 hàm nén f để tìm một

nghịch ảnh thứ hai.

4.5. XÂY DỰNG HÀM BĂM MỚI TRÊN CÁC CẤP SỐ NHÂN CYCLIC

Việc sử dụng CGP trên vành đa thức để xây dựng hệ mật như trong chương 2 thể hiện một số ưu điểm: cấu trúc đại số chặt chẽ, số lượng CGP trên vành đa thức nhiều (thuận lợi cho việc tạo khóa trong các hệ mật), mạch điện phần cứng thực hiện khá dễ dàng (thuận lợi cho việc áp dùng vào thực tế), tốc độ tính tốn nhanh.

Trong mục này sẽ đề cập đến việc áp dụng hệ mật trình bày ở chương 2 để xây dựng một hàm băm MDC-2 có độ dài mã băm là 256 bit. Sơ đồ hàm băm như trong hình 3.3, sau bước băm cuối cùng thì mã băm đầu ra được ghép từ đầu ra 1 (out 1

i

Hàm E được xây dựng trên cơ sở hệ mật sử dụng các cấp số nhân cyclic trên

vành đa thức có hai lớp kề (đã được mơ tả trong chương 2). Các khóa Ki vẫn là các

phần tử trong một cấp số nhân trên vành đa thức có hai lớp kề cyclic x61+1 được

chọn như sau: 61

(

)

0imod 1; 1,16

i a

KK K x + i =

với Ka là một đa thức có trọng số lẻ tùy ý sao cho: degKa <61; K0là một phần tử

nguyên thủy của nhóm nhân cyclic có cấp bằng 260 −1 và cũng là một đa thức có trọng số lẻ [4], [5].

Hình 3.3. Sơ đồ thực hiện hàm băm

Khối gtrong sơ đồ Hình 3.3. thực hiện việc trích chọn các khóa cho các vịng tiếp theo của q trình băm. Trong 61 bit khóa ở bước thứ ido khối g tạo ra thì 60 bit đầu tiên sẽ được trích chọn từ 128 bit của Hi1Hi1 còn bit thứ 61 là bit kiểm

tra chẵn lẻ. Việc trích chọn được lấy liên tục các bit cách nhau 2 vị trí trong Hi1

1

i

H (trong khoảng bit 1 đến bit 120).

Dưới đây là một vài kết quả đánh giá của hàm băm xây dựng trên các cấp số nhân cyclic.

Hình 2.2. là kết quả tính tốn khoảng cách Hamming của một số mã băm của các bản tin rõ khi thay đổi duy nhất một bit dữ liệu so với bản tin ban đầu, để thuận tiện cho việc quan sát chúng tôi chỉ thay đổi 1 bit trong khối bản tin đầu tiên của bản rõ [7].

Mỗi bản tin bao gồm 10 khối, mỗi khối có độ dài 256 bit, các hàm băm sử dụng cùng một bộ khóa K khởi tạo:

Phần tử sinh của khóa khởi tạo chọn là:

7 14 21 28 35 42 49 56 0 1

IV IV

H =H′ =K = + +x x +x +x +x +x +x +x ;

Phần tử đầu của các CGP tạo khóa được giữ ngun cho các vịng băng và chọn là: Ka = +1 x10+x20;

Chú ý: Khóa khởi tạo sẽ được đưa trực tiếp vào khối E trong sơ đồ băm, cịn các khóa cho các vịng băm tiếp theo sẽ được tạo từ khối g.

Đa thức lấy modulo vẫn là

60 0 ( ) i i h x x = =

Bản tin đầu tiên được xây dựng như sau: Khối đầu tiên gồm 64 ký tự dạng hexa (tương ứng 256 bit) được chọn là:

M1= 0123456789ABCDEF0123456789ABCDE F

0123456789ABCDEF0123456789ABCDE F

Các khối tiếp theo (từ 2 đến 10) được tạo một cách ngẫu nhiên.

Hình 2.2. Khoảng cách Hamming dH(MD1, MDi) khi các khối dữ liệu khác khối ban đầu 1 bit

TT Bản rõ Giá trị băm dH(MD1,MDi)

0 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF 82FA4EB7FB68423D6C92677447B0ECF52784D4457437C480AF52FA6B9C2E3BEE 0

0123456789ABCDEF0123456789ABCDEF 90C8AEB402AF8091F8D09A8E6B0C0A68

2 0323456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF C332019E3BD277B8F65537FC4554AA0941654703725036BF892020C012C4FEEF 118

3 0133456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF 1BC1A9A9DB5310527C248677E7688F00C5A357081950BB0DE3E68631623E5AA9 129

31 0123456789ABCDEF0123456789ABCDCF0123456789ABCDEF0123456789ABCDEF ED088B0CFB75953D73EED891C5B52ACE45A9C21F1607B5FC8C91FEA0E09F01ED 122

32 0123456789ABCDEF0123456789ABCDEE0123456789ABCDEF0123456789ABCDEF DEF1D35924863B9FB60C9F985D9ABA363D67062B7AA0B26E2CF845734BA82A4B 140

33 0123456789ABCDEF0123456789ABCDEF2123456789ABCDEF0123456789ABCDEF 574316CDBAB234C20EA3568BE172BAA42A3F41374210AFCE70AEEDCB9994EE7E 136

34 0123456789ABCDEF0123456789ABCDEF0023456789ABCDEF0123456789ABCDEF 8EB4D6AF5AB1E575D21DA802368FA89E5DFD6A501F98CD256AFB1830C34FB79C 134

62 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCFEF 780ECB89EB44E4539BA74652FF428F686E9AF83F9E47B4349D4BA55185C29F92 128

63 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDFF 4F02811DD6185047B8D450EFBDD3228F72262178090695291AF5D72FE22F9E09 138

64 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDED 72A0199A20F750CA769B6985CA0F74909B384BCC0E4676E465C9F2FD35A96847 134

(Chú ý: Trong bảng 3.2 và bảng 3.3, các ký tự hexa in đậm chứa bit thay đổi). Khoảng cách Hamming trung bình giữa 64 giá trị băm với giá trị băm ban đầu là tính được như sau:

( ) 64

(

1

)

1 1 , 129,17 64 H i H tb i d d MD MD = =

=

Hình 2.3. là kết quả tính tốn phân bố của bộ mã khi thay đổi khóa khởi tạo K

, mỗi khóa khác với khóa đầu tiên 2 bit. Sở dĩ ta phải thay đổi 2 bit (tương ứng thay đổi 2 vị trí) là để đảm bảo đa thức sinh của khóa có trọng số lẻ.

Bản tin đầu vào gồm 10 khối 256 bit được tạo ngẫu nhiên [7].

Chú ý, chiều dài của khóa là 61 bit, do đó khi mơ tả khóa bằng 16 ký tự hexa nhưng thực tế chỉ có 15 ký tự đầu là dạng hexa, cịn ký tự cuối cùng chỉ có 1 bit nên nó nhận giá trị “1” hoặc “0”.

Chọn phần tử đầu của cấp số nhân tạo khóa là: Ka = + +1 x x2

Phần tử sinh khóa đầu tiên K0 như sau:

0(Hex) 123456789ABCDEF.1

Đa thức lấy modulo vẫn là 60 0 ( ) i i h x x =

=

. Các khóa được tạo từ phương trình đồng dư sau: 0i mod ( ), 0,1, 2,...

i a

K =K K h x i=

Các khóa K0i chỉ thay đổi 2 bit trong một số hexa của khóa đầu tiên K0.

Chú ý: vị trí các bit “1” trong các khóa K0i tương ứng là số mũ của x trong đa

thức sinh tạo khóa. Ví dụ:

(

)

(

)

0 5 56 57 58 59 60 12...F.1 1000.0100...1111.1 1 ... Hex Bin K x x x x x x = ↔ ↔ + + + + + + +

Hình 2.3. Khoảng cách Hamming dH(MD1, MDi) giữa các cặp giá trị băm khi các khóa khác khóa K1 2 bit.

T

T Khóa Ki Giá trị băm MDi d MD MDH( 1, i) Trọng số khóa

khởi tạo W(K0i)

0 123456789ABCDEF1 B33B14104C0E667B860336A0E4C8CA78E0B43B46853047AB1E6334837F979EFA 0 33

1 823456789ABCDEF1 FEACEC4181C074A8084CD0397F0A87480C9B9B6FEFD39B371D746A037843B786 126 33

2 1B3456789ABCDEF1 1E547D3A520CB818469D2319E40C5DABFD7FE95BA779FF0045B5037A006121D8 135 35

3 129456789ABCDEF1 71FB25099EA653865989F97902643D9B0E03EFF0E16B8CA156A4919A3A528E74 133 33

4 123156789ABCDEF1 7BD398826699C84A63089539C013B7E1D077258721BBC05CE02709A9FE01A9BA 123 33

5 1234F6789ABCDEF1 52885E7E8BB73C1DFDBBAB44BCAF9BC1449C73A8D24C376041E28BA78B794E41 138 35

6 123453789ABCDEF1 BE7525A3BE96823C52473D868D96441C30CCE0D89908FA9FD21CFB594AEDAAD1 130 33

7 123456D89ABCDEF1 66D3CF874C1A5C6D02A6B4763E8F7596C2E8E29DEA340CA31A907DC3093BD60A 119 33

8 1234567D9ABCDEF1 8C44F59F87B2571BD1445623EA7479EDAE368A3B400C2A7451B510F4745159CC 138 35

9 12345678CABCDEF1 E3B40AF55A5189C225A9D2656E0B9241292AAF692CA5EA23D95529FD020F0D34 136 33

11 123456789A1CDEF1 98D3577D7382BEEA53ABECFCC0D28FD98233EB98FFD20000178EDE628CD3F705 131 31

12 123456789AB6DEF1 F3E858AD90B0F79AC06FB8243A16A0349963E3875E77CF73FDBAEA4B4B6E2BAD 137 33

13 123456789ABC8EF1 76AEBF7739066421A97CB110E8F843ADF5C247A186793CF1BD747D0DA1B4825A 123 31

14 123456789ABCDBF1 F61035831137662A2005B0E570C3FBDF5006C8621B46C945692993250C4CE272 122 33

15 123456789ABCDEA1 E0599B76112AF746ACCD9517CD779C6BA492E4CB44F71F65394F27B404AD0C17 132 31

Khoảng cách Hamming trung bình của các giá trị băm với giá trị băm ban đầu:

15 ( ) 1 1 1 ( , ) 130,67 15 H tb H i i d d MD MD = =

=

Để khảo sát thêm tính khuếch tán của hàm băm, ta thay đổi cả bản tin rõ và khóa như sau: Giữa nguyên bản tin và lần lượt thay đổi từng bit của khóa K1 từ bit

1 đến bit 60, bit 61 dùng để kiểm tra chẵn lẻ. Sau đó tính khoảng cách Hamming trung bình giữa các giá trị băm với giá trị băm ban đầu theo công thức:

60 ( ) 1 2 1 ( , ) 60 H tb H i i d d MD MD = =

Qua các kết quả khảo sát khoảng cách Hamming ở trên ta thấy tính khuếch tán của các hàm băm đề xuất là khá tốt.

Để tăng hiệu quả hàm băm ta có thể sử dụng các sơ đồ hàm băm kép với cách xây dựng tương tự như đã trình bày ở trên.

4.6. KẾT LUẬN CHƯƠNG 3

Nội dung chương này đề cập đến cấu trúc cơ bản của các hàm băm, một số ví dụ về hàm băm và các phép tấn cơng hàm băm cơ bản. Phần tiếp theo là đề xuất xây dựng một hàm băm MDC-2 mới 256 bit, với mục đích tăng độ dài hàm băm hạn chế phép tấn cơng ngày sinh nhật; các mô phỏng đánh giá hàm băm mới đề xuất này cho thấy độ khuếch tán các mã băm đạt xấp xỉ một nửa độ dài mã băm, tức là khi ta thay 1 bit trong bản tin đầu vào thì mã băm đầu ra sẽ thay đổi một nửa chiều dài,

đây là độ khuếch tán tốt. Để có thêm kết luận về hàm băm đề xuất, phải thực hiện thêm các đánh khác như: tính xung đột, tính bảo mật…

KẾT LUẬN

Các kết quả đạt được của luận văn:

Nghiên cứu cơ bản về các hệ mật khóa bí mật, hệ mật khóa cơng khai và các hàm băm sử dụng cho việc xác thực và đảm bảo tính tồn vẹn dữ liệu.

Nghiên cứu cấu trúc nhóm nhân cylic, cấp số nhân cyclic trên vành đa thức. Nghiên cứu cách xây dựng hệ mật mã khối khóa bí mật xây dựng từ cấp số

nhân cyclic trên vành đa thức n 1

x + với 2k n= .

Nghiên cứu cách tạo khóa cho hệ mật khóa bí mật bằng các cấp số nhân cyclic trên vành có hai lớp kề cyclic.

Đề xuất một hàm băm mới MDC-2 theo với hệ mật xây dựng theo cấp số nhân cyclic.

Mô phỏng đánh giá độ khuếch tán khi thay đổi dữ liệu và thay đổi khóa của hệ mật và hàm băm đề xuất.

Hướng phát triển

Áp dụng hệ mật như đã nói để xây dựng các hàm băm có độ dài lớn hơn nhằm hạn chế phép tấn công ngày sinh nhật.

TÀI LIỆU THAM KHẢO

[1]. Nguyễn Bình (2004), Giáo trình Mật mã học, Học viện Cơng nghệ Bưu chính Viễn thơng, Nxb Bưu điện, 2004.

[2]. Đặng Hoài Bắc, (2010) “Các mã cyclic và cyclic cục bộ trên vành đa thức có hai lớp kề cyclic”, Luận án TS kỹ thuật.

[3]. Hồ Quang Bửu, Trần Đức Sự, “Constructing Interleaved M-sequences over Polynomial Rings with Two Cyclotomic Cosets”, Tạp chí Khoa học và Cơng nghệ

Quân sự, số 47, 02 -2012, trang 133-140.

[4]. Hồ Quang Bửu, Ngô Đức Thiện, Trần Đức Sự, “Xây dựng hệ mật trên các cấp số nhân cyclic của vành đa thức”, Tạp chí Khoa học và Cơng nghệ, Viện Khoa học và Công nghệ Việt Nam, Chun san các cơng trình nghiên cứu về Điện tử, Viễn thơng và CNTT, Tập 50 số 2A, tháng 9-2012, ISSN 0866 708X.

[5]. Hồ Quang Bửu, Ngô Đức Thiện, Trần Đức Sự, “Xây dựng hàm băm trên các cấp số nhân cyclic”, Chun san các cơng trình nghiên cứu, phát triển và ứng dụng CNTT và Truyền thơng, Kỳ 3 Tạp chí Thơng tin, KHCN của bộ Thông tin và Truyền thông, Tập V-1 số 7 (27), tháng 5-2012, ISSN 1859-3526.

[6]. Bart PRENEEL (2003), “Analysis and Design of Cryptographic Hash Functions”, Ph.D project, February 2003.

[7]. Jean-Yves Chouinard (2002), ELG 5373 Secure Communications and Data

Encryption, School of Information Technology and Engineering, University of

Ottawa, April 2002.

[8]. Menezes A. J, Van Oorchot P. C. (1998), Handbook of Applied Cryptography, CRC Press, (1998).

[9]. Michal Rjaˇ sko (2008), “Properties of Cryptographic Hash Functions”, Comenius University in Bratislava, Faculty of Mathematics, Physics and Informatics Department of Computer Science, Advisor: RNDr. Martin Stanek, PhD. Bratislava 2008.

[10]. Pascal JUNOD (2004), “Statiscal Cryptanalysis of Block Ciphers”, Thèse No 3179 (2004), Présentée à La Faculté Informatique & Communications, Institud de Systèmes de Communications.

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG HỆ MẬT TRÊN CẤP SỐ NHÂN CYCLIC TRONG HÀM BĂM (Trang 69 -79 )

×