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

Tiểu luận môn an ninh hệ thống thông tin Hàm băm SHA

14 2,9K 13

Đ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 14
Dung lượng 793 KB

Nội dung

Hàm băm SHAI.Giới thiệu về hàm băm mật mã1.Khái niệm hàm băm2.Đặc tính của hàm bămII.Ứng dụng của hàm băm mật mãIII.Các kiểu hàm băm SHA1.Phân loại hàm băm SHA2.Ý tưởng thuật toán hàm băm SHA3.Khung thuật toán cho hàm hăm SHA4.Ví dụ minh họaIV.Độ an toàn của hàm băm SHAI.Giới thiệu về hàm băm mật mã1. Khái niệm hàm bămHàm băm là một thuật toán không dùng để mã hoá, nó có nhiệm vụ “lọc” tài liệubản tin và cho kết quả là một giá trị băm có kích thước cố định, còn gọi là “đại diện tài liệu”, “đại diện bản tin”, “đại diện thông điệp”.Hàm băm nhận đầu vào là 1 xâu ký tự dài (thông điệp) có độ dài tuỳ ý và tạo ra kết quả là 1 xâu ký tự có độ dài cố định (tóm tắt thông điệp hoặc chữ ký số).Một hàm băm mật mã là một loại chữ kí cho văn bản hoặc một tập tin dữ liệu. Hàm băm không phải là mã hoá vì nó không thể được giải mã về văn bản ban đầu, mà nó có chức năng mật mã “một chiều”, và có một kích thước cố định cho bất kỳ một văn bản gốc nào. Điều này phù hợp khi so sánh các phiên bản “băm” các văn bản 2. Đặc tính của hàm băm Với hàm băm là hàm 1 chiều có các đặc tính sau:Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x);Nếu dữ liệu trong bản tin x bị thay đổi hay bị xoá để thành bản tin x’, thì giá trị băm h(x’) khác h(x).Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó. Nghĩa là, với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được nếu chỉ biết giá trị băm h(x).II.Ứng dụng của hàm băm mật mã

Trang 1

Hàm băm SHA

I Giới thiệu về hàm băm mật mã

1 Khái niệm hàm băm

2 Đặc tính của hàm băm

II Ứng dụng của hàm băm mật mã III Các kiểu hàm băm SHA

1 Phân loại hàm băm SHA

2 Ý tưởng thuật toán hàm băm SHA

3 Khung thuật toán cho hàm hăm SHA

4 Ví dụ minh họa

IV Độ an toàn của hàm băm SHA

Trang 2

I Giới thiệu về hàm băm mật mã

1 Khái niệm hàm băm

- Hàm băm là một thuật toán không dùng để mã hoá, nó có nhiệm vụ “lọc” tài liệu/ bản tin và cho kết quả là một giá trị băm có kích thước cố định, còn gọi là “đại diện tài liệu”, “đại diện bản tin”, “đại diện thông điệp”

- Hàm băm nhận đầu vào là 1 xâu ký tự dài (thông điệp) có độ dài tuỳ ý và tạo ra kết quả là 1 xâu ký tự có độ dài cố định (tóm tắt thông điệp hoặc chữ ký số)

- Một hàm băm mật mã là một loại chữ kí cho văn bản hoặc một tập tin dữ liệu

- Hàm băm không phải là mã hoá vì nó không thể được giải mã về văn bản ban đầu,

mà nó có chức năng mật mã “một chiều”, và có một kích thước cố định cho bất kỳ một văn bản gốc nào Điều này phù hợp khi so sánh các phiên bản “băm” các văn bản

2 Đặc tính của hàm băm

Với hàm băm là hàm 1 chiều có các đặc tính sau:

- Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x);

- Nếu dữ liệu trong bản tin x bị thay đổi hay bị xoá để thành bản tin x’, thì giá trị băm h(x’) khác h(x)

- Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó Nghĩa là, với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được nếu chỉ biết giá trị băm h(x)

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

- Xác nhận mật khẩu: bạn có thể lưu băm của mật khẩu Khi người dùng cung cấp mật khẩu thì băm mật khẩu của người dùng Nếu các phiên bản băm khớp thì mật khẩu được xác thực, nhưng mật khẩu ban đầu không thu lấy được từ băm đã được lưu trữ

- Xác thực thách thức băm: để tránh việc truyền mật khẩu “clear”, máy khách có thể gửi băm của mật khẩu trên internet để xác nhận bởi một máy chủ mà không sợ mật khẩu ban đầu bị đánh cắp

