Thuật toán chữ ký số RSA

Một phần của tài liệu Hạ tầng khóa công khai, xây dựng cổng truyền thông thanh toán song phương ứng dụng chữ ký số (Trang 28 - 31)

II. BỐ CỤC CỦA LUẬN VĂN

2.2.1.Thuật toán chữ ký số RSA

Phƣơng pháp chữ ký số RSA đƣợc xây dựng dựa trên thuật toán mã hóa khóa công khai RSA. Để tạo một cặp khóa, RSA thực hiện các bƣớc sau: Tạo khóa

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Giả sử NHA và NHB cần trao đổi thông tin bí mật thông qua một kênh không an toàn. Với thuật toán RSA, NHA đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bƣớc sau:

 Chọn 2 số nguyên tố lớn và với , lựa chọn ngẫu nhiên và độc lập.

 Tính: .

 Tính: giá trị hàm số Ơle .

 Chọn một số tự nhiên sao cho và là số nguyên tố

cùng nhau với .

 Tính: sao cho .

Một số lƣu ý:

 Các số nguyên tố thƣờng đƣợc chọn bằng phƣơng pháp thử xác suất.  Các bƣớc 4 và 5 có thể đƣợc thực hiện bằng giải thuật Euclid mở

rộng.

 Bƣớc 5 có thể viết cách khác: Tìm số tự nhiên sao

cho cũng là số tự nhiên. Khi đó sử dụng

giá trị .

 Từ bƣớc 3, PKCS#1 sử dụng thay

cho ).

Khóa công khai bao gồm:  n, môđun, và

 e, số mũ công khai (cũng gọi là số mũ mã hóa). Khóa bí mật bao gồm:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

 n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và  d, số mũ bí mật (cũng gọi là số mũ giải mã).

Mã hóa

Giả sử NHA muốn gửi điện thanh toán cho NHB. Đầu tiên NHA chuyển điện thanh toán thành một điện mã hóa nhỏ hơn kích cỡ điện ban đầu theo một hàm có thể đảo ngƣợc (từ điện mã hóa có thể xác định lại đƣợc điện thanh toán gốc) đƣợc thỏa thuận trƣớc (thuật toán mã hóa, khóa công khai do NHB cung cấp).

Lúc này NHA có điện gốc và biết n cũng nhƣ e do NHB gửi. NHA sẽ tính c là bản mã hóa của m theo công thức:

Hàm trên có thể tính dễ dàng sử dụng phƣơng pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phƣơng và nhân) Cuối cùng NHA gửi điện mã hóa cho NHB.

Giải mã

NHB nhận điện mã hóa c từ NHA và có sắn khóa bí mật d. NHB có thể tìm đƣợc điện gốc m ban đầu từ điện mã hóa c theo công thức sau:

Biết m, NHB tìm lại điện gốc M theo phƣơng pháp đã thỏa thuận trƣớc. Quá trình giải mã hoạt động vì ta có

.

Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên: và

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dƣ Trung Quốc, ta có: (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

hay .

Dùng RSA để tạo chữ ký số cho văn bản. Giả sử NHA muốn gửi cho NHB một văn bản có chữ ký của mình. Để làm việc này, NHA tạo ra một giá trị băm(hash value) của điện thanh toán ký và tính giá trị mũ d mod n của nó. Giá trị cuối cùng chính là chữ ký số của điện thanh toán đang xét. Khi NHB nhận đƣợc văn bản cùng với chữ ký số, NHB ta tính giá trị mũ e mod n của chữ ký đồng thời với việc tính giá trị băm của văn bản. Nếu 2 giá trị này nhƣ nhau thì NHB biết rằng ngƣời tạo ra chữ ký biết khóa bí mật của NHA và điện thanh toán không bị thay đổi sau khi ký.

Một phần của tài liệu Hạ tầng khóa công khai, xây dựng cổng truyền thông thanh toán song phương ứng dụng chữ ký số (Trang 28 - 31)