Tìm hiểu về thuật toán PQXDH – Thiết lập mã khóa chung giữa 2 thiết bị | nhavantuonglai
Thuật toán PDXDH là phương pháp trao đổi khóa tiên tiến sử dụng phép ghép đôi cryptographic trên các đường cong elliptic, mang đến giải pháp an ninh thông tin vượt trội so với các phương pháp truyền thống.

Tìm hiểu về thuật toán PQXDH – Thiết lập mã khóa chung giữa 2 thiết bị

Thuật toán PDXDH là phương pháp trao đổi khóa tiên tiến sử dụng phép ghép đôi cryptographic trên các đường cong elliptic, mang đến giải pháp an ninh thông tin vượt trội so với các phương pháp truyền thống.

36 phút đọc  · lượt xem.

Thuật toán PDXDH là phương pháp trao đổi khóa tiên tiến sử dụng phép ghép đôi cryptographic trên các đường cong elliptic, mang đến giải pháp an ninh thông tin vượt trội so với các phương pháp truyền thống.

Giới thiệu

Bài viết này mô tả giao thức thỏa thuận khóa PQXDH (Post Quantum Extended Diffie – Hellman). PQXDH thiết lập một khóa bí mật chung giữa 2 thiết bị, những người xác thực lẫn nhau dựa trên khóa công khai. PQXDH cung cấp tính bảo mật chuyển tiếp hậu lượng tử và một dạng khả năng từ chối mật mã, nhưng vẫn dựa vào độ khó của bài toán logarit rời rạc để xác thực lẫn nhau trong phiên bản giao thức này.

Thuật toán PDXDH là phương pháp trao đổi khóa tiên tiến sử dụng phép ghép đôi cryptographic trên các đường cong elliptic, mang đến giải pháp an ninh thông tin vượt trội so với các phương pháp truyền thống. Nguyên lý hoạt động của thuật toán dựa trên việc sử dụng các phép toán phức tạp giữa các điểm trên đường cong, cho phép các bên thiết lập một khóa bí mật chung thông qua một kênh không an toàn mà không cần trao đổi trực tiếp khóa. Ưu điểm chính của PDXDH nằm ở khả năng cung cấp mức độ bảo mật cao, khả năng chống lại các cuộc tấn công máy tính lượng tử và hiệu quả trong việc xử lý các bài toán mật mã phức tạp.

Trong thực tế, PDXDH được ứng dụng rộng rãi trong nhiều lĩnh vực như an ninh mạng, điện toán đám mây, hệ thống thanh toán điện tử và các ứng dụng yêu cầu trao đổi thông tin an toàn. Các hệ thống ngân hàng, chính phủ và các tổ chức có yêu cầu bảo mật cao đặc biệt quan tâm đến thuật toán này do tính linh hoạt và độ tin cậy cao. Khả năng tạo ra các khóa mật với độ phức tạp toán học cao giúp PDXDH trở thành một giải pháp quan trọng trong việc bảo vệ thông tin nhạy cảm.

PQXDH được thiết kế cho các môi trường phi đồng bộ, trong đó một người dùng (Đan Nguyên) có thể ngoại tuyến nhưng đã công khai một số thông tin lên máy chủ. Một người dùng khác (Mỹ Anh) muốn sử dụng thông tin đó để gửi dữ liệu được mã hóa cho Đan Nguyên và thiết lập một khóa bí mật chung để liên lạc trong tương lai.

Kiến thức cơ bản

Tham số PQXDH

Một ứng dụng sử dụng PQXDH phải quyết định một số tham số sau:

TênĐịnh nghĩa
curveMột đường cong Montgomery mà XEdDSA được xác định, hiện tại là một trong hai: curve25519 hoặc curve448.
hashHàm băm 256 hoặc 512 bit (Ví dụ: SHA256 hoặc SHA512).
infoChuỗi ASCII xác định ứng dụng, có độ dài tối thiểu 8 byte.
pqkemCơ chế đóng gói khóa hậu lượng tử có tính bảo mật IND – CCA hậu lượng tử (Ví dụ: Crystals – Kyber – 1024).
aeadLược đồ mã hóa xác thực với dữ liệu liên quan, có tính bảo mật IND – CPA và INT – CTXT hậu lượng tử.
EncodeECHàm mã hóa khóa công khai đường cong thành chuỗi byte.
DecodeECHàm giải mã chuỗi byte thành khóa công khai đường cong, là hàm nghịch đảo của EncodeEC.
EncodeKEMHàm mã hóa khóa công khai pqkem thành chuỗi byte.
DecodeKEMHàm giải mã chuỗi byte thành khóa công khai pqkem, là hàm nghịch đảo của EncodeKEM.

Ví dụ, một ứng dụng có thể chọn curve là curve25519, hash là SHA512, infoMyProtocol,pqkem là CRYSTALS-KYBER-1024.

Phạm vi của tất cả các hàm mã hóa phải không được trùng nhau.

Cách triển khai khuyến nghị của EncodeEC bao gồm một byte hằng số đại diện cho đường cong, tiếp theo là mã hóa little – endian của tọa độ u như được chỉ định trong. Giá trị byte hằng số đại diện cho đường cong được xác định bởi người triển khai. Tương tự, cách triển khai khuyến nghị của DecodeEC là đọc byte đầu tiên để xác định tham số curve. Nếu byte đầu tiên không đại diện cho một đường cong đã biết, hàm sẽ thất bại. Nếu hợp lệ, nó sẽ thực hiện giải mã little – endian của tọa độ u như được chỉ định trong.

Cách triển khai khuyến nghị của EncodeKEM bao gồm một byte hằng số đại diện cho pqkem, tiếp theo là mã hóa của khóa công khai pqkem được chỉ định bởi pqkem. Giá trị byte hằng số đại diện cho pqkem được xác định bởi người triển khai. Tương tự, cách triển khai khuyến nghị của DecodeKEM là đọc byte đầu tiên để xác định tham số pqkem. Nếu byte đầu tiên không đại diện cho một cơ chế đóng gói khóa đã biết, hàm sẽ thất bại. Nếu hợp lệ, nó sẽ thực hiện giải mã theo cơ chế đóng gói khóa được chọn.

Ký hiệu mật mã

Trong toàn bộ Bài viết này, tất cả các khóa công khai đều có khóa bí mật tương ứng, nhưng để đơn giản hóa mô tả, chúng ta sẽ chỉ xác định cặp khóa bằng khóa công khai và giả định rằng khóa bí mật tương ứng có thể được truy cập bởi chủ sở hữu khóa.

Bài viết này sử dụng các ký hiệu sau:

– Phép nối chuỗi byte XY được ký hiệu là X || Y.

DH(PK1, PK2) đại diện cho một chuỗi byte là đầu ra khóa bí mật được chia sẻ từ hàm Diffie – Hellman đường cong elliptic, sử dụng cặp khóa được biểu diễn bởi khóa công khai PK1PK2. Hàm này có thể là X25519 hoặc X448 theo tham số curve.

Sig(PK, M, Z) là chuỗi byte biểu diễn chữ ký XEdDSA trên chuỗi byte M, được tạo bằng cách ký M bằng khóa bí mật tương ứng với PK và sử dụng 64 byte ngẫu nhiên Z. Chữ ký này có thể xác thực bằng khóa công khai PK. Các hàm ký và xác minh XEdDSA được chỉ định trong.

KDF(KM) là đầu ra 32 byte từ thuật toán HKDF, sử dụng hash với các đầu vào:

HKDF input key material = F || KM, trong đó KM là chuỗi byte chứa thông tin khóa bí mật, còn F là chuỗi byte gồm 32 byte 0xFF nếu curvecurve25519, hoặc 57 byte 0xFF nếu curvecurve448. Giống như trong XEdDSA, F đảm bảo rằng các bit đầu tiên của đầu vào HKDF không bao giờ là một mã hóa hợp lệ của một vô hướng hoặc một điểm trên đường cong elliptic.

HKDF salt = Chuỗi byte có độ dài bằng với độ dài đầu ra của hàm băm, toàn bộ được điền bằng 0.

HKDF info = Chuỗi kết hợp các biểu diễn dạng chuỗi của 4 tham số PQXDH info, curve, hash,pqkem thành một chuỗi duy nhất, ngăn cách bằng dấu gạch dưới, ví dụ: MyProtocol_CURVE25519_SHA512_CRYSTALS-KYBER-1024. Các biểu diễn chuỗi của các tham số PQXDH được xác định bởi người triển khai.

(CT, SS) = PQKEM – ENC(PK) là một bộ đôi (tuple) chứa chuỗi byte CT là bản mã KEM đầu ra từ thuật toán pqkem, cùng với chuỗi byte bí mật chung SS được đóng gói bởi bản mã đó bằng khóa công khai PK.

PQKEM – DEC(PK, CT) đại diện cho chuỗi byte bí mật chung SS được giải mã từ bản mã pqkem bằng khóa bí mật tương ứng với khóa công khai PK.

Vai trò

Giao thức PQXDH liên quan đến ba bên: Mỹ Anh, Đan Nguyên, và một máy chủ.

– Mỹ Anh muốn gửi dữ liệu ban đầu cho Đan Nguyên bằng cách mã hóa, đồng thời thiết lập một khóa bí mật chung có thể được sử dụng để liên lạc hai chiều.

– Đan Nguyên muốn cho phép các bên như Mỹ Anh thiết lập khóa chung với mình và gửi dữ liệu mã hóa. Tuy nhiên, Đan Nguyên có thể ngoại tuyến khi Mỹ Anh thực hiện điều này. Để hỗ trợ điều đó, Đan Nguyên có mối quan hệ với một máy chủ.

Máy chủ có thể lưu trữ tin nhắn từ Mỹ Anh gửi đến Đan Nguyên để Đan Nguyên có thể truy xuất sau. Máy chủ cũng cho phép Đan Nguyên công bố một số dữ liệu mà máy chủ sẽ cung cấp cho các bên như Mỹ Anh. Mức độ tin cậy đặt vào máy chủ.

Trong một số hệ thống, vai trò của máy chủ có thể được chia thành nhiều thực thể, nhưng để đơn giản, chúng ta giả định một máy chủ duy nhất cung cấp các chức năng trên cho Mỹ Anh và Đan Nguyên.

Khóa đường cong Elliptic

PQXDH sử dụng các khóa công khai đường cong elliptic sau:

TênĐịnh nghĩa
IKAKhóa định danh của Mỹ Anh.
IKBKhóa định danh của Đan Nguyên.
EKAKhóa tạm thời của Mỹ Anh.
SPKBKhóa dự phòng có chữ ký của Đan Nguyên.
(OPKB1, OPKB2…)Tập hợp các khóa dự phòng dùng một lần của Đan Nguyên.

Các khóa công khai đường cong elliptic được sử dụng trong mỗi phiên PQXDH phải hoặc là toàn bộ thuộc dạng curve25519, hoặc toàn bộ thuộc dạng curve448, tùy theo tham số curve.

Mỗi bên có một khóa công khai đường cong elliptic định danh dài hạn (IKA đối với Mỹ Anh, IKB đối với Đan Nguyên).

Đan Nguyên cũng có một khóa dự phòng có chữ ký SPKB, được thay đổi định kỳ và ký mỗi lần bằng IKB, cùng với một tập hợp các khóa dự phòng dùng một lần (OPKB1, OPKB2…), mỗi khóa chỉ được sử dụng trong một phiên PQXDH duy nhất.

Đối với mỗi khóa dự phòng có chữ ký hoặc khóa dự phòng dùng một lần K mà Đan Nguyên tạo ra, anh ấy cũng tính một định danh, ký hiệu là IdEC(K), để xác định duy nhất khóa này trên thiết bị của Đan Nguyên. (Khóa dự phòng được gọi như vậy vì chúng thực chất là các thông điệp giao thức mà Đan Nguyên công bố lên máy chủ, cùng với các định danh tương ứng của chúng, trước khi Mỹ Anh bắt đầu phiên giao thức.) Các khóa này sẽ được tải lên máy chủ.

Trong mỗi phiên giao thức, Mỹ Anh tạo một cặp khóa tạm thời mới với khóa công khai EKA.

Khóa đóng gói hậu lượng tử (Quantum key)

PQXDH sử dụng các khóa công khai đóng gói hậu lượng tử sau:

TênĐịnh nghĩa
PQSPKBKhóa dự phòng hậu lượng tử có chữ ký của Đan Nguyên.
(PQOPKB1, PQOPKB2…)Tập hợp các khóa dự phòng hậu lượng tử dùng một lần có chữ ký của Đan Nguyên.

Các khóa công khai pqkem được sử dụng trong một phiên PQXDH phải đều sử dụng cùng một tham số pqkem.

Đan Nguyên có một khóa dự phòng hậu lượng tử có chữ ký cuối cùng (PQSPKB), được thay đổi định kỳ và ký mỗi lần bằng IKB, cùng với một tập hợp các khóa dự phòng hậu lượng tử dùng một lần (PQOPKB1, PQOPKB2…), cũng được ký bằng IKB và mỗi khóa chỉ được sử dụng trong một phiên PQXDH duy nhất.

Đối với mỗi khóa pqkem dự phòng hoặc tạm thời K mà Đan Nguyên tạo ra, anh ấy cũng tính một định danh, ký hiệu là IdKEM(K), để xác định duy nhất khóa này trên thiết bị của Đan Nguyên. Các khóa này và các định danh tương ứng của chúng sẽ được tải lên máy chủ như mô tả.

Tên gọi dự phòng cuối cùng (last – resort) xuất phát từ việc khóa dự phòng cuối cùng chỉ được sử dụng khi không có khóa dự phòng pqkem dùng một lần nào khả dụng. Trường hợp này xảy ra khi số lượng gói khóa dự phòng tải xuống cho Đan Nguyên vượt quá số lượng khóa dự phòng pqkem dùng một lần mà Đan Nguyên đã tải lên.

Một cách triển khai nên cung cấp cho Đan Nguyên một phương thức để xác định liệu một khóa công khai pqkem thuộc về loại khóa dự phòng pqkem dùng một lần hay khóa dự phòng pqkem cuối cùng.

Giao thức PQXDH

Tổng quan

PQXDH bao gồm ba giai đoạn:

Đan Nguyên công khai khóa nhận dạng đường cong elliptic, các khóa sơ bộ đường cong elliptic và các khóa sơ bộ pqkem lên máy chủ.

Mỹ Anh lấy một gói khóa sơ bộ từ máy chủ và sử dụng nó để gửi một tin nhắn ban đầu cho Đan Nguyên.

Đan Nguyên nhận và xử lý tin nhắn ban đầu từ Mỹ Anh.

Các phần sau sẽ giải thích chi tiết các giai đoạn này.

Công khai khóa

Đan Nguyên tạo một chuỗi các giá trị ngẫu nhiên 64 byte ZSPK, ZPQSPK, Z1, Z2… và công khai một tập hợp khóa lên máy chủ bao gồm:

– Khóa nhận dạng đường cong của Đan Nguyên IKB.

– Khóa sơ bộ đường cong đã ký của Đan Nguyên và định danh của nó (SPKB, IdEC(SPKB)).

– Chữ ký của Đan Nguyên trên khóa sơ bộ đường cong Sig(IKB, EncodeEC(SPKB), ZSPK).

– Khóa sơ bộ pqkem last – resort đã ký của Đan Nguyên và định danh của nó (PQSPKB, IdKEM(PQSPKB)).

– Chữ ký của Đan Nguyên trên khóa sơ bộ pqkem Sig(IKB, EncodeKEM(PQSPKB), ZPQSPK).

– Một tập hợp các khóa sơ bộ đường cong một lần của Đan Nguyên (OPKB1, OPKB2, OPKB3…) cùng với định danh của chúng (IdEC(OPKB1), IdEC(OPKB2), IdEC(OPKB3)…).

– Một tập hợp các khóa sơ bộ pqkem một lần đã ký của Đan Nguyên (PQOPKB1, PQOPKB2, PQOPKB3…) cùng với định danh của chúng (IdKEM(PQOPKB1), IdKEM(PQOPKB2), IdKEM(PQOPKB3)…).

– Tập hợp các chữ ký của Đan Nguyên trên các khóa sơ bộ pqkem một lần đã ký (Sig(IKB, EncodeKEM(PQOPKB1), Z1), Sig(IKB, EncodeKEM(PQOPKB2), Z2), Sig(IKB, EncodeKEM(PQOPKB3), Z3)…).

Đan Nguyên chỉ cần tải lên khóa nhận dạng của mình lên máy chủ một lần. Tuy nhiên, Đan Nguyên có thể tải lên các khóa sơ bộ một lần mới vào các thời điểm khác (Ví dụ: khi máy chủ thông báo rằng kho khóa sơ bộ một lần của máy chủ sắp hết).

Đối với cả khóa sơ bộ đường cong đã ký và khóa sơ bộ pqkem last – resort đã ký, Đan Nguyên sẽ tải lên một khóa sơ bộ mới cùng với chữ ký của nó bằng IKB theo một khoảng thời gian nhất định (Ví dụ: một tuần một lần hoặc một tháng một lần). Khóa sơ bộ mới đã ký và chữ ký của nó sẽ thay thế các giá trị trước đó.

Sau khi tải lên một cặp khóa sơ bộ đường cong đã ký và khóa sơ bộ pqkem last – resort đã ký mới, Đan Nguyên có thể giữ lại khóa riêng tương ứng với cặp trước đó trong một khoảng thời gian để xử lý các tin nhắn sử dụng khóa này mà có thể đã bị trì hoãn khi truyền. Cuối cùng, Đan Nguyên nên xóa khóa riêng này để đảm bảo tính bảo mật về sau (các khóa riêng của khóa sơ bộ một lần sẽ bị xóa khi Đan Nguyên nhận tin nhắn sử dụng chúng).

Gửi tin nhắn ban đầu

Để thực hiện thỏa thuận khóa PQXDH với Đan Nguyên, Mỹ Anh liên hệ với máy chủ và lấy một gói khóa sơ bộ chứa các giá trị sau:

– Khóa nhận dạng đường cong của Đan Nguyên IKB.

– Khóa sơ bộ đường cong đã ký của Đan Nguyên cùng với định danh của nó (SPKB, IdEC(SPKB)).