- Chống giả mạo: liên kết băm của một tin nhắn với bản gốc và người nhận tin có thể tái băm tin nhắn đó và so sánh nó với băm đã được cung cấp Nếu 2 bản băm

Trang 3

khớp nhau thì tin nhắn đó không bị thay đổi Ứng dụng này cũng có thể dụng để xác nhận dữ liệu có bị mất hay khôgn trong quá trình truyền tải

- Chữ ký số: dùng hàm băm h để tạo đại diện bản tin z = h(x), có độ dài ngắn Sau

đó ký trên z, như vậy chữ ký trên z sẽ nhỏ hơn rất nhiều so với chữ ký trên bản tin gốc x

- Bảo mật một số dữ liệu đặc biệt như bảo vệ mật khẩu, bảo vệ khoá mật mã

III Các kiểu hàm băm SHA

1 Phân loại hàm băm SHA

- SHA bao gồm 5 thuật giải được chấp nhận bởi Federal Information Processing

Standards (FIPS) dùng để chuyển 1 đoạn dữ liệu nhất định thành 1 đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao

Thuật

toán

Kích thước đầu ra

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

Kích thước khối

thước từ

Xung đột

- 5 thuật giải SHA được phát triển bởi cục an ninh quốc gia Mỹ (National Security Agency hay NSA), được xuất bản thành chuẩn của chính phủ Mĩ bởiViện công nghệ và chuẩn quốc gia Mĩ ( National Institute of Standard and Technology hay NIST)

- Tên các thuật giải tương ứng được đặt dựa theo kết quả trả về của thuật giải

Trang 4

+ SHA – 1 (kết quả trả về dài 160 bit)

+ SHA – 224 (kết quả trả về dài 224 bit)

+ SHA – 256 (kết quả trả về dài 256 bit)

+ SHA – 384 (kết quả trả về dài 384 bit)

+ SHA – 512 (kết quả trả về dài 512 bit)

2 Ý tưởng của các thuật toán hàm băm

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.

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ý

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

+ Tạo bảng phân bố thông điệp từ khối i.

+ Dùng bảng phân bố thông điệp cùng các hàm, hằng số, từ các thao tác trên để tạo ra giá trị băm

3 Khung thuật toán chung cho các hàm băm SHA

} => Gọi chung là SHA – 2

Trang 5

3.1 Hằng số

Mỗi thuật toán có bảng hằng số phân bố thông điệp tương ứng Kích thước bảng hằng số thông điệp (scheduleRound) của SHA-224 là 64, kích thước bảng hằng số thông điệp của SHA-384 và SHA-512 là 80

3.1.1 SHA -1

3.1.2 SHA-256

3.1.3 SHA384, SHA512

Trang 6

3.2 Giá trị băm ban đầu

Trước khi thực hiện băm, với mỗi thuật toán băm an toàn, giá trị băm ban đầu H(0)

phải được thiết lập Kích thước và số lượng từ trong H(0) tuỳ thuộc vào thông điệp rút gọn Giá trị ban đầu của từng thuật toán băm:

3.2.1 SHA-1

H0(0) = 67452301

H1(0) = efcdab89

H2(0) = 98badcfe

H3(0) = 10325476

H4(0) = c3d2e1f0

3.2.2 SHA-256

H0(0) = 67452301

H1(0) = efcdab89

H2(0) = 98badcfe

H3(0) = 10325476

Trang 7

H4(0) = c3d2e1f0

3.2.3 SHA-384

H3(0) = 152fecd8f70e5939

H4(0) = 67332667ffc00b31

H6(0) = db0c2e0d64f98fa7

H7(0) = 47b5481dbefa4fa4

3.2.4 SHA-512

H1(0) = 6a09e667f3bcc908

H3(0) = 3c6ef372fe94f82b

H4(0) = a54ff53a5f1d36f1

H5(0) = 510e527fade682d1

H6(0) = 9b05688c2b3e6c1f

3.3 Tiền xử lý thông điệp

Thông điệp M được mở rộng trước khi thực hiện băm mục đích nhằm đảm bảo thông điệp mở rộng có độ dài là bội số của 512 hoặc 1024 bit tuỳ vào thuật toán

VD:

Trang 8

Giả sử thông điệp : “abc” = 0110001 01100010 01100011 có độ dài l bits = 24bits.

Cần tách thông điệp để số bit của nó là bội số của 512 hoặc 1024 tuỳ vào thuật toán

Bước 1: Thêm bit 1 vào sau thông điệp ban đầu được:

0110001 01100010 01100011 1

Bước 2:

3.3.1 SHA-1, SHA-256

Thêm k 0 bit sao cho l+1+k = 448 mod 512

K = 448 – (l+1) = 448 – (24+1) = 423

Vậy sẽ phải thêm 423 0bits vào sau thông điệp thu được ở bước 1

B3: Thêm 64 bit gồm 64 – l = 64 – 24 = 40 0 bits và l bits vào sau thông điệp thuđược

ở bước 2

3.3.2 SHA-384, SHA-512

Thêm k 0 bits sao cho l + 1 + k = 896 mod 1024

K = 896 – (l+1) = 896 – (24+1) = 871

Vậy sẽ phải thêm 423 0 bits vào sau thông điệp thu được ở bước 1:

B3: Thêm 128 bit gồm 128 – l = 128 – 24 = 104 0 bits và l bits vào sau thông điệp thu được ở bước 2

Trang 9

3.4 Chia thông điệp thành N nhóm m-bit

3.4.1 SHA-1, SHA-256

Thông điệp mở rộng thành N khối 512-bit M(1), M(2), M(N) Do đó 512 bit của khối

dữ liệu đầu vào có thể thực hiện được bằng 16 từ 32bit, M0(i) chứa 32 bit đầu của khối thông điệp i, M1(i) chứa 32 bit kế tiếp M16(i) chứa 32 bit cuối cùng

3.4.2 SHA 384, SHA-512

Thông điệp mở rộng được phân tích thành N khối 1024bit M(1), M(2), M(N) Do đó

1024 bit của khối dữ liệu đầu vào có thể được thể hiện bằng 16 từ 64bit, M0(i) chứa 64 bit đầu của khối thông điệp i, M1(i) chứa 64 bit kế tiếp M16(i) chứa 64 bit cuối cùng

3.5 Các hàm được dùng

3.5.1 SHA-1

3.5.2 SHA-256

Trang 10

3.5.3 SHA-384, SHA-512

Nhận xét

- Chuẩn SHA đặc tả 5 thuật toán SHA-1, SHA224, SHA-256, SHA-384 và SHA-512

- Sự khác biệt chính của các thuật toán là số lượng bit bảo mật của dữ liệu băm – điều này có ảnh hưởng trực tiếp đến chiều dài của thông điệp rút gọn Khi một thuật tóan băm được sử dụng kết hợp với thuật toán khác đòi hỏi phải cho kết quả số lượng bit tương ứng VD, nếu một thông điệp được ký với thuật toán chữ kí điện tử cung cấp 128bit thì thuật tóan chữ ký đó có thể đòi hỏi sử dụng 1 thuật toán băm an toàn cung cấp 128bit như SHA-256

4 Ví dụ minh hoạ

Dùng thuật toán SHA-1

Thông điệp “abc”

Bước 1: Tiền xử lý thông điệp:

01100001 01100010 01100011 10000000 00 00 00000018

Bước 2: Thông điệp được tách làm 512bit nên N = 1 (1 nhóm 512-bit)

Bước 3 Giá trị băm ban đầu:

H 0 (1) = 67452301

H 1 1) = efcdab89

Trang 11

H 2 (1) = 98badcfe

H 3 (1) = 10325476

H 4 (1) = c3d2e1f0

Bước 4: Tính Wt

Lặp t = 0 đến t = 79, để tìm ra a,b,c,d,e tương ứng

Trang 13

Sau khi hoàn thành, tính giá trị H

H 0 (1) = 67452301+ 42541b35= a9993e36

H 1 1) = efcdab89+ 5738d5e1= 4706816a

H 2 (1) = 98badcfe + 21834873 = ba3e2571

H 3 (1) = 10325476 + 681e6df6 = 7850c26c

H 4 (1) = c3d2e1f0 + d8fdf6ad = 9cd0d89d.

Thông điệp cuối cùng:

a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d

5 Độ an toàn của thuật toán băm

- Những thuật giải này được gọi là “an toàn” vì theo nguyên văn chuẩn FIPS 180-2 phát hành ngày 1/8/2002:

1) Cho một giá trị băm nhất định được tạo nên từ một trong những thuật giải SHA, việc tìm lại được đoạn dữ liệu gốc là không khả thi

Trang 14

2) Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi một trong những thuật giải SHA là không khả thi Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm hoàn toàn khác với xác suất rất cao

Thuật

toán

điệp rút gọn

Độ an toàn

Ngày đăng: 21/08/2014, 15:38

TỪ KHÓA LIÊN QUAN

w