Quá trình tạo khoá, mã hoá và giải mã

Một phần của tài liệu Nghiên cứu vấn đề bảo mật thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin trường Cao đẳng Kinh tế Kỹ thuật Vĩnh Phúc (Trang 49 - 51)

a) Tạo khóa:

• Tạo hai số nguyên tố phân biệt p và q lớn, sao cho bài toán phân tích thật sự là khó giải (kích cỡ mỗi số khoảng 512 bits → 1024 bits).

• Tính N = p* q và φ(N) = (p - 1) * (q - 1).

• Chọn số nguyên ngẫu nhiên e sao cho 1 < e < φ(N) và gcd(e, φ(N)) = 1 • Sử dụng thuật toán Euclid mở rộng, để tính số nguyên d duy nhất, sao cho 0 < d < φ(N) và e * d ≡ 1 mod φ(N) (d là nghịch đảo của e modulo N)

• Hai số (e, N) làm khóa công khai, còn (d, N) làm khóa riêng. • Các số nguyên tố p, q sẽ bị xóa khi kết thúc quá trình tạo khóa.

b) Mã hóa:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

• Lấy khóa công khai của ngƣời nhận B: (e, N).

• Biến đổi thông điệp M thành những số nguyên Mi tƣơng ứng sao cho Mi< N, (i = 1,…, k). Theo phép biến đổi sau:

- Biến đổi các ký tự trong thông điệp M thành các số nguyên tƣơng ứng, thí dụ theo qui tắc: Dấu cách ↔ 00, A ↔ 01, B ↔ 02,..., Z ↔ 26.

- Chia thông điệp vừa biến đổi thành k nhóm có chiều dài bằng nhau, mỗi nhóm biểu diễn một số nguyên Mi ∈{0,…, N - 1} (với 1 ≤ i ≤ k).

• Thực hiện mã hóa lần lƣợt cho từng số Mi → Ci bằng cách: Ci = Eke(Mi) = Mie (mod N).

Tập các số nguyên {C1, C2,...,Ck} là bản mã để gửi đến ngƣời nhận B.

c) Giải mã:

Ngƣời nhận B thực hiện các bƣớc sau:

• Thực hiện giải mã lần lƣợt từng số nguyên Ci → Mi bằng cách: Mi = D(Ci) = Ci

d

(mod N) với 0 ≤ Mi < N, (d là khoá bí mật của B). • Thực hiện phép biến đổi ngƣợc lại từ các số Mi thành các chuỗi ký tự tƣơng ứng để khôi phục lại nội dung thông điệp M ban đầu.

Các bƣớc tạo khóa, mã hóa, giải mã có thể tóm tắt nhƣ sau

Tạo khoá: Tạo 2 số nguyên tố lớn p và q * Tính N = p * q và Tính φ(N) = (p-1) * (q-1). * Chọn 1< e < φ(N): gcd(φ(N), e) = 1.

* Tính d = e-1 mod φ(N) (dùng thuật toán Euclid mở rộng). Khóa công khai: (e, N) Khóa riêng: (d, N)

Mã hóa: Khối bản rõ M < N * Tính: C = Me mod N

* Gửi khối bản mã (số nguyên) C đến ngƣời nhận

Giải mã: Khối bản mã C < N * Tính: M = Cd mod N

* Khôi phục lại khối bản rõ (số nguyên) M ban đầu

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một phần của tài liệu Nghiên cứu vấn đề bảo mật thông tin và đề xuất giải pháp bảo mật cho hệ thống thông tin trường Cao đẳng Kinh tế Kỹ thuật Vĩnh Phúc (Trang 49 - 51)

Tải bản đầy đủ (PDF)

(107 trang)