– Chữ ký của Đan Nguyên trên khóa sơ bộ đường cong Sig(IKB, EncodeEC(SPKB), ZSPK).

Một trong hai loại khóa:

– Khóa sơ bộ pqkem một lần đã ký của Đan Nguyên PQOPKBn

– Hoặc nếu không còn khóa sơ bộ pqkem một lần đã ký nào, thì sử dụng khóa sơ bộ pqkem last – resort đã ký của Đan Nguyên PQSPKB.

– Định danh của khóa trên (IdKEM(PQPKB)).

– Chữ ký của Đan Nguyên trên khóa sơ bộ pqkem Sig(IKB, EncodeKEM(PQPKB), ZPQPK).

(Tùy chọn) Khóa sơ bộ đường cong một lần của Đan Nguyên OPKBn và định danh của nó IdEC(OPKBn).

Máy chủ sẽ cung cấp một trong các khóa sơ bộ đường cong một lần của Đan Nguyên nếu có, và sau đó xóa nó. Nếu tất cả các khóa sơ bộ đường cong một lần của Đan Nguyên trên máy chủ đã bị xóa, gói khóa sẽ không chứa phần tử khóa sơ bộ đường cong một lần.

Máy chủ cũng sẽ ưu tiên cung cấp một trong các khóa sơ bộ pqkem một lần đã ký của Đan Nguyên PQOPKBn nếu có, và sau đó xóa nó. Nếu tất cả các khóa sơ bộ pqkem một lần đã ký của Đan Nguyên trên máy chủ đã bị xóa, gói khóa sẽ chứa khóa sơ bộ pqkem last – resort đã ký của Đan Nguyên PQSPKB.

Mỹ Anh xác minh chữ ký trên các khóa sơ bộ. Nếu bất kỳ chữ ký nào không hợp lệ, Mỹ Anh hủy bỏ giao thức. Nếu tất cả chữ ký hợp lệ, Mỹ Anh tạo một cặp khóa đường cong tạm thời với khóa công khai EKA. Mỹ Anh cũng tạo một bí mật được bao bọc bằng pqkem:

(CT, SS) = PQKEM – ENC(PQPKB)
	shared secret SS
	ciphertext CT

Nếu gói khóa không chứa khóa sơ bộ đường cong một lần, Mỹ Anh tính toán:

DH1 = DH(IKA, SPKB)
DH2 = DH(EKA, IKB)
DH3 = DH(EKA, SPKB)
SK = KDF(DH1 || DH2 || DH3 || SS)

Nếu gói khóa chứa khóa sơ bộ đường cong một lần, Mỹ Anh tính toán thêm một giá trị DH:

DH4 = DH(EKA, OPKB)
SK = KDF(DH1 || DH2 || DH3 || DH4 || SS)

Sau khi tính toán SK, Mỹ Anh xóa khóa riêng tạm thời, các giá trị DH và bí mật chung SS.

Mỹ Anh sau đó tính toán một chuỗi byte AD chứa thông tin nhận dạng của cả hai bên:

AD = EncodeEC(IKA) || EncodeEC(IKB)

Nếu pqkem không bao gồm PQPKB vào bản mã, Mỹ Anh phải thêm EncodeKEM(PQPKB) vào AD. Mỹ Anh cũng có thể thêm thông tin bổ sung vào AD, chẳng hạn như tên người dùng của Mỹ Anh và Đan Nguyên, chứng chỉ hoặc thông tin nhận dạng khác.

Mỹ Anh gửi tin nhắn ban đầu cho Đan Nguyên, bao gồm:

– Khóa nhận dạng của Mỹ Anh IKA.

– Khóa tạm thời của Mỹ Anh EKA.

– Bản mã pqkem CT đóng gói SS cho PQPKB.

– Định danh của các khóa sơ bộ Đan Nguyên mà Mỹ Anh đã sử dụng.

– Bản mã ban đầu được mã hóa bằng một lược đồ AEAD sử dụng AD làm dữ liệu liên kết và khóa mã hóa là SK hoặc một giá trị được tạo từ SK bằng một PRF mật mã.

Tin nhắn ban đầu thường là tin nhắn đầu tiên trong một giao thức liên lạc sau PQXDH.

Sau khi gửi tin nhắn, Mỹ Anh xóa bản mã CT và có thể tiếp tục sử dụng SK hoặc các khóa dẫn xuất từ SK trong giao thức liên lạc sau – PQXDH với Đan Nguyên, tùy thuộc vào các cân nhắc bảo mật.

Nhận tin nhắn ban đầu

Sau khi nhận tin nhắn ban đầu từ Mỹ Anh, Đan Nguyên trích xuất khóa nhận dạng và khóa tạm thời của Mỹ Anh. Đan Nguyên cũng tải khóa riêng nhận dạng của mình và sử dụng các định danh khóa để tải khóa riêng tương ứng với các khóa sơ bộ đã ký, khóa sơ bộ một lần và khóa KEM mà Mỹ Anh sử dụng.

Đan Nguyên tính toán PQKEM – DEC(PQPKB, CT) để thu được bí mật chung SS, sau đó lặp lại các phép tính DH và KDF để dẫn xuất SK, rồi xóa các giá trị DH và SS.

Đan Nguyên xây dựng chuỗi byte AD và thử giải mã bản mã ban đầu. Nếu thất bại, Đan Nguyên hủy bỏ giao thức. Nếu thành công, Đan Nguyên có thể tiếp tục sử dụng SK trong liên lạc sau – PQXDH với Mỹ Anh.

Cân nhắc về bảo mật

Bảo mật của sự kết hợp giữa X3DH với Double Ratchet đã được nghiên cứu chính thức trong và được chứng minh là an toàn theo giả định Gap Diffie – Hellman (GapDH), trong khi sử dụng các giả định đơn giản hóa để tránh mô hình hóa việc tái sử dụng IKB cho cả thỏa thuận khóa và ký. PQXDH khi kết hợp với Double Ratchet vẫn giữ được mức bảo mật này trước một kẻ tấn công không có quyền truy cập vào máy tính lượng tử, nhưng tăng cường bảo mật của bắt tay ban đầu bằng cách yêu cầu giải quyết cả GapDH và Module – LWE.

Trong, PQXDH đã được phân tích chính thức trong mô hình ký hiệu với ProVerif và trong mô hình tính toán với CryptoVerif. Với ProVerif, các tác giả chứng minh cả xác thực và tính bí mật trong mô hình ký hiệu và liệt kê các điều kiện cụ thể mà kẻ tấn công có thể phá vỡ các thuộc tính này. Các thuộc tính bảo mật này đặc biệt bao gồm tính bảo mật tiến về phía trước, khả năng chống lại các cuộc tấn công thu thập ngay bây giờ, giải mã sau, khả năng chống lại mạo danh khi bị lộ khóa và tính độc lập của phiên.

Sử dụng trình chứng minh CryptoVerif, các tác giả chứng minh tính bảo mật tính toán và xác thực của bất kỳ trao đổi khóa nào đã hoàn thành theo giả định GapDH cho đường cong X25519, giả định UF – CMA trên XEdDSA (giả định không có sự tái sử dụng khóa giữa XEdDSA và X25519), mô hình hóa hàm băm như một oracle ngẫu nhiên và giả định IND – CPA+INT – CTXT cho AEAD. Ngoài ra, họ cũng chứng minh tính bảo mật tiến về phía trước khi chữ ký có tính bảo mật UF – CMA vào thời điểm trao đổi khóa diễn ra, giả định bảo mật hậu lượng tử IND – CCA cho KEM, mô hình hóa hàm băm như một PRF và bảo mật IND – CPA+INT – CTXT cho AEAD.

Tuy nhiên, đối với cả PQXDH và X3DH, một bằng chứng đầy đủ về bảo mật dưới một giả định chung của GapDH và UF – CMA đối với X25519 và XEdDSA vẫn còn cần thiết.

Xác thực

Trước hoặc sau một thỏa thuận khóa PQXDH, các bên có thể so sánh khóa công khai nhận dạng của họ IKA và IKB thông qua một kênh xác thực nào đó. Ví dụ, họ có thể so sánh dấu vân tay của khóa công khai theo cách thủ công hoặc bằng cách quét mã QR. Các phương pháp để làm điều này nằm ngoài phạm vi của Bài viết này.

Xác thực trong PQXDH không đảm bảo an toàn trước các cuộc tấn công lượng tử. Khi có sự hiện diện của một kẻ tấn công lượng tử chủ động, các bên không nhận được đảm bảo mật mã nào về người mà họ đang giao tiếp. Xác thực lẫn nhau có thể phủ nhận được và an toàn hậu lượng tử vẫn là một vấn đề nghiên cứu mở mà Signal hy vọng sẽ giải quyết trong phiên bản sau của giao thức này.

Nếu không thực hiện xác thực, các bên sẽ không nhận được bất kỳ đảm bảo mật mã nào về danh tính của người mà họ đang giao tiếp.

Phát lại giao thức

Nếu thông điệp ban đầu của Mỹ Anh không sử dụng một khóa tạm thời một lần, nó có thể bị phát lại cho Đan Nguyên và anh ta sẽ chấp nhận nó. Điều này có thể khiến Đan Nguyên nghĩ rằng Mỹ Anh đã gửi cho anh ta cùng một thông điệp (hoặc nhiều thông điệp) lặp đi lặp lại.

Để giảm thiểu điều này, một giao thức hậu PQXDH có thể nhanh chóng đàm phán một khóa mã hóa mới cho Mỹ Anh dựa trên đầu vào ngẫu nhiên mới từ Đan Nguyên. Đây là hành vi điển hình của các giao thức dựa trên Diffie – Hellman có tính chất ratcheting.

Đan Nguyên có thể thử các biện pháp giảm thiểu khác, chẳng hạn như duy trì danh sách đen các thông điệp đã quan sát, hoặc thay thế các khóa ký trước nhanh hơn. Phân tích các biện pháp giảm thiểu này nằm ngoài phạm vi của Bài viết này.

Phát lại và tái sử dụng khóa

Một hệ quả khác của việc phát lại được thảo luận trong phần trước là một thông điệp ban đầu bị phát lại thành công có thể khiến Đan Nguyên tạo ra cùng một SK trong các lần thực thi giao thức khác nhau.

Vì lý do này, bất kỳ giao thức hậu PQXDH nào sử dụng SK để tạo ra các khóa mã hóa PHẢI thực hiện các biện pháp để ngăn chặn việc tái sử dụng khóa một cách nghiêm trọng. Ví dụ, Đan Nguyên có thể sử dụng một giao thức ratcheting dựa trên DH để kết hợp SK với một đầu ra DH mới được tạo ngẫu nhiên nhằm tạo ra một khóa mã hóa ngẫu nhiên.

Khả năng phủ nhận

Về mặt không chính thức, khả năng phủ nhận trong mật mã có nghĩa là một giao thức không cung cấp cho những người tham gia bằng chứng mật mã có thể công bố về nội dung của cuộc giao tiếp của họ hoặc bằng chứng về việc họ đã giao tiếp. PQXDH, giống như X3DH, nhằm mục đích cung cấp cho cả Mỹ Anh và Đan Nguyên khả năng phủ nhận việc họ đã giao tiếp với nhau trong một bối cảnh mà một thẩm phán có thể có quyền truy cập vào khóa bí mật của một hoặc nhiều bên, khi đối mặt với một bản ghi được cho là do Mỹ Anh và Đan Nguyên tạo ra.

Signal tập trung vào khả năng phủ nhận ngoại tuyến vì nếu một trong hai bên hợp tác với bên thứ ba trong quá trình thực thi giao thức, họ sẽ có thể cung cấp bằng chứng về cuộc giao tiếp của mình cho bên thứ ba đó. Hạn chế này đối với khả năng phủ nhận trực tuyến dường như là một đặc điểm cố hữu của môi trường không đồng bộ.

PQXDH có một số dạng khả năng phủ nhận mật mã. Được thúc đẩy bởi mục tiêu của X3DH, Brendel et al. giới thiệu một khái niệm về khả năng phủ nhận 1 – trong – 2 đối với các bên bán trung thực và một _thẩm phán kiểu big brother có quyền truy cập vào tất cả các khóa bí mật của các bên. Vì Mỹ Anh hoặc Đan Nguyên có thể tạo một bản ghi giả bằng cách chỉ sử dụng khóa bí mật của riêng họ, PQXDH có thuộc tính phủ nhận này. Vatandas et al. chứng minh rằng X3DH có thể phủ nhận theo một nghĩa khác, tùy thuộc vào một số Giả định về Kiến Thức của Diffie – Hellman. PQXDH cũng có thể phủ nhận theo nghĩa này đối với Mỹ Anh, với cùng các giả định, và Signal giả thuyết rằng nó cũng có thể phủ nhận đối với Đan Nguyên nếu có thêm giả định Nhận Thức Văn Bản Thô (PA) đối với pqkem.

Signal lưu ý rằng Kyber sử dụng một biến thể của phép biến đổi Fujisaki – Okamoto với cơ chế từ chối ngầm và do đó không có thuộc tính PA. Tuy nhiên, trong PQXDH, một bản mã AEAD được mã hóa bằng khóa phiên luôn được gửi cùng với bản mã Kyber. Điều này có thể mang lại các đảm bảo tương tự như PA. Signal khuyến khích cộng đồng điều tra các thuộc tính phủ nhận chính xác của PQXDH.

Tất cả các khẳng định này đều liên quan đến khả năng phủ nhận trong môi trường cổ điển. Như đã thảo luận trong, Signal kỳ vọng rằng đối với các phiên bản tương lai của giao thức này (cung cấp xác thực lẫn nhau hậu lượng tử), các khẳng định về khả năng phủ nhận đối với các kẻ tấn công lượng tử bán trung thực sẽ vẫn giữ nguyên. Tuy nhiên, khả năng phủ nhận trước các kẻ tấn công lượng tử độc hại vẫn cần được nghiên cứu thêm.

Chữ ký

Có thể sẽ có xu hướng muốn bỏ qua chữ ký khóa sơ bộ sau khi nhận thấy rằng việc xác thực lẫn nhau và bảo mật chuyển tiếp đã được đảm bảo thông qua các tính toán Diffie – Hellman (DH). Tuy nhiên, điều này có thể dẫn đến một cuộc tấn công bảo mật chuyển tiếp yếu: Một máy chủ độc hại có thể cung cấp cho Mỹ Anh một gói khóa sơ bộ có chứa các khóa sơ bộ giả mạo, và sau đó, khi xâm phạm khóa nhận dạng của Đan Nguyên (IKB), có thể tính toán được khóa bí mật chung (SK).

Ngoài ra, cũng có thể có xu hướng muốn thay thế xác thực lẫn nhau dựa trên DH (tức là DH1 và DH2) bằng chữ ký từ các khóa nhận dạng. Tuy nhiên, điều này làm giảm tính từ chối (deniability), làm tăng kích thước của các thông điệp ban đầu, và làm gia tăng thiệt hại nếu các khóa riêng tạm thời hoặc khóa riêng sơ bộ bị xâm phạm, hoặc nếu sơ đồ chữ ký bị phá vỡ.

Xâm phạm khóa (Key compromise)

Việc xâm phạm khóa riêng của một bên có ảnh hưởng nghiêm trọng đến bảo mật, mặc dù việc sử dụng các khóa tạm thời và khóa sơ bộ có thể giúp giảm thiểu một phần rủi ro.

Xâm phạm khóa riêng nhận dạng của một bên cho phép kẻ tấn công giả mạo bên đó đối với những người khác. Xâm phạm các khóa riêng sơ bộ của một bên có thể ảnh hưởng đến tính bảo mật của các giá trị SK cũ hoặc mới, tùy thuộc vào nhiều yếu tố khác nhau.

Việc phân tích đầy đủ tất cả các tình huống xâm phạm có thể xảy ra nằm ngoài phạm vi của Bài viết này, tuy nhiên, một số tình huống hợp lý có thể được phân tích như sau:

Nếu một khóa sơ bộ một lần trên đường cong elliptic (OPKB) hoặc một khóa sơ bộ một lần sử dụng kỹ thuật đóng gói khóa hậu lượng tử (PQOPKB) được sử dụng trong một phiên giao thức và bị xóa như quy định, thì việc xâm phạm khóa nhận dạng của Đan Nguyên và các khóa riêng sơ bộ của Đan Nguyên trong tương lai sẽ không làm lộ SK cũ.

Nếu khóa sơ bộ một lần không được sử dụng trong một phiên giao thức, thì việc xâm phạm các khóa riêng của IKB, SPKB và PQSPKB từ phiên giao thức đó sẽ dẫn đến việc lộ SK đã được tính toán trước đó. Việc thay thế thường xuyên các khóa sơ bộ có chữ ký có thể giúp giảm thiểu điều này, cũng như sử dụng một giao thức tăng tốc hậu PQXDH giúp thay thế nhanh chóng SK bằng các khóa mới để đảm bảo bảo mật chuyển tiếp.

Việc xâm phạm các khóa riêng sơ bộ có thể dẫn đến các cuộc tấn công kéo dài trong tương lai, chẳng hạn như tính toán thụ động các giá trị SK, và giả mạo danh tính của các bên khác đối với bên bị xâm phạm (key – compromise impersonation). Những cuộc tấn công này sẽ tiếp tục cho đến khi bên bị xâm phạm thay thế các khóa sơ bộ bị lộ trên máy chủ (trong trường hợp tấn công thụ động), hoặc xóa khóa riêng của khóa sơ bộ có chữ ký bị xâm phạm (trong trường hợp giả mạo danh tính).

Đối thủ lượng tử thụ động (Passive quantum adversaries)

PQXDH được thiết kế để ngăn chặn các cuộc tấn công kiểu thu thập trước, giải mã sau từ các đối thủ có quyền truy cập vào máy tính lượng tử có khả năng tính toán logarit rời rạc trên đường cong elliptic. Mặc dù tính bảo mật này chủ yếu dựa vào pqkem, nhưng nó cũng yêu cầu aead cung cấp bảo mật IND – CPA và INT – CTXT hậu lượng tử. Việc ước tính sức mạnh bảo mật hậu lượng tử của các hệ thống mật mã là rất khó, điều này khiến cho việc xác định yêu cầu này một cách chính xác trở nên thách thức.

Dựa trên các tiêu chí đánh giá của NIST đối với các đề xuất mật mã hậu lượng tử, một cuộc tấn công tìm kiếm khóa trên AES256 được xếp vào mức bảo mật cao nhất. Mặc dù điều này không hoàn toàn tương ứng với yêu cầu bảo mật của chúng ta, nhưng nó gợi ý rằng việc sử dụng một chế độ AEAD phù hợp với AES256 sẽ là đủ. Signal lưu ý một số đặc tính bảo mật của PQXDH trong bối cảnh này:

Nếu kẻ tấn công đã ghi lại thông tin công khai và thông điệp từ Mỹ Anh gửi đến Đan Nguyên, thì ngay cả khi có quyền truy cập vào máy tính lượng tử, kẻ tấn công cũng không thể xâm phạm SK.

Nếu một khóa sơ bộ một lần sử dụng kỹ thuật đóng gói khóa hậu lượng tử (PQOPKB) được sử dụng trong một phiên giao thức và bị xóa như quy định, thì ngay cả khi có quyền truy cập vào máy tính lượng tử trong tương lai, kẻ tấn công cũng không thể xâm phạm SK cũ.

Nếu các khóa sơ bộ một lần hậu lượng tử không được sử dụng trong một phiên giao thức, thì quyền truy cập vào máy tính lượng tử và việc xâm phạm khóa riêng của PQSPKB từ phiên giao thức đó sẽ làm lộ SK đã được tính toán trước đó. Việc thay thế thường xuyên các khóa sơ bộ có chữ ký giúp giảm thiểu rủi ro này, cũng như sử dụng một giao thức tăng tốc hậu PQXDH để thay thế nhanh chóng SK bằng các khóa mới nhằm đảm bảo bảo mật chuyển tiếp.

Đối thủ lượng tử chủ động (Active quantum adversaries)

PQXDH không được thiết kế để bảo vệ chống lại các đối thủ lượng tử chủ động.

Một kẻ tấn công chủ động có quyền truy cập vào một máy tính lượng tử có khả năng tính toán logarit rời rạc trên đường cong elliptic có thể tính toán DH(PK1, PK2) và Sig(PK, M, Z) cho tất cả các khóa elliptic curve PK1, PK2 và PK. Điều này cho phép kẻ tấn công giả mạo Mỹ Anh bằng cách sử dụng máy tính lượng tử để tính toán khóa bí mật tương ứng với PKA, sau đó tiếp tục với giao thức.

Một máy chủ độc hại có quyền truy cập vào máy tính lượng tử như vậy có thể giả mạo Đan Nguyên bằng cách tạo ra các cặp khóa mới PQSPK’B và PQOPK’B, tính toán khóa bí mật tương ứng với PKB, sau đó sử dụng PKB để ký các khóa KEM hậu lượng tử vừa được tạo và cung cấp những khóa do kẻ tấn công tạo ra thay vì khóa KEM hậu lượng tử của Đan Nguyên khi Mỹ Anh yêu cầu gói khóa sơ bộ.

Có thể cân nhắc việc thêm một khóa nhận dạng hậu lượng tử để Đan Nguyên có thể sử dụng để ký các khóa sơ bộ hậu lượng tử của mình. Điều này sẽ ngăn chặn cuộc tấn công của máy chủ độc hại được mô tả ở trên và cung cấp cho Mỹ Anh một đảm bảo mật mã rằng cô ấy đang giao tiếp với Đan Nguyên. Tuy nhiên, nó không đảm bảo xác thực lẫn nhau, vì Đan Nguyên không có bất kỳ đảm bảo mật mã nào về người mà anh ta đang giao tiếp.

Các sơ đồ KEM và chữ ký hậu lượng tử đang được NIST tiêu chuẩn hóa không cung cấp cơ chế xác thực lẫn nhau có thể phủ nhận hậu lượng tử, mặc dù điều này có thể đạt được thông qua việc sử dụng chữ ký vòng hậu lượng tử hoặc chữ ký của trình xác minh được chỉ định. Signal kêu gọi cộng đồng hướng tới việc tiêu chuẩn hóa những cơ chế này hoặc các cơ chế khác cho phép xác thực lẫn nhau có thể phủ nhận.

Tin cậy máy chủ

Một máy chủ độc hại có thể khiến giao tiếp giữa Mỹ Anh và Đan Nguyên thất bại (Ví dụ: bằng cách từ chối chuyển tiếp tin nhắn).

Nếu Mỹ Anh và Đan Nguyên xác thực lẫn nhau, thì cuộc tấn công duy nhất mà máy chủ có thể thực hiện thêm là từ chối cung cấp các khóa sơ bộ một lần, khiến cho bảo mật chuyển tiếp của SK phụ thuộc vào thời hạn của khóa sơ bộ có chữ ký.

Việc giảm mức độ bảo mật chuyển tiếp ban đầu này cũng có thể xảy ra nếu một bên độc hại cố tình làm cạn kiệt các khóa sơ bộ một lần của bên kia. Do đó, máy chủ nên cố gắng ngăn chặn điều này (Ví dụ: bằng cách giới hạn tốc độ truy xuất gói khóa sơ bộ).

Ràng buộc nhận dạng (Identity binding)

Việc xác thực không nhất thiết ngăn chặn các cuộc tấn công gán nhầm danh tính hoặc chia sẻ khóa không xác định.

Điều này xảy ra khi một kẻ tấn công (Kỳ Lân) trình bày sai dấu vân tay khóa nhận dạng của Đan Nguyên cho Mỹ Anh như thể đó là của chính hắn, và sau đó hoặc là chuyển tiếp tin nhắn ban đầu của Mỹ Anh đến Đan Nguyên, hoặc trình bày sai thông tin liên lạc của Đan Nguyên như thể đó là của hắn.

Hệ quả là Mỹ Anh nghĩ rằng cô ấy đang gửi tin nhắn ban đầu đến Kỳ Lân trong khi thực tế lại đang gửi nó đến Đan Nguyên.

Để làm cho việc này trở nên khó khăn hơn, các bên có thể bao gồm nhiều thông tin nhận dạng hơn vào AD hoặc băm thêm thông tin nhận dạng vào dấu vân tay, chẳng hạn như tên người dùng, số điện thoại, tên thật hoặc các thông tin nhận dạng khác. Kỳ Lân sẽ buộc phải nói dối về các giá trị bổ sung này, điều này có thể gây khó khăn.

Tuy nhiên, không có cách nào để ngăn Kỳ Lân nói dối về các giá trị bổ sung một cách đáng tin cậy, và việc đưa thêm thông tin nhận dạng vào giao thức thường dẫn đến các đánh đổi liên quan đến quyền riêng tư, tính linh hoạt và giao diện người dùng. Việc phân tích chi tiết các đánh đổi này nằm ngoài phạm vi của Bài viết này.

Rủi ro từ nguồn ngẫu nhiên yếu (weak randomness)

Ngoài các mối quan tâm về việc tạo khóa, tính bảo mật của bí mật chung PQKEM phụ thuộc vào nguồn ngẫu nhiên có sẵn trên thiết bị của Mỹ Anh tại thời điểm thực hiện thao tác PQKEM – ENC. Điều này dẫn đến một tình huống tương tự như trong trao đổi Diffie – Hellman.

Đối với cả Diffie – Hellman và Kyber, nếu Mỹ Anh có entropy yếu, thì bí mật chung thu được sẽ có entropy thấp khi được điều kiện hóa trên khóa công khai của Đan Nguyên. Do đó, cả bảo mật cổ điển và hậu lượng tử của SK đều phụ thuộc vào độ mạnh của nguồn ngẫu nhiên của Mỹ Anh.

Kyber băm khóa công khai của Đan Nguyên với các bit ngẫu nhiên của Mỹ Anh để tạo bí mật chung, làm cho khóa của Đan Nguyên có tính đóng góp, tương tự như trong trao đổi khóa Diffie – Hellman. Điều này không làm giảm sự phụ thuộc vào nguồn entropy của Mỹ Anh như đã mô tả ở trên, nhưng nó hạn chế khả năng của Mỹ Anh trong việc kiểm soát bí mật chung hậu lượng tử. Không phải tất cả các sơ đồ KEM đều làm cho khóa của Đan Nguyên có tính đóng góp, và đây là một đặc tính cần xem xét khi lựa chọn pqkem.

Ngăn chặn các cuộc tấn công tái mã hóa KEM

Thông thường, khi sử dụng một KEM dựa trên mã hóa khóa công khai để mã hóa một bí mật chung mới, bí mật chung này không được gắn chặt với khóa công khai.

Một bí mật chung tương ứng với việc đóng gói (encapsulation) một khóa công khai bị xâm phạm có thể dễ dàng được đóng gói lại (re encapsulated) đối với một khóa công khai khác chưa bị xâm phạm.

Tính bảo mật IND – CCA của KEM không ngăn chặn hành vi này.

Đối với một KEM có thể bị tấn công theo cách này, ngay khi một PQPK bị xâm phạm, kẻ tấn công có thể buộc tất cả các bên khởi tạo sử dụng PQPK bị xâm phạm đó, và bằng cách luôn đóng gói lại bí mật chung đối với một PQPK mới chưa bị xâm phạm, khiến bên đáp ứng tin rằng không có gì bất thường xảy ra.

Điều này đặc biệt phá vỡ khái niệm độc lập phiên thông thường: Việc xâm phạm một PQPK của một bên đáp ứng thực tế có thể ảnh hưởng đến tính bảo mật của các phiên khác mà lẽ ra nên sử dụng các PQPK riêng biệt và độc lập.

Kyber KEM kết hợp khóa công khai KEM vào quá trình tạo bí mật chung, giúp ngăn chặn cuộc tấn công này.

Đối với một KEM IND – CCA tổng quát, có thể ngăn chặn cuộc tấn công này bằng cách thêm PQPKB vào AD của tin nhắn ban đầu. Xem để biết thêm chi tiết về cuộc tấn công này và các biện pháp giảm thiểu.

Định danh khóa

Các định danh khóa công khai không phải là yếu tố quan trọng đối với bảo mật, vì giá trị thực tế của các khóa đã được ký hoặc được sử dụng trong AD.

Tuy nhiên, nếu các định danh trùng lặp quá thường xuyên, điều này có thể dẫn đến lỗi giải mã ở phía bên đáp ứng, vì bên này sẽ cố gắng hoàn tất trao đổi khóa với khóa công khai sai, và điều này sẽ thất bại.

Ứng dụng có thể chọn sử dụng khóa công khai làm định danh khóa, nhưng cũng có thể chọn một định danh có kích thước nhỏ hơn để giảm dung lượng tin nhắn, miễn là khả năng xảy ra xung đột là thấp.

Các phương pháp triển khai khả thi bao gồm sử dụng băm của khóa công khai, một giá trị ngẫu nhiên hoặc các giá trị được tạo tuần tự bắt đầu từ một độ lệch ngẫu nhiên.

nhavantuonglai

Share:

Có thể bạn chưa đọc

Xem tất cả »

Liên lạc trao đổi

Liên lạc thông qua Instagram

Thông qua Instagram, bạn có thể trao đổi trực tiếp và tức thời, cũng như cập nhật những thông tin mới nhất từ nhavantuonglai.

Nhắn tin
1

Tức thời

Bạn có thể gửi và nhận tin nhắn nhanh chóng, trực tiếp, giúp những vấn đề cá nhân của bạn được giải quyết tức thời và hiệu quả hơn.

2

Thân thiện

Vì tính chất là kênh liên lạc nhanh, nên bạn có thể bỏ qua những nghi thức giao tiếp thông thường, chỉ cần lịch sự và tôn trọng thì sẽ nhận được sự phản hồi đầy thân thiện, thoải mái từ tác giả.

Trao đổi trên email

Thông qua email cá nhân, bạn có thể trao đổi thỏa thuận hợp tác, kết nối chuyên sâu và mang tính chuyên nghiệp.

Gửi mail
1

Tin cậy

Trong một số trường hợp, email được dùng như một tài liệu pháp lý, chính vì vậy mà bạn có thể an tâm và tin cậy khi trao đổi với tác giả thông qua email.

2

Chuyên nghiệp

Cấu trúc của email đặt tính chuyên nghiệp lên hàng đầu, nên những thông tin, nội dung được viết trong email từ tác giả sẽ luôn đảm bảo điều này ở mức cao nhất.