Giải thuật SHA

Một phần của tài liệu NGHIÊN CỨU VÀ ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT TRUYỀN THÔNG (Trang 62 - 67)

SHA-1 được đưa ra bởi viện tiêu chuẩn và công nghệ quốc gia NIST năm 1993. Thuật toán : đầu vào là message có độ dài < 264 bit, đầu ra message digest độ dài 160 bit. Đầu vào được xử lý trong các khối 512 bit

Hình 3.15 : Cơ chế hoạt động của SHA-1

Quá trình sinh message digest sử dụng SHA-1 diễn ra qua 5 bước như sau :

1) Thêm vào các bít padding : Message được thêm vào các bit để đảm bảo độ dài của bản tin đó là bội số của 512. Padding gồm bit 1 và dãy số 0 theo sau tức là có dạng 10000…00.

2) Thêm chiều dài (Append length) : một khối 64 bit sẽ được thêm vào message. Block này được xem như số nguyên 64 bit không dấu, có chứa độ dài của message gốc khi chưa thêm padding

Đầu ra sau 2 bước đầu là một số nguyên độ dài 512 bit

3) Khởi tạo bộ đệm MD. Bộ đệm 160 bit được sử dụng để giữ lại kết quả tạm thời và cuối cùng của hàm hash. Bộ đệm được thể hiện là 5 thanh ghi 32 bit (A, B, C, D, E) những thanh ghi này được khởi tạo thành số nguyên 32 bit (hexadecimal) như sau :

B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0

4) Xử lý bản tin trong các khối 512 bit. Thuật toán sử dụng hàm nén gồm 4 vòng xử lý, mỗi vong 20 bước. Sơ đồ hoạt động thể hiện như hình sau :

Hình 3.16 : Cơ chế xử lý khối đơn trong SHA-1

5) Output : sau khi tất cả các khối 512 được xử lý, đầu ra chính là message digest độ dài 160 bit.

Giải thuật SHA -1 có nhiều ưu điểm nổi trội hơn so với giải thuật MD5 dựa trên những phương diện sau:

 An toàn đối với tấn công dạng brute –force: sự khác biệt quan trọng nhất đó là message digest của SHA-1(160 bits) dài hơn 32 bit so với digest của MD5(128 bits). Sử dụng công nghệ brute-force, độ khó khăn để tính toán ra một đoạn tin nào đó có message digest cho trước cần 2128

phép tính cho MD5 và 2160 cho SHA-1. Hơn nữa sử dụng công nghệ brute-force, độ khó khăn để tạo ra 2 đoạn tin có cùng message digest cần

264 phép tính cho MD5 và 280 phép tính cho SHA-1. Do đó, sử dụng SHA-1 là an toàn hơn với dạng tấn công brute-force.

 An toàn đối với thám mã: Người ta đã chứng minh được MD5 có thể bị tổn thương với tấn công dạng thám mã còn SHA-1 thì khó khăn hơn Bảng sau so sánh các hàm hash với nhau :

Bảng 3.2 : So sánh các giải thuật hash

3.8 KẾT LUẬN

Để ứng dụng được chữ ký điện tử, ta cần hiểu được nguyên lý hoạt động toán học của nó. Nhiều thuật toán chữ ký đã được nghiên cứu và công bố rộng rãi. Chương này đã trình bày một số thuật toán được sử dụng rộng rãi nhất, do viện tiêu chuẩn và quốc gia Mỹ (the U.S National Institute of Standards and Technology) đưa ra trong chuẩn chữ ký điện tử DSS. Đó là thuật toán chữ ký điện tử DSA sử dụng thuật toán băm SHA. Thuật toán này sẽ được dung để xây dựng ứng dụng trong phần sau của đồ án.

PHẦN II: THIẾT KẾ - XÂY DỰNG HỆ THỐNG ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT TRUYỀN THÔNG

CHƯƠNG 4: MỘT SỐ VẤN ĐỀ VỀ KIẾN TRÚC MÃ HÓA CỦA JAVA

Java Cryptography gồm 2 phần. Một phần là bản thân JDK bao gồm những lớp dành cho việc chứng thực. Phần khác, Java Cryptography Extension (JCE), bao gồm những lớp được gọi là “mã hóa mạnh” (strong cryptography)

Một phần của tài liệu NGHIÊN CỨU VÀ ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT TRUYỀN THÔNG (Trang 62 - 67)