Skip to main content

Hiểu về Chữ ký một lần

Ngày 20 tháng 01 năm 2024 - Chia sẻ bài viết này trên Twitter | FacebookTelegram

Vào năm 2020, nhóm IOG đã xuất bản tác phẩm Chữ ký một lần (One-Shot Signatures) và ứng dụng cho Xác thực lượng tử/cổ điển lai. Công việc này vốn đã không được chú ý. Nó chỉ được biết đến trong cộng đồng Cardano. Nhóm Ethereum gần đây đã phát hiện ra công việc này và rất hào hứng với nó. Một hội thảo hợp tác giữa Đại học Edinburgh, IOG và nhóm Ethereum đã được lên kế hoạch. Chữ ký một lần mang lại mật mã tiên tiến để bảo mật tốt hơn hoạt động của blockchain. Ngoài ra, nó cho phép tạo ra những thứ như crypto không cần Blockchain (blockchain-less cryptocurrency). Trong bài viết này, chúng tôi sẽ giải thích các nguyên tắc cơ bản của Chữ ký một lần.

Hệ thống hỗn hợp

Sơ đồ Chữ ký một lần là một hệ thống lai kết hợp các nguyên tắc từ cơ học lượng tử với các phương pháp truyền thống cổ điển.

Các phương thức giao tiếp cổ điển bao gồm các công nghệ internet truyền thống để truyền dữ liệu (giao thức) và các sơ đồ mật mã cổ điển, chẳng hạn như mật mã khóa công khai.

Và mặc dù hệ thống cho phép thực hiện các hoạt động lượng tử cục bộ (chi tiết hơn ở phần sau), việc truyền thông tin thực tế được thực hiện bằng các phương pháp cổ điển này. Cách tiếp cận này cho phép thực hiện các nguyên lý lượng tử theo cách tương thích với các công nghệ hiện có.

Hệ thống này sử dụng nguyên lý không nhân bản lượng tử, đây là một định đề cơ bản của cơ học lượng tử nói rằng không thể tạo ra một bản sao giống hệt của một trạng thái lượng tử chưa biết tùy ý.

Nguyên tắc này đảm bảo rằng một khi khóa bí mật được sử dụng thì nó không thể bị sao chép hoặc sử dụng lại. Đây là một khía cạnh quan trọng của tính bảo mật được cung cấp bởi Chữ ký một lần. Bất kỳ khóa bí mật nào cũng có thể được sử dụng để ký chỉ một tin nhắn. Sau đó chìa khóa sẽ tự hủy. Điều này không thể đạt được trong mật mã cổ điển.

Trong mật mã cổ điển, chủ sở hữu khóa bí mật (khóa riêng) có thể ký bao nhiêu tin nhắn tùy thích. Không có cách nào để ngăn việc ký nhiều tin nhắn (có thể đạt được biện pháp giảm thiểu thông qua một số hệ thống bộ đếm và dấu thời gian xác định thứ tự của tin nhắn) hoặc ngăn chặn việc chia sẻ khóa giữa nhiều người.

Hệ thống Chữ ký một lần là một loại hệ thống toán học kết hợp các nguyên tắc từ cơ học lượng tử để cung cấp các tính năng bảo mật nâng cao. Nhưng nó cũng là một hệ thống lai kết hợp các nguyên lý lượng tử này với các phương pháp truyền thông cổ điển.

Hiểu nguyên tắc không nhân bản lượng tử

Tôi không có tham vọng giải thích cơ học lượng tử một cách chi tiết. May mắn thay, bạn chỉ cần hiểu nguyên lý lượng tử không nhân bản. Hệ thống Chữ ký một lần sử dụng nguyên tắc này nhưng thực hiện nó thông qua các phương pháp cổ điển.

Hãy giải thích nguyên lý không nhân bản lượng tử bằng một ví dụ đơn giản.

Hãy tưởng tượng bạn có một chiếc hộp kỳ diệu có thể tạo ra một loại kẹo độc đáo mỗi khi bạn mở nó ra. Mỗi viên kẹo đều có một hương vị đặc biệt mà bạn chưa từng nếm thử trước đây.

Bây giờ, giả sử bạn thực sự thích một trong những chiếc kẹo và muốn tạo một bản sao chính xác của nó.

Trong thế giới cơ học lượng tử, điều này giống như cố gắng sao chép một trạng thái lượng tử. Nhưng đây là điểm mấu chốt: nguyên tắc không nhân bản nói rằng bạn không thể tạo một bản sao chính xác của chiếc kẹo đó. Cho dù bạn có cố gắng thế nào đi chăng nữa, bạn cũng không thể tạo lại được hương vị giống hệt như vậy nữa.

