CHƯƠNG 3 HỆ MẬT MÃ KHOÁ CÔNG KHAI VÀ TRIỂN KHAI GIẢI PHÁP XÁC THỰC RSA
3.2 CHỮ KÝ SỐ ĐIỆN TỬ RSA
3.2.1 Tổng quát hoá về chữ ký số điện tử RSA
Mật mã khoá công khai RSA đảm bảo an toàn thông tin nhờ việc đƣa ra kỹ thuật chữ ký số điện tử (gọi tắt là chữ ký số). Việc sử dụng chữ ký số điện tử cho phép phát hiện và chống việc giả mạo (ngụy tạo) bản tin gửi đi. Do đó đảm bảo đƣợc tính trọn vẹn của bản tin khi truyền tin trên mạng viễn thông.
Thực chất của chữ ký sô điện tử RSA là một khối ký tự gắn kèm theo bản tin cần gửi đi. Nhờ có chữ ký số điện tử, người nhận sẽ biết và có thể chứng minh đƣợc bản tin đó do ai gửi đi và anh ta có thể chắc chắn về tính toàn vẹn của bản tin song anh ta không thể làm giả đƣợc bản tin bản tin đã ký
bằng chữ ký số điện tử. Với khả năng này, chữ ký số điện tử (khi đƣợc pháp luật thừa nhận) sẽ là phương tiện hữu hiệu đảm bảo về mặt pháp lý cho các hợp đồng, các giao dịch trên mạng. Để tạo ra chữ ký số, bản tin ban đầu đƣợc mã hoá bằng khoá riêng của người gửi và người nhận thu được bản tin ban đầu bằng cách giải mã bản tin đã ký bằng khoá công khai của người gửi.
Giả sử A muốn ký bản tin và B muốn có đƣợc bằng chứng, chứng tỏ bản tin được ký bởi A. A sẽ thực hiện các bước như sau:
1. A lấy bản tin m và thực hiện tính S = m da (mod n a ).
2. A gửi bản tin có chữ ký số điện tử tới B.
Khi nhận đƣợc bản tin và chữ ký số điện tử của A gửi tới, B thực hiện kiểm tra chữ ký số điện tử S trên bản tin nhƣ sau:
B xác định tên của A trong danh bạ và lấy khoá công khai của A.
B thực hiện tính m’ = S e a (mod n a ).
Nếu m’ = m thì chứng tỏ bản tin m là do A gửi và nội dung của nó không bị thay đổi hoặc giả mạo bởi một kẻ khác. Bởi vì chỉ có A mới có khoá bí mật (khoá riêng) để tạo ra chữ ký số. Hình 3.6 mô tả việc tạo ra chữ ký số và kiểm tra chữ ký số.
Để đảm bảo an toàn cho chữ ký số điện tử khi bị tấn công, người ta đã sử dụng sơ đồ tạo chữ ký số và kiểm tra chữ ký số có sử dụng hàm Hash.
Hàm Hash có tính chất là không thể thực hiện đƣợc về mặt tính toán để xác định một bản tin thứ hai có cùng giá trị Hash nhƣ của bản tin gốc. Đầu ra của hàm Hash là bản tin tóm lƣợc bản tin, đƣợc mã hoá bởi khoá bí mật của người tạo ra chữ ký số điện tử và gắn vào bản tin gốc để truyền đi.
Trong trường hợp này A:
- Sử dụng hàm Hash để tạo ra H(m)
- Mã hoá H(m) bằng khoá RSA bí mật để tạo ra khối chữ ký ek s (H(m)) - Gửi m, ek s (H(m)) cho B
- B khi nhận đƣợc bản tin m’ dùng hàm Hash tạo ra H(m’)
- Sau đó B truy lục khoá công khai K p của A, tính toán điều kiện (ek s (H(m))) và so sánh kết qủa với H(m’)
- Nếu chúng bằng nhau thì B chấp nhận bản tin nhƣng vẫn giữ lại nó cung với khối chữ ký, trong trường hợp cần sự phán xét để phân xử tranh chấp về sau. Hình 3.7 mô tả quá trình tạo chữ ký theo nguyên tắc nêu trên.
Bản tin Chữ ký số Bản tin Chữ ký số
Mã hoá công khai
Mã hoá công khai So
sánh
Đún g Sai
K p công khai của A K s bí mật
của A
Hình 3.7 Sơ đồ chữ ký số và kiểm tra chữ ký số
A B
3.2.2 Thuật toán tạo chữ ký số điện tử RSA
- Thuật toán tạo ra chữ ký số điện tử RSA:
Chữ ký số điện tử RSA đƣợc tạo ra bằng việc sử dụng khoá riêng K mã hoá bản tin m (ký hiệu RSASP1 (K,m)) đƣợc thực hiện nhƣ sau:
Đầu vào: K là khoá riêng RSA
m là bản tin viết dưới dạng số nguyên tố có giá trị từ 0 đến n-1.
Đầu ra: S là chữ ký viết dưới dạng nguyên có giá trị từ 0 đến n-1.
Lỗi: “Bản tin vƣợt qua giới hạn cho phép”.
Giả sử: Khoá riêng K RSA có hiệu lực.
Các bước thực hiện:
1. Nếu bản tin m không nằm trong giá trị từ 0 đến n-1, đầu ra “bản tin vƣợt quá giá trị cho phép” và dừng.
2. Chữ ký số s đƣợc tính nhƣ sau:
Bản tin Chữ ký số Bản tin Chữ ký số
Mã hoá công khai
Mã hoá công khai
So sá nh
Đún g
Sai
K p công khai của A
K s bí mật của A
Hình 3.8 Sơ đồ chữ ký số và kiểm tra chữ ký số sử dụng hàm Hash
A B
Hàm Hash Hàm Hash
Với khoá K là (n,d) thì s = m d mod n.
3. Đầu ra là s.
- Thuật toán kiểm tra chữ ký số điện tử RSA:
Việc kiểm tra chữ ký số điện tử RSA đƣợc tạo ra bằng việc sử dụng khoá công khai (n,e) để giải mã s (ký hiệu RSAVP1((n,e),s)) đƣợc thực hiện nhƣ sau:
Đầu vào: (n,e) là khoá công khai RSA
s là chữ ký số điện tử viết dưới dạng số nguyên có giá trị từ 0 đến n-1
Đầu ra: m là bản tin viết dưới dạng số nguyên có giá trị từ 0 đến n-1.
Lỗi: “Chữ ký số điện tử vƣợt quá giới hạn cho phép”
Giả sử: Khoá công khai (n,e) hiệu lực.
Các bước thực hiện:
1. Nếu chữ ký số điện tử s không nằm trong giá trị từ 0 đến n-1, đầu ra
“Chữ ký số điện tử vƣợt quá giới hạn cho phép” và dừng.
2. Cho m = s e mod n.
3. Đầu ra là m.
3.3 Triển khai giải pháp xác thực người dùng SecurID