Công nghệ thông tin
60 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
MỘT SỐ PHÂN TÍCH VỀ MÔ HÌNH AN TOÀN
CHO GIAO THỨC TRAO ĐỔI KHÓA
Triệu Quang Phong*
Tóm tắt: Các mô hình an toàn đóng vai trò quan trọng trong việc phân tích độ an toàn
của các giao thức trao đổi khóa. Trong đó các mô hình an toàn CK [1], 𝐶𝐾𝐻𝑀𝑄𝑉 [2] và
eCK [3] được sử dụng phổ biến hơn cả. Trong [4], C. J. F. Cremers đã chỉ ra rằng độ an
toàn trong ba mô hình này khô
12 trang |
Chia sẻ: huongnhu95 | Lượt xem: 495 | Lượt tải: 0
Tóm tắt tài liệu Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng thể được suy dẫn qua nhau, nghĩa là một giao thức đạt
được độ an toàn trong bất cứ mô hình nào kể trên thì chưa chắc an toàn trong bất kỳ mô
hình nào còn lại. Ngoài ra, công trình này cũng chỉ ra một vài vấn đề liên quan đến chứng
minh an toàn cho một số giao thức trong những mô hình này, cụ thể là vấn đề về tính so
khớp phiên. Dựa trên cơ sở của [4], bài báo sẽ so sánh độ an toàn trong mô hình 𝐶𝐾𝐻𝑀𝑄𝑉
[2] và độ an toàn AKE [8]. Bên cạnh đó, bài báo sẽ chỉ ra một vấn đề liên quan đến việc
cài đặt của giao thức Lemongrass-3 [9], [10], mà đạt độ an toàn AKE, và sau đó đưa ra
một phương án giải quyết cho vấn đề đó.
Từ khóa: Giao thức HMQV; Giao thức KEA+; Giao thức Lemongrass-3; Mô hình 𝐶𝐾𝐻𝑀𝑄𝑉; Độ an toàn AKE.
1. GIỚI THIỆU
Các mô hình an toàn đóng vai trò quan trọng trong việc phân tích độ an toàn của các
giao thức trao đổi khóa. Mô hình chứng minh an toàn đầu tiên được đề xuất bởi Bellare
và Rogaway, với tên gọi BR93 [5]. Tiếp theo đó, nhiều mô hình chứng minh an toàn
khác đã được đề xuất như BR95 [6], BPR2000 [7], CK [1]. Trong đó, mô hình CK và
các biến thể của nó, bao gồm CKHMQV [2] và mô hình eCK [3], hiện được sử dụng phổ
biến để phân tích độ an toàn cho các giao thức mật mã. Cụ thể, những giao thức đặc
trưng mà chúng ta có thể kể đến như: SIG-DH an toàn trong mô hình CK [1], HMQV an
toàn trong mô hình CKHMQV [2] và NAXOS an toàn trong mô hình eCK [3].
Hình 1. Giao thức HMQV [2].
Trong [4], C. J. F. Cremers đã phân tích và tìm liên hệ giữa ba mô hình an toàn CK,
CKHMQV, eCK. Một kết quả mà công trình đó đưa ra là độ an toàn của ba mô hình CK,
CKHMQV, eCK không được suy dẫn qua nhau, nghĩa là một giao thức đạt được độ an toàn
trong bất cứ mô hình nào kể trên thì chưa chắc an toàn trong bất kỳ mô hình nào còn lại.
Ngoài ra, [4] còn chỉ ra một số vấn đề khi chứng minh độ an toàn của các giao thức trao
đổi khóa trong những mô hình này. Cần lưu ý rằng, phương án tiếp cận chính mà C. J. F.
Cremers sử dụng là khai thác tính so khớp phiên trong những mô hình kể trên.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 61
Bên cạnh độ an toàn trong những mô hình kể trên, K. Lauter và A. Mityagin [8] đã
trình bày độ an toàn AKE cho các giao thức trao đổi khóa có xác thực và chỉ ra một giao
thức đạt được độ an toàn này, với tên gọi là KEA+. Trong [10], Grebnev cũng đã sử
dụng độ an toàn này để phân tích cho giao thức Lemongrass-3, mà sau đó đã xuất hiện
trong dự thảo chuẩn [9] do TC26 đề xuất. Về cơ bản, có thể xem độ an toàn AKE [8]
như một biến thể của độ an toàn trong mô hình CKHMQV.
Đóng góp. Dựa trên ý tưởng của [4], bài báo này sẽ so sánh độ an toàn trong mô hình
CKHMQV [2] và độ an toàn AKE [8]. Kết quả thu được là hai độ an toàn trên không được
suy dẫn thông qua nhau, bằng cách chỉ ra rằng giao thức HMQV không đạt được độ an
toàn AKE và giao thức KEA+ không an toàn trong mô hình CKHMQV.
Bên cạnh đó, bài báo chỉ ra một vấn đề đối với mô tả của giao thức Lemongrass-3
trong [9]. Cụ thể, nếu với mô tả đó, giao thức Lemongrass-3 sẽ không đạt được độ an
toàn AKE, mặc dù nó đã đã được chứng minh đạt độ an toàn AKE theo mô tả trong [10].
Giải pháp cho vấn đề này sẽ được đề xuất trong mục 0 của bài báo.
2. MÔ HÌNH AN TOÀN CHO CÁC GIAO THỨC TRAO ĐỔI KHÓA
2.1. Các chuẩn bị và quy ước ký hiệu
Ở đây, chúng ta xem xét các giao thức được thực hiện giữa hai bên tham gia. Chúng
ta sẽ dùng ký hiệu �̂�, �̂�,... để đại diện cho các bên tham gia. Khi thực hiện giao thức, mỗi
bên tham gia sẽ đóng vai trò như bên khởi tạo ℐ, hoặc bên phúc đáp ℛ; và mỗi lần thực
hiện như vậy sẽ được coi là một phiên. Hơn nữa, mỗi bên tham gia cũng có thể thực hiện
cùng lúc nhiều phiên với các bên tham gia khác.
Trong lúc giao thức được thực hiện bình thường (không có sự can thiệp của bên đối
kháng) giữa 2 bên tham gia �̂� và �̂�, có một phiên tại �̂� và một phiên tại �̂�. Đối với các
giao thức trao đổi khóa, chúng ta yêu cầu cả hai phiên đó đều tính ra cùng một khóa. Các
mô hình trao đổi khóa được xem xét ở đây đều bao gồm khái niệm của các phiên so khớp
(matching) (đôi khi được gọi là tính đối tác -- parterning). Trong trường hợp hai phiên
so khớp với nhau thì chúng cần tính ra cùng một khóa.
Đối với một phiên s, chúng ta sẽ quan tâm đến các thành phần sau: 𝑠𝑅 thể hiện vai trò
(role) (bên khởi tạo ℐ, hoặc bên phúc đáp ℛ) được thực hiện bởi phiên; 𝑠𝑜𝑤𝑛𝑒𝑟 và 𝑠𝑝𝑒𝑒𝑟
lần lượt là ký hiệu cho bên tham gia mà thực hiện 𝑠 và bên ngang hàng dự kiến. Hơn
nữa, 𝑠𝑠𝑒𝑛𝑑 và 𝑠𝑟𝑒𝑐𝑣 lần lượt đại diện cho các chuỗi ghép nối của các thông điệp được gửi
và nhận bởi 𝑠.
2.2. Mô hình 𝐂𝐊𝐇𝐌𝐐𝐕
Trong mục này, bài báo sẽ trình bày độ an toàn trong mô hình CKHMQV và độ an toàn
AKE [8] và sau đó đưa ra so sánh cho hai độ an toàn này.
Mô hình 𝐂𝐊𝐇𝐌𝐐𝐕. Mô hình này được Krawczyk sử dụng trong [2] để chứng minh độ
an toàn của giao thức HMQV. Độ an toàn của HMQV được chứng minh trong 2 giai
đoạn. Thứ nhất, HMQV được chứng minh là an toàn trong mô hình an toàn cơ sở (basic)
mà chúng ta gọi là CKHMQV
basic . Thứ hai, HMQV được chỉ ra là an toàn trong 3 phiên bản
mạnh hơn của mô hình CKHMQV
basic .
Công nghệ thông tin
62 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
Tính so khớp được định nghĩa theo các thông điệp gửi và nhận: Hai phiên hoàn tất 𝑠
và 𝑠’ được gọi là CKHMQV-so khớp khi và chỉ khi 𝑠𝑜𝑤𝑛𝑒𝑟 = 𝑠𝑝𝑒𝑒𝑟
′ ∧ 𝑠𝑝𝑒𝑒𝑟
′ = 𝑠𝑜𝑤𝑛𝑒𝑟 ∧
𝑠𝑠𝑒𝑛𝑑 = 𝑠𝑟𝑒𝑐𝑣
′ ∧ 𝑠𝑟𝑒𝑐𝑣 = 𝑠𝑠𝑒𝑛𝑑
′ . Đối với các phiên chưa hoàn tất, không có định nghĩa
cho tính so khớp được cung cấp trong [2].
Độ an toàn trong mô hình CKHMQV
basic được xem xét thông qua một bên đối kháng chủ
động, mà có khả năng chặn bắt, sửa đổi, thêm,... các luồng thông điệp. Các bên tham gia
bắt đầu (start off) bằng việc khởi tạo các khóa bí mật/riêng của mình và tiết lộ thông tin
công khai bất kỳ (chẳng hạn các khóa công khai) cho bên đối kháng. Tiếp theo, bên đối
kháng được phép thực hiện một dãy các truy vấn sau:
- 𝑆𝑒𝑠𝑠𝑖𝑜𝑛 − 𝑠𝑡𝑎𝑡𝑒 𝑟𝑒𝑣𝑒𝑎𝑙 (khám phá trạng thái phiên) của phiên 𝑠. Truy vấn này
khám phá trạng thái trong của 𝑠. Mô hình này không chỉ ra các nội dung của
trạng thái trong của một phiên, nhưng yêu cầu các giao thức trao đổi khóa chỉ ra
trạng thái phiên một cách hiện. Nó chỉ yêu cầu rằng trạng thái phiên không chứa
các bí mật dài hạn của một bên;
- 𝐶𝑜𝑟𝑟𝑢𝑝𝑡 (mua chuộc) bên �̂�. Truy vấn này khám phá tất cả các bí mật của �̂� (ví
dụ, khóa bí mật dài hạn) cũng như các trạng thái trong của tất cả các phiên của �̂�.
- 𝑆𝑒𝑠𝑠𝑖𝑜𝑛 − 𝑘𝑒𝑦 𝑟𝑒𝑣𝑒𝑎𝑙 (khám phá khóa phiên) một phiên đã hoàn tất 𝑠, đó là
khám phá khóa phiên của 𝑠;
- Truy vấn 𝑡𝑒𝑠𝑡 − 𝑠𝑒𝑠𝑠𝑖𝑜𝑛 đối với một phiên đã hoàn tất nhưng chưa hết hạn 𝑠.
Một bit 𝑏 được lấy ngẫu nhiên từ {0,1}. Nếu 𝑏 = 0 thì truy vấn trả về khóa phiên
của 𝑠, ngược lại thì giá trị trả về là được chọn ngẫu nhiên từ phân bố xác suất của
các khóa.
Một phiên 𝑠 được gọi là bị lộ cục bộ (locally exposed) khi và chỉ khi bên đối kháng đã
thực hiện một trong các truy vấn sau:
- Truy vấn khám phá trạng thái phiên 𝑠𝑒𝑠𝑠𝑖𝑜𝑛 − 𝑠𝑡𝑎𝑡𝑒 𝑟𝑒𝑣𝑒𝑎𝑙 trên 𝑠;
- Truy vấn khám phá khóa phiên 𝑠𝑒𝑠𝑠𝑖𝑜𝑛 − 𝑘𝑒𝑦 𝑟𝑒𝑣𝑒𝑎𝑙 trên 𝑠;
- Mua chuộc 𝑠𝑜𝑤𝑛𝑒𝑟 trước khi 𝑠 hết hạn (bao gồm trường hợp 𝑠𝑜𝑤𝑛𝑒𝑟 bị mua chuộc
trước khi 𝑠 được gọi hoặc hoàn tất).
Phiên 𝑠 được gọi là bị lộ nếu nó là bị lộ cục bộ hoặc phiên CK-so khớp (nếu có) của
nó là bị lộ cục bộ.
Một dãy các truy vấn trong thử nghiệm cần phải thỏa mãn các ràng buộc sau.
- Truy vấn 𝑡𝑒𝑠𝑡 − 𝑠𝑒𝑠𝑠𝑖𝑜𝑛 chỉ có thể được thực hiện 1 lần;
- Phiên 𝑡𝑒𝑠𝑡 là không bị lộ trong lúc thử nghiệm.
Định nghĩa 1 (an toàn trong mô hình 𝐂𝐊𝐇𝐌𝐐𝐕
𝐛𝐚𝐬𝐢𝐜 [1])
Một giao thức Π được gọi là an toàn trong mô hình CKHMQV
basic , nếu và chỉ nếu đối với
mọi bên đối kháng PPT ℳ được định nghĩa như ở trên, chúng ta có:
1. Khi hai bên không bị mua chuộc hoàn tất các phiên CKHMQV-so khớp, chúng cho
ra cùng một khóa;
2. Xác suất rằng ℳ đoán được bít 𝑏 (tức là, cho ra 𝑏′ = 𝑏) từ phiên truy vấn phiên
𝑡𝑒𝑠𝑡 một cách chính xác là không lớn hơn 1/2 cộng với lượng không đáng kể
theo tham số an toàn.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 63
Trong phân tích mở rộng của HMQV, 3 mô hình an toàn bổ sung đã được xem xét,
chúng được mô tả dưới đây.
Một phiên 𝑠 được gọi là CKHMQV-tươi mới trong thử nghiệm nếu không có truy vấn
khám phá trạng thái phiên và không có truy vấn khám phá khóa phiên được thực hiện
trên 𝑠.
• CKHMQV
KCI : Thêm vào các truy vấn của CKHMQV
basic , bên đối kháng được cho phép khám
phá khóa dài hạn của 𝑠𝑜𝑤𝑛𝑒𝑟 của phiên 𝑡𝑒𝑠𝑡 s, nếu (i) 𝑠 là CKHMQV-tươi mới và (ii)
𝑠𝑝𝑒𝑒𝑟 không bị mua chuộc;
• CKHMQV
wPFS : Thêm vào các truy vấn của CKHMQV
basic , bên đối kháng được cho phép khám
phá các khóa dài hạn của 𝑠𝑜𝑤𝑛𝑒𝑟 và bên ngang hàng 𝑠𝑝𝑒𝑒𝑟 của phiên 𝑡𝑒𝑠𝑡 𝑠, nếu (i) 𝑠
là CKHMQV-tươi mới và (ii) phiên CKHMQV-so khớp của 𝑠 tồn tại, và (iii) tất cả các
phiên CKHMQV-so khớp của 𝑠 là CKHMQV-tươi mới;
• CKHMQV
eph
: Thêm vào các truy vấn của CKHMQV
basic , bên đối kháng được cho phép khám
phá các khóa bí mật ngắn hạn của tất cả các phiên.
Chúng ta nói rằng giao thức là an toàn trong mô hình CKHMQV khi và chỉ khi nó là
an toàn trong 4 biến thể, tức là, an toàn trong CKHMQV
basic , CKHMQV
KCI , CKHMQV
wPFS và CKHMQV
eph
.
2.3. Mô hình với độ an toàn AKE
Bên cạnh độ an toàn trong mô hình CKHMQV
basic , một khái niệm an toàn khác, gọi là độ an
toàn AKE [8], đã được sử dụng để chứng minh an toàn cho nhiều giao thức hiệu quả như
KEA+ [8] và Lemongrass-3 [10]. Hai độ an toàn kể trên là khá tương đồng, ngoại trừ
khác biệt chính liên quan đến tính so khớp (vì vậy dẫn đến khác biệt trong định nghĩa an
toàn giữa chúng). Cụ thể, đối với độ an toàn AKE, hai phiên 𝑠 và 𝑠’ được gọi là “so
khớp” khi và chỉ khi 𝑠𝑜𝑤𝑛𝑒𝑟 = 𝑠𝑝𝑒𝑒𝑟
′ ∧ 𝑠𝑜𝑤𝑛𝑒𝑟
′ = 𝑠𝑝𝑒𝑒𝑟 ∧ 𝑠𝑠𝑒𝑛𝑑 = 𝑠𝑟𝑒𝑐𝑣
′ ∧ 𝑠𝑟𝑒𝑐𝑣 =
𝑠𝑠𝑒𝑛𝑑
′ ∧ 𝑠𝑅 ≠ 𝑠𝑅
′ . Chúng ta có thể thấy rằng, tính “so khớp” trong độ an toàn AKE về cơ
bản là tính CKHMQV-so khớp trong độ an toàn CKHMQV, nhưng bổ sung yêu cầu về là hai
phiên so khớp với nhau thì phải có vai trò khác nhau.
Hình 2. Giao thức KEA+ [8].
Về cơ bản, một bên đối kháng ℳ được xem xét trong độ an toàn AKE là tương tự
như trong mô hình CKHMQV
basic . Ở đó, bên đối kháng đối với độ an toàn AKE được phép
truy vấn khám phá khóa bí mật ngắn hạn thay vì thực hiện truy vấn khám phá trạng thái
phiên như trong mô hình CKHMQV
basic . Tuy nhiên, khác biệt đó không ảnh hưởng đến những
phân tích trong bài báo này. Nhiệm vụ của ℳ là phải thực hiện một truy vấn 𝑡𝑒𝑠𝑡 −
𝑠𝑒𝑠𝑠𝑖𝑜𝑛 lên một phiên 𝑠 “tươi mới” (tương tự khái niệm “không bị lộ” trong mô hình
Công nghệ thông tin
64 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
CKHMQV
basic ) để phân biệt xem thách thức trả về (tương ứng với bit 𝑏 ∈ {0,1}) là khóa phiên
của phiên 𝑠 (tương ứng việc đưa ra bit 𝑏′ = 0) hay một chuỗi ngẫu nhiên (tương ứng
việc đưa ra bit 𝑏′ = 1).
Theo đó, một giao thức đạt được độ an toàn AKE nếu xác suất rằng ℳ đoán được
bít 𝑏 (tức là, cho ra 𝑏’ = 𝑏) từ phiên truy vấn phiên 𝑡𝑒𝑠𝑡 một cách chính xác là không lớn
hơn 1/2 cộng với lượng không đáng kể theo tham số an toàn.
Như vậy, chúng ta có thể thấy rõ ràng rằng độ an toàn AKE không yêu cầu việc hai
bên so khớp tính ra cùng khóa phiên giống như trong độ an toàn trong mô hình CKHMQV
basic
(và nhiều mô hình khác như CK, eCK). Dựa trên ý tưởng của [4], các kết quả dưới đây
sẽ chỉ ra rằng hai độ an toàn trên không được suy dẫn thông qua nhau, thông qua việc
xem xét hai giao thức KEA+ (đạt độ an toàn AKE) và giao thức HMQV (đạt được độ an
toàn trong mô hình CKHMQV
basic ).
Mệnh đề 2. Giao thức KEA+ không đạt được độ an toàn trong mô hình CKHMQV
basic .
Chứng minh. Chúng ta sẽ chỉ ra rằng giao thức KEA+ không đảm bảo yêu cầu đầu tiên
của Định nghĩa 1. Thực vậy, một bên đối kháng ℳ có thể thực hiện như sau đối với hai
bên �̂� và �̂� trong giao thức KEA+:
1. Kích hoạt �̂� như bên khởi tạo để thiết lập khóa với �̂� trong phiên 𝑠, sau đó chặn
thông điệp 𝑋 = 𝑔𝑥 mà �̂� gửi cho �̂�;
2. Kích hoạt �̂� như bên khởi tạo để thiết lập khóa với �̂� trong phiên 𝑠′, sau đó chặn
thông điệp 𝑌 = 𝑔𝑦 mà �̂� gửi cho �̂�;
3. Gửi cho �̂� thông điệp 𝑋 = 𝑔𝑥 như thông điệp phúc đáp từ �̂� trong phiên 𝑠′;
4. Gửi cho �̂� thông điệp 𝑌 = 𝑔𝑦 như thông điệp phúc đáp từ �̂� trong phiên 𝑠.
Bằng cách như vậy, ℳ đã tạo ra hai phiên CKHMQV-so khớp 𝑠 và 𝑠′; do 𝑠𝑜𝑤𝑛𝑒𝑟 = �̂� =
𝑠𝑝𝑒𝑒𝑟
′ , 𝑠𝑝𝑒𝑒𝑟 = �̂� = 𝑠𝑜𝑤𝑛𝑒𝑟
′ , 𝑠𝑠𝑒𝑛𝑑 = 𝑋 = 𝑠𝑟𝑒𝑐𝑣
′ , 𝑠𝑟𝑒𝑐𝑣 = 𝑌 = 𝑠𝑠𝑒𝑛𝑑
′ . Tuy nhiên, khóa
được tính ra trong phiên 𝑠 là:
𝐾𝑠 = 𝐻(𝑌
𝑎, 𝐵𝑥, �̂�, �̂�);
trong khi đó khóa được tính ra trong phiên 𝑠′ là:
𝐾𝑠′ = 𝐻(𝑋
𝑏 , 𝐴𝑦, �̂�, �̂�).
Với �̂� và �̂� là hai bên khác nhau, chúng ta dễ dàng thấy rằng 𝐾𝑠 ≠ 𝐾𝑠′ , ngoại trừ xác
suất không đáng kể được tạo ra bởi sự va chạm của hàm băm 𝐻. Điều này là ngược lại
với yêu cầu đầu tiên trong Định nghĩa 1.
Như vậy, giao thức KEA+ không đạt được độ an toàn trong mô hình CKHMQV
basic . □
Mệnh đề 3. Giao thức HMQV không đạt được độ an toàn AKE.
Chứng minh. Chúng ta sẽ sử dụng tấn công tương tự như trong chứng minh Mệnh đề 2
để chỉ ra rằng giao thức HMQV không đạt được độ an toàn AKE.
Thực vậy, sau tấn công đó, ℳ tạo ra hai phiên 𝑠 và 𝑠′ có tính chất 𝑠𝑅 = 𝑠𝑅
′ vì cả hai
phiên đều được kích hoạt cùng các bên khởi tạo. Do đó, hai phiên này là không so khớp.
Tuy nhiên, khóa được tính ra trong phiên 𝑠 là:
𝐾𝑠 = 𝐻 ((𝑌𝐵
�̅�(𝑌,�̂�))
𝑥+𝑎�̅�(𝑋,�̂�)
) = 𝐻 (𝑔(𝑦+𝑏�̅�
(𝑌,�̂�))(𝑥+𝑎�̅�(𝑋,�̂�))) ;
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 65
và khóa được tính ra trong phiên 𝑠′ là
𝐾𝑠′ = 𝐻 ((𝑋𝐴
�̅�(𝑋,�̂�))
𝑦+𝑏�̅�(𝑌,�̂�)
) = 𝐻 (𝑔(𝑦+𝑏�̅�
(𝑌,�̂�))(𝑥+𝑎�̅�(𝑋,�̂�))).
Do đó, khóa phiên được tính ra trong hai phiên 𝑠 và 𝑠′ là giống nhau. Do đó, ℳ chỉ
cần chọn 𝑠 như phiên 𝑡𝑒𝑠𝑡 và sau đó thực hiện truy vấn 𝑆𝑒𝑠𝑠𝑖𝑜𝑛 − 𝑘𝑒𝑦 𝑟𝑒𝑣𝑒𝑎𝑙 để lấy
khóa phiên 𝐾𝑠′ của 𝑠′. Lưu ý rằng 𝑠 và 𝑠′ không so khớp nên hành động của ℳ là hợp
lệ; và do 𝐾𝑠 = 𝐾𝑠′ nên ℳ dễ dàng đoán đúng thách thức phân biệt khóa. Điều này dẫn
đến giao thức HMQV là không đạt được độ an toàn AKE. □
3. CÀI ĐẶT GIAO THỨC TRAO ĐỔI KHÓA
TRÊN NHÓM ĐIỂM ĐƯỜNG CONG ELLIPTIC
Trong mục này, bài báo sẽ xem xét một phép cài đặt các giao thức trao đổi khóa trên
nhóm điểm đường cong elliptic. Cụ thể, chúng ta sẽ xem xét mô tả kỹ thuật cho
Lemongrass-3 trong dự thảo chuẩn [9]. Tuy nhiên, việc mô tả này có đôi chút khác biệt
so với phiên bản gốc của giao thức này (mà đã được chứng minh đạt độ an toàn AKE)
trong [10]. Trên thực tế, điểm khác biệt giữa bản mô tả cho Lemongrass-3 trong [9] với
phiên bản trong [10] là việc khóa phiên được dẫn xuất thông qua hoành độ của các
(điểm) bí mật chia sẻ thay vì được dẫn xuất từ chính các (điểm) bí mật chia sẻ đó. Lợi
thế của cách cài đặt này là giúp giảm độ dài của đầu vào cho hàm dẫn xuất khóa, tuy
nhiên, có thể làm mất đi độ an toàn trong mô hình lý thuyết của các giao thức bởi vấn đề
“so khớp”. Tuy vậy, sự khác biệt này có thể dẫn đến việc Lemongrass-3 trong [9] sẽ
không còn đạt được độ an toàn AKE như được chỉ ra trong [10].
3.1. Giao thức ví dụ
Đầu tiên chúng ta xem xét mô tả trong [10] của giao thức này. Lemongrass-3 (xem
bảng 1) hoạt động trên một cặp đường cong elliptic phân biệt là 𝐸𝐴(𝐺𝐹(𝑝𝐴)) và
𝐸𝐵(𝐺𝐹(𝑝𝐵)) được chọn từ một họ đường cong Λ, trong đó 𝑃𝐴 ∈ 𝐸𝐴 có cấp nguyên tố 𝑞𝐴,
và 𝑃𝐵 ∈ 𝐸𝐵 có cấp nguyên tố 𝑞𝐵, với các phần phụ đại số (cofactor) là
𝑐𝐴 =
𝐸𝐴(𝐺𝐹(𝑝𝐴))
𝑞𝐴
, 𝑐𝐵 =
𝐸𝐴(𝐺𝐹(𝑝𝐵))
𝑞𝐵
.
Bảng 1. Giao thức Lemograss-3 [10].
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐴, (𝑅𝐴 = 𝑟𝐴𝑃𝐵)
�̂�: 𝐾𝑆𝐵 = (𝐻(𝑐𝐴 𝑟𝐵 𝑌𝐴, 𝑏(𝑐𝐵 𝑅𝐴), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))𝜆,2𝜆−1
�̂�: 𝐾𝑆𝐵 = (𝐻(𝑐𝐴 𝑟𝐵 𝑌𝐴, 𝑏(𝑐𝐵 𝑅𝐴), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))0,𝜆−1
�̂�: 𝐾𝑀𝐵 = (𝐻(𝑐𝐴𝑟𝐵𝑌𝐴, 𝑏(𝑐𝐵𝑅𝐴), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))0,𝜆−1
�̂�: 𝑡𝑎𝑔𝐵 = 𝑀𝐴𝐶𝐾𝑀𝐵(0)
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐵, (𝑅𝐵 = 𝑟𝐵𝑃𝐴), 𝑡𝑎𝑔𝐵
�̂�: 𝐾𝑀𝐴 = (𝐻(𝑎(𝑐𝐴𝑅𝐴), 𝑐𝐵𝑟𝐴𝑌𝐵, 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))0,𝜆−1
�̂�: nếu 𝑡𝑎𝑔𝐵 ≠ 𝑀𝐴𝐶𝐾𝑀(0), thì dừng phiên
Công nghệ thông tin
66 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
�̂�: 𝐾𝑆𝐴 = (𝐻(𝑎(𝑐𝐴𝑅𝐴), 𝑐𝐵𝑟𝐴𝑌𝐵, 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))𝜆,2𝜆−1
�̂�: 𝑡𝑎𝑔𝐴 = 𝑀𝐴𝐶𝐾𝑀𝐴(1)
�̂� → �̂�: 𝑡𝑎𝑔𝐴
�̂�: nếu 𝑡𝑎𝑔𝐴 ≠ 𝑀𝐴𝐶𝐾𝑀𝐴(1), thì dừng phiên
Trong bảng 1, giao thức hoạt động trong nhóm điểm đường cong elliptic 𝐺 có điểm
cơ sở là 𝑃; giữa hai bên �̂� và �̂� có cặp khóa bí mật/công khai dài hạn tương ứng là
(𝑎, 𝑌𝐴 = 𝑎𝑃𝐴) và (𝑏, 𝑌𝐵 = 𝑏𝑃𝐵); các giá trị (𝑟𝐴, 𝑅𝐴) và (𝑟𝐵, 𝑅𝐵) tương ứng là khóa bí
mật/công khai ngắn hạn của �̂� và �̂�; 𝐻 và 𝐻1 là các hàm băm. Với mô tả như vậy, [10]
đã chỉ ra rằng Lemongras-3 đạt được độ an toàn AKE dưới giả thiết GDH1, hàm băm
được mô hình hóa như bộ tiên tri ngẫu nhiên, và hàm MAC là an toàn.
Tiếp theo, chúng ta sẽ đến với mô tả kỹ thuật cho Lemongrass-3 [9]. Mô tả này được
minh họa trong bảng 2.
Bảng 2. Giao thức Lemograss-3 trong dự thảo chuẩn [9].
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐴, (𝑅𝐴 = 𝑟𝐴𝑃𝐵)
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝐾𝑀𝐵 = (𝐻(𝜋(𝑐𝐴𝑟𝐵𝑌𝐴), 𝜋(𝑏(𝑐𝐵𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝑡𝑎𝑔𝐵 = 𝑀𝐴𝐶𝐾𝑀𝐵(0)
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐵, (𝑅𝐵 = 𝑟𝐵𝑃𝐴), 𝑡𝑎𝑔𝐵
�̂�: 𝐾𝑀𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵 , 𝑜𝑖))
0,𝜆−1
�̂�: nếu 𝑡𝑎𝑔𝐵 ≠ 𝑀𝐴𝐶𝐾𝑀(0), thì dừng phiên
�̂�: 𝐾𝑆𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝑡𝑎𝑔𝐴 = 𝑀𝐴𝐶𝐾𝑀𝐴(1)
�̂� → �̂�: 𝑡𝑎𝑔𝐴
�̂�: nếu 𝑡𝑎𝑔𝐴 ≠ 𝑀𝐴𝐶𝐾𝑀𝐴(1), thì dừng phiên
Trong bảng 2, ℎ2 và ℎ3 là các hằng số phân biệt; 𝜋 là hàm trích xuất hoành độ của
điểm thuộc 𝐺, mà có tính chất ∀ 𝑄 ∈ 𝐺 thì ta có 𝜋(𝑄) = 𝜋(−𝑄).
1 Giả thiết này phát biểu rằng bài toán CDH vẫn là khó ngay cả khi có sự hỗ trợ của một bộ tiên
tri giải bài toán DDH. Trong đó, bài toán CDH đối với một nhóm điểm đường cong elliptic 𝐺 với
điểm cơ sở 𝑃 được hiểu là với 𝑋 = 𝑥𝑃 và 𝑌 = 𝑦𝑃 (𝑥, 𝑦 được chọn ngẫu nhiên) cho trước (lưu ý
là không cho biết 𝑥, 𝑦), yêu cầu tính 𝐶𝐷𝐻(𝑋, 𝑌) = 𝑥𝑦𝑃; và bài toán DDH được hiểu là với 𝑋 =
𝑥𝑃, 𝑌 = 𝑦𝑃 và 𝑍 = 𝑧𝑃 (𝑥, 𝑦, 𝑧 được chọn ngẫu nhiên) cho trước (lưu ý là không cho biết 𝑥, 𝑦, 𝑧),
quyết định xem 𝑍 = 𝐶𝐷𝐻(𝑋, 𝑌) hay không.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 67
3.2. Mô tả tấn công
Dựa trên tính chất của hàm 𝜋, bài báo chỉ ra một tấn công đơn giản để chỉ ra rằng giao
thức trong bảng 2. Cụ thể, một bên đối kháng ℳ trong vai trò người đứng giữa sẽ thực
hiện hành động như trong bảng 3.
Bảng 3. Tấn công giao thức Lemograss-3 trong dự thảo chuẩn [9].
�̂� ↛ �̂�: 𝐶𝑒𝑟𝑡𝐴, (𝑅𝐴 = 𝑟𝐴𝑃𝐵)
ℳ → �̂�: 𝐶𝑒𝑟𝑡𝐴, (−𝑅𝐴)
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(−𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(−𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝐾𝑀𝐵 = (𝐻(𝜋(𝑐𝐴𝑟𝐵𝑌𝐴), 𝜋(𝑏(𝑐𝐵𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝑡𝑎𝑔𝐵 = 𝑀𝐴𝐶𝐾𝑀𝐵(0)
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐵, (𝑅𝐵 = 𝑟𝐵𝑃𝐴), 𝑡𝑎𝑔𝐵
�̂�: 𝐾𝑀𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵 , 𝑜𝑖))
0,𝜆−1
�̂�: nếu 𝑡𝑎𝑔𝐵 ≠ 𝑀𝐴𝐶𝐾𝑀(0), thì dừng phiên
�̂�: 𝐾𝑆𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝑡𝑎𝑔𝐴 = 𝑀𝐴𝐶𝐾𝑀𝐴(1)
�̂� → �̂�: 𝑡𝑎𝑔𝐴
�̂�: nếu 𝑡𝑎𝑔𝐴 ≠ 𝑀𝐴𝐶𝐾𝑀𝐴(1), thì dừng phiên
Tiếp theo, chúng ta sẽ phân tích tấn công trong bảng 3. Đầu tiên chúng ta giả sử phiên
tại �̂� là 𝑠 và phiên tại �̂� là 𝑠′. Chúng ta có thể dễ dàng thấy rằng 𝑠𝑠𝑒𝑛𝑑 = 𝑅𝐴, trong khi
𝑠𝑟𝑒𝑣𝑐
′ = −𝑅𝐴, và vì vậy 𝑠𝑠𝑒𝑛𝑑 ≠ 𝑠𝑟𝑒𝑐𝑣
′ . Đối chiếu với tính so khớp trong độ an toàn AKE,
thì 𝑠 và 𝑠′ không so khớp với nhau. Tuy nhiên, trong tấn công này, ℳ lại khiến cho 𝑠 và
𝑠′ đưa ra cùng khóa phiên và khóa MAC bởi:
𝜋(−𝑏(𝑐𝐵𝑅𝐴)) = 𝜋(−𝑏𝑐𝐵𝑟𝐴𝑃𝐵) = 𝜋(−𝑟𝐴(𝑏𝑐𝐵𝑃𝐵)) = 𝜋(−𝑟𝐴𝑌𝐵) = 𝜋(𝑟𝐴𝑌𝐵),
và việc kiểm tra các giá trị MAC là hợp lệ vì:
𝜋(𝑅𝐴) = 𝜋(−𝑅𝐴).
Như vậy, ℳ có thể chọn 𝑠 như phiên 𝑡𝑒𝑠𝑡, và sau đó thực hiện truy vấn 𝑆𝑒𝑠𝑠𝑖𝑜𝑛 −
𝑘𝑒𝑦 𝑟𝑒𝑣𝑒𝑎𝑙 để lấy khóa phiên của 𝑠′. Bằng cách như vậy, ℳ có thể dễ dàng phân biệt
khóa nhận được sau khi thực hiện truy vấn 𝑡𝑒𝑠𝑡 là khóa của 𝑠 hay một chuỗi ngẫu nhiên.
Điều này cho thấy giao thức trong bảng 2 là không an toàn AKE, mặc dù giao thức
Lemongrass-3 lại an toàn trong mô hình này.
Chú ý. Một tấn công tương tự như tấn công trong bảng 3 là không có ý nghĩa nếu áp
dụng cách cài đặt trong [9] cho các giao thức HMQV. Đối với cài đặt trên giao thức
HMQV, khi thực hiện tấn công như trong bảng 3, hai bên �̂� và �̂� sẽ tính ra hai khóa khác
nhau. Và do vậy, sẽ không thể phá vỡ tính an toàn của giao thức HMQV theo một cách
tầm thường.
Công nghệ thông tin
68 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
3.3. Đề xuất một cách cài đặt sửa đổi
Trong mục này, bài báo đề xuất một sửa đổi cho phép cài đặt trong [9] mà đảm bảo
rằng dưới các giả thiết an toàn của các nguyên thủy mật mã thì độ an toàn của
Lemongrass-3 trong [10] được bảo toàn theo cách cài đặt đó. Việc sửa đổi của chúng tôi
là khá đơn giản.
Bảng 4. Cài đặt sửa đổi cho giao thức Lemograss-3 trong [10].
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐴, (𝑅𝐴 = 𝜙(𝑟𝐴𝑃𝐵))
�̂�: Kiểm tra 𝑅𝐴 = 𝜙(𝑅𝐴), nếu sai thì dừng lại
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝐾𝑆𝐵 = (𝐻(𝜋(𝑐𝐴 𝑟𝐵 𝑌𝐴), 𝜋(𝑏(𝑐𝐵 𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝐾𝑀𝐵 = (𝐻(𝜋(𝑐𝐴𝑟𝐵𝑌𝐴), 𝜋(𝑏(𝑐𝐵𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
0,𝜆−1
�̂�: 𝑡𝑎𝑔𝐵 = 𝑀𝐴𝐶𝐾𝑀𝐵(0)
�̂� → �̂�: 𝐶𝑒𝑟𝑡𝐵, (𝑅𝐵 = 𝜙(𝑟𝐵𝑃𝐴)), 𝑡𝑎𝑔𝐵
�̂�: Kiểm tra 𝑅𝐵 = 𝜙(𝑅𝐵), nếu sai thì dừng lại
�̂�: 𝐾𝑀𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵 , 𝑜𝑖))
0,𝜆−1
�̂�: nếu 𝑡𝑎𝑔𝐵 ≠ 𝑀𝐴𝐶𝐾𝑀(0), thì dừng phiên
�̂�: 𝐾𝑆𝐴 = (𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖))
𝜆,2𝜆−1
�̂�: 𝑡𝑎𝑔𝐴 = 𝑀𝐴𝐶𝐾𝑀𝐴(1)
�̂� → �̂�: 𝑡𝑎𝑔𝐴
�̂�: nếu 𝑡𝑎𝑔𝐴 ≠ 𝑀𝐴𝐶𝐾𝑀𝐴(1), thì dừng phiên
Cụ thể, gọi 𝜓 là phép lấy tung độ của một điểm thuộc nhóm điểm đường cong elliptic.
Chúng ta xác định một hàm 𝜙 (lấy đầu vào là điểm thuộc đường cong elliptic 𝐸(𝔽𝑝),
ngoại trừ điểm trung hòa 𝒪) như sau:
𝜙(𝑅) {
𝑅 nếu 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) ≤ 𝜓(−𝑅) (𝑚𝑜𝑑 𝑝)
trong trường hợp ngược lại
Chúng ta dễ dàng thấy hàm 𝜙 có tính chất: 𝜙(𝑅) = 𝜙(𝜙(𝑅)), ∀ 𝑅 ∈ 𝐸(𝔽𝑝) ∖ {𝒪}.
Thật vậy, chúng ta xét hai trường hợp: (1) 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) = 0; và (2) 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) ≠ 0.
Trong trường hợp 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) = 0, thì chúng ta cũng có 𝜓(−𝑅)(𝑚𝑜𝑑 𝑝) = 0, và
do vậy, theo định nghĩa của hàm 𝜙 thì 𝜙(𝑅) = 𝑅. Điều này dẫn đến 𝜙(𝑅) = 𝜙(𝜙(𝑅)).
Xét trường hợp 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) ≠ 0. Gọi 𝒮 là tập tất cả các điểm 𝑄 ∈ 𝐸(𝔽𝑝) ∖ {𝒪} sao
cho 𝜓(𝑄)(𝑚𝑜𝑑 𝑝) ≠ 0. Lưu ý rằng, 𝜓(𝑄)(𝑚𝑜𝑑 𝑝) + 𝜓(−𝑄)(𝑚𝑜𝑑 𝑝) = 𝑝, ∀ 𝑄 ∈ 𝒮. Do
đó, với mỗi điểm 𝑄 ∈ 𝒮 thì 𝜓(𝑅)(𝑚𝑜𝑑 𝑝) ≤ 𝜓(−𝑅) (𝑚𝑜𝑑 𝑝) khi và chỉ khi
𝜓(𝑄)(𝑚𝑜𝑑 𝑝) <
𝑝
2
. Nói cách khác, với 𝑄 ∈ 𝒮, thì 𝜙(𝑄) = 𝑄 khi và chỉ khi
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2020 69
𝜓(𝑄) (𝑚𝑜𝑑 𝑝) < 𝑝/2. Như vậy, theo định nghĩa chúng ta luôn có 𝜓(𝜙(𝑄))(𝑚𝑜𝑑 𝑝) <
𝑝
2
,
𝑄 ∈ 𝒮. Áp dụng điều trên chúng ta cũng thu được 𝜙(𝑅) = 𝜙(𝜙(𝑅)) trong trường hợp này.
Như vậy, tính chất 𝜙(𝑅) = 𝜙(𝜙(𝑅)), ∀ 𝑅 ∈ 𝐸(𝔽𝑝) ∖ {𝒪} đã được làm rõ. Bây giờ,
chúng ta áp dụng hàm 𝜙 để thu được phép cài đặt sửa đổi cho giao thức Lemongrass-3
như trong bảng 4. Với việc sử dụng hàm 𝜙 như vậy, dễ thấy rằng tấn công trong bảng 3
sẽ không còn giá trị.
Tính đúng đắn. Nếu hai bên �̂� và �̂� hoàn tất giao thức trong bảng 4 một cách bình
thường thì họ sẽ tính ra khóa chung. Điều này là do:
𝜋(𝑏(𝑐𝐵𝑅𝐴)) = 𝜋(𝑏𝑐𝐵𝜙(𝑟𝐴𝑃𝐵)) = 𝜋(𝑏𝑐𝐵(± 𝑟𝐴𝑃𝐵))
= 𝜋(±𝑐𝐵𝑟𝐴(𝑏𝑃𝐵)) = 𝜋(± 𝑐𝐵𝑟𝐴𝑌𝐵) = 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵)
𝜋(𝑎(𝑐𝐴𝑅𝐴)) = 𝜋(𝑎𝑐𝐴𝜙(𝑟𝐵𝑃𝐴)) = 𝜋(𝑎𝑐𝐴(±𝑟𝐵𝑃𝐴))
= 𝜋(± 𝑐𝐴𝑟𝐵(𝑎𝑃𝐴)) = 𝜋(± 𝑐𝐴𝑟𝐵𝑌𝐴) = 𝜋(𝑐𝐴𝑟𝐵𝑌𝐴)
Do đó, chúng ta có:
𝐻(𝜋(𝑐𝐴𝑟𝐵𝑌𝐴), 𝜋(𝑏(𝑐𝐵𝑅𝐴)), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖)
= 𝐻(𝜋(𝑎(𝑐𝐴𝑅𝐴)), 𝜋(𝑐𝐵𝑟𝐴𝑌𝐵), 𝐶𝑒𝑟𝑡𝐴, 𝐶𝑒𝑟𝑡𝐵, 𝑜𝑖).
Điều này dẫn đến hai bên �̂� và �̂� nếu giao thức trong bảng 4 hoạt động một cách
bình thường.
Độ an toàn. Cách cài đặt như trong bảng 4 bảo toàn các tính chất an toàn của giao thức
Lemongrass-3 được mô tả trong [10], trong đó có độ an toàn AKE. Cụ thể, chúng ta
hoàn toàn có thể áp dụng phương pháp trong [10] để phân tích độ an toàn AKE của giao
thức trong bảng 4 với các giả thiết GDH, hàm băm được mô hình hóa như bộ tiên tri
ngẫu nhiên và hàm MAC là an toàn. Dưới đây, bài báo sẽ trình bày ý tưởng phân tích.
Giả sử rằng tồn tại một bên đối kháng thời gian đa thức ℳ có lợi thế đáng kể trong
thử nghiệm AKE đối với giao thức KEA+. Không mất tính tổng quát, gọi
(�̂�, �̂�, 𝑖𝑛𝑖𝑡𝑖𝑎𝑡𝑜𝑟, 𝑋, 𝑌) là phiên 𝑡𝑒𝑠𝑡 (trường hợp (�̂�, �̂�, 𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒𝑟, 𝑅𝑈, 𝑅𝑉) là phiên
𝑡𝑒𝑠𝑡 cũng được xử lý một cách tương tự) trong thử nghiệm AKE. Gọi 𝑌𝑈, 𝐶𝑒𝑟𝑡𝑈, 𝑐𝑈 lần
lượt là khóa công khai dài hạn, chứng thư và hệ số cofactor trên đường cong elliptic của
�̂�; và 𝑌𝑉 , 𝐶𝑒𝑟𝑡𝑉, 𝑐𝑉 lần lượt là khóa công khai dài hạn, chứng thư và hệ số cofactor trên
đường cong elliptic của �̂�. Khi đó khóa phiên của phiên 𝑡𝑒𝑠𝑡 là
𝐻(𝜋(𝑐𝑈𝐶𝐷𝐻(𝑌𝑈, 𝑅𝑉)), 𝜋(𝑐𝑉𝐶𝐷𝐻(𝑌𝑉, 𝑅𝑈)), 𝐶𝑒𝑟𝑡𝑈, 𝐶𝑒𝑟𝑡𝑉). Vì 𝐻 được lập mô hình như
một hàm ngẫu nhiên với xác suất va chạm không đáng kể, một bên đối kháng có các khả
năng sau trong việc phân biệt khóa phiên với khóa ngẫu nhiên:
1) Tấn công giả mạo. Tại một thời điểm nào đó ℳ truy vấn 𝐻 với đầu vào
(𝜋(𝑐𝑈𝐶𝐷𝐻(𝑌𝑈, 𝑅𝑉)), 𝜋(𝑐𝑉𝐶𝐷𝐻(𝑌𝑉, 𝑅𝑈)), 𝐶𝑒𝑟𝑡𝑈, 𝐶𝑒𝑟𝑡𝑉)
2) Tấn công lặp lại khóa. ℳ có thể kích hoạt một phiên tại một bên tham gia nào
đó mà đưa ra khóa phiên trùng với phiên 𝑡𝑒𝑠𝑡, và sau đó khám phá khóa của
phiên đó.
Chúng ta lưu ý rằng, do hàm băm được mô hình hóa như bộ tiên tri ngẫu nhiên, việc
hàm băm đưa ra cùng một giá trị cho hai đầu vào khác nhau xảy ra với xác suất không
đáng kể. Do đó, phiên mà có chung khóa phiên với phiên 𝑡𝑒𝑠𝑡 chỉ có thể là chính phiên
Công nghệ thông tin
70 Triệu Quang Phong, “Một số phân tích về mô hình an toàn cho giao thức trao đổi khóa.”
𝑡𝑒𝑠𝑡 hoặc phiên so khớp của nó (nếu có), ngoại trừ xác suất không đáng kể. Tuy nhiên,
bên đối kẻ tấn công không được khám phá khóa của phiên 𝑡𝑒𝑠𝑡 và phiên so khớp của nó
(nếu có). Vì vậy, lợi thế của bên đối kháng ℳ khi sử dụng tấn công lặp lại khóa là không
đáng kể.
Trong trường hợp lợi thế của bên đối kháng ℳ khi sử dụng tấn công lặp lại là đáng
kể thì có thể xây dựng từ ℳ một bộ giải bài toán GDH với xác suất đáng kể.
Nhận xét. Chúng ta không thể áp dụng ý tưởng chứng minh trên cho giao thức trong
bảng 2 bởi vì bên đối kháng dễ dàng thực hiện kiểu tấn công thứ hai bằng cách áp dụng
kịch bản tấn công như trong bảng 3 lên giao thức đó.
4. KẾT LUẬN
Các mô hình an toàn đóng vai trò quan trọng trong việc phân tích các giao thức trao
đổi khóa. Dựa trên kết quả và các phân tích trong [4] của tác giả C. J. F. Cremers, bài
báo đã thu được hai kết quả chính.
Đầu tiên, bài báo này đã so sánh độ an toàn trong mô hình CKHMQV [2] và độ an toàn
AKE [8]. Kết quả thu được là hai độ an toàn trên không được suy dẫn thông qua nhau,
bằng cách chỉ ra rằng giao thức HMQV không đạt được độ an toàn AKE (xem Mệnh đề
3) và giao thức HMQV không an toàn trong mô hình CKHMQV (xem mệnh đề 2).
Kết quả còn lại của bài báo là chỉ ra một vấn đề đối với mô tả của giao thức
Lemongrass-3 trong [9]. Cụ thể, nếu với mô tả đó, giao thức Lemongrass-3 sẽ không đạt
được độ an toàn AKE, mặc dù nó đã đã được chứng minh đạt độ an toàn này theo mô tả
trong [10]. Giải pháp cho vấn đề này được đề xuất trong Mục 0 của bài báo.
Những kết quả trên cho thấy rằng chúng ta cần cẩn trọng trong việc phân tích các giao
thức trao đổi khóa trong các mô hình an toàn phù hợp. Hơn nữa, ngay cả khi đã phân tích
độ an toàn các giao thức trong mô hình an toàn phù hợp thì chúng ta cũng cần chú ý đến
việc cài đặt để có thể bảo toàn độ an toàn đó.
TÀI LIỆU THAM KHẢO
[1]. Canetti, R., Krawczyk, H.: “Analysis of key-exchange protocols and their use for building
secure channels”. In: EUROCRYPT'01. Volume 2045 of LNCS., Springer (2001) 453-474.
[2]. Krawczyk, H.: HMQV: “A high-performance secure Diffie-Hellman protocol”. In:
CRYPTO 2005. Volume 3621 of Lecture Notes in Computer Science., Springer-Verlag
(2005) 546-566.
[3]. LaMacchia, B., Lauter, K., Mityagin, A.: “Stronger security of authenticated key
exchange”. In: ProvSec. Volume 4784 of Lecture Notes in Computer Science., Springer
(2007) 1-16.
[4]. C
Các file đính kèm theo tài liệu này:
- mot_so_phan_tich_ve_mo_hinh_an_toan_cho_giao_thuc_trao_doi_k.pdf