Mô tả thuật toán

Một phần của tài liệu bảo mật và an toàn thông tin trong hệ thống mạng cục bộ của cơ quan nhà nước (Trang 28 - 29)

Sinh khoá:

● Chọn ngẫu nhiên hai số nguyên tố lớn p và q, với p # q

● Tính n = pq

● Ta có (n) = (p-1)(q-1) là hàm Euler của n

● Chọn một số tự nhiên e sao cho 1 < e < (n) và e nguyên tố cùng nhau với(n)

● Ta tìm được duy nhất d = e-1mod (n)

Khoá công khai là <n, e>, khóa bí mật là <n, d>

Mã hóa:

Để gửi dữ liệu cần mã hóa thì người gửi thực hiện :

● Thu nhận khóa công khai của người nhận < n,e>

● Biến đổi thông điệp muốn gửi M thành những số nguyên m < n theo một hàm có thể đảo ngược (Từ m có thể xác định được M) được thỏa thuận trước.

● Tính c = memod n

Giải mã:

Để khôi phục lại thông điệp M ban đầu, người nhận thực hiện các bước sau :

● Tính m = cd mod n với 0 ≤ m ≤ n

● Thực hiện phép biến đổi ngược từ số m thành chuỗi ký tự tương ứng chưa thông tin M ban đầu.

Ví dụ Sinh khoá: ● Chọn 2 số nguyên tố: p = 61, q = 53 ● Tính n = 61.53 = 3233 ● Ta có (n) = (p-1)(q-1) = 60.52 = 3120 ● Chọn e = 17

●Tính d = e-1mod 3120 bằng giải thuật Euclide mở rộng ta có d = 2753 Khoá công khai <n, e> = <3233, 17>; khoá bí mật <n, d> = <3233, 2753>

Mã hoá:

Để mã hóa văn bản có giá trị m = 123, ta thực hiện phép tính : c = memod n = 12317mod 3233 = 855

Giải mã:

Để giải mã văn bản có giá trị 855, ta thực hiện phép tính : cd = 8552753 mod 3233 = 123

Cả hai phép tính trên đều có thể được thực hiện hiệu quả thuật toán bình phương liên tiếp.

Một phần của tài liệu bảo mật và an toàn thông tin trong hệ thống mạng cục bộ của cơ quan nhà nước (Trang 28 - 29)