Chữ ký điện tử

Một phần của tài liệu tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa (Trang 29 - 33)

1. Tổng quan

Trong cuộc sống hàng ngày, ta cần dùng chữ ký để xác nhận các văn bản tài liệu nào đó và có thể dùng con dấu với giá trị pháp lý cao hơn đi kèm với chữ ký.

Cùng với sự phát triển nhanh chóng của công nghệ thông tin, các văn bản tài liệu được lưu dưới dạng số, dễ dàng được sao chép, sửa đổi. Nếu ta sử dụng hình thức chữ ký truyền thống như trên sẽ rất dễ dàng bị giả mạo chữ ký. Vậy làm sao để có thể ký vào các văn bản, tài liệu số như vậy?

Câu trả lời đó là sử dụng chữ ký điện tử! Chữ ký điện tử đi kèm với các thông tin chủ sở hữu và một số thông tin cần thiết khác sẽ trở thành Chứng chỉ điện tử.

Chữ ký điện tử (tiếng Anh: electronic signature) là thông tin đi kèm theo dữ liệu (văn bản, hình ảnh, video...) nhằm mục đích xác định người chủ của dữ liệu đó.

Một sơ đồ chữ ký điện tử là bộ 5 (P, A, K, S, V) thoả mãn các điều kiện dưới đây: 1) P là tập hữu hạn các bức điện (thông điệp, bản rõ) có thể.

2) A là tập hữu hạn các chữ ký có thể.

3) K là tập không gian khoá (tập hữu hạn các khoá có thể).

4) Với mỗi khoá K € k tồn tại một thuật toán ký SigK € S và một thuật toán xác minh VerK € V. Mỗi Sigk: P → A và verK: P x A → {TRUE, FALSE} là những hàm sao cho mỗi bức điện x P và mỗi chữ ký y A thoả mãn phương trình dưới đây:

True nếu y = sig(x)

Ver (x, y) =

False nếuy ≠ sig(x).

Với mỗi K € k, hàm SigK và VerK là các hàm đa thức thời gian. Hàm VerK sẽ là hàm công khai còn hàm SigK là bí mật. Không thể dễ dàng tính toán để giả mạo chữ ký của B trên bức điện x, nghĩa là với x cho trước chỉ có B mới có thể tính được y để

Ver(x, y) = TRUE. Một sơ đồ chữ ký không thể an toàn vô điều kiện vì một người C nào đó có thể kiểm tra tất cả chữ số y trên bức điện x nhờ dùng thuật toán Ver()

công khai cho tới khi anh ta tìm thấy chữ ký đúng. Vì thế, nếu có đủ thời gian, C luôn có thể giả mạo chữ ký của B. Như vậy mục đích của chúng ta là tìm các sơ đồ chữ ký điện tử an toàn về mặt tính toán [1 – tr116].

Chữ ký điện tử được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế, chữ ký điện tử cũng cần đảm bảo các chức năng: Xác định được người chủ của một dữ liệu nào đó ví dụ văn bản, ảnh, video, ... dữ liệu đó có bị thay đổi hay không.

Hai khái niệm chữ ký số (digital signature) và chữ ký điện tử thường được dùng thay thế cho nhau mặc dù chúng không hoàn toàn có cùng nghĩa. Chữ ký số chỉ là

một tập con của chữ ký điện tử (chữ ký điện tử bao hàm chữ ký số).

Một chữ ký điện tử sẽ là một chữ ký số nếu nó sử dụng một phương pháp mã hóa nào đó để đảm bảo tính toàn vẹn (thông tin) và tính xác thực. Ví dụ như một bản dự thảo hợp đồng soạn bởi bên bán hàng gửi bằng email tới người mua sau khi được ký (điện tử). [1- tr117]

Một văn bản được ký có thể được mã hóa khi gửi nhưng điều này không bắt buộc. Việc đảm bảo tính bí mật và tính toàn vẹn của dữ liệu có thể được tiến hành độc lập.

2. Quy trình sử dụng chữ ký điện tử

Chữ ký điện tử hoạt động dựa trên hệ thống mã hóa khóa công khai. Hệ thống mã hóa này gồm hai khóa, khóa bí mật và khóa công khai. Mỗi chủ thể có một cặp khóa như vậy, chủ thể đó sẽ giữ khóa bí mật, còn khóa công khai của chủ thể sẽ được đưa ra công cộng để bất kỳ ai cũng có thể biết. Nguyên tắc của hệ thống mã hóa khóa công khai đó là, nếu mã hóa bằng khóa bí mật thì chỉ khóa công khai mới giải mã đúng thông tin được, và ngược lại, nếu mã hóa bằng khóa công khai, thì chỉ có khóa bí mật mới giải mã đúng được.

Ngoài ra, chữ ký còn đảm bảo phát giác được bất kỳ sự thay đổi nào trên dữ liệu đã được “”. Để ký lên một văn bản, phần mềm ký sẽ nghiền (crunch down) dữ liệu để gói gọn bằng một vài dòng, được gọi là thông báo tóm tắt, bằng một tiến trình được gọi là “kỹ thuật băm”, rồi tạo thành chữ ký điện tử. Cuối cùng, phần mềm ký tên sẽ gắn chữ ký điện tử này vào văn bản.