Trong bối cảnh Chữ ký một lần, nguyên tắc này được sử dụng để đảm bảo rằng một khi khóa bí mật (hãy coi nó như viên kẹo đặc biệt) được sử dụng, nó sẽ không thể được sao chép hoặc sử dụng lại. Điều này làm cho hệ thống rất an toàn vì không ai khác có thể tạo lại viên kẹo đặc biệt (hoặc khóa bí mật) của bạn.

Trong hình ảnh bên dưới, mỗi chiếc chìa khóa trong hộp magic là duy nhất (không thể sao chép được).

Tương tự như chiếc kẹo, 'chiếc hộp magic' có thể được coi như một hệ lượng tử, và việc tạo ra một loại kẹo độc đáo có thể được coi là một hoạt động lượng tử cục bộ.

Như bạn sẽ thấy sau, hoạt động lượng tử cục bộ là một phần của quá trình trong quá trình tương tác giữa những người tham gia.

Trong các hệ lượng tử thực, một hoạt động lượng tử cục bộ có thể giống như chuẩn bị trạng thái lượng tử hoặc thực hiện phép đo trên một phần của hệ thống. Các hoạt động này là 'cục bộ' bởi vì chúng được thực hiện trên các bộ phận riêng lẻ của hệ lượng tử, độc lập với các bộ phận khác.

Ví dụ, hãy tưởng tượng bạn có hai chiếc hộp magic (hai phần của hệ lượng tử). Bạn có thể mở một hộp để tạo kẹo (thực hiện thao tác lượng tử cục bộ) mà không ảnh hưởng đến hộp kia. Đây chính là ý nghĩa của từ 'địa phương' trong các hoạt động lượng tử cục bộ.

Trong bối cảnh mật mã lượng tử, các hoạt động lượng tử cục bộ này được sử dụng để thao tác thông tin lượng tử, chẳng hạn như các khóa bí mật được sử dụng trong Chữ ký một lần.

Sử dụng hệ thống Chữ ký một lần

Tôi sẽ chỉ cho bạn một ví dụ thể hiện rõ nhất sức mạnh của hệ thống Chữ ký một lần, vì nó cho phép tương tác giữa Alice và Bob mà mật mã cổ điển không thể đạt được.

Hãy xem xét nhiệm vụ của ủy quyền chữ ký. Alice mong muốn cho phép Bob thay mặt cô ký một tin nhắn. Carol có khóa chung để xác minh tin nhắn.

Alice chỉ có thể đưa cho Bob khóa bí mật của mình, nhưng điều này sẽ cho phép Bob ký bất kỳ số lượng tin nhắn nào.

Trong hình ảnh bên dưới, bạn có thể thấy kịch bản sẽ trông như thế nào khi sử dụng mật mã cổ điển. Alice sẽ chia sẻ khóa bí mật với Bot. Bob có thể ký tin nhắn. Carol sẽ sử dụng khóa xác minh (công khai) để xác minh tính hoàn tất của tin nhắn.

Thay vào đó, Alice muốn cung cấp cho Bob đủ thông tin để đảm bảo rằng sau đó Bob có thể ký một tin nhắn tùy ý mà Alice không cần thực hiện thêm bất kỳ hành động nào. Điều quan trọng là chúng tôi muốn thông báo chỉ được quyết định sau khi Alice chuyển thông tin này cho Bob.

Tất nhiên, như đã trình bày ở trên, nhiệm vụ này là không thể thực hiện được trong một thế giới thuần túy cổ điển, vì Bob có thể sử dụng lại bất kỳ thông tin nào anh ấy học được từ Alice. Trong mật mã khóa công khai truyền thống, một khóa riêng có thể được sử dụng để ký nhiều tin nhắn.

Người ta có thể hy vọng rằng Alice có thể cung cấp cho Bob một token ký lượng tử, token này sẽ tự hủy sau khi ký tin nhắn. Bằng cách không nhân bản lượng tử (có nghĩa là không thể sao chép các trạng thái lượng tử chưa biết chung) Bob không thể sao chép token và do đó chỉ có thể ký một tin nhắn duy nhất.

Trong hình, bạn có thể thấy Alice tạo token lượng tử mà cô ấy gửi cho Bob. Bob chỉ có thể ký một tin nhắn bằng token. Token sau đó sẽ tự hủy. Bob không thể ký tin nhắn khác.

Lưu ý rằng Alice phải có thể chuyển bí mật mật mã cho Bob theo một cách cụ thể. Bob không cần phải được cho phép sao chép các bí mật mật mã. anh ấy chỉ có thể sử dụng nó một lần, tức là thực hiện Chữ ký một lần cho tin nhắn. Token ký lượng tử đã được sử dụng để truyền bí mật mật mã.

Alice có thể tạo một khóa bí mật (được biểu thị bằng trạng thái lượng tử) và chuyển nó cho Bob. Sau đó, khóa bí mật này có thể được Bob sử dụng để ký một tin nhắn thay mặt Alice.

