1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỀ TÀI : TÌM HIỂU HÀM BĂM MẬT MÃ SHA-3

11 667 6

Đ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 11
Dung lượng 94,47 KB

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

Nội dung

Giới thiệu sơ lược về hàm băm mật mã Hiểu theo nghĩa đơn giản, hàm băm là hàm cho tương ứng một mảng dữ liệu lớn với một mảng dữ liệu nhỏ hơn mà được dùng rộng rãi trong nhiều ứng dụng t

Trang 1

Đề cương đồ án thực tập tốt nghiệp

ĐỀ TÀI : TÌM HIỂU HÀM BĂM MẬT MÃ SHA-3

LỜI NÓI ĐẦU

Trang 2

CHƯƠNG I : TÌM HIỂU HÀM BĂM MẬT MÃ 1.1 Giới thiệu sơ lược về hàm băm mật mã

Hiểu theo nghĩa đơn giản, hàm băm là hàm cho tương ứng một mảng dữ liệu lớn với một mảng dữ liệu nhỏ hơn mà được dùng rộng rãi trong nhiều ứng dụng tin học, không chỉ thuộc phạm vi mật mã Ở đây, chúng ta chỉ xét đến các hàm băm trong phạm vi các hàm băm mật mã, xem xét cụ thể đến các ứng dụng của chúng trong việc đảm bảo tính toàn vẹn của dữ liệu

Các hàm băm nhận đầu vào là một chuỗi bit có chiều dài hữu hạn tùy ý và tạo ra một chuỗi bit có chiều dài cố định bằng n bit (n > 0) gọi là mã băm (hash code)

Trong mã hóa, mã băm được xem như là ảnh đại diện thu gọn (compact representative image) của một chuỗi bit có độ dài hữu hạn tùy ý và được dùng

để nhận diện cho chuỗi bit đó Kết hợp với công cụ tạo chữ ký số, các hàm băm được dùng cho việc đảm bảo tính toàn vẹn của dữ liệu Trong lược đồ chữ ký số,

mã băm của chuỗi bit được tính ở thời điểm T1 và được bảo vệ để chống lại mọi

sự thay đổi bất hợp pháp Tại thời điểm T2 sau đó, để kiểm tra xem chuỗi bit x có

bị thay đổi hay không, người ta thường tính giá trị hàm băm của chuổi bit này tại thời điểm T2, mà ta ký hiệu là xT2, sau đó so sánh giá trị vừa tính với mã băm tại thời điểm T1 Nếu 2 giá trị bằng nhau thì người ta chấp nhận chuổi bit tại thời điểm T2 trùng khớp với chuổi bit tại thời điểm T1, tức chuỗi bit x vẫn chưa bị thay đổi Như vậy vấn đề bảo đảm tính toàn vẹn của chuỗi bit có chiều dài tùy ý được thay bằng việc bảo vệ sự toàn vẹn của chuỗi bit có chiều dài cố định

1.1.1 Định nghĩa tổng quát của hàm băm

* Sơ đồ cơ bản của 1 hàm băm mật mã :

↓ Hàm băm h = H(M)

↓ giá trị băm h (fixed length)

* Định nghĩa : Hàm băm (Hash function) là một hàm toán học chuyển đổi

một thông điệp đầu vào có độ dài bất kỳ thành một dãy bit có độ dài cố

định (tuỳ thuộc vào thuật toán băm) Dãy bit này được gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp

ban đầu

Trang 3

- Hàm băm (hash function) là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra

- Hàm h(x) được gọi là một hàm băm nếu nó thoã mãn hai tính chất sau:

 Nén gọn (Compression) : Hàm h(x) tương ứng chuỗi bit đầu vào x

có chiều dài hữu hạn tùy ý vào chuỗi bit y = h(x) có chiều dài cố định n > 0 cho trước

 Dễ tính toán (Easy of computation) : Với mọi chuỗi bit đầu vào x

có chiều dài hữu hạn tùy ý, h(x) được tính toán dễ dàng 1.1.2 Hoạt động của 1 hàm băm:

có chiều  Nén gọn (Compression): Hàm h(x) tương ứng chuỗi bit đầu vào x có 1.2 Các chức năng của hàm băm mật mã

Một hàm băm mật mã lý tưởng có các tính chất sau :

3.1 Tính kháng tiền ảnh (Preimage resistance)

Với mọi đầu ra y cho trước, không thể tìm được bất kỳ dữ liệu đầu vào x sao cho h(x) = y (hay không thể tìm được một thông điệp từ một giá trị băm cho trước)

3.2 Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance)

Với mọi dữ liệu đầu vào x cho trước và y = h(x), không thể tính toán để tìm ra được giá trị x’  x sao cho h(x’)=h(x) (hay không thể tìm ra 2 thông điệp khác nhau mà có cùng giá trị băm)

3.3 Tính kháng xung đột (Collision resistance)

Không thể tính toán để tìm được hai dữ liệu đầu vào x và x’ phân biệt sao cho chúng có cùng giá trị băm h(x)=h(x’) (hay không thể sửa được một thông điệp mà không làm thay đổi giá trị băm của nó)

Trang 4

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

Dựa trên tham biến đầu vào của các hàm băm, các hàm băm mật mã được phân thành hai lớp:

 Lớp các hàm băm sử dụng khoá (keyed hash functions), chẳng hạn như

MAC (Message Authentication Codes): nhận hai giá trị đầu vào

 Thông điệp cần tính giá trị băm

 Khoá bí mật để băm văn bản theo đúng chuẩn quy định

 Lớp các hàm băm không sử dụng khoá (unkeyed hash functions): chỉ

nhận duy nhất một giá trị đầu vào là Thông điệp (message)

Trong lớp các hàm băm không sử dụng khoá thì MDCs

(Modification Detection Codes – mã nhận diện sự thay đổi) là lớp con của lớp này Lớp hàm này lại tiếp tục phân thành các lớp con nhỏ hơn

 Hàm băm một chiều (One-Way Hash Functions - OWHFs): các hàm trong lớp này đều thoã tính chất là với mọi mã băm biết trước, không thể tính toán để tìm được chuỗi bit đầu vào có mã băm bằng với mã băm đã cho

 Hàm băm kháng xung đột (Collision Resistant Hash Functions -

CRHFs): các hàm trong lớp này thoã mãn tính chất không thể tính toán để tìm

ra hai chuỗi bit có cùng giá trị băm

5 Cấu trúc của thuật toán hàm băm

Khối dữ liệu đầu vào x có chiều dài tuỳ ý sẽ được phân thành các khối con liên tiếp x1, x2, …, xm (với xi có chiều dài cố định là r) Tuy nhiên do

chiều dài khối ban đầu là tùy ý nên ta cần thêm vào dữ liệu ban đầu một số bit phụ sao cho tổng số bit của khối dữ liệu x sau khi thêm vào sẽ là bội số

của r Ngoài ra số bit phụ thêm vào thường chứa một khối bit xác định

chiều dài thực sự của khối dữ liệu khi chưa thêm các bit phụ Sau đó ta lần lượt cắt từng khối con r bit từ khối x

Mỗi khối con r bit xi ta thực hiện một hàm nén của hàm băm h(x) được ký hiệu là f Tại bước thứ i, hàm nến f nhận dữ liệu đầu vào là xi và kết quả trung gian của bước trước đó để tạo đầu ra là kết quả trung gian bước thứ i, ký hiệu là

Hi Kết quả trung gian tại mỗi bước Hi là một chuổi bit có độ dài cố định bằng n>0 Nếu ký hiệu IV (init value) là giá trị khởi tạo ban đầu cho H0, thì quá trình lặp xử lý dãy các khối con được mô tả như sau:

H0=IV

H1= f(Hi-1,xi), (i=1,…,m)

h(x) = g(Hm)

Hi là kết quả trung gian sau bước thứ i, là các biến dây chuyền Hàm g(x) ánh xạ biến dây chuyền cuối cùng để tạo ra mã băm kết quả Và thông thường,

Trang 5

g(x) được chọn là ánh xạ đồng nhất: g(Hm)0Hm Khâu then chốt trong xây dựng hàm băm là thiết kế hàm nén f

6 Ứng dụng của hàm băm mật mã

6.1 Xác thực thông điệp

Một ứng dụng điển hình của một hàm băm mật mã học như sau: Alice đưa cho Bob một câu đố khó và tuyên bố rằng cô ấy đã giải được rồi Bob muốn tự giải, nhưng cũng muốn chắc chắn là Alice đúng là đã giải được Do đó, Alice viết đáp án, gắn thêm một nonce ngẫu nhiên, tính giá trị băm của nó, và đưa kết quả băm cho Bob (trong khi vẫn giữ bí mật đáp án và nonce) Bằng cách này, khi Bob tự giải xong, Alice có thể chứng minh rằng cô đã có đáp án từ trước bằng cách đưa nonce cho Bob Trong thực tiễn, Alice và Bob thường là các chương trình máy tính, và bí mật thường là cái gì đó không dễ lừa bằng một lời giải cho câu đó Ứng dụng trên được gọi là một hệ thống tin cậy

(commitment scheme)

Một ứng dụng quan trọng khác của các hàm băm bảo mật là sự kiểm tra tính toàn vẹn của thông điệp Ví dụ, việc xác định xem một file hay một thông điệp có bị sửa đổi hay không có thể thực hiện bằng cách so sánh tóm tắt

được tính trước và sau khi gửi (hoặc một sự kiện bất kỳ nào đó) Còn có thể dùng tóm tắt thông điệp làm một phương tiện đáng tin cậy cho việc nhận

dạng file

6.2 Chữ ký số

Một ứng dụng có liên quan là kiểm tra mật khẩu Mật khẩu thường không được lưu dưới dạng văn bản rõ (clear text), mà ở dạng tóm tắt Để xác thực một người dùng, mật khẩu do người đó nhập vào được băm và so sánh với kết quả băm được lưu trữ

Do các lý do cả về bảo mật và hiệu năng chương trình, đa số các thuật toán chữ ký số nói rằng chỉ có tóm lược của thông điệp, chứ không phải toàn văn thông điệp, được "ký" Các hàm băm còn có thể được dùng để tạo các bit giả ngẫu nhiên (pseudorandom)

6.3 Các ứng dụng khác

Trang 6

7 Các hàm băm mật mã sử dụng phổ biến hiện nay

Thuật

toán

Kíc

h thư

ớc đầu

ra

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

Kích thước khối

thước Word

Xung đột

SHA

-256/224

256/

224

SHA

-512/384

512/

384

Trong danh sách dài các hàm băm mật mã trên, có một số hàm băm được cho là dễ bị tổn thương và không nên sử dụng Ngay cả khi một hàm băm chưa

bị phá vỡ, một tấn công thành công đối với một biến thể yếu đó có thể làm giảm

sự tự tin của các chuyên gia và dẫn đến loại bỏ nó Ví dụ, vào tháng 8 năm 2004 người ta đã tìm ra những điểm yếu của một vài hàm băm phổ biến vào thời đó, bao gồm SHA-0, RIPEMD, và MD5 Điều này đã đặt ra câu hỏi an ninh lâu dài của các thuật toán sau này được bắt nguồn từ những hàm băm này - đặc biệt, SHA-1 (một phiên bản mạnh của SHA-0), RIPEMD-128, và RIPEMD-160 (cả hai phiên bản mạnh của RIPEMD) Vì vậy, cả SHA-0 và RIPEMD đều không được sử dụng rộng rãi kể từ khi chúng được thay thế bởi các phiên bản mạnh

Đến năm 2009, hai hàm băm mật mã được sử dụng thông dụng nhất vẫn

là MD5 và SHA-1 Tuy nhiên, MD5 đã bị phá vỡ do có một tấn công lên nó để phá vỡ SSL trong năm 2008

SHA-0 và SHA-1 là các thành viên của họ hàm băm SHA được phát triển bởi NSA Vào tháng 2 năm 2005, đã tấn công thành công trên SHA-1, việc tìm kiếm va chạm trong khoảng 269 phép toán băm, thay vì 280 theo dự kiến cho hàm băm 160-bit Vào tháng 8 năm 2005, có một tấn công thành công trên

SHA-1 trong đó việc tìm kiếm va chạm chỉ cần 263 phép toán băm

Điểm yếu lý thuyết của SHA-1 tồn tại vốn có, nhưng về mặt thực tế để phá

vỡ nó cũng phải mất vài năm Các ứng dụng mới có thể tránh được những vấn đề này bằng cách sử dụng thêm các thành viên tiên tiến của họ SHA, như SHA-2, hoặc sử dụng các kỹ thuật như băm ngẫu nhiên hóa sẽ không quan tâm đến kháng va chạm Tuy nhiên, để đảm bảo tính chất mạnh lâu dài của các ứng dụng có sử dụng hàm băm, hiện có một cuộc thi nhằm thiết

Trang 7

kế hàm băm thay thế cho SHA-2, nó sẽ có tên là SHA-3 và trở thành một

tiêu chuẩn FIPS vào năm 2012

Trang 8

CHƯƠNG II : GIỚI THIỆU VỀ HOÁN VỊ KÉT SẮT (KECCAK)

1

2 Chức năng

Trang 9

CHƯƠNG III : CẤU TRÚC SPONGE

Cấu trúc Sponge

Trang 10

CHƯƠNG IV : KẾT LUẬN

Trang 11

CHƯƠNG V : TÀI LIỆU THAM KHẢO

- Chapter 11 (Cryptography and Network Security - Principles and

Practice, 6th edition - William Stallings)

Ngày đăng: 04/09/2019, 22:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w