0
Tải bản đầy đủ (.pdf) (62 trang)

Hàm giải mã RSAES-OAEP

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP XÁC THỰC VÀ BẢO MẬT TÀI LIỆU TRONG TRAO ĐỔI VĂN BẢN TRÊN MÔI TRƯỜNG MẠNG GIỮA CÁC CƠ QUAN NHÀ NƯỚC (Trang 26 -28 )

5. Bố cục Luận văn

2.1.2. Hàm giải mã RSAES-OAEP

Các lựa chọn: Hash là hàm băm (hLen ký hiệu độ dài theo byte của đầu ra hàm băm.

MGF là hàm sinh mặt nạ.

Đầu vào: K là khoá riêng RSA của người nhận (k ký hiệu độ dài theo byte của RSA-modulo n).

C là bản mã cần được giải mã, chuỗi byte có độ dài k, với k  2hLen + 2.

L là nhãn tùy chọn liên quan đến thông báo, giá trị mặc định của L là chuỗi rỗng nếu không được cung cấp. Đầu ra: M thông báo, một chuỗi byte có độ dài mLen với mLen

 k – 2hLen -2

Lỗi: “Lỗi giải mã”

Các bƣớc:

Bước 1) Kiểm tra độ dài:

a. Nếu độ dài của L lớn hơn giới hạn đầu vào cho hàm băm (261-1 byte đối với SHA-1), thì cho ra “Lỗi giải mã” và dừng.

b. Nếu độ dài của bản mã C không là k byte, cho ra “Lỗi giải mã” và dừng.

c. Nếu k < 2hLen + 2, cho ra “Lỗi giải mã” và dừng.

Bước 2) Giải mã RSA:

a. Chuyển bản mã C thành số nguyên biểu diễn bản mã c: c = OS2IP(C). b. Áp dụng RSADP vào khoá riêng RSA K và biểu diễn bản mã c để tạo ra số nguyên biểu diễn thông báo m: m = RSADP(K, c). Nếu RSADP cho ra “biểu diễn bản mã ở ngoài miền” (có nghĩa rằng c  n), ra “lỗi giải mã” và dừng.

c. Chuyển biểu diễn thông báo m thành thông báo EM có k byte: EM = I2OSP(m, k).

a. Giả sử lHash được lấy như trong quá trình chuẩn bị dữ liệu EME- OAEP.

b. Phân tách thông báo EM thành một byte duy nhất Y, chuỗi byte maskedSeed có độ dài hLen, chuỗi byte maskedDB có độ dài k-hLen-1 như sau:

EM = Y || maskedSeed || maskedDB.

c. Đặt seedMask = MGF(maskedDB, hLen). d. Đặt seed = maskedSeed  seedMask. e. Đặt dbMask = MGF(seed, k –hLen-1). f. Đặt DB = maskedDB  dbMask.

g. Phân tách DB thành chuỗi byte lHash‟ có độ dài hLen, chuỗi đệm PS (có thể rỗng) bao gồm các byte với giá trị hexa 0x00 và thông báo M: DB = lHash‟||PS|| 0x01|| M. Nếu không có byte có giá trị hexa bằng 0x01 phân tách giữa PS và M, nếu lHash không bằng lHash‟, hoặc nếu Y không bằng zero thì cho ra “lỗi giải mã” và dừng.

Bước 4) Cho ra thông báo M

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP XÁC THỰC VÀ BẢO MẬT TÀI LIỆU TRONG TRAO ĐỔI VĂN BẢN TRÊN MÔI TRƯỜNG MẠNG GIỮA CÁC CƠ QUAN NHÀ NƯỚC (Trang 26 -28 )

×