1. Trang chủ
  2. » Công Nghệ Thông Tin

Hệ 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

10 34 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 216,58 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

Hệ 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

AbstractBà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ố nN, 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 2

là 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<en và: gcd(e,ϕ(n))=1 , ở đây:

) 1 ).(

1

(

)

(n = pq

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 gx1modp

= (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≤Mp−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 4

giả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 Bkmodp

=

Để 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

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+xE)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= pq1,

p

n> , 1<α<p , g ( −p1 ) /qmodp

p g

yx1mod

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+xE)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 5

c) 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≤Mp−1 , R=g kmodp ,

( )

y k

y M

mod mod

×

|

|

|

|

|

|qh < 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 6

Từ (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 AE 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 7

b) 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= pq1,

n > p, g ( −p1 ) /qmodp

p

Z

α , H:{ }0 , 1∗aZ h với:

|

|

|

|

|

|qh < 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 x2AkA Để 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 8

Hoà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

Ngày đăng: 08/06/2021, 04:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w