Sự an toàn của sơ đồ chữ ký dựa vào độ phức tạp của bài toán phân tích số n ra thừa số nguyên tố.
Việc chọn các giá trị p, q, e có ý nghĩa quyết định đến sự bí mật của khóa riêng d, cần chọn các giá trị này đủ lớn. Một số sơ hở mà ngƣời thám mã có thể lợi dụng để tấn công hệ mã hóa RSA:
1) Dùng chung modulo n. 2) Dùng số mũ lập mã e nhỏ.
3) Lợi dụng tính nhân của hàm lập mã. 4) Tấn công bằng cách lặp phép mã.
5) Có những bản rõ không che dấu đƣợc: Đó là các bản rõ mà có bản mã bằng chính nó x = xe mod n, ví dụ x = -1, 0, 1 vì e là số lẻ nên lũy thừa số mũ e của các số này sẽ bằng chính nó. Ngƣời ta chứng minh đƣợc rằng nếu n = p.q thì số các bản rõ x Zn không che dấu đƣợc là:
(1+gcd(e-1, p-1)).(1+gcd(e-1, q-1))
Vì e-1, p-1, q-1 chẵn nên giá trị trên ít nhất là 9, nên mỗi hệ RSA có ít nhất 9 bản rõ không đƣợc che dấu.
2.5. HÀM BĂM VÀ ĐẠI DIỆN THÔNG ĐIỆP
2.5.1. Đặt vấn đề
Trong các sơ đồ chữ ký số, chữ ký thƣờng đƣợc xác định cho từng khối thông điệp, nếu thông điệp gồm nhiều khối thì chữ ký trên toàn bộ thông điệp là do ghép chữ ký trên từng khối lại với nhau; mà chữ ký trên từng khối thông thƣờng có độ dài bằng (hoặc thậm chí gấp đôi) độ dài khối thông điệp, do đó chữ ký thƣờng có độ dài tƣơng đƣơng hoặc lớn hơn độ dài khối thông điệp, thời gian ký sẽ tỷ lệ thuận với độ dài của thông điệp. Vì vậy nếu một thông điệp có kích thƣớc lớn thì ngoài việc tốn nhiều bộ nhớ để lƣu trữ chữ ký thì còn phải chi phí cao về thời gian ký và thẩm tra chữ ký. Hơn nữa nếu các thông điệp cùng chữ ký đƣợc truyền trên mạng thì các chữ ký với kích thƣớc nhỏ sẽ đem lại nhiều lợi ích nhƣ chi phí truyền thông thấp hơn, thời gian truyền thông nhanh hơn. Tóm lại, ngoài các yêu cầu về tính bảo mật, an toàn thì cần có yêu cầu về tính hiệu quả của chữ ký số.
Ví dụ với sơ đồ chữ ký chuẩn DSS chỉ ký trên các thông điệp có kích thƣớc 160 bit, bản ký số sẽ có kích thƣớc 320 bit. Trong khi đó trên thực tế, ta cần phải ký các thông điệp có kích thƣớc lớn hơn nhiều, chẳng hạn hàng chục MegaByte. Một cách để giải bài toán này là chia thông điệp thành nhiều đoạn 160 bit, sau đó ký lên các đoạn đó độc lập nhau. Nhƣng biện pháp này có một số vấn đề trong việc tạo ra các chữ ký số:
- Với các chữ ký an toàn thì tốc độ chậm vì chúng dùng nhiều phép tính số học phức tạp nhƣ số mũ modulo.
- Sau khi ký, nội dung của thông điệp có thể bị xáo trộn các đoạn với nhau, hoặc một số đoạn trong chúng có thể bị mất mát.
Để giải quyết những vấn đề trên ngƣời ta dùng khái niệm Hàm băm và đại diện thông điệp [2, 3, 7].
2.5.2. Đại diện thông điệp
Đối với chữ ký số vì chữ ký đƣợc ký cho từng bit của thông điệp nên muốn có chữ ký độ dài hạn chế trên thông điệp có độ dài tùy ý thì phải tìm cách rút ngắn độ dài thông điệp, nhƣng bản thân thông điệp không thể rút ngắn đƣợc vì sẽ làm thay đổi nội dung, do đó nên chỉ còn cách là tìm cho mỗi thông điệp một bản “đại diện”(compact representative image) của thông điệp (hay còn gọi là bản “tóm lược”, “dấu vết” - massage digest của thông điệp).
Thay cho việc ký trên toàn bộ thông điệp ta ký trên bản đại diện đó và xem chữ ký trên bản đại diện có tƣ cách nhƣ chữ ký trên thông điệp. Vậy bản đại diện thông điệp đƣợc tạo ra và phải có những tính chất nhƣ thế nào để đủ tƣ cách là “đại diện” cho thông điệp?
Có các thuộc tính thiết yếu sau với một đại diện thông điệp:
- Là xâu bit nhị phân có kích thƣớc không lớn, không phụ thuộc vào độ dài văn bản, ngoài ra xâu bit này đƣợc tính ra với tốc độ nhanh.
- Nếu có sự sửa đổi thông điệp thì đại diện thông điệp cũng bị thay đổi theo. - Không thể tạo ra một thông điệp có bản đại diện cho trƣớc trong thời gian
chấp nhận đƣợc.
Để tạo ra các bản đại diện thông điệp người ta dùng hàm băm.
Hình 3: Minh họa hàm băm và đại diện thông điệp
Th«ng ®iÖp ®Çu vµo x
d¹ng v¨n b¶n, h×nh ¶nh, ©m thanh
KÝch th-íc tïy ý
Đại diện của x z = h(x) Kích thƣớc nhỏ, cố định Thông điệp x Kích thƣớc tùy ý Hàm băm h(x)