1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện

31 1,3K 29

Đ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 31
Dung lượng 1,04 MB
File đính kèm SHA3.rar (45 KB)

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

Nội dung

Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại. Hàm băm h là một hàm toán học chuyển đổi các xâu bit có độ dài hữu hạn tùy ý thành các xâu bit có độ dài n cố định. Giá trị này dùng trong bảo vệ tính toàn vẹn thông tin hoặc dùng trong chữ ký số.

Trang 2

MỤC LỤC

CHƯƠNG I: TỔNG QUAN VỀ HÀM BĂM MẬT MÃ 2

1.1 Khái quát về hàm băm mật mã 2

1.1.1 Định nghĩa hàm băm mật mã 2

1.1.2 Cấu trúc của hàm băm mật mã 3

1.2 Phân loại các hàm băm mật mã 4

1.2.1 Lớp các hàm băm không có khóa 4

1.2.2 Lớp các hàm băm có khóa 4

1.3 Các ứng dụng cơ bản của hàm băm mật mã 6

1.4 Giới thiệu một số họ hàm băm phổ biến 10

1.5 Một số kiểu tấn công lên hàm băm mật mã 12

1.5.1 Tấn công dựa trên “Nghịch lý ngày sinh” 12

1.5.2 Phương pháp tấn công gặp nhau ở giữa (meet in the middle attack) .12 1.5.3 Tấn công vét cạn 13

CHƯƠNG II TÌM HIỂU HÀM BĂM SHA-3 13

2.1 Các phép hoán vị Keccak-p 13

2.1.1 Trạng thái và mảng trạng thái 14

2.1.2 Ánh xạ bước 17

2.1.3 Hoán vị Keccak-p[b,nr] 23

2.2 Cấu trúc sponge 24

2.3 Mô tả hàm băm SHA-3 26

2.3.1 Mô tả về Keccak[c] 26

2.3.2 Các hàm băm SHA-3 27

2.3.3.Các hàm mở rộng đầu ra SHA-3 27

2.5 Đánh giá độ an toàn và hiêu năng của hàm băm SHA-3 so với hàm băm SHA-2 28

2.5.1 Độ an toàn 28

Trang 3

CHƯƠNG I: TỔNG QUAN VỀ HÀM BĂM MẬT MÃ

1.1 Khái quát về hàm băm mật mã

1.1.1 Định nghĩa hàm băm mật mã

Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại Hàm băm h là mộthàm toán học chuyển đổi các xâu bit có độ dài hữu hạn tùy ý thành các xâu bit

có độ dài n cố định Đầu ra này được gọi là mã băm (hay kết quả băm, giá trị

băm, vết, hay tóm lược thông báo) Hàm băm được đặc trưng bởi hai tính chấtsau:

a) Tính chất nén: h sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tùy ý tớimột đầu ra h(x ) có độ dài bit n hữu hạn (tùy vào thuật toán băm được sử dụng).b) Tính chất dễ dàng tính toán: Với h cho trước và một đầu vào x, có thể dễdàng tính được h(x )

Hàm băm mật mã là hàm băm mà ngoài hai tính chất cơ bản trên còn phảithỏa mãn ba tính chất an toàn được nêu dưới đây:

a) Tính kháng tiền ảnh (tính một chiều): Đối với hầu hết đầu ra được xácđịnh trước, không có khả năng tính toán để tìm một đầu vào bất kỳ mà khi băm

sẽ cho ra đầu ra tương ứng (tức là cho trước một giá trị tóm lược y, không thểtìm một tiền ảnh x sao cho h ( x )= y)

b) Tính kháng tiền ảnh thứ hai: Không có khả năng tính toán để tìm một đầuvào thứ hai bất kỳ mà có cùng đầu ra như với đầu vào đã được xác định trước(tức là cho trước x ∈ X, không có khả năng tính toán để tìm tiền ảnh thứ hai x ' ∈ X

sao cho x ' ≠ xh(x ')=h (x))

