<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>PHÁT TRIỂN GIAO THỨC TRAO ĐỔI KHÓA AN TỒN </b>
<b>DỰA TRÊN HAI BÀI TỐN KHĨ </b>
Đỗ Việt Bình
1*
, Nguyễn Hiếu Minh
2
<i>Trong các nghiên cứu trước đây, chúng tôi đã công bố giải pháp kết hợp chữ ký </i>
<i>số và giao thức trao đổi khóa để nâng cao khả năng bảo mật và đạt được những tính </i>
<i>chất cần thiết của giao thức trao đổi khóa an tồn. Trong bài báo này, chúng tơi đề </i>
<i>xuất một biến thể của lược đồ chữ ký số trước đây và xây dựng giao thức trao đổi </i>
<i>khóa mới dựa trên biến thể này. </i>
<b>Từ khóa: </b>Xác thực; Bài tốn khó; Trao đổi khóa; giao thức; Chữ ký số.
<b>1. TỔNG QUAN </b>
Giao thức trao đổi khóa Diffie-Hellman (DH) không cung cấp khả năng xác
thực giữa các bên tham gia [3]. Do đó, nhiều giao thức đã được đưa ra nhằm khắc
phục nhược điểm này [1] [2] [5] [8]. Tuy nhiên các lược đồ này vẫn còn tồn tại
những hạn chế và chỉ dựa trên một bài tốn khó [5-7].
Trong công bố trước đây [4], chúng tôi đã đề xuất việc kết hợp hai lược đồ chữ
ký số RSA và Schnorr, đồng thời xây dựng giao thức trao đổi khóa an tồn DH–
MM–KE1 dựa trên lược đồ mới đề xuất này nhằm nâng cao khả năng bảo mật. Để
nâng cao khả năng bảo mật, chúng tôi đề xuất một biến thể mới của lược đồ RSA–
Schnorr, đồng thời xây dựng các giao thức trao đổi khóa an toàn dựa trên giao thức
mới này.
Trong bài báo này, phần 2 phân tích lược đồ chữ ký số RSA–Schnorr trong
công bố trước, đề xuất lược đồ cải tiến khắc phục nhược điểm của lược đồ này.
Trên cơ sở đó, phần 3 đề xuất giao thức trao đổi khóa an tồn dựa trên hai bài tốn
khó (DH–MM–KE1) và trình bày khả năng bảo mật của giao thức này. Phần 4 tóm
tắt các kết quả của bài báo.
<b>2. LƯỢC ĐỒ CHỮ KÝ SỐ RSA–SCHNORR </b>
Ở bài báo [4], chúng tôi đã đề xuất lược đồ chữ ký dựa trên hai bài tốn khó dựa
trên việc kết hợp hai lược đồ chữ ký số RSA và Schnorr. Lược đồ này sử dụng hai
số nguyên tố mạnh
, ’
và một số nguyên tố
= 2 + 1
với
=
’
. Lược đồ
được thực hiện như Bảng 1:
<i><b>Bảng 1.</b></i>
<i> Lược đồ chữ ký số RSA-Schnorr. </i>
<b>Tạo </b>
<b>khóa </b>
- Tính
f
( ) = ( − 1)(
− 1)
.
- Chọn
∈
∗
<b><sub> sao cho là phần tử có cấp bằng trong </sub></b>
∗
<sub> thỏa </sub>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<i><b>Nghiên cứu khoa học công nghệ </b></i>
<i><b>Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018</b></i>
157
- Chọn số bí mật
∈
∗
,
∈ [1, − 1]
<b> và tính </b>
=
.
- Chọn số nguyên
∈
thỏa mãn:
,
f
( ) = 1
.
- Tính sao cho:
∗
= 1
f
( )
.
- Khóa cơng khai là
( , , )
, khóa bí mật là
( , )
.
<b>Ký </b>
- Chọn ngẫu nhiên số bí mật với
1 <
<
.
- Tính
=
.
- Tính
=
( || )
.
- Tính
= ( −
)
.
- Chữ ký là
( , ).
<b>Xác </b>
<b>thực </b>
- Tính
∗
=
.
- Tính
∗
=
∗
.
- Tính
∗
=
( ||
∗
)
.
- Nếu
=
∗
<sub> chữ ký hợp lệ. </sub>
- Ngược lại nếu
≠
∗
<sub> chữ ký không hợp lệ. </sub>
Trong bài báo này, chúng tôi đề xuất một biến thể của lược đồ trên nhằm nâng
cao khả năng bảo mật. Lược đồ này được mô tả như trong Bảng 2:
<i><b>Bảng 2.</b></i>
<i> Biến thể lược đồ chữ ký số RSA-Schnorr. </i>
<b>Tạo </b>
<b>khóa </b>
- Chọn hai số nguyên tố mạnh và
’
.
- Tính
=
’
và
= 2 + 1
thỏa mãn là số nguyên tố.
- Tính
f
( ) = ( − 1)(
− 1)
.
- Chọn
,
∈
∗
<b> sao cho </b>
,
là các phần tử có cấp bằng trong
∗
thỏa mãn
≡ 1
và
≡ 1
.
- Chọn hai số bí mật
,
∈
∗
<b> với </b>
,
∈ [1, − 1]
.
<b>- Tính </b>
=
.
- Chọn số nguyên
∈
thỏa mãn:
,
f
( ) = 1
.
- Tính sao cho:
∗
= 1
f
( )
.
- Khóa cơng khai là
( , , )
, khóa bí mật là
( ,
, )
.
<b>Ký </b>
- Chọn ngẫu nhiên hai số
,
bí mật với
1 <
,
<
.
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
- Tính
=
( || )
.
- Tính
= (
−
)
.
- Tính
= (
−
)
.
- Chữ ký là
( ,
,
)
.
<b>Xác </b>
<b>thực </b>
- Tính
∗
=
.
- Tính
∗
=
.
- Tính
∗
=
∗ ∗
.
- Tính
∗
=
( ||
∗
<sub>)</sub>
<sub>. </sub>
- Nếu
=
∗
<sub> chữ ký hợp lệ. </sub>
- Ngược lại nếu
≠
∗
chữ ký không hợp lệ.
<b>Tính đúng đắn của giao thức: </b>
Ta có:
∗
=
∗ ∗
=
∗ ∗
=
=
=
=
=>
∗
=
( ||
∗
) = ( || ) =
.
Với việc sử dụng hai phần tử
,
, khóa bí mật
( ,
, )
và hai thành phần ngẫu
nhiên
( ,
)
, người tấn cơng khơng thể tìm được các thành phần bí mật bằng việc
giải bài tốn logarithm rời rạc.
<b>3. GIAO THỨC DH–MM–KE1 </b>
<b>3.1. Mơ tả giao thức </b>
Dựa trên biến thể của lược đồ chữ ký số RSA–Schnorr, chúng tôi đề xuất giao
thức trao đổi khóa an tồn dựa trên hai bài tốn khó DH–MM–KE1. Giao thức này
hoạt động như sau:
1) Chọn tham số:
Các tham số của hai bên A và B được tính như biến thể lược đồ RSA–Schnorr
trình bày trong phần 2.
Với người gửi A:
= 2
+ 1
, trong đó
=
,
và
là các số
nguyên tố mạnh với kích thước ít nhất là 1024 bit. Các tham số khóa của người A:
Khóa cơng khai
( ,
)
và khóa bí mật
( ,
)
.
Với người nhận B:
= 2
+ 1
, trong đó
=
,
và
là các số
nguyên tố mạnh với kích thước ít nhất là 1024 bit. Các tham số khóa của người B:
Khóa cơng khai
(
,
)
và khóa bí mật
(
,
)
.
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<i><b>Nghiên cứu khoa học cơng nghệ </b></i>
<i><b>Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018</b></i>
159
Tìm tập
=
∩
. Tính
=
(
,
)
.
Tìm
,
là phần tử có cấp bằng
trong
∗
và có cấp bằng
trong
∗
thỏa
mãn
≡ 1
;
≡ 1
và
≡ 1
;
≡ 1
.
A tính
=
; B tính
=
và đăng ký các giá
trị này với nhà cung cấp dịch vụ.
2) A thực hiện như sau:
- Lựa chọn
,
∈ [2,
− 1]
.
- Tính
=
và
=
- Gửi
(
,
)
cho B.
3) B thực hiện như sau:
- Chọn
∈ [1, − 1]
và tính
=
- Chọn
,
∈ [2,
− 1]
.
- Tính
=
=
.
- Tính tốn khóa bí mật được chia sẻ
=
( ||
)
- Tính
=
và
=
- Tính
= ( ||
||
||
||
||
)
- Tính
= (
−
)
- Tính
= (
−
)
- Gửi lại các giá trị
( ,
,
,
,
,
)
cho người A.
4) A sau đó tiếp tục thực hiện như sau:
- Tính
=
- Tính
=
=
- Tính khóa bí mật chia sẻ
=
( || )
- Xác thực
(
,
,
)
- Tính
=
( ||
||
||
||
||
)
- Tính
= (
−
)
- Tính
= (
−
)
- Gửi
(
,
,
)
cho B.
5) B thực hiện:
- Xác thực
(
,
,
)
.
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<b>Tính đúng đ</b>
<b>3.2. Đ</b>
<b>Tính ch</b>
trư
<b>Ch</b>
khóa phiên
cơng khơng th
Do đó, giao th
<b>Tính đúng đ</b>
Ta có:
<b>3.2. Đ</b>
<b>Tính ch</b>
trước (Perfect Forward Secrecy).
<b>hứng minh:</b>
khóa phiên
Khóa phiên theo hư
Cịn B tính nh
và
Do đó, khi m
cơng khơng th
Do đó, giao th
<b>Tính đúng đ</b>
Ta có:
<b>3.2. Độ an to</b>
<b>Tính ch</b>
ớc (Perfect Forward Secrecy).
<b>ứng minh:</b>
khóa phiên
Khóa phiên theo hư
Cịn B tính nh
và
Do đó, khi m
cơng khơng th
Do đó, giao th
<b>Tính đúng đ</b>
Ta có:
<b>ộ an to</b>
<b>Tính chất 2.1:</b>
ớc (Perfect Forward Secrecy).
<b>ứng minh:</b>
khóa phiên
Khóa phiên theo hư
Cịn B tính nh
và
Do đó, khi m
cơng khơng th
Do đó, giao th
<b>Tính đúng đ</b>
=
<b>ộ an to</b>
<b>ất 2.1:</b>
ớc (Perfect Forward Secrecy).
<b>ứng minh:</b>
khóa phiên
Khóa phiên theo hư
Cịn B tính nh
ph
Do đó, khi m
cơng khơng th
Do đó, giao th
<b>Tính đúng đắn của giao thức:</b>
=
<b>ộ an toàn c</b>
<b>ất 2.1: Giao th</b>
ớc (Perfect Forward Secrecy).
<b>ứng minh: Ta c</b>
Khóa phiên theo hư
=
Cịn B tính nh
=
phụ thuộc v
Do đó, khi m
cơng khơng thể tính bất kỳ khóa phi
Do đó, giao thức n
<b>ắn của giao thức:</b>
<b>àn của giao thức</b>
Giao th
ớc (Perfect Forward Secrecy).
Ta c
và
Khóa phiên theo hư
=
Cịn B tính như sau:
=
ụ thuộc v
Do đó, khi một khóa d
ể tính bất kỳ khóa phi
ức này đ
<b>ắn của giao thức:</b>
<b>ủa giao thức</b>
Giao th
ớc (Perfect Forward Secrecy).
Ta cần chứng minh nếu khóa bí mật d
và
Khóa phiên theo hư
(
ư sau:
(
ụ thuộc v
ột khóa d
ể tính bất kỳ khóa phi
ày đ
<b>ắn của giao thức:</b>
=>
<b>ủa giao thức</b>
Giao thức DH
ớc (Perfect Forward Secrecy).
ần chứng minh nếu khóa bí mật d
đư
Khóa phiên theo hướng từ A
||
ư sau:
||
ụ thuộc vào giá tr
ột khóa d
ể tính bất kỳ khóa phi
ày đảm bảo tính an to
<i><b>Hình </b></i>
<b>ắn của giao thức:</b>
=>
<b>ủa giao thức</b>
ức DH
ớc (Perfect Forward Secrecy).
ần chứng minh nếu khóa bí mật d
được tạo ra tr
ớng từ A
)
)
ào giá tr
ột khóa dài h
ể tính bất kỳ khóa phi
ảm bảo tính an to
<i><b>Hình </b></i>
<b>ắn của giao thức:</b>
=
<b>ủa giao thức</b>
ức DH
ớc (Perfect Forward Secrecy).
ần chứng minh nếu khóa bí mật d
ợc tạo ra tr
ớng từ A
) =
) =
ào giá tr
ài h
ể tính bất kỳ khóa phi
ảm bảo tính an to
<i><b>Hình 1.</b></i>
<b>ắn của giao thức: </b>
=
=
<b>ủa giao thức </b>
ức DH–MM
ớc (Perfect Forward Secrecy).
ần chứng minh nếu khóa bí mật d
ợc tạo ra tr
ớng từ A
t
)
(
)
(
ào giá trị ngẫu nhi
ài hạn (
ể tính bất kỳ khóa phi
ảm bảo tính an to
<i> Giao th</i>
=
(
MM
ớc (Perfect Forward Secrecy).
ần chứng minh nếu khóa bí mật d
ợc tạo ra tr
tới B đ
( ||
( ||
ị ngẫu nhi
ạn (
ể tính bất kỳ khóa phi
ảm bảo tính an to
<i>Giao th</i>
||
MM–KE1 đ
ần chứng minh nếu khóa bí mật d
ợc tạo ra trước đó vẫn khơng bị ảnh h
ới B đ
|
|
ị ngẫu nhi
ể tính bất kỳ khóa phiên đ
ảm bảo tính an to
<i>Giao thức DH</i>
| )
KE1 đ
ần chứng minh nếu khóa bí mật d
ớc đó vẫn khơng bị ảnh h
ới B được A tính nh
ị ngẫu nhi
,
ên đã s
ảm bảo tính an tồn đ
<i>ức DH</i>
) =
KE1 đảm bảo tính chất an to
ần chứng minh nếu khóa bí mật d
ớc đó vẫn khơng bị ảnh h
ợc A tính nh
ị ngẫu nhiên
)
<i>,</i>
ã sử dụng
àn đ
<i>ức DH</i>
) =
ảm bảo tính chất an to
ần chứng minh nếu khóa bí mật d
ớc đó vẫn khơng bị ảnh h
ợc A tính nh
ên
(
ử dụng
àn đầy đủ về phía tr
<i>ức DH–MM</i>
( |
ảm bảo tính chất an to
ần chứng minh nếu khóa bí mật d
ớc đó vẫn khơng bị ảnh h
ợc A tính nh
và
,
ử dụng
ầy đủ về phía tr
<i>MM</i>
||
ảm bảo tính chất an to
ần chứng minh nếu khóa bí mật d
ớc đó vẫn khơng bị ảnh h
ợc A tính nh
và
ử dụng
ầy đủ về phía tr
<i>MM–KE1</i>
)
ảm bảo tính chất an to
ần chứng minh nếu khóa bí mật dài h
ớc đó vẫn khơng bị ảnh h
ợc A tính như sau:
và
) c
ầy đủ về phía tr
<i>KE1</i>
=
) =
ảm bảo tính chất an to
ài hạn của A v
ớc đó vẫn không bị ảnh h
ư sau:
)
)
) của A v
và
ầy đủ về phía tr
<i>KE1. </i>
=
)
ảm bảo tính chất an to
ạn của A v
ớc đó vẫn khơng bị ảnh h
ư sau:
)
)
ủa A v
và
ầy đủ về phía trư
ảm bảo tính chất an to
ạn của A v
ớc đó vẫn khơng bị ảnh hư
ủa A và B b
ước.
ảm bảo tính chất an tồn đ
ạn của A v
ưởng.
à B b
bằng (3.1) v
ớc.
àn đ
ạn của A và B b
ởng.
à B bị lộ, ng
ằng (3.1) v
àn đầy đủ về phía
à B b
ị lộ, ng
ằng (3.1) v
ầy đủ về phía
à B bị lộ th
ị lộ, ng
ằng (3.1) v
ầy đủ về phía
ị lộ th
ị lộ, ngư
ằng (3.1) và (3.2).
ầy đủ về phía
ị lộ thì các
(3.1)
(3.2)
ười tấn
à (3.2).
ầy đủ về phía
ì các
(3.1)
(3.2)
ời tấn
à (3.2).
ầy đủ về phía
ì các
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<i><b>Nghiên cứu khoa học cơng nghệ </b></i>
<i><b>Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 11 - 2018</b></i>
161
<b>Tính chất 2.2: Giao thức DH–MM–KE1 thỏa mãn tính chất khóa độc lập. </b>
<b>Chứng minh: Trong giao thức DH–MM–KE1, A và B tính khóa phiên </b>
và
theo cơng thức (3.1) và (3.2). Có thể thấy, các khóa phiên đều phụ thuộc vào
khóa bí mật
(
,
)
và số ngẫu nhiên
(
,
)
. Điều này có nghĩa là các khóa
phiên được tính độc lập.
<b>Tính chất 2.3: Giao thức DH–MM–KE1 an tồn với tấn cơng SSR </b>
<b>Chứng minh: Ta cần chứng minh nếu người tấn công thu được các trạng thái </b>
trung gian trong quá trình thực hiện giao thức cũng khơng thể tính được khóa bí
mật chia sẻ.
Theo công thức (3.1) và (3.2), khóa phiên
và
phụ thuộc vào khóa bí
mật
(
,
)
của A và B.
Do đó, khi các số ngẫu nhiên
và
hoặc các thành phần trung gian khác bị
lộ, người tấn công cũng không thể tính được khóa phiên vì khơng tính được
(
)
.
Do đó, giao thức DH–MM–KE1 an tồn với tấn cơng SSR.
<b>Tính chất 2.4: Giao thức DH–MM–KE1 an tồn trước tấn cơng giả mạo khóa thỏa </b>
thuận (key compromise impersonation – KCI).
<b>Chứng minh: Giao thức này sử dụng một quá trình xác thực chung giữa A và B. </b>
Do đó, q trình xác thực sẽ thất bại nếu người tấn công hoạt động và không đồng
thời biết về
và (
<i>, </i>
) hoặc
và (
<i>, </i>
).
Do đó, cách duy nhất của người tấn cơng là tính trực tiếp khóa phiên, giả sử
người tấn cơng biết khóa bí mật dài hạn của A
(
<i>, </i>
) và khóa phiên tạm thời
của B
(
), vì khóa phiên là
=
( ||
)
và người tấn
công có thể tính . Tuy nhiên, trong trường hợp này, người tấn cơng vẫn khơng thể
tính được
<i>.</i>
Do đó, giao thức DH–MM–KE1 an tồn trước tấn cơng giả mạo khóa thỏa
thuận KCI.
<b>Tính chất 2.5: Giao thức DH–MM–KE1 an tồn trước tấn cơng khơng biết khóa </b>
chia sẻ (unknown key-share).
<b>Chứng minh: Việc xác nhận khóa có thể ngăn chặn tấn cơng khơng biết khóa chia </b>
sẻ. B xác nhận với A rằng đã nhận được khóa chia sẻ bí mật
bằng việc kí khóa
này cùng với
( ,
,
,
,
)
. Vì khóa bí mật chia sẻ
là một hàm băm
một chiều của các số ngẫu nhiên
(
,
)
của A, A tin rằng nội dung thông điệp
không bị lặp và biết rằng nó thực sự là từ phía B. B cũng làm những điều tương tự
với
giống như A.
<b>Tính chất 2.6: Giao thức DH–MM–KE1 an tồn dựa trên hai bài tốn khó. </b>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
Trong giao thức DH–MM–KE1, A và B tính khóa chia sẻ
và
theo công
thức (3.1) và (3.2).
Các giá trị này phụ thuộc vào (
<i>, </i>
hoặc
).
Để tính , người tấn cơng phải tính được , muốn tính được giá trị của thì lại
cần tìm được
f
( )
mà muốn tìm được
f
( )
thì lại cần phải giải tiếp bài tốn phân
tích thành thừa số nguyên tố.
Để tính
(hoặc
) người tấn cơng phải tính được giá trị của
(
,
)
hoặc
(
,
)
.
Ta có: (
=
và
=
) và (
=
và
=
).
Do đó, để tính được
(
,
)
hoặc
(
,
)
, người tấn công phải giải bài
toán logarithm rời rạc.
Như vậy, giao thức DH–MM–KE1 an toàn dựa trên hai bài tốn khó.
<b>3.3. Đánh giá hiệu quả thuật tốn </b>
Độ phức tạp thời gian của giao thức DH–MM–KE1 được trình bày trong Bảng 3.
<i><b>Bảng 3.</b></i>
<i> Độ phức tạp thời gian của giao thức DH–MM–KE1. </i>
<b>Giai đoạn </b>
<b>Độ phức tạp thời gian </b>
1
3
+ 2
2
7
+ 5
+ 2
3
9
+ 3
+ 3
4
5
+ 2
+
Tổng
24
+ 12
+ 6
<b>4. KẾT LUẬN </b>
Chúng tôi vừa đề xuất cải tiến lược đồ chữ ký số trước đây và một giao thức
trao đổi khóa an tồn dựa trên lược đồ cải tiến này. Các giao thức này được xây
dựng dựa trên hai bài toán khó, vì vậy, chúng có độ bảo mật cao hơn những giao
thức trước đây.
<b>TÀI LIỆU THAM KHẢO </b>
[1]. Arazi B. (1993),
<i>“Integrating a key distribution procedure into the digital </i>
<i>signature standard”. </i>
Electronics Letters; 29: 966-967.
[2]. Brown D, Menezes A. (2001),
<i>“A Small Subgroup Attack on Arazi's Key </i>
<i>Agreement Protocol”</i>
. Bulletin of the ICA;37: 45-50.
[3]. Diffie W, Hellman M. (1976),
<i>“New Directions in Cryptography.IEEE </i>
<i>Transactions on Information Theory”</i>
; 22: 644-654.
[4]. Do Viet Binh,
<i>Authenticated key exchange protocol based on two hard </i>
</div>
<!--links-->