Tuy nhiên, điều quan trọng cần lưu ý là cả Alice và Bob đều không thể biết giá trị chính xác của khóa.

Điều này là do nguyên lý không nhân bản lượng tử, trong đó nêu rõ rằng không thể tạo ra một bản sao chính xác của một trạng thái lượng tử chưa biết tùy ý.

Và trong khi Alice và Bob có thể sử dụng khóa để ký và xác minh tin nhắn, họ không thể nhìn thấy hoặc sao chép khóa.

Khi Bob sử dụng khóa bí mật để ký tin nhắn, khóa đó sẽ tự hủy và không thể sử dụng lại được. Điều này đảm bảo tính bảo mật của hệ thống vì nó ngăn chặn mọi hành vi lạm dụng khóa bí mật có thể xảy ra.

Đây là bản chất của sự đổi mới do hệ thống Chữ ký một lần mang lại.

Chúng ta sẽ quay lại kịch bản này sau khi giải thích các phép toán lượng tử cục bộ.

Tương tác giữa Alice và Bob

Với Chữ ký một lần, có thể cùng một khóa chung có thể được liên kết với nhiều khóa riêng, mỗi khóa có thể được sử dụng một lần để ký.

Tuy nhiên, chi tiết cụ thể về cách tạo và sử dụng khóa chung và khóa riêng sẽ phụ thuộc vào việc triển khai cụ thể hệ thống Chữ ký một lần.

Đối với các trường hợp sử dụng cụ thể, điều quan trọng là phải đảm bảo rằng những người tham gia bị hạn chế về khả năng tạo ra các bí mật mật mã mới (ví dụ: token lượng tử). Hiệu ứng này có thể tương tự như việc sử dụng đi sử dụng lại cùng một khóa riêng.

Nói chung, trong các hệ thống mật mã, các cơ chế được đưa ra để đảm bảo tính toàn vẹn và xác thực của chữ ký. Các cơ chế này có thể bao gồm việc sử dụng dấu thời gian, số thứ tự hoặc các hình thức lưu giữ đề xuất khác để theo dõi việc sử dụng khóa bí mật.

Như đã giải thích trong phần giới thiệu, sơ đồ Chữ ký một lần là một hệ thống lai sử dụng nguyên lý cơ học lượng tử nhưng được triển khai đầy đủ thông qua sơ đồ mật mã cổ điển (và sử dụng giao thức internet để cho phép liên lạc giữa những người tham gia).

Các sơ đồ mật mã cổ điển đề cập đến các phương pháp mã hóa và giải mã thông tin truyền thống, chẳng hạn như thuật toán khóa đối xứng (trong đó cùng một khóa được sử dụng để mã hóa và giải mã) và thuật toán khóa bất đối xứng (trong đó các khóa khác nhau được sử dụng để mã hóa và giải mã).

Mật mã cổ điển được sử dụng để thực hiện các hoạt động lượng tử cục bộ.

Sự tương tác giữa Alice và Bob được thực hiện đầy đủ bằng các phương pháp cổ điển. Tuy nhiên, một phần quan trọng của quá trình tương tác là việc tạo ra (mô phỏng) trạng thái lượng tử.

Hoạt động lượng tử cục bộ đề cập đến các hoạt động lượng tử được thực hiện cục bộ, tức là trên các phần riêng lẻ của hệ lượng tử, như một phần của sơ đồ Chữ ký một lần.

Trong một kịch bản điển hình, một bên thực hiện thao tác lượng tử cục bộ trên phần hệ thống lượng tử của họ. Kết quả của hoạt động này sau đó được thông báo cho bên kia bằng cách sử dụng giao tiếp cổ điển. Dựa trên thông tin này, bên thứ hai có thể thực hiện hoạt động lượng tử cục bộ của họ.

Trong hệ thống Chữ ký một lần, các bên thao tác và trao đổi thông tin lượng tử. Họ thực hiện các phép toán lượng tử cục bộ như một phần của sơ đồ chữ ký, với kết quả được truyền đạt một cách cổ điển.

Đây là quy trình từng bước được đơn giản hóa:

  1. Người gửi thực hiện một hoạt động lượng tử cục bộ trên phần hệ thống lượng tử của họ. Hoạt động này có thể liên quan đến việc chuẩn bị trạng thái lượng tử hoặc thực hiện phép đo.
  2. Sau đó, người gửi sẽ thông báo kết quả của thao tác này cho người nhận bằng cách sử dụng giao tiếp cổ điển.
  3. Khi nhận được thông tin này, người nhận có thể thực hiện hoạt động lượng tử cục bộ của riêng họ. Hoạt động này có thể được điều chỉnh dựa trên thông tin nhận được từ người gửi.
  4. Hoạt động của người nhận có thể liên quan đến việc xác minh tin nhắn của người gửi, giải mã thông tin hoặc thực hiện một số tác vụ khác có liên quan đến giao thức.