c) Tính kháng va chạm: Không có khả năng tính toán để tìm hai đầu vào bất

kỳ x , x ' ∈ Xsao cho x ' ≠ xh(x ')=h ( x )

Kích thước của thông điệp đầu vào x là bất kỳ còn kích thước của giá trị băm

h của thông điệp là nhỏ vậy nên việc trùng giá trị băm là không thể loại bỏ Tínhchống trùng của hàm băm là yêu cầu rằng việc tìm ra hai thông điệp đầu vào x

như vậy thì phải là rất khó khăn về mặt thời gian và tính toán

Không gian thông điệp

Không gian giá trị băm

x

Trang 4

1.1.2 Cấu trúc của hàm băm mật mã

Theo định nghĩa hàm băm mật mã ta thấy rằng bản chất của hàm băm chính

là một hàm nén Hiện tại hầu hết các hàm băm mật mã áp dụng cấu trúc hàmbăm Merkle- Damrgard (MD5, SHA-1, SHA-2) hoặc cấu trúc Sponge (SHA-3).Cấu trúc Mekle-Damrgard:

Đầu vào độ dài tùy ý

(a) Mô tả ở mức cao

Thêm các bit đệm (padding)

Thêm độ dài khối

g Đầu vào đã định dạng

(b) Mô tả chi tiết đầu vào ban đầu x

Hàm băm Tiền xử lý

Xử lý lặp Hàm nén

độ dài cố định, như chỉ ra trong hình 2

Đầu vào hàm băm là một thông báo x có độ dài hữu hạn tùy ý được chia thành các khối bằng nhau có độ dài cố định là r-bit Bước tiền xử lý này thường gồm việc thêm các bit mở rộng (gọi là padding) để thông báo x có độ dài bit là bội của độ dài khối r, và (vì các lý do an toàn) thường gồm 1 khối hoặc một phần khối để chỉ độ dài bit của đầu vào chưa được thêm vào Mỗi khối x i được dùng làm đầu vào có độ dài cố định cho hàm băm bên trong f (hàm nén của h,

Trang 5

thực hiện tính một kết quả trung gian mới có độ dài bit là n) là một hàm của kết quả trung gian trước đó có độ dài là n bit và khối đầu vào tiếp theo x i+1.

Gọi H i là ký hiệu phần kết quả sau bước thứ i, xử lý chung cho hàm băm lặpvới đầu vào x=x1x2… x t có thể được mô tả như sau:

H0=IV; H i=f (H i−1 , x i),1 ≤i ≤t; h ( x )=g(H t)

H i−1 được coi như biến chuỗi giữa bước i−1 và bước i, và H0 là giá trị khởiđầu được định nghĩa trước hay gọi là giá trị khởi đầu IV Biến đổi đầu ra có lựachọn g được dùng trong bước cuối cùng để ánh xạ biến chuỗi n−¿bit thành mộtkết quả m−¿bit g(H t¿, g thường là ánh xạ đồng nhất g(H t)=H t

Cấu trúc Sponge:

Cấu trúc Sponge là một cấu trúc mới, được nghiên cứu và áp dụng tronghàm SHA-3, cấu trúc này sẽ được trình bày chi tiết ở chương 2

1.2 Phân lo i các hàm băm m t mã ại các hàm băm mật mã ật mã

Dựa trên những tham số đầu vào của các hàm băm, các hàm băm được phânthành hai lớp Gồm lớp hàm băm có khóa và lớp hàm băm không có khóa

1.2.1 Lớp các hàm băm không có khóa

Một hàm băm không có khóa là một hàm h: X → Y, trong đó:

1.2.2 Lớp các hàm băm có khóa

Các hàm băm có khóa được sử dụng để xác thực thông báo và thường được

gọi là các thuật toán tạo mã xác thực thông báo (MAC)

1.2.2.1 Định nghĩa hàm băm có khóa:

Một họ hàm băm có khóa là một bộ bốn (X , Y , K , H) thỏa mãn các điều kiệnsau đây:

1 X là một tập các thông báo có thể

2 Y là một tập hữu hạn các giá trị tóm lược thông báo hoặc các thẻ xác thực

Trang 6

3 K là không gian khóa, là một tập hữu hạn các khóa có thể.

4 Đối với mỗi khóa k ∈ K, có một hàm băm h K ∈ H Mỗi h K: X → Y

Trong định nghĩa ở trên, X có thể là một tập hữu hạn hoặc vô hạn; Y luônluôn là một tập hữu hạn Nếu X là một tập hữu hạn, thì hàm băm đôi khi được

gọi là hàm nén (compression function) Trong trường hợp này, chúng ta luôn giả

thiết rằng ¿X ∨≥∨Y ∨¿ và thường giả thiết với điều kiện mạnh hơn là

¿X ∨≥2∨Y ∨¿ Điều này có nghĩa là không thể tránh khỏi các va chạm Nếu hàm

h là ngẫu nhiên theo nghĩa tất cả các đầu ra là đồng xác suất thì có khoảng 2t −1

các đầu vào ánh xạ tới mỗi đầu ra (tlà số bit đầu vào, n là số bit đầu ra, t >n) và 2đầu vào được chọn ngẫu nhiên sẽ có cùng đầu ra với xác suất 2 −n (không phụthuộc vào t)

1.2.2.2 Mã xác thực thông báo

Định nghĩa mã xác thực thông báo (MAC-Message Authentication Code) Thuật toán mã xác thực thông báo là một họ các hàm h k được tham số hóabởi một khóa bí mật k, với các tính chất:

a Tính chất dễ tính toán: với một hàm h k đã biết, cho trước một giá trị k vàmột đầu vào x, h k(x) là dễ tính toán Kết quả này gọi là giá trị MAC hoặc MAC

b Tính chất nén: h k ánh xạ một đầu vào x có độ dài bit tùy ý hữu hạn thànhmột đầu ra h k(x) có độ dài bit cố định n

c Tính chất kháng tính toán: cho trước không hoặc nhiều cặp text-MAC(x i ,h k(x i)), không thể tính toán để tìm một cặp text-MAC bất kỳ (x , h k ( x )) cho mộtđầu vào mới x i ≠ x i (bao gồm cả khả năng h k ( x )=h k(x i) với i nào đó)

Kỹ thuật xác thực bằng thuật toán MAC được mô tả chung như sau: Giả sử

có hai thực thể tham gia liên lạc được gọi là AB Hai thực thể AB phảichia sẻ một khóa bí mật chung k Khi A cần gửi một thông báo cho B, thì , A tính

mã xác thực thông báo như một hàm của thông báo và khóa:

MAC=MAC (k , x)

Trong đó: x là thông điệp đầu vào, k là khóa bí mật đã chia sẻ, MAC là mãxác thực thông báo Thông báo được nối với giá trị MAC và được truyền chongười nhận Người nhận xác thực thông báo này bằng cách tính lại MAC từthông báo x nhận được bằng khóa bí mật k đã chia sẻ, sau đó so sánh với MACnhận được kèm theo thông báo Nếu hai giá trị này giống nhau thì thông báođược xác thực Do chỉ có người gửi và người nhận biết khóa bí mật k, do đókhông ai khác có thể tạo được MAC hợp lệ Hơn nữa, bất kỳ việc sửa đổi thôngbáo ban đầu cũng sẽ tạo ra một MAC khác và nó sẽ không được xác thực

Trang 7

Mã xác thực thông báo dựa trên hàm băm (Hash based Message

Authentication Code-HMAC): Một hàm băm (như SHA) không được thiết kế để

sử dụng như một hàm MAC và không thể được sử dụng trực tiếp cho mục đíchxác thực thông báo, vì nó không dựa trên một khóa bí mật Đã có một số đề xuấtcho sự kết hợp của một khóa bí mật vào một thuật toán băm hiện tại Cách tiếpcận này tạo ra một hàm MAC và được ký hiệu là HMAC HMAC đã được sửdụng trong một số ứng dụng an toàn như IPSEC, SSL… và HMAC cũng đãđược ban hành như một tiêu chuẩn NIST (FLIP 198)

1.3 Các ng d ng c b n c a hàm băm m t mã ứng dụng cơ bản của hàm băm mật mã ụng cơ bản của hàm băm mật mã ơ bản của hàm băm mật mã ản của hàm băm mật mã ủa hàm băm mật mã ật mã

Hàm băm mật mã được đánh giá là một thuật toán mật mã linh hoạt nhất Nóđược sử dụng trong nhiều ứng dụng an toàn và các giao thức Internet Sau đây làmột số ứng dụng quan trọng của hàm băm mật mã:

Xác thực thông báo: Xác thực thông báo làm một cơ chế được sử dụng để

xác thực tính toàn vẹn của một thông báo Xác thực thông báo đảm bảo rằng dữliệu nhận được là chính xác giống như khi nó được gửi (tức là không bị sửa đổi,chèn, xóa hay phát lại), và trong nhiều trường hợp định danh của người gửi làđược bảo vệ Khi một hàm băm được sử dụng để cung cấp cơ chế xác thựcthông báo, giá trị hàm băm thường được gọi là một mã băm Có một số phươngpháp sử dụng mã băm để cung cấp cơ chế xác thực thông báo như hình 3:

Theo sơ đồ 3 (a): hai thực thể liên lạc AB có một khóa bí mật K đã chia

sẻ Khi A cần gửi một thông báo cho B, thì A tính mã băm H=H (M) Mã bămđược nối vào thông báo M và được mã hóa bằng khóa bí mật K để tạo bản mã

E K(M∨¿H ( M )) truyền cho B Người nhận B xác thực thông báo này như sau:trước tiên B giải mã bản mã nhận được bằng khóa bí mật K đã chia sẻ, sau đótính lại mã băm từ thông báo M và so sánh với mã băm nhận được kèm theothông báo Nếu hai giá trị này giống nhau thì thông báo được xác thực Do chỉ

có người gửi A và người nhận B biết khóa bí mật K, do đó thông báo phải đến từ

A và không bị sửa đổi trái phép Trong lược đồ này, mã băm được sử dụng đểđảm bảo tính xác thực thông báo, còn hàm mã hóa E được sử dụng để đảm bảotính bí mật của thông báo

Trang 8

Hình 3: Mô hình sử dụng hàm băm để xác thực thông báo

Theo sơ đồ 3 (b), duy nhất mã băm được mã hóa bằng mật mã khóa bí mật.Điều này sẽ làm giảm gánh nặng xử lý cho những ứng dụng không cần giữ bí mậtthông báo, mà chỉ cần đảm bảo tính toàn vẹn của thông báo

Theo sơ đồ 3 (c), duy nhất hàm băm được sử dụng để xác thực thông báo Kỷthuật này yêu cầu hai thực thể liên lạc AB phải chia sẻ một tham số bí mật S A

tính giá trị băm trên MS như sau: H=H (M∨¿S ) và bổ sung vào thông báo gửicho B Do B cũng có tham số bí mật S nên có thể tính lại giá trị băm để xác thực.Hơn nữa, tham số bí mật S không được gửi đi nên đối phương không thể sửa đổithông báo mà không bị phát hiện

Theo sơ đồ 3 (d), một hàm mã hóa khóa bí mật được bổ sung vào sơ đồ trên đểđảm bảo thêm tính bí mật của thông báo

Trang 9

Chữ ký số: Chữ ký số là một chuỗi số, kết quả của phép biến đổi mật mã trên

thông báo nhằm cung cấp một phương tiện để triển khai tính xác thực của nguồngốc thông báo, tính toàn vẹn của dữ liệu và tính không thể chối bỏ của người ký.Khi hàm băm được sử dụng trong lược đồ chữ ký số, giá trị băm của thông báođược mã hóa bởi một khóa riêng của người gửi Bất kỳ ai, biết khóa công khai củangười gửi đều có thể xác thực tính toàn vẹn của thông báo Hình 4 mô tả 2 phươngpháp sử dụng giá trị băm để cung cấp một chữ ký số

thực tên người sử dụng và mật khẩu.

Giả sử mật khẩu được lưu giữ dưới dạng thông thường, không mã hóa, tạimột nơi nào đó trên máy tính cá nhân hay máy chủ, trong một tập tin dữ liệu haytrong hệ quản trị cơ sở dữ liệu Như vậy sẽ xuất hiện một nguy cơ là một ngườikhác có thể mở được tập tin dữ liệu hoặc cơ sở dữ liệu, và xem trộm được mậtkhẩu Như vậy mật khẩu không thể được giữ bí mật tuyệt đối

Phương pháp bảo vệ mật khẩu hiệu quả nhất hiện nay là dùng hàm băm Khingười sử dụng đăng ký mật khẩu, giá trị băm của mật khẩu được tính bằng mộthàm băm nào đó (SHA-1, SHA-2…) Giá trị băm đươc lưu trữ vào tập tin hay cơ

sở dữ liệu Vì hàm băm là một chiều, nên dù biết được giá trị băm và loại hàmbăm, kẻ tấn công cũng không thể suy ra được mật khẩu Khi người sử dụng đăngnhập, mật khẩu đăng nhập được tính giá trị băm và so sánh với giá trị băm đanglưu trữ Do tính chống trùng, chỉ có một mật khẩu duy nhất có giá trị băm tương

S

Trang 10

ứng, nên không ai khác ngoài người sử dụng có mật khẩu đó mới có thể đăngnhập ứng dụng.

Hình 5: Chứng thực mật khẩu, theo tính chống trùng, nếu

Hàm băm có thể giúp chúng ta phát hiện ra những trường hợp lỗi như vậybằng cách sau:

Gọi tập tin cần tải xuống trên máy chủ là X, và giá trị băm theo MD5 của tậptin X mà máy chủ đã tính sẵn và cung cấp trên trang điện tử là H X (có thể xembằng mắt) Gọi Y là tập tin mà người sử dụng tải được tại máy tính sử dụng.Người sử dụng sẽ tính giá trị MD5 H Y cho tập tin Y Như vậy nếu H X trùng khớpvới H Y thì theo tính chống trùng của hàm băm, tập tin Y hoàn toàn giống tập tin

X và quá trình tải xuống không xảy ra lỗi

Lưu trữ

a) Lưu trữ mật khẩu

b) Chứng thực mật khẩu, theo tính chống trùng, nếu thì

Trang 11

File X File Y

So sánh bằng mắt, theo tính chất hàm băm, nếu thì File X=File Y

1.4 Gi i thi u m t s h hàm băm ph bi n ới thiệu một số họ hàm băm phổ biến ệu một số họ hàm băm phổ biến ột số họ hàm băm phổ biến ố họ hàm băm phổ biến ọ hàm băm phổ biến ổ biến ến

Đã có rất nhiều hàm băm được công bố và được sử dụng trong thực tế (baogồm cả các hàm băm có khóa và các hàm băm không có khóa) Bảng 1 chochúng ta một số hàm băm với các thông số tương ứng:

Thuật

toán

Kích thước đầu vào (bit)

Kích thước đầu

ra (bit)

Kích thước trạng thái trong (bit)

Kích thước khối (bit)

Kích thước word (bit)

Độ an toàn (bit)

Internet

Trang 12

Hàm băm MD5 đã được cải tiến để khắc phục những hạn chế và những điểmmất an toàn trong MD4 Mặc dù năm 1993, Den Boer và Bosselaers đã tìm racác va chạm trong việc sử dụng hàm nén của MD5, nhưng tới nay MD5 vẫnđược sử dụng rộng rãi trong các ứng dụng thực tế do độ an toàn nó mang lại vòn

đủ đáp ứng nhu cầu

Thuật toán băm an toàn (SHA) đã được NIST và NSA thiết kế xây dựng Sau

đó được NIST đề xuất làm chuẩn hàm băm an toàn (SHS) bao gồm các thuật toánbăm: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 và SHA-3

Các thuật toán hàm băm SHA gồm 2 bước: tiền xử lý và tính toán giá trịbăm

Bước tiền xử lý bao gồm các thao tác:

- Mở rộng thông báo

- Phân tích thông báo đã mở rộng thành các khối m-bit

- Khởi tạo giá trị băm ban đầu

Bước tính toán giá trị băm bao gồm các thao tác:

- Làm N lần các công việc sau:

+ Tạo bảng phân bố thông báo (message schedule) từ khối thứ i.+ Dùng bảng phân bố thông báo cùng với các hàm, hằng số, các thaotác trên word để tạo giá trị băm i

- Sử dụng giá trị băm cuối cùng để tạo thông báo rút gọn

Thông báo M được đệm thêm các bit theo quy tắc đệm trước khi thực hiệnbăm, nhằm đảm bảo thông báo đầu vào cho thuật toán băm có độ dài là bội số

512 hoặc 1024 bit, tùy thuộc vào thuật toán băm

Tiếp theo thông báo sẽ được phân tích thành N khối m bit Đối với các hàmbăm SHA-1, SHA-256 giá trị m là 512 bit, và đối với các hàm băm SHA-384 vàSHA-256 thì m là 1024 bit Những khối thông báo con này sẽ là đầu vào chothuật toán băm.s

