Bài viết đề xuất một hệ mật khóa công khai xây dựng dựa trên tính khó của việc giải đồng thời 2 bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố với bài toán logarit rời rạc trên Zp hoặc bài toán khai căn trên Zn.
Trang 1Hệ mật khóa công khai dựa trên tính khó của việc giải đồng thời
2 bài toán phân tích số và logarit rời rạc/khai căn
A Public – Key Cryptosystem Based on Difficulty of Simultaneous Solving
Two Factorization and Discrete Logarithm/Root Problems
Lưu Hồng Dũng Khoa CNTT Học Viện KTQS
Hà Nội, Việt Nam
e-mail: luuhongdung@gmail.com
Nguyễn Vĩnh Thái Viện CNTT Viện KH và CN QS
Hà Nội, Việt Nam e-mail: nguyenvinhthai@gmail.com
Abstract— Bài báo đề xuất một hệ mật khóa công khai
xây dựng dựa trên tính khó của việc giải đồng thời 2
bài toán phân tích một số nguyên lớn ra các thừa số
nguyên tố với bài toán logarit rời rạc trên Zp hoặc
bài toán khai căn trên Zn Vì thế, các thuật toán mật
mã và chữ ký của hệ mật mới đề xuất có thể đáp
ứng được các yêu cầu về độ an toàn cao của các ứng
dụng trong thực tế
Keywords: Digital Signature Algorithm, Public – Key
Cryptography Algorithm, Key Exchange Protocol, Public
– Key CryptoSystem, Discrete Logarithm Problem,
Integer Factoring Problem
I ĐẶT VẤN ĐỀ Nâng cao độ an toàn cho các thuật toán mật mã
khóa công khai và chữ k ý số dựa trên tính khó của
việc giải đồng thời 2 bài toán khó là một hướng tiếp
cận đang nhận được nhiều sự quan tâm của các nhà
nghiên cứu [1 8] Trong [9 22] nhóm tác giả đã đề
xuất một số thuật toán mật mã khóa công khai và
chữ ký số xây dựng trên bài toán phân tích số, khai
căn và logarit rời rạc Trong bài báo này, cũng với
mục đích nâng cao độ an toàn cho thuật toán trước
một số dạng tấn công trong thực tế, nhóm tác giả
tiếp tục đề xuất một hệ mật khóa công khai được
phát triển từ các kết quả trước đó [9 19] dựa trên
tính khó của việc giải đồng thời 2 bài toán phân tích
một số nguyên lớn ra các thừa số nguyên tố (bài
toán phân tích số) với bài toán logarit rời rạc trên Zp
, với p là 1 số nguyên tố (bài toán logarit rời rạc trên
Zp) hoặc bài toán khai căn trên vành Zn, ở đây:
q
p
n= × , với p và q là 2 số nguyên tố (bài toán
khai căn trên Zn) Hệ mật được đề xuất ở đây bao gồm thuật toán mật mã khóa công khai, thuật toán chữ ký số, thuật toán mã hóa – xác thực và 1 giao thức trao đổi khóa cho các hệ mật khóa đối xứng, các thuật toán của hệ mật này được thiết kế để các thực thể cuối (người sử dụng) trong cùng một hệ thống có thể sử dụng chung một bộ tham số (tham
số miền) do nhà cung cấp dịch vụ chứng thực số tạo
ra
Bài toán phân tích số được phát biểu như sau: Cho số n∈N, hãy tìm biểu diễn:
1 2
1e 2e e i e k
i
e ≥ vàpi là các số nguyên tố
Một trường hợp riêng của bài toán phân tích số được ứng dụng để xây dựng hệ mật RSA [23] mà ở
đó n là tích của hai số nguyên tố p và q Khi đó, bài
toán phân tích số hay còn gọi là bài toán phân tích
số hay còn gọi là bài toán IFP(n) được phát biểu như
sau:
Bài toán IFP (n): Với mỗi số nguyên dương n, hãy tìm số nguyên tố p hoặc q thỏa mãn phương
trình sau: p×q=n
Giải thuật cho bài toán IFP(n) có thể được viết như một thuật toán tính hàm IFP(.) với biến đầu vào
Trang 2là n, còn giá trị hàm là p hoặc q của phương trình
sau: p=IFP( )n hoặc: q=IFP( )n
Trong hệ mật RSA, bài toán phân tích số được
sử dụng trong việc hình thành cặp khóa công khai/bí
mật cho mỗi thực thể ký Với việc giữ bí mật các
tham số (p, q) thì việc tính được khóa bí mật (d) từ
khóa công khai (e) và modulo n là một bài toán khó
nếu p, q được chọn đủ lớn và mạnh Hiện tại bài
toán trên vẫn được coi là bài toán khó do chưa có
giải thuật thời gian đa thức hay đa thức xác suất cho
nó và hệ mật RSA là một minh chứng thực tế cho
tính khó giải của bài toán này Trong thực tế, các
tham số p, q có thể chọn theo FIPS 186 – 4 [24] của
Hoa Kỳ cho hệ mật RSA
Cho cặp số nguyên dương (n,e) với n là tích 2
số nguyên tố p và q sao cho bài toán phân tích số là
khó giải trên Zn, còn e là một giá trị thỏa mãn:
)
(
1<e<ϕ n và: gcd(e,ϕ(n))=1 , ở đây:
) 1 ).(
1
(
)
(n = p− q−
Z n hay còn gọi là RSAP(n,e) được phát biểu như sau:
Bài toán RSAP (n,e): Với mỗi số nguyên dương
∗
∈ Zn
y , hãy tìm x thỏa mãn phương trình sau:
y n
Giải thuật cho bài toán RSAP(n,e) có thể được
viết như một thuật toán tính hàm RSAP(n,e)(.) với
biến đầu vào là y, còn giá trị hàm là x của phương
trình sau:
( )y RSAP
Bài toán RSAP(n,e) cũng là một cơ sở quan trọng
để xây dựng nên hệ mật RSA Ở hệ mật RSA nếu
giải được RSAP(n,e), kẻ thám mã có thể tìm được bản
rõ (M) từ bản mã (C) và các tham số công khai (n,e),
hoặc dễ dàng tạo được chữ ký giả mạo (S) cho một
bản tin bất kỳ (M) mà không cần biết khóa bí mật (d)
của đối tượng ký (bị mạo danh) Tuy nhiên, hiện tại
vẫn chưa có giải thuật thời gian đa thức cho bài toán
này và do đó việc tấn công hệ mật RSA bằng việc
giải RSAP(n,e) là vẫn chưa khả thi
3) Bài toán logarit rời rạc trên Z p
Cho cặp số nguyên dương (p,g) với p là số
nguyên tố, còn g là một phần tử của nhóm Z p* Khi
đó, bài toán logarit rời rạc trên Z p hay còn gọi là bài
toán DLP(p,g) được phát biểu như sau:
Bài toán DLP (p,g): Với mỗi số nguyên dương
∗
y , hãy tìm x thỏa mãn phương trình sau:
y p
Giải thuật cho bài toán DLP(p,g) có thể được viết như một thuật toán tính hàm DLP(p,g)(.) với biến đầu
vào là y, còn giá trị hàm là x của phương trình sau:
( )( )y DLP
Bài toán DLP(p,g) là cơ sở để xây dựng nên hệ mật ElGamal [25] Hiện tại chưa có giải thuật hiệu quả (thời gian đa thức hay đa thức xác suất) cho DLP(p,g) và độ an toàn của thuật toán DSA trong chuẩn chữ ký số DSS của Hoa Kỳ [23] là một minh chứng thực tế cho tính khó giải của bài toán này
khó của việc giải 2 bài toán phân tích số và logarit rời rạc/khai căn
1) Thuật toán hình thành tham số và khóa
Các tham số hệ thống hay tham số miền được nhà cung cấp dịch vụ chứng thực số hình thành bằng thuật toán như sau:
Thuật toán 1.1: Hình thành tham số hệ thống Input: lp, lq – độ dài (tính theo bit) của các
số nguyên tố p, q
Output: p, q, g.
[1] Chọn 1 cặp số p, q nguyên tố với:
len(p) = lp, len(q)= lq sao cho: q|(p – 1) [2] Chọn g là phần tử sinh của nhóm Z p*
theo:
p
mod
1
−
=α , với: α∈(1,p)
Chú thích:
+ len(.): hàm tính độ dài (theo bit) của một
số
Mỗi thực thể cuối/người sử dụng trong hệ thống hình thành khóa của mình bằng thuật toán như sau:
Thuật toán 1.2: Hình thành khóa
Input: p, q , g, lp1 và lq1 - độ dài (tính theo bit) của số các nguyên tố p1 và q1
Output: x1, x2, φ(n), y
[1] Chọn 1 cặp số p1, q1 là các số nguyên tố với: len(p1) = lp1, len(q1)= lq1
[2] Tính: n = p1 q1 , nếu: n ≤ p thì thực hiện lại từ bước [1]
Trang 3[3] Tính: φ(n) = (p1 – 1).( q1 – 1)
[4] Chọn khóa bí mật thứ nhất x 1 trong khoảng
(1, q)
[5] Tính khóa công khai theo:
y g−x1modp
= (1.1)
Kiểm tra nếu: y ≥ ϕ (n ) hoặc:
1 ))
(
,
gcd(yϕ n ≠ thì thực hiện lại từ bước [4]
[6] Tính khóa bí mật thứ hai theo:
1mod ( )
= (1.2)
[7] Chọn hash function H:{ } 0 , 1∗→ Zh, với:
|q|≤|h|<p
2) Thuật toán mật mã khóa công khai
Thuật toán mật mã được đề xuất ở đây bao gồm
thuật toán mã hóa (Thuật toán 2.1) và giải mã
(Thuật toán 2.2), với các tham số hệ thống được
hình thành theo Thuật toán 1.1 và khóa hình thành
theo Thuật toán 1.2 Giả thiết người gửi/mã hóa là
A, người nhận/giải mã là B và B có cặp khóa bí
mật/công khai tương ứng là (x1B,x2B,y B), trong đó:
B
x1 được chọn ngẫu nhiên trong khoảng ( )1 ,q , còn
)
,
(x2B y B được tính theo (1.1) và (1.2) như sau:
( ) mod , ( )1mod ( )
2
1
B B
B x
ϕ
−
−
=
= (2.1)
a) Thuật toán mã hóa và giải mã
Thuật toán 2.1: Thuật toán mã hóa
Input: p, q , g, nB , yB, M
Output: C,R
[1] Biểu diễn bản tin cần mã hóa M thành
một giá trị m tương ứng trong khoảng
[0, p – 1], chọn ngẫu nhiên một giá trị k
trong khoảng (1,q) rồi tính thành phần
thứ nhất của bản mã:
C=m×( )y B kmodp (2.2)
[2] Tính thành phần thứ 2 của bản mã:
y k
n p
g
R= mod Bmod (2.3)
[3] Gửi bản mã (C,R) cho B
Thuật toán 2.2: Thuật toán giải mã
Input: p, q , g, x1B , x2B, nB , yB, (C,R)
Output: M
[1] Người nhận sử dụng khóa bí mật thứ hai
để tính Rtheo:
( )x B
n R
= (2.4) [2] Người nhận sử dụng khóa bí mật thứ
nhất của mình để giải mã bản tin nhận được:
x
n R
C
mod
1
×
= (2.5) [3] Chuyển giá trị m thành bản tin M
b) Tính đúng đắn của thuật toán
Điều cần chứng minh ở đây là: Cho p, q, p1, q1
là các số nguyên tố thỏa mãn: q|(p−1) ,
1
p
n= × , n>p, 1<α<p, g ( −p1 /qmodp
q
x B<
< 1
B − 1 mod
q
k <
<
1 , 0≤M ≤p−1 , C=M×( )y B kmodp ,
y k
n p
g
mod mod
n R
mod
1
×
thì: M =M
Thật vậy, từ (2.3) và (2.4) ta có:
( )
( )
p g
p p
g
p n
p g
p n
n p g
p n
n R
p R
B B
B B
B
B B
B
B B
B B
x
x k
x B x y k
x B x B y k
x B x B y x
mod
mod mod
mod mod
mod
mod mod
mod mod
mod mod
mod mod
1 1
1 2
1 2
1 2
1
.
.
=
=
=
=
=
=
(2.6)
Nên từ (2.1), (2.2), (2.5) và (2.6) ta có điều cần chứng minh:
M p g
g M
p p g
p g
M
p R
C M
B B
B B
B
x x
x k x
x
=
×
×
=
×
×
=
×
=
−
−
mod
mod mod mod
mod
1 1
1 1
1
.
.
c) Mức độ an toàn của thuật toán
Ở thuật toán mới đề xuất, khóa bí mật là cặp (x1,x2), tính an toàn của lược đồ sẽ bị phá vỡ khi cặp khóa này có thể tính được bởi một hay các đối
tượng không mong muốn Từ Thuật toán 1.2 cho
thấy, để tìm được x2 cần phải tính được tham số φ(n), nghĩa là phải giải được IFP(n), còn để tính được x1 cần phải giải được DLP(p,g) Như vậy, để tìm được cặp khóa bí mật này kẻ tấn công cần phải
Trang 4giải được bài toán IFP(n) và DLP Nói cách khác, độ
an toàn về khóa của thuật toán được đảm bảo bằng
độ khó của việc giải đồng thời 2 bài toán IFP(n) và
DLP(p,g)
+ Tấn công thám mã bản tin
Để giải mã bản tin có thể thực hiện tấn công
vào thuật toán mã hóa hoặc giải mã như sau:
- Tấn công thuật toán mã hóa
Từ (2.2) có thể giải mã bản tin nếu tính được k
như sau: m C.( )y B −kmodp
=
Để tính được k từ (2.3) đầu tiên cần phải giải
được bài toán khai căn RSAP(n,e) để tìm:
( )R
RSAP
X = (n B,y B) hoặc giải bài toán phân tích số để
tìm x2B rồi tìm X: ( )x B
n R
X= 2Bmod Sau đó phải giải tiếp bài toán logarit rời rạc DLP(p,g) để tìm:
( )( )X
DLP
Như vậy, để giải mã bản tin bằng cách tấn công
trực tiếp vào thuật toán mã hóa, kẻ tấn công cần
phải giải được đồng thời hai bài toán RSAP(n,e) và
DLP(p,g) đã chỉ ra ở trên Như vậy, độ an toàn của
thuật toán trước dạng tấn công này được quyết định
bằng độ khó của việc giải đồng thời 2 bài toán: bài
toán khai căn trên Zn và bài toán logarit rời rạc trên
Zp, hoặc: bài toán phân tích số và bài toán logarit rời
rạc trên Zp.
- Tấn công thuật toán giải mã
Để giải mã bản tin bằng cách tấn công vào thuật
toán giải mã, kẻ tấn công cần phải tính được các
khóa bí mật của người nhận B, nghĩa là phải giải
được đồng thời hai bài toán IFP(n) và DLP(p,g) Như
vậy, độ an toàn của thuật toán trước dạng tấn công
này được quyết định bằng độ khó của việc giải đồng
thời 2 bài toán phân tích số và bài toán logarit rời
rạc trên Zp
3) Thuật toán chữ ký số
Thuật toán chữ ký số được đề xuất ở đây bao
gồm thuật toán ký (Thuật toán 3.1) và kiểm tra
(Thuật toán 3.2), với các tham số hệ thống được
hình thành theo Thuật toán 1.1 và khóa hình thành
theo Thuật toán 1.2 Giả thiết người ký ở đây có
cặp khóa khóa bí mật/công khai tương ứng là
)
,
,
(x1 x2 y , trong đó: x1 được chọn ngẫu nhiên trong
khoảng ( )1 ,q , còn (x2,y) được tính theo (1.1) và
(1.2) như sau:
( )
( ) mod ( )
mod
1 2
1
n y
x
p g
ϕ
−
−
=
= (3.1)
a) Thuật toán ký và kiểm tra chữ ký
Thuật toán 3.1: Sinh chữ ký
Input: p, q, g, φ(n), x1, x2, M – bản tin cần
ký
Output: (E,S) – chữ ký
[1] Chọn ngẫu nhiên giá trị k trong khoảng
(1, q)
[2] Tính giá trị: R=g kmodp (3.2) [3] Tính thành phần thứ nhất của chữ ký theo: E=H(M||R)modq (3.3) [4] Tính thành phần thứ 2 của chữ ký theo:
S=x2×( (k+x1×E)modq)modφ(n) (3.4)
+ Toán tử “||” là phép nối 2 xâu bit
Thuật toán 3.2: Kiểm tra chữ ký
Input: p, q, g, y, n, M – bản tin cần thẩm tra
Output: (E,S) = true/false
[1] Tính giá trị:
R=( ( )g S ymod ×n ( )y E)modp (3.5) [2] Tính giá trị:
E=H(M||R)modq (3.6) [3] Nếu: E = E thì: (E,S) = true, ngược lại:
(E,S) = false
+ (E,S) = true: chữ ký hợp lệ, bản tin M được
xác thực về nguồn gốc và tính toàn vẹn
+ (E,S) = false: chữ ký hoặc/và bản tin bị giả
mạo
b) Tính đúng đắn của thuật toán
Điều cần chứng minh ở đây là: Cho p, q, p1, q1
là các số nguyên tố thỏa mãn:q|(p−1), n= p1×q1,
p
n> , 1<α<p , g ( −p1 ) /qmodp
p g
y −x1mod
x = − ϕ , 1<k<q ,
p g
R= kmod , H:{ }0,1∗aZ h với: |q|≤|h|<| p| ,
q S M H
E= ( || ) mod , S=x2×( (k+x1×E)modq)modφ(n) Nếu: R=( ( )g S ymod ×n ( )y E)modp, E=H(M||R)modq
thì: E=E
Thật vậy, từ (3.1), (3.2), (3.4) và (3.5) ta có:
( ) ( )
( )
( )
R p g p g
g
p g
n g
p p g n g
p y n g R
k E
x E x
E x y
x E x
E x y E x x
E y
S
=
=
×
=
×
=
×
=
×
=
− +
− +
− +
mod mod
mod mod
mod mod mod
mod mod
1 1
1 2
1
1 1
2
.
.
Từ (3.3), (3.6) và (3.7) suy ra điều cần chứng minh:
E q R M H q R M H
Trang 5c) Mức độ an toàn của thuật toán
Ở thuật toán chữ ký mới đề xuất, khóa bí mật
của một đối tượng ký ngoài cặp (x1,x2) tương tự như
ở thuật toán mật mã (mục 2), còn bao gồm tham số
φ(n) Như vậy, độ an toàn về khóa của thuật toán
được đảm bảo bằng độ khó của việc giải đồng thời 2
bài toán IFP(n) và DLP(p,g)
+ Tấn công giả mạo chữ ký
Từ điều kiện của Thuật toán 3.2, một cặp (E,S)
bất kỳ sẽ được coi là chữ ký hợp lệ của đối tượng sở
hữu các tham số công khai (n,y) lên bản tin M nếu
thỏa mãn:
H
E= || S ymod × E mod (3.8)
Từ (3.8) dễ thấy rằng, nếu H(.) được chọn là
hàm băm có tính kháng va chạm cao (SHA
256/512, ) thì việc tạo ngẫu nhiên được cặp (E,S)
thỏa mãn điều kiện của thuật toán kiểm tra là không
khả thi trong các ứng dụng thực tế
4) Thuật toán mã hóa – xác thực
Thuật toán mã hóa – xác thực được đề xuất ở
đây thực hiện đồng thời chức năng bảo mật thông
tin và xác thực nguồn gốc cũng như tính toàn vẹn
của bản tin được mã hóa, thuật toán được đề xuất
bao gồm thuật toán mã hóa (Thuật toán 4.1) và giải
mã (Thuật toán 4.2), với các tham số hệ thống
cũng được hình thành theo Thuật toán 1.1 và khóa
hình thành theo Thuật toán 1.2 Giả thiết người
gửi/mã hóa là A, người nhận/giải mã là B có cặp
khóa bí mật/công khai tương ứng là (x1A,x2A,y A) và
)
,
,
(x1B x2B y B , trong đó: (x1A,x1B) được chọn ngẫu
nhiên trong khoảng ( )1 ,q , còn (x2A,y A) và (x2B,y B)
được tính theo (1.1) và (1.2) như sau:
( ) mod , ( ) mod ( )
) ( mod ,
mod
1 2
1 2
1
1
B B
B x
B
A A
A x
A
n y
x p g
y
n y
x p g
y
B
A
ϕ
ϕ
−
−
−
−
=
=
=
= (4.1)
a) Thuật toán mã hóa và giải mã
Thuật toán 4.1: Thuật toán mã hóa
Input: p,q, g,x1A,x2A,nB,yB,M
Output: C,E,S
[1] Biểu diễn bản tin cần mã hóa M thành một
giá trị m tương ứng trong khoảng [0,p–1],
chọn ngẫu nhiên một giá trị k trong khoảng
(1,q) rồi tính thành phần thứ nhất của bản
mã:
y k
y m
mod mod
×
= (4.2)
[2] Tính giá trị: R=g kmodp (4.3)
[3] Tính thành phần thứ 2 của bản mã:
E=H(M||R)modq (4.4)
[4] Tính thành phần thứ 3 của bản mã:
S=x2A×( (k+x1A×E)modq)modφ(n A)(4.5)
[5] Gửi bản mã (C,E,S) cho B
Thuật toán 4.2: Thuật toán giải mã
Input: p,q,g,x1B,x2B,nA,yA,nB,yB,(C,E,S)
Output: M, (E,S) = true/false
[1] Người nhận sử dụng khóa bí mật thứ hai
n C
C = 2Bmod (4.6) [2] Tính giá trị:
R ( ( )g S y A n A ( )y A E) p
mod
[3] Người nhận sử dụng khóa bí mật thứ nhất của mình để giải mã bản tin nhận
x
n R
C
mod
1
×
= (4.8)
[4] Chuyển giá trị mthành bản tin M và tính giá trị: E=H(M||R)modq (4.9) [5] Nếu: E = E thì: M =M và khằng định người gửi là A
b) Tính đúng đắn của thuật toán
Điều cần chứng minh ở đây là: Cho p, q, p1, q1
là các số nguyên tố thỏa mãn: q|(p−1) ,
1
p
n= × , n > p, 1<α<p, g ( −p1 ) /qmodp
q x
x A B <
< 1 , 1
A − 1 mod
B − 1 mod
( )1mod ( )
2A y A n A
x = − ϕ , x2B=( )y B −1modϕ(n B) ,
q
k <
<
1 , 0≤M≤p−1 , R=g kmodp ,
( )
y k
y M
mod mod
×
|
|
|
|
|
|q ≤h < p , E=H(M ||R)modq ,
x
x
n C
C= 2Bmod , R=( ( )g S y Amodn A×( )y A E)modp ,
( )R p C
mod
1
×
= , E=H(M||R)modq thì: E=E
Từ (4.2) và (4 6) ta có:
( ) ( )
p g
M
n p
p g
M
n n
p y M
n C C
k x
B x y k x
B x B y k B B x
B
B B B
B B
B
mod
mod mod
mod
mod mod
mod mod
.
.
1
2 1
2 2
−
−
×
=
×
=
×
=
=
(4.10)
Trang 6Từ (4.1), (4.5) và (4.7) ta lại có:
p g p g
g
p g
n g
p p g
n g
p y
n g
R
k E
x E
x
k
E x y
x
E
x
k
E x
y E
x
k
x
E A A y
S
A A
A A
A
A
A A A
A
A
mod mod
mod mod
mod mod mod
mod mod
.
.
.
.
.
.
1 1
1 2
1
1 1
2
=
×
=
×
=
×
=
×
=
−
+
− +
−
Từ (4.8), (4.10) và (4.11) suy ra:
( )
M p g
g
M
p p
g g
M
p R
C
M
k x k
x
x k k
x
x
B B
B B
B
=
×
×
=
×
×
=
×
=
−
−
mod
mod mod
mod
.
.
1 1
1 1
1
(4.12)
Từ (4.3), (4.4), (4.9), (4.11) và (4.12) suy ra
điều cần chứng minh:
E q R M H q R
M
H
c) Mức độ an toàn của thuật toán
Thuật toán mã hóa – xác thực được đề xuất ở
đây thực chất là sự kết hợp giữa thuật toán mật mã ở
mục 2 với thuật toán chữ ký ở mục 3, nhằm cung
cấp tính năng bảo mật nội dung của bản tin và xác
thực nguồn gốc cùng với tính toàn vẹn của bản tin
được thực hiện một cách đồng thời Có một điểm
cần lưu ý là dạng tấn công giả mạo ở đây cần được
hiểu theo nghĩa một kẻ thứ 3 (C) muốn mạo danh A
để gửi cho B bản tin M Tuy nhiên, phân tích từng
dạng tấn công cụ thể tương tự như với các thuật
toán ở mục 2 và 3 trên đây, đều cho thấy độ an toàn
của thuật toán được đảm bảo bởi độ khó của việc
giải đồng thời 2 bài toán IFP(n) và DLP(p,g) hoặc
IFP(n) và RSAP(n,e)
5) Giao thức trao đổi khóa
Giả thiết rằng 2 đối tượng tham gia truyền
thông ở đây là A và B sử dụng một thuật toán mật
mã khóa đối xứng (DES, AES, ) để mã hóa dữ liệu
cần trao đổi với nhau, khi đó giao thức trao đổi khóa
đề xuất ở đây (Thuật toán 5.1) được sử dụng để
thiết lập một khóa bí mật chung/chia sẻ giữa A và
B Các tham số hệ thống cũng được hình thành theo
Thuật toán 1.1 và khóa hình thành theo Thuật
toán 1.2 Giả thiết A và B có các cặp khóa bí
mật/công khai tương ứng là ( 1 , 2 , )
A A
A x y
)
,
,
(x1B x2B y B , trong đó: (x1A,x1B) được chọn ngẫu
nhiên trong khoảng ( )1,q , còn ( 2 , )
A
A y
x và ( 2 , )
B
B y x
được tính theo (1.1) và (1.2) như sau:
( ) mod , ( ) mod ( )
) ( mod ,
mod
1 2
1 2
1
1
B B
B x
B
A A
A x
A
n y
x p g
y
n y
x p g
y
B
A
ϕ
ϕ
−
−
−
−
=
=
=
a) Thuật toán trao đổi khóa
Việc thiết lập khóa chung giữa A và B được thực
hiện theo các bước của Thuật toán 5.1 như sau:
Thuật toán 5.1: Thuật toán trao đổi khóa
Input: p,q, g,x1A,x2A, x1B,x2B,nA,yA, nB,yB
Output: KAB, KBA
Bước 1: + A thực hiện:
1 – Chọn ngẫu nhiên một giá trị k A thỏa mãn:1<k A<q , tính giá trị R A theo công
y k
mod mod
= (5.2)
2 – Gửi R A cho B
+ B thực hiện:
1 – Chọn ngẫu nhiên một giá trị k B thỏa mãn:1<k B<q , tính giá trị R B theo công
y k
mod mod
2 – Gửi R B cho A
Bước 2:
+ A thực hiện:
1 – Tính thành phần S A theo công thức:
S ( )y x A p
B
= (5.4)
2 – Tính khóa bí mật chia sẻ với B theo:
K ( ( )R A n )k A p
A x B
= (5.5)
3 – Tính thành phần E A theo công thức:
A AB
E = (5.6)
4 – Gửi E A cho B
+ B thực hiện:
1 – Tính thành phần S B theo công thức:
S ( )y x B p
A
= (5.7)
2 – Tính khóa bí mật chia sẻ với A theo:
K ( ( )R B n )k B p
B x A
= (5.8)
3 – Tính thành phần E B theo công thức:
E B=H(K BA||S B) (5.9)
4 – Gửi E B cho A
Bước 3:
+ A thực hiện:
Kiểm tra nếu:
B
E = thì khẳng định đối tượng tham gia trao đổi khóa là B và B đã thiết lập được khóa bí mật chia sẻ với A, sau đó A có thể dùng khóa này để trao đổi thông tin mật với B bằng
1 thuật toán mật mã khóa đối xứng Ngược lại, tra nếu: E A ≠E B thì khẳng định đối tượng tham gia trao đổi khóa là giả mạo và hủy khóa đã được tạo ra
+ B thực hiện:
Kiểm tra nếu: E A=E B thì B khẳng định đối tượng tham gia trao đổi khóa là A và A đã thiết lập được khóa bí mật chia sẻ với B Ngược lại, nếu:
B
E ≠ thì khẳng định đối tượng tham gia trao đổi khóa là giả mạo
Trang 7b) Tính đúng đắn của giao thức
Điều cần chứng minh ở đây là: Cho p, q, p1, q1
là các số nguyên tố thỏa mãn: q|( −1), n= p1×q1,
n > p, g ( −p1 ) /qmodp
p
Z
∈
α , H:{ }0 , 1∗aZ h với:
|
|
|
|
|
|q ≤ h < p , 1<x1A,x1B<q , y g x A p
A= 1 mod ,
p
g
( )1mod ( )
2B y B n B
y
k
mod mod
y k
mod mod
Nếu: S ( )y x A p
B
A
( )
A x
B
( )
B x
A
BA
AB K
Thật vậy, từ (5.3) và (5.3) ta có:
( )
p n
p g
p n
R
K
B A A
B
A B
B B
A A
k k k
k
k A x y k
k A x B AB
mod mod
mod
mod mod
mod
mod mod
2
2
=
=
=
=
(5.10)
Mặt khác, từ (5.2) và (5.8) ta lại có:
p n
p g
p n
R
K
B A B
A
B A
B A
B B
k k k
k
k B x y k
k B x A
BA
mod mod
mod
mod mod
mod
mod mod
2
2
=
=
=
=
(5.11)
Từ (5.10) và (5.11) suy ra điều cần chứng minh
thứ nhất: K AB =K BA
Từ (5.1) và (5.4) ta có:
( )
p y
S
B A A
B
A
x x x
x
x B
A
mod mod
mod
mod
.
=
=
= (5.12)
Từ (5.1) và (5.7) ta lại có:
( )
p y
S
B A B
A
B
x x x
x
x A
B
mod mod
mod
mod
.
=
=
= (5.13)
Từ (5.12) và (5.13) suy ra: S A=S B (5.14)
Từ (5.6), (5.9) và (5.14) suy ra điều cần chứng
minh thứ hai: E A=H(K AB||S A)=H(K BA||S B)=E B
c) Độ an toàn của giao thức
Giao thức được đề xuất bảo đảm các tính chất
của một giao thức trao đổi khóa an toàn:
- Xác thực thực thể (entity authentication): ở
giao thức này việc kiểm tra điều kiện E A =E B cho
phép các đối tượng tham gia trao đổi khóa hoàn toàn
có thể xác thực được danh tính của nhau
- Xác thực khóa hiện (explicit key
kiện
B
E = , A hoàn toàn có thể khẳng định B đã
tạo được khóa bí mật chia sẻ với mình và B cũng có
thể khẳng định được điều tương tự như thế với A
- Tính an toàn khóa đã biết (known – key
security): việc biết một hoặc một số khóa chia sẻ giữa A và B cũng không cho phép một đối tượng thứ 3 nào đó có thể tính được các khóa khác cũng được thiết lập bởi A và B
- Tính bí mật về phía trước (forward secrecy):
việc tính các khóa bí mật chia sẻ đã được thiết lập trước đó bởi A và B là không thể thực hiện được, dù các khóa bí mật của A và B (x1A, x2A, x1B, x2B) bị
lộ
Các tính chất an toàn nói trên thực chất được đảm bảo bởi mức độ an toàn của thuật toán trước các dạng tấn công:
Để tính được khóa KAB, từ (5.5) cho thấy kẻ tấn công cần phải tính được x2A và kA Để tính x2A
cần phải giải được IFP(n) , còn để tính kA từ (5.2) trước tiên cần phải giải được bài toán phân tich số IFP(n) rồi tính: ( ) A
x
R
được bài toán khai căn RSAP(n,e) để tìm:
( )B y
RSAP
X = (A,A) Sau đó phải giải tiếp bài toán logarit rời rạc DLP(p,g) để tìm kA: ( )( )
A g
Việc tính KBA cũng phải được thực hiện các bước tương tự như vậy Như vậy, độ an toàn của thuật toán trước dạng tấn công khóa bí mật chia sẻ được đảm bảo bằng tính khó của việc giải đồng thời 2 bài toán: IFP(n) và DLP(p,g)
Một kẻ giả mạo C muốn mạo danh A để tạo khóa bí mật chia sẻ với B hoặc mạo danh B để chia
sẻ khóa bí mật với A thì cần phải tính được EA hoặc
EB Tuy nhiên, từ (5.6) và (5.9) cho thấy thực hiện được việc đó thì kẻ tấn công tối thiểu phải tính được
KAB hoặc KBA Do đó, độ an toàn của thuật toán trước dạng tấn công giả mạo cũng sẽ được đảm bảo bằng tính khó của việc giải đồng thời 2 bài toán:
IFP(n) và DLP(p,g)
III KẾTLUẬN Bài báo đề xuất xây dựng một hệ mật khóa công khai bao gồm các thuật toán mã hóa, chữ ký số và giao thức trao đổi khóa an toàn cho các hệ mật khóa đối xứng Qua phân tích đánh giá cho thấy các thuật toán của hệ mật mới đề xuất có độ an toàn được đảm bảo bằng mức độ khó của việc giải đồng thời 2 bài toán: bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố và bài toán logarit rời rạc trên Zp, hoặc: bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố và bài toán khai căn trên vành Zn
Trang 8Hoàn toàn có thể khẳng định rằng không có bất kỳ
kiểu tấn công nào vào hệ mật thành công được mà
không phải giải được đồng thời 2 bài toán khó nêu
trên, do đó hệ mật mới đề xuất có thể phù hợp với
các ứng dụng yêu cầu cao về độ an toàn trong thực
tế
[1] Q X WU, Y X Yang and Z M HU, "New signature
schemes based on discrete logarithms and factoring",
Telecommunications, vol 24, pp 61-65, January 2001
[2] Z Y Shen and X Y Yu, "Digital signature scheme based
on discrete logarithms and factoring", Information
Technology, vol 28,pp 21-22, June 2004
[3] Shimin Wei, “Digital Signature Scheme Based on Two
Hard Problems”, IJCSNS International Journal of Computer
Science and Network Security, VOL.7 No.12, December
2007
New Digital Signature Scheme Based on Factoring and
Discrete Logarithms”, Journal of Mathematics and
10.3844/jmssp.2008.222.225 Source:DOAJ
Based on both ECDLP and IFP”, Computer Science and
Information Technology, 2009 ICCSIT 2009 2nd IEEE
International Conference on, 8-11 Aug 2009, E-ISBN :
978-1-4244-4520-2, pp 348 - 351
[6] Swati Verma1, Birendra Kumar Sharma, “A New Digital
Signature Scheme Based on Two Hard Problems”,
International Journal of Pure and Applied Sciences and
Technology, ISSN 2229 – 6107, Int J Pure Appl Sci
Technol., 5(2) (2011), pp 55-59
[7] Sushila Vishnoi , Vishal Shrivastava, ”A new Digital
Signature Algorithm based on Factorization and Discrete
Logarithm problem”, International Journal of Computer
Trends and Technology, volume 3, Issue 4, 2012
"Cryptoschemes Based on Difficulty of Simultaneous
Solving Two Different Difficult Problems", Computer
Science Journal of Moldova, vol.21, no.2(62), 2013
Đức, “Nghiên cứu xây dựng hệ tích hợp mật mã khóa công
khai - chữ ký số”, Tạp chí Khoa học và Kỹ thuật (Học viện
KTQS), số 149 (08-2012) ISSN: 1859 - 0209., 01/08/2012
khai dựa trên hệ mật El Gamal”, Chuyên san Các công trình
nghiên cứu, phát triển và ứng dụng CNTT và TT, Bộ TT và
TT, tập V-1, số 8(28) (12-2012) ISSN: 1859 - 3526., pp 8,
01/12/2012
[11] Lưu Hồng Dũng, Ngô Đăng Tiến, Trần Trung Dũng, Vũ
Tất Thắng, “Phát triển một số thuật toán mật mã khóa công
khai”, Hội thảo quốc gia lần thứ XV: Một số vấn đề chọn
lọc của Công nghệ Thông tin và Truyền thông Hà Nội
3-4/12/2012 ISBN: 978 - 604 - 67 - 0645 - 8., pp 6,
04/12/2012
[12] Lưu Hồng Dũng, Hồ Ngọc Duy, Nguyễn Tiền Giang and
Nguyễn Thị Thu Thủy, “ Phát triển một dạng lược đồ chữ
ký số mới”, Hội thảo quốc gia lần thứ XVI: Một số vấn đề
chọn lọc của Công nghệ Thông tin và Truyền thông, Đà
Nẵng - 11/2013 ISBN: 978 - 604 - 67 - 0645 - 8
[13] Lưu Hồng Dũng, Hoàng Thị Mai, Nguyễn Hữu Mộng,
” Một dạng lược đồ chữ ký xây dựng trên bài toán phân tích số”, Kỷ yếu Hội nghị Quốc gia lần thứ VIII về Nghiên cứu
cơ bản và ứng dụng Công Nghệ thông tin (FAIR 2015); Hà Nội 09-10/07/2015 ISBN: 978-604-913-397-8
SIGNATURE SCHEMES BASED ON DISCRETE LOGARITHM PROBLEM”, The 8th National Conference
on Fundamental and Applied IT Research (FAIR 2015) Ha Noi 09-10/07/2015 ISBN: 978-604-913-397-8
và Tống Minh Đức, “Phát triển thuật toán mật mã khóa
công khai dựa trên bài toán logarit rời rạc”, Hội nghị khoa học Quốc gia lần thứ IX về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR 2016) ISBN: 978-604-913-397-8 2016
Nguyễn Thị Thanh Thủy, “ Một phương pháp xây dựng lược đồ chữ ký số dựa trên bài toán logarit rời rạc”, Hội nghị khoa học Quốc gia lần thứ IX về Nghiên cứu cơ bản
và ứng dụng Công nghệ thông tin (FAIR 2016) ISBN: 978-604-913-397-8 2016
Đỗ Anh Tuấn, “Một phương pháp xây dựng thuật toán chữ
ký số”, Hội thảo lần thứ I: Một số vấn đề chọn lọc về an toàn, an ninh thông tin (SoIS 2016), 11/2016
Construction Method of Digital Signature Algorithms”, IJCSNS International Journal of Computer Science and Network Security Vol 16 No 12 pp 53-57, December
2016 ISSN: 1738 - 7906
Luu Hong Dung, “ A Design Method of Digital Signature Scheme Based on Discrete Logarithm Problem”, IJCSNS International Journal of Computer Science and Network Security Vol 17 No 2 pp 214-218, February 2017 ISSN:
1738 - 7906
“ Phát triển hệ mật khóa công khai từ hệ mã Pohlig - Hellman “, Hội thảo lần thứ II: Một số vấn đề chọn lọc về
an toàn, an ninh thông tin (SoIS 2017), Tp HCM 03/12/2017
Dũng,” MỘT THUẬT TOÁN CHỮ KÝ XÂY DỰNG DỰA TRÊN TÍNH KHÓ CỦA VIỆC GIẢI ĐỒNG THỜI HAI BÀI TOÁN PHÂN TÍCH SỐ VÀ LOGARIT RỜI RẠC “, TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, SỐ 7(128).2018 ISSN 1859-1531
Đức, “Một phương pháp phát triển hệ mật khóa công khai”,
Hội nghị Quốc gia lần thứ XI về Nghiên cứu cơ bản và ứng dụng CNTT (FAIR 2018) ISBN: 978-604-913-397-8 Hà Nội 8/2018
for Obtaining Digital Signatures and Public Key Cryptosystems”, Commun of the ACM, Vol 21, No 2,
1978, pp 120-126
[24] National Institute of Standards and Technology, NIST FIPS PUB 186-4 Digital Signature Standard, U.S Department of Commerce, 2013
[25] T ElGamal, “A public key cryptosystem and a signature scheme based on discrete logarithms”, IEEE Transactions
on Information Theory 1985, Vol IT-31, No 4 pp.469–
472