CHƯƠNG 3 LƯỢC ĐỒ CHỮ KÝ SỐ RSA
3.2 Ứng dụng của chữ ký số
Do có những thuộc tính rất quan trọng nên chữ ký số đã được sử dụng trên thực tế trong nhiều ứng dụng khác nhau:
Hệ thống thư tín điện tử (electronic mail system): sau khi một bên tạo ra bản tin, bên đó có thể ký và gửi sang bên thứ hai, sau khi xác minh bản tin nhận được, bên thứ hai có thể tin tưởng rằng bản tin đã được ký bởi bên thứ nhất, bên thứ hai cũng sẽ biết rằng bản tin đã không bị thay đổi sau khi bên thứ nhất đã ký nó.
Hệ thống chuyển tiền điện tử: chữ ký được sử dụng cho bản tin chuyển tiền trước khi nó được gửi đi và do vậy bên nhận sẽ xác minh được rằng bản tin nhận được là chính xác và yêu cầu chuyển tiền cũng không thể bị chối bỏ.
Các ứng dụng thương mại: thanh toán điện tử, trao đổi thông tin điện tử, điền vào các bản tin thuế và các tài liệu pháp quy khác, bán hàng trực tuyến và các giao dịch dùng card.
Bầu cử số (digital voting): người dân xác minh rõ ràng rằng phiếu bầu thuộc về họ, tránh việc bầu quá (over voting). Việc ứng dụng chữ ký số thúc đẩy phát triển Chính phủ điện tử.
Phân phối phần mềm: một chữ ký số được áp dụng cho phần mềm sau khi nó được hoàn thành và được chấp thuận để phân phát. Trước khi cài đặt phần mềm trên một máy tính, chữ ký cần được xác minh để chắc chắn rằng không có sự thay đổi nào ngoài thẩm quyền (ví dụ như sự thêm vào của một viruts). Chữ ký số cũng được xác minh một cách định kỳ để chắc chắn sự toàn vẹn của phần mềm.
Trong các ứng dụng cơ sở dữ liệu, sự toàn vẹn của thông tin lưu trữ trong cơ sở dữ liệu thường là điều cốt yếu. Thông tin có thể được ký khi được nhập vào cơ sở dữ liệu và khi được cập nhật hay sửa chữa và được xác minh tính toàn vẹn và sự thay đổi trước khi được hiển thị. Một số ứng dụng đang được triển khai là bảo vệ các hồ sơ của bệnh nhân trong các hệ thống chăm sóc sức khỏe.
Máy di động có thể là nơi chứa các chữ ký số, dùng để ký các hợp đồng, séc hoặc thanh toán điện tử (digital cash), các dịch vụ xác thực theo vị trí, v.v...
3.3 Xác thực thông điệp
Xác thực thông điệp là một thủ tục nhằm kiểm tra các thông điệp nhận được, xem chúng có đến từ một nguồn hợp lệ và có bị sửa đổi hay không. Xác thực thông điệp cũng có thể kiểm tra trình tự và tính đúng lúc. Có nhiều kỹ thuật để xác thực thông điệp: Ngay trong hệ mã bí mật người ta cũng đã đề cập đến việc xác thực thông điệp, chữ ký số cũng là một kỹ thuật xác thực, nó cũng bao gồm nhiều biện pháp để chống lại việc chối bỏ đã gửi hay nhận thông điệp.
Các hàm xác thực có thể được sử dụng để tạo ra dấu xác thực có thể chia thành ba loại: Mã hoá thông điệp, mã xác thực thông điệp và các hàm băm. ([3], [10])
3.3.1 Mã hoá thông điệp
Mã hoá thông điệp đảm bảo tính bí mật lẫn xác thực, quy trình thực hiện như sau:
i) Trước tiên A sử dụng khoá riêng của mình mã hoá thông điệp P để có
P E
s kda (thực hiện ký thông điệp)
ii) Tiếp tục dùng khoá công khai của B (nhằm đảm bảo tính bí mật) mã hoá chữ ký s để được bản mã
s E E P
E C
eb eb
eb k k
k
, C được gửi đến B.
B sử dụng khoá riêng của mình để giải mã thông điệp và sau đó dùng khoá công khai của A để xác thực chữ ký.
3.3.2 Kỹ thuật xác thực dùng khoá bí mật
Một kỹ thuật xác thực dùng khoá bí mật (hệ mã bí mật) để tạo ra một khối dữ liệu nhỏ có kích thước cố định được gọi là MAC. Có thể trình bày ngắn gọn như sau:
A và B có chung một khoá bí mật k. Khi A muốn gửi một thông điệp P cho B, quy trình được thực hiện như sau:
i) A tính toán MAC qua một hàm C với khoá k: MAC = Ck(P)
ii) Thông điệp P cùng với MAC được gửi cho B, B tiến hành tính toán MAC trên thông điệp nhận được tương tự như A đã tính, sau đó so sánh MAC tính được với MAC nhận được từ A. Nếu trùng khớp thì:
- B tin chắc rằng thông điệp không bị sửa đổi
- B đảm bảo được rằng thông điệp được gửi một cách hợp pháp từ A (vì chỉ có 2 người biết khoá bí mật nên không ai có thể chuẩn bị một thông điệp với một MAC hợp lệ)
Mã hoá đối xứng cung cấp tính xác thức và được sử dụng rộng rãi (nhưng không cung cấp chữ ký số vì cả A và B cùng dung chung một khoá).
Để đảm bảo tính bí mật trong truyền thông cần phải mã hoá thông điệp trước hoặc sau khi tính toán MAC. Trong trường hợp này, A và B cần phải có 2 khoá.
3.3.3 Các hàm băm
Một biến thể của MAC là hàm băm một chiều (one – way hash). Với các dữ liệu có độ dài khác nhau bất kỳ khi được cho qua một thuật toán one way hash thì sẽ được
“băm” ra thành các chuỗi có chiều dài khá nhỏ và cố định như nhau được gọi là dấu vết thông điệp (message digest). Thuật toán này bảo đảm rằng, nếu nội dung dữ liệu bị thay đổi (dù chỉ là 1 bit) thì kết quả của dấu vết thông điệp cũng sẽ thay đổi. Các giải thuật băm MD2, MD4, MD5 cho ra dấu vết thông điệp với chiều dài cố định là 128 bit,
còn SHA, SHA-1 là 160 bit, đây chính là yếu tố then chốt để kiểm tra tính toàn vẹn của dữ liệu.
Người ta thường sử dụng sự hỗ trợ của các hàm băm mật mã trong quá trình số hoá của các lược đồ ký. Hàm băm mật mã phải có tính chất sau:
Là hàm một chiều
Không tìm được xung đột: tức là rất khó để tìm hai văn bản P và P’ có cùng mã băm.
Một dấu vết thông điệp phải có hai thuộc tính thiết yếu sau:
Nếu một bit hoặc một vài bit của dữ liệu bị thay đổi thì dấu vết thông điệp cũng bị thay đổi.
Một ai đó có muốn giả mạo thì cũng không thể đưa ra một thông điệp giả cùng với một dấu vết thông điệp tương ứng giống như bản gốc trong thời gian chấp nhận được.
Một số các thuật toán đã từng được thiết kế để tính toán các dấu vết thông điệp. Có hai thuật toán tốt nhất được biết đến là MD5- một thuật toán được phát minh bởi Ronald Rivest của MIT và SHA-1 được phát triển bởi National Institute of Standard and Technology.