1.5 M t s ki u t n công lên hàm băm m t mã ột số họ hàm băm phổ biến ố họ hàm băm phổ biến ểu tấn công lên hàm băm mật mã ấn công lên hàm băm mật mã ật mã

1.5.1 Tấn công dựa trên “Nghịch lý ngày sinh”

Giả sử h: X → Z là một hàm băm; X , Z hữu hạn và giả sử ¿X ∨≥2∨Z ∨¿.Đặt |X|=m, |Z|=n Nếu chọn ngẫu nhiên r phần tử khác nhau từ tập Xx1,

x2,…x r rồi tính Z1=h(x1)…Z r=h (x r), sau đó xác định xem có xảy ra đụng độ

Trang 13

hay không, nghĩa là xem có tồn tại x i, x j (i≠ j¿ thỏa mãn h(x i)=h(x j) haykhông.

Áp dụng kết quả của bài toán ngày sinh nhật đã biết ta có: Nếu các mãbăm Z=h(x ) có độ dài 64 bit, tức là n=264 và nếu chọn r ≈n=232 thì xác suấtgặp đụng độ sẽ là 50%

Việc sản sinh ra r =232phần tử Z1,Z2,…Z r nằm trong khả năng tính toán thực

tế nên bài toán ngày sinh chỉ ra cho ta thấy rằng việc dùng mã băm có độ dài 64bit là không an toàn

Với hàm băm cụ thể như SHA-1, độ dài đầu ra của mã băm là 160 bit, nênnếu chọn 280 giá trị băm thì xác suất gặp đụng độ là 50%, các nhà mã thám luônmong muốn tìm ra một tấn công lên SHA-1 với độ phức tạp dưới 2 80 phép toánbăm (gọi là giới hạn lý thuyết cho hàm băm độ dài 160 bit), năm 2005 ba nhàkhoa học Trung Quốc Xiaoyun Wang, Yiqun Lisa Yin và Hongbo Yu đã giớithiệu một phương pháp tìm va chạm của hàm băm SHA-1 với độ phức tạp tínhtoán nhỏ hơn 2 69 phép toán băm

1.5.2 Phương pháp tấn công gặp nhau ở giữa (meet in the middle attack)

Giả sử chúng ta dùng hàm băm có độ dài giá trị băm là m bit

Kẻ tấn công muốn đưa thông báo M để A ký, nhưng A không muốn ký.Trong khi đó, A sẵn sàng ký thông báo M ' Kẻ tấn công sản sinh ra 2m /2 biến thểkhác nhau của M (có nội dung thống nhất) và 2m /2 biến thể khác nhau của M '.Hai tập thông báo đó được so sánh để tìm ra cặp có cùng mã băm Xác suấtthành công của phương pháp này đã được chứng minh là khoảng 86%

Kẻ tấn công sau khi tìm được cặp M iM ' j có cùng giá trị băm sẽ đưa M ' j

cho A ký, và gửi M i cùng chữ ký này cho người nhận Người nhận chắc chắn tintưởng vào chữ ký đó sau khi đã kiểm tra cẩn thận

Nếu m=64 bit thì 2m /2=232 giá trị này nằm trong khả năng tính toán Vì vậy kẻtấn công rất dễ đạt được mục đích

Trên đây ta thấy độ dài của mã băm rất quan trọng Độ dài giá trị băm 64 bit

là không an toàn Đó là lý do vì sao các hàm băm có ứng dụng thực tế đều có độdài đầu ra từ 128 bit trở lên

1.5.3 Tấn công vét cạn

Trong khoa học máy tính tấn công vét cạn là phương thức tấn công tổngquát nhất, nội dung chính của kiểu tấn công này trong việc tấn công hàm băm là:

Kẻ tấn công có trong tay giá trị băm h(m) của thông điệp m với độ dài là n

bit, thực hiện chọn ngẫu nhiên một thông điệp m ' và tính xem h(m ')=h (m) haykhông, nếu chúng bằng nhau có nghĩa là kể tấn công đã thành công, còn nếukhông thì kẻ tấn công tìm một bức thông điệp khác và tính giá trị băm cho đến