Ví dụ: Giả sử bên A có tài liệu P cần ký. Bên A sẽ thực hiện băm văn bản thành một bản tóm lược X, sau đó dùng khóa bí mật của mình ký lên bản tóm lược X để được văn bản chữ ký điện tử Y, sau đó gửi tài liệu P kèm theo chữ ký Y cho A.

Giả sử B muốn xác nhận tài liệu P là của A, với chữ ký là bản mã Y. Bên B sẽ dùng khóa công khai của A để xác nhận chữ ký Y của A ký trên văn bản P gửi có

đúng hay không, nếu xác nhận đúng thì chữ ký Y chính là A ký trên văn bản P, ngược lại thì không phải hoặc bản ký đã được thay đổi.

Một số trường hợp xảy ra với chữ ký điện tử, cũng giống như các trường hợp xảy ra với chữ ký truyền thống. Ví dụ: Khi tài liệu TL của A bị thay đổi (dù chỉ một ký tự, một dấu chấm, hay một ký hiệu bất kỳ), khi B xác nhận, anh ta sẽ thấy bản giải mã khác với tài liệu TL của anh A. B sẽ kết luận rằng tài liệu đó đã bị thay đổi, không phải là tài liệu anh A đã ký.

Trường hợp khác, nếu A để lộ khóa bí mật, nghĩa là văn bản tài liệu của A có thể ký bởi người khác có khóa bí mật của A. Khi một ai đó xác nhận tài liệu được cho là của A ký, chữ ký vẫn là hợp lệ, mặc dù không phải chính A ký. Như vậy, chữ ký của A sẽ không còn giá trị pháp lý nữa. Do đó, việc giữ khóa bí mật là tuyệt đối quan trọng trong hệ thống chữ ký điện tử.

Trong trường hợp ví dụ trên, A có một cặp khóa để có thể ký trên văn bản, tài liệu số. Tương tự như vậy, B hay bất cứ ai sử dụng chữ ký điện tử, đều có một cặp khóa như vậy. Khóa bí mật được giữ riêng, còn khóa công khai được đưa ra công cộng. Vậy vấn đề đặt ra là làm thế nào để biết một khóa công khai thuộc về A, B hay một người nào đó?

Hơn nữa, giả sử trong môi trường giao dịch trên Internet, cần sự tin cậy cao, A muốn giao dịch với một nhân vật X. X và A cần trao đổi thông tin cá nhân cho nhau, các thông tin đó gồm họ tên, địa chỉ, số điện thoại, email… Vậy làm sao để A có thể chắc chắn rằng mình đang giao dịch với nhân vật X chứ không phải là ai khác giả mạo X? Chứng chỉ số được tạo ra để giải quyết vấn đề này! Chứng chỉ số có cơ chế để xác nhận thông tin chính xác về các đối tượng sử dụng chứng chỉ số. Thông tin giữa A và X sẽ được xác nhận bằng một bên trung gian mà A và X tin tưởng.

một chứng chỉ số của riêng mình, CA sẽ cấp chứng chỉ số cho A và X cũng như những đối tượng khác. (adsbygoogle = window.adsbygoogle || []).push({});

Trở lại vấn đề trên, A và X sẽ có cách kiểm tra thông tin của nhau dựa trên chứng chỉ số như sau: khi A giao dịch với X, họ sẽ chuyển chứng chỉ số cho nhau, đồng thời họ cũng có chứng chỉ số của CA, phần mềm tại máy tính của A có cơ chế để kiểm tra chứng chỉ số của X có hợp lệ không, phần mềm sẽ kết hợp chứng chỉ số của nhà cung cấp CA và chứng chỉ của X để thông báo cho A về tính xác thực của đối tượng X.

Nếu phần mềm kiểm tra và thấy chứng chỉ của X là phù hợp với chứng chỉ CA, thì A có thể tin tưởng vào X.

Cơ chế chữ ký điện tử và chứng chỉ số sử dụng các thuật toán mã hóa đảm bảo không thể giả mạo CA để cấp chứng chỉ không hợp pháp, mọi chứng chỉ giả mạo đều có thể dễ dàng bị phát hiện.

Trở lại với việc ký văn bản, tài liệu, khóa bí mật sẽ dùng để ký các văn bản, tài liệu của chủ sở hữu. Như đã đề cập trong ví dụ ở trên, giả sử A muốn gửi một văn bản kèm với chữ ký của mình trên văn bản đó, A sẽ dùng khóa bí mật để mã hóa thu được bản mã văn bản, bản mã đó chính là chữ ký điện tử của A trên văn bản.

Khi A gửi văn bản và chữ ký, để người khác có thể xác nhận văn bản của mình với thông tin đầy đủ về chủ sở hữu, A sẽ gửi cả chứng chỉ của mình đi kèm với văn bản.

Giả sử X nhận được văn bản A gửi kèm với chứng chỉ, khi đó X có thể dễ dàng xác nhận tính hợp pháp của văn bản đó.

3. Một số sơ đồ CKĐT phổ biếna. Rivest Shamir Adleman (RSA) a. Rivest Shamir Adleman (RSA)

Một phần của tài liệu tìm hiểu về chữ ký điện tử và cài đặt chương trình minh họa (Trang 29 - 33)