Mật mã Chữ ký điện tử
Chữ ký số là khóa công khai ban đầu của xác thực thông điệp. Trong thế giới vật lý, người ta thường sử dụng chữ ký viết tay trên các tin nhắn viết tay hoặc đánh máy. Chúng được sử dụng để ràng buộc người ký vào thông điệp.
Tương tự, chữ ký điện tử là một kỹ thuật liên kết một người / thực thể với dữ liệu kỹ thuật số. Ràng buộc này có thể được xác nhận độc lập bởi người nhận cũng như bất kỳ bên thứ ba nào.
Chữ ký điện tử là một giá trị mật mã được tính toán từ dữ liệu và một khóa bí mật chỉ người ký mới biết.
Trong thế giới thực, người nhận tin nhắn cần được đảm bảo rằng tin nhắn đó thuộc về người gửi và anh ta không thể phủ nhận nguồn gốc của thông điệp đó. Yêu cầu này rất quan trọng trong các ứng dụng kinh doanh, vì khả năng xảy ra tranh chấp về dữ liệu được trao đổi là rất cao.
Mô hình chữ ký số
Như đã đề cập trước đó, lược đồ chữ ký số dựa trên mật mã khóa công khai. Mô hình của lược đồ chữ ký số được mô tả trong hình minh họa sau:
Các điểm sau giải thích chi tiết toàn bộ quá trình:
Mỗi người áp dụng chương trình này có một cặp khóa công khai-riêng tư.
Nói chung, các cặp khóa được sử dụng để mã hóa / giải mã và ký / xác minh là khác nhau. Khóa cá nhân được sử dụng để ký được gọi là khóa chữ ký và khóa công khai là khóa xác minh.
Người ký cung cấp dữ liệu cho hàm băm và tạo dữ liệu băm.
Giá trị băm và khóa chữ ký sau đó được cung cấp cho thuật toán chữ ký tạo ra chữ ký số trên hàm băm đã cho. Chữ ký được thêm vào dữ liệu và sau đó cả hai đều được gửi đến người xác minh.
Người xác minh cung cấp chữ ký số và khóa xác minh vào thuật toán xác minh. Thuật toán xác minh cung cấp một số giá trị dưới dạng đầu ra.
Trình xác minh cũng chạy hàm băm tương tự trên dữ liệu nhận được để tạo giá trị băm.
Để xác minh, giá trị băm này và đầu ra của thuật toán xác minh được so sánh. Dựa trên kết quả so sánh, người xác minh quyết định xem chữ ký điện tử có hợp lệ hay không.
Vì chữ ký điện tử được tạo bởi khóa 'riêng tư' của người ký và không ai khác có thể có khóa này; người ký không thể từ chối việc ký dữ liệu trong tương lai.
Cần lưu ý rằng thay vì ký dữ liệu trực tiếp bằng thuật toán ký, thông thường một băm dữ liệu được tạo. Vì hàm băm của dữ liệu là một đại diện duy nhất của dữ liệu, nên chỉ cần ký hàm băm thay cho dữ liệu là đủ. Lý do quan trọng nhất của việc sử dụng hàm băm thay vì dữ liệu trực tiếp để ký là hiệu quả của chương trình.
Giả sử RSA được sử dụng làm thuật toán ký. Như đã thảo luận trong chương mã hóa khóa công khai, quá trình mã hóa / ký sử dụng RSA liên quan đến lũy thừa mô-đun.
Việc ký dữ liệu lớn thông qua lũy thừa mô-đun rất tốn kém về mặt tính toán và tốn thời gian. Hàm băm của dữ liệu là một bản tóm tắt dữ liệu tương đối nhỏ, do đósigning a hash is more efficient than signing the entire data.
Tầm quan trọng của chữ ký số
Trong số tất cả các nguyên bản về mật mã, chữ ký số sử dụng mật mã khóa công khai được coi là công cụ rất quan trọng và hữu ích để đạt được an toàn thông tin.
Ngoài khả năng cung cấp tính năng không từ chối thông điệp, chữ ký số còn cung cấp xác thực thông điệp và tính toàn vẹn dữ liệu. Hãy cùng chúng tôi xem sơ qua cách thức đạt được điều này bằng chữ ký điện tử -
Message authentication - Khi người xác minh xác thực chữ ký điện tử bằng khóa công khai của người gửi, người đó được đảm bảo rằng chữ ký chỉ được tạo ra bởi người gửi sở hữu khóa cá nhân bí mật tương ứng chứ không phải ai khác.
Data Integrity- Trong trường hợp kẻ tấn công có quyền truy cập vào dữ liệu và sửa đổi nó, việc xác minh chữ ký số ở đầu thu không thành công. Hàm băm của dữ liệu đã sửa đổi và đầu ra do thuật toán xác minh cung cấp sẽ không khớp. Do đó, người nhận có thể từ chối thông báo một cách an toàn giả sử rằng tính toàn vẹn của dữ liệu đã bị vi phạm.
Non-repudiation- Vì giả định rằng chỉ người ký mới có kiến thức về khóa chữ ký, anh ta chỉ có thể tạo chữ ký duy nhất trên một dữ liệu nhất định. Do đó, người nhận có thể xuất trình dữ liệu và chữ ký số cho bên thứ ba để làm bằng chứng nếu có tranh chấp phát sinh trong tương lai.
Bằng cách thêm mã hóa khóa công khai vào lược đồ chữ ký số, chúng tôi có thể tạo ra một hệ thống mật mã có thể cung cấp bốn yếu tố bảo mật thiết yếu là - Quyền riêng tư, Xác thực, Tính toàn vẹn và Không thoái thác.
Mã hóa bằng chữ ký số
Trong nhiều giao tiếp kỹ thuật số, người ta mong muốn trao đổi một thông điệp được mã hóa hơn là văn bản rõ ràng để đạt được tính bảo mật. Trong lược đồ mã hóa khóa công khai, khóa công khai (mã hóa) của người gửi có sẵn trong miền mở và do đó bất kỳ ai cũng có thể giả mạo danh tính của mình và gửi bất kỳ tin nhắn mã hóa nào đến người nhận.
Điều này làm cho người dùng sử dụng PKC để mã hóa tìm kiếm chữ ký số cùng với dữ liệu được mã hóa là điều cần thiết để đảm bảo xác thực tin nhắn và không từ chối.
Điều này có thể được lưu trữ bằng cách kết hợp chữ ký điện tử với sơ đồ mã hóa. Hãy để chúng tôi thảo luận ngắn gọn về cách đạt được yêu cầu này. Cótwo possibilities, sign-then-encrypt và encrypt-then-sign.
Tuy nhiên, hệ thống tiền điện tử dựa trên ký hiệu sau đó mã hóa có thể bị người nhận lợi dụng để giả mạo danh tính người gửi và gửi dữ liệu đó cho bên thứ ba. Do đó, phương pháp này không được ưa thích. Quá trình mã hóa-sau đó-ký là đáng tin cậy hơn và được áp dụng rộng rãi. Điều này được mô tả trong hình minh họa sau:
Người nhận sau khi nhận được dữ liệu được mã hóa và chữ ký trên đó, trước tiên sẽ xác minh chữ ký bằng khóa công khai của người gửi. Sau khi đảm bảo tính hợp lệ của chữ ký, anh ta truy xuất dữ liệu thông qua giải mã bằng khóa riêng của mình.