Trang 14

khi tìm được va chạm Giả sử mã băm là một biến ngẫu nhiên có phân phốichuẩn thì xác suất để tìm được thông điệp m ' thỏa mãn là 1/2n.

Ta thấy kiểu tấn công này không phụ thuộc vào cấu trúc của hàm băm haychiều dài thông điệp đầu vào mà nó chỉ phụ thuộc vào chiều dài đầu ra của hàmbăm, do đó để nâng cao tính bảo mật chúng ta cần cho đầu ra càng lớn thì tínhbảo mật càng cao Tuy nhiên cách tấn công này không hiệu quả vì không gianđầu vào quá lớn, trong trường hợp xấu nhất thuật toán duyệt qua tất cả các đầuvào có thể để tìm được va chạm, điều này là không thể

Yêu cầu tài nguyên cho việc tấn công này bùng nổ tổ hợp với chiều dài đầu

ra của hàm băm, như vậy có nghĩa là nếu ta tăng chiều dài đầu ra càng lớn thìkhả năng để tấn công thành công càng thấp, gọi chiều dài đầu ra là n bit thì cóthể chúng ta cần thử tới 2n lần để tìm được một tấn công thành công

CHƯƠNG II TÌM HIỂU HÀM BĂM SHA-3

2.1 Các phép hoán vị Keccak-p