Khóa không thể nhân bản

Khái niệm khóa không thể nhân bản trong mật mã lượng tử có liên quan chặt chẽ với định lý không nhân bản trong cơ học lượng tử.

Điều này có nghĩa là một khi trạng thái lượng tử (có thể đại diện cho khóa bí mật) được sử dụng, nó sẽ không thể được sao chép hoặc sao chép. Điều này cung cấp mức độ bảo mật cơ bản, vì nó ngăn chặn bất kỳ kẻ nghe trộm tiềm năng nào tạo ra một bản sao của trạng thái lượng tử và từ đó có được quyền truy cập vào khóa bí mật.

Bây giờ chúng ta hãy quay lại kịch bản từ đầu bài viết khi Alice muốn ủy quyền cho Bob quyền ký tin nhắn thay cho cô ấy. Chúng tôi sẽ giải thích cách tạo token ký lượng tử.

Alice có thể tạo một khóa bí mật (được biểu thị bằng trạng thái lượng tử) và chuyển nó cho Bob. Sau đó, khóa bí mật này có thể được Bob sử dụng để ký một tin nhắn thay mặt Alice.

Hãy nhớ lại rằng không người tham gia nào biết giá trị của khóa.

Khi Bob sử dụng khóa bí mật để ký tin nhắn, trạng thái lượng tử không còn giá trị để sử dụng tiếp. Và không thể tạo một bản sao.

Trong thuật ngữ lượng tử, người ta nói rằng trạng thái lượng tử 'sụp đổ' khi một phép đo được thực hiện. Hành động sử dụng khóa bí mật để ký tin nhắn có thể được coi là một loại phép đo, khiến trạng thái lượng tử sụp đổ. Sau sự sụp đổ này, trạng thái lượng tử (tức là khóa bí mật) không thể được sử dụng lại.

Bây giờ chúng ta hãy xem xét kịch bản từng bước một. Chúng tôi sẽ chỉ ra cách tạo một khóa bí mật và sau đó tự hủy.

Alice thực hiện một phép toán lượng tử cục bộ (trạng thái lượng tử X) trong đó khóa riêng X được tạo. Alice gửi khóa X cho Bob dưới dạng token ký lượng tử (hộp bảo vệ giá trị của khóa X).

Bob thực hiện một phép toán lượng tử cục bộ (trạng thái lượng tử Y) trong đó thông điệp được ký. Đầu vào của hoạt động này là token ký lượng tử chứa khóa riêng X. Đầu ra của hoạt động là một thông báo được ký bởi khóa riêng X. Chữ ký tin nhắn khởi tạo sự sụp đổ của trạng thái lượng tử.

Tại thời điểm Bob ký tin nhắn bằng khóa riêng X, trạng thái lượng tử X sụp đổ, tức là khóa riêng X cũng tự hủy.

Tại thời điểm này trong kịch bản, không thể sao chép khóa riêng X hoặc sử dụng lại nó. Chưa ai từng biết giá trị của nó và sẽ không bao giờ biết. Kết quả là một tin nhắn đã ký.

Tôi hy vọng bây giờ bạn đã hiểu khái niệm về khóa không thể sao chép được.

Lời kết

Chữ ký một lần có nhiều ứng dụng bao gồm token Chữ ký một lần (ví dụ của chúng tôi), tiền lượng tử, crypto phi tập trung không cần Blockchain, sơ đồ chữ ký với khóa bí mật không thể sao chép, entropy tối thiểu có thể chứng nhận không tương tác, v.v. Hệ thống Chữ ký một lần là một khối xây dựng mới mạnh mẽ cho các giao thức mật mã lượng tử mới.

Nhóm IOG đã tạo Chữ ký một lần để cải thiện tính bảo mật của Cardano. Hệ thống có thể giúp ngăn chặn các cuộc tấn công chuỗi dài trong mạng PoS bằng cách đảm bảo rằng bất kỳ khóa bí mật nào cũng có thể được sử dụng để chỉ ký một khối duy nhất và sau đó tự hủy. Cardano có thể cung cấp sự đảm bảo bảo mật mạnh mẽ hơn bằng cách thay thế cơ chế KES bằng Chữ ký một lần. Kẻ tấn công không thể sử dụng các khóa bí mật cũ để viết lại toàn bộ lịch sử của Blockchain vì những khóa này sẽ không tồn tại sau khi ký các khối. Điều này ngăn chặn hiệu quả các cuộc tấn công chuỗi dài và tăng cường tính bảo mật của mạng PoS. Chúng ta sẽ nói đến điều này chi tiết hơn vào lần tới.

Nguồn bài viết tại đây

Xem thêm bài nói chuyện của Charles Hoskinson về chữ ký một lần.


Picture

Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới