3.2.1 Tạo khóa:
Nhiệm vụ của modun này là tạo ra cặp khóa bí mật - công khai cho ngƣời dùng từ hai số nguyên tố cho trƣớc.
Mỗi ngƣời sử dụng phải có một cặp khóa: Khóa bí mật dùng để ký, để giải mã thơng tin nhận đƣợc và một khóa cơng khai tƣơng ứng để ngƣời khác dùng trong xác minh chữ ký và mã hóa văn bản gửi đến, khóa cơng khai đƣợc thơng báo rộng rãi, khóa bí mật đƣợc ngƣời sử dụng lƣu giữ bí mật. Q trình tạo khóa đƣợc mơ phỏng nhƣ hình 3.
Số nguyên tố thứ nhất
Hình 3.1: Sơ đồ q trình tạo khóa Các bước được thực hiện như sau:
- Bƣớc 1: Chọn số nguyên tố 1
Số nguyên tố 1 Số nguyên tố 2
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
- Bƣớc 2: Chọn số nguyên tố 2
(Số nguyên tố có sẵn đƣợc lƣu dƣới dạng file có đi .txt)
- Bƣớc 3: Tạo khóa cơng khai RSA và khóa riêng tƣơng ứng theo phƣơng thức sau:
Giả sử số nguyên tố thứ nhất đƣợc chọn là p, số nguyên tố thứ 2 đƣợc chọn là q khi đó tính n =p.q và (n) = (p-1)(q-1), chọn một số tự nhiên e sao cho 1< e < (n) USCLN (e, (n)) =1. Sử dụng giải thuật Euclid để tính d sao cho de 1(mod (n)). Khóa cơng khai là (n,e), khóa bí mật là (n,d).
- Bƣớc 4: Lƣu khóa cơng khai và khóa bí mật dƣới dạng file .txt
3.2.2 Mã hóa và tạo chữ ký cho file tài liệu:
Nhiệm vụ của modun này là tạo ra một file chữ ký (*.sig), gồm chữ ký và file tài liệu đã đƣợc mã hóa.
Khi một ngƣời muốn gửi cho ai đó một văn bản quan trọng, địi hỏi phải đƣợc ký xác nhận chính danh ngƣời gửi và nếu muốn giữ bí mật thì phải thực hiện mã hóa file tài liệu cần gửi. Ngƣời gửi sẽ thực hiện ký và mã hóa. Quy trình ký và mã hóa đƣợc mơ phỏng nhƣ hình 3.2
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
filu
Các bƣớc đƣợc thực hiện nhƣ sau:
Hình 3.2 : Sơ đồ q trình ký và mã hóa file dữ liệu
Các bƣớc thực hiện nhƣ sau: Bƣớc 1:
- Chọn khóa cơng khai của ngƣời nhận - Chọn khóa bí mật của ngƣời gửi - Chọn file để mã hóa và ký
Bƣớc 2: Dùng thuật tốn MD5 với khóa ngẫu nhiên để mã hóa file đƣợc chọn tạo ra bản đại điện có kích thƣớc 128 bit, sau đó sử dụng thuật tốn RSA với khóa bí mật của ngƣời gửi để mã hóa bản đại diện, ta thu đƣợc chữ ký số.
File dữ liệu Bản ban
Hàm băm
Bản đại diện Mã hóa
Khóa bí mật của ngƣời gửi Chữ ký số Mã hóa Khóa cơng khai của ngƣời nhận Gắn chữ ký số vào file đã mã hóa File dữ liệu đã đƣợc ký và mã hóa Dữ liệu gửi đi
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
Bƣớc 3: Mã hóa file dữ liệu ban đầu bằng thuật tốn RSA với khóa công khai của ngƣời nhận thu đƣợc một bản tin đã đƣợc mã hóa.
Bƣớc 4: Gộp chữ ký số vào bản tin đã mã hóa cơng việc này gọi là “ký nhận” vào file.
Bƣớc 5: Gửi file đã đƣợc mã hóa và ký
3.2.3 Giải mã và xác thực chữ ký:
Nhiệm vụ của modul này chính là kiểm tra tính đúng đắn của chữ ký số, đồng thời giải mã file dữ liệu nhận đƣợc để thu đƣợc bản tin ban đầu.
Sau khi nhận đƣợc một file dữ liệu nào đó có đính kèm chữ ký của ngƣời gửi, ngƣời nhận phải giải mã file dữ liệu này để thu đƣợc bản tin ban đầu và xác thực chữ ký đính kèm có đúng của ngƣời gửi đã biết trƣớc. Quy trình xác thực chữ ký và giải mã đƣợc thể hiện ở hình 3.1.c
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 Hình 3.1 c : Sơ đồ quá trình xác thực chữ ký và giải mã file dữ liệu
Bản tin đã ký Tách bản tin chữ ký số Chữ ký số Bản tin điện tử Giải mã mã mã Khóa Cơng khai của
ngƣời gửi Giải mã
Khóa Bí mật của ngƣời nhận Bản tin đã đƣợc giải mã Bản tóm lƣợc 1 Khơng đúng ngƣời gửi Thông báo lỗi Khơng đƣợc Có
Lƣu file dữ liệu nhận đƣợc Giải mã Giải mã Hàm băm Khơng đƣợc Có Bản toám lƣợc 2 Giống nhau ? Kết luận
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
Các bƣớc thực hiện nhƣ sau:
Bƣớc 1: - Chọn khóa cơng khai của ngƣời gửi - Chọn khóa bí mật của ngƣời nhận
- Chọn file cần giải mã và xác thực chữ ký
Bƣớc 2: Bản tin điện tử có đính kèm chữ ký của ngƣời gửi, sau khi nhận đƣợc sẽ tách riêng phần chữ ký và phần văn bản (đã đƣợc mã hoá)
Bƣớc 3: Dùng khóa cơng khai (public key) của ngƣời gửi (khóa này đƣợc thông báo đến mọi ngƣời) để giải mã chữ ký số của thông điệp, kết quả thu đƣợc bản tóm lƣợc 1(nếu khơng giải mã đƣợc thông báo “không đúng ngƣời gửi”)
Bƣớc 4: Ngƣời nhận dùng khố bí mật của mình để giải mã phần văn bản đã đƣợc mã hoá, kết quả thu đƣợc ban tin điện tử ban đầu và lƣu dƣới dạng file txt (nếu không giải mã đƣợc thông báo lỗi).
Bƣớc 5: Xác định chữ ký băng cách sau:
Bƣớc 5.1: Dùng giải thuật băm MD5 để mã hóa văn bản thu đƣợc ở bƣớc 4, kết quả thu đƣợc là bản tin tóm lƣợc thứ 2.
Bƣớc 5.2: So sánh 2 bản tin tóm lƣợc thu đƣợc ở bƣớc 3 và bƣớc 5.1, ta kết luận thông điệp này là của ngƣời gửi (nếu không giống nhau kết luận không đúng ngƣời gửi).