Các phép hoán vị Keccak-p được mô tả với hai tham số:

1) Độ dài cố định của các chuỗi được hoán vị, được gọi là độ rộng của phéphoán vị

2) Số lượng các phép lặp của một phép chuyển đổi nội bộ, được gọi là mộtvòng

Độ rộng được ký hiệu là b và số lượng vòng được ký hiệu là n r Phép hoán

vị Keccak-p với n r vòng và độ rộng b được ký hiệu là keccak-p¿]; phép hoán vịđược định nghĩa cho b bất kỳ {25,50,100,200,400,800,1600} và số nguyêndương n r bất kỳ

Một vòng của phép hoán vị Keccak-p được ký hiệu là Rnd , bao gồm một chuỗi năm phép biến đổi được gọi là các ánh xạ bước (step mapping) Tập các giá trị b bit đầu vào của phép hoán vị đi qua các biến đổi liên tiếp của các ánh xạbước, cuối cùng thành đầu ra được gọi là trạng thái (state)

2.1.1 Trạng thái và mảng trạng thái

a Khái niệm trạng thái và mảng trạng thái

Trạng thái là một mảng các bit được liên tục cập nhập trong quá trình xử lý.Đối với một phép hoán vị Keccak-p, trạng thái được biểu diễn bằng một chuỗihoặc một mảng ba chiều

Trang 15

Trạng thái cho phép hoán vị keccak-p¿] bao gồm b bit Bản đặc tả thông số

kỹ thuật trong bộ tiêu chuẩn này bao gồm hai đại lượng khác liên quan đếnb:

b /25 và log2b /25, lần lượt ký hiệu là wl Bảy giá trị có thể của những biến nàyđối với các phép hoán vị Keccak-p được cho trong các cột của bảng dưới đây:

Bảng 2: Độ rộng và số liệu liên quan đến phép hoán vị Keccack-p

Có thể biểu diễn trạng thái đầu vào và đầu ra của phép hoán vị là các chuỗi

b bit và biểu diễn trạng thái đầu vào và đầu ra của các ánh xạ bước là một mảng

trạng thái bằng một mảng ba chiều với chỉ số được xác định theo cách này

Mảng trạng thái: Đối với một phép hoán vị keccak-p, một mảng 5 ×5 × w bitbiểu diễn trạng thái Các chỉ số thỏa mãn: 0 ≤ x ≤ 4, 0 ≤ y ≤ 4, và 0 ≤ z ≤(w−1)

b Thành phần của mảng trạng thái

Mảng trạng thái cho một phép hoán vị Keccak-p và các mảng con ít chiều

hơn được minh họa trong hình 7 dưới đây đối với trường hợp b 200, do đó8

w  Các mảng con hai chiều được gọi là các sheet, plane và slice, và các

mảng con một chiều được gọi là clumn (cột), row (hàng) và lane trong đó:

slice: là một mảng con gồm 25 bit theo trục tọa độ z cố định.

Ngày đăng: 09/11/2017, 14:08

HÌNH ẢNH LIÊN QUAN

Hình 1: Ánh xạ giữa thông điệp và giá trị băm không phải là song ánh - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 1 Ánh xạ giữa thông điệp và giá trị băm không phải là song ánh (Trang 3)
Hình 3: Mô hình sử dụng hàm băm để xác thực thông báo - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 3 Mô hình sử dụng hàm băm để xác thực thông báo (Trang 7)
Hình 4: Mô hình sử dụng hàm băm trong lược đồ chữ ký số - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 4 Mô hình sử dụng hàm băm trong lược đồ chữ ký số (Trang 8)
Hình 5: Chứng thực mật khẩu, theo tính chống trùng,                      nếu  thì - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 5 Chứng thực mật khẩu, theo tính chống trùng, nếu thì (Trang 9)
Bảng 1. Một số hàm băm phổ biến và thông số tương ứng - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Bảng 1. Một số hàm băm phổ biến và thông số tương ứng (Trang 10)
Bảng 2: Độ rộng và số liệu liên quan đến phép hoán vị Keccack-p - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Bảng 2 Độ rộng và số liệu liên quan đến phép hoán vị Keccack-p (Trang 14)
Hình 6: Thành phần của mảng trạng thái tổ chức theo nhiều chiều - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 6 Thành phần của mảng trạng thái tổ chức theo nhiều chiều (Trang 15)
Hình 7: Các trục x, y và z cho sơ đồ ánh xạ bước - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 7 Các trục x, y và z cho sơ đồ ánh xạ bước (Trang 18)
Hình 8: Minh họa cho  θ - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 8 Minh họa cho θ (Trang 19)
Bảng 3: Offset của  ρ - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Bảng 3 Offset của ρ (Trang 20)
Hình 9: Minh họa cho  ρ - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 9 Minh họa cho ρ (Trang 21)
Hình 10: Minh họa cho  π - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 10 Minh họa cho π (Trang 22)
Hình 12: Cấu trúc sponge: - Nghiên cứu hàm băm SHA3 và cài đặt chương trình giao diện thực hiện
Hình 12 Cấu trúc sponge: (Trang 26)

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