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

Xây dựng giao thức xác lập khóa cho các hệ mật mã khóa bí mật

9 13 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 9
Dung lượng 337,3 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 giao thức thiết lập khóa cho các hệ thống mật mã khóa bí mật; giao thức này có khả năng thiết lập và xác thực khóa; phân tích về tính an toàn của giao thức được đề xuất, đã chỉ ra khả năng áp dụng nó vào thực tế. Mời các bạn cùng tham khảo bài viết để nắm chi tiết hơn nội dung nghiên cứu.

Trang 1

XÂY DỰNG GIAO THỨC XÁC LẬP KHÓA CHO CÁC HỆ MẬT MÃ KHÓA BÍ MẬT

CONSTRUCTION OF KEY ESTABLISHMENT PROTOCOL FOR SECRET KEY

CRYPTOGRAPHY SYSTEMS

Lưu Hồng Dũng

Abstract: This paper proposed a key establishment

protocol for secret key cryptography systems This

protocol has the capacity of key establishment and

anthentication The paper also offers analysis on the

safety of the proposed protocol, has shown the ability to

apply it in practice

Từ khóa: Key Establishment, Key Agreement

Protocol, Key Transport Protocols, Secret Key

Cryptography System, Public Key Cryptography

System

I ĐẶT VẤN ĐỀ

Phương pháp xác lập khóa cho các hệ mật mã

khóa bí mật được đề xuất đầu tiên bởi W Diffie và

M Hellman vào năm 1976 và được gọi là giao

thức trao thỏa thuận Diffie-Hellman

(Diffie-Hellman Key Agreement Protocol) (gọi tắt là

phương pháp Diffie-Hellman), sau đó đã mở ra

một lĩnh vực mới về khoa học mật mã: mật mã

khóa công khai Hiện tại nó vẫn được sử dụng rất

phổ biến với nhiều biến thể khác nhau Nhược

điểm cơ bản của phương pháp Diffie-Hellman là

không có cơ chế xác thực các đối tượng tham gia

truyền thông vì thế phương pháp này không có khả

năng chống lại một số dạng tấn công giả mạo trong

thực tế Một số phương pháp đã được phát triển

sau đó như ECDH (Elliptic Curve Diffie-Hellman

Key Exchange), MQV (Menezes-Qu-Vanstone

Protocol), ECMQV (Elliptic Curve

Menezes-Qu-Vanstone Protocol) đã được ứng dụng phổ biến

trong thực tế Tuy nhiên, việc phát triển các phương pháp mới để ứng dụng trong thực tế vẫn luôn là yêu cầu cần thiết được đặt ra

Bài báo đề xuất 2 phương pháp cho phép bảo đảm đồng thời việc thiết lập khóa cho các hệ mật

mã khóa bí mật và xác thực các đối tượng tham gia truyền thông, vì thế sẽ chống được các kiểu tấn công giả mạo trong thực tế

II XÂY DỰNG GIAO THỨC XÁC LẬP KHÓA

Giao thức xác lập khóa được đề xuất ở đây bao gồm 2 thuật toán: thuật toán thỏa thuận khóa xây dựng trên cơ sở bài toán logarit rời rạc trong trường hữu hạn nguyên tố và thuật toán chuyển khóa, mà thực chất là một thuật toán mật mã khóa công khai được phát triển từ thuật toán thỏa thuận khóa thứ nhất Cả 2 thuật toán này đều sử dụng chung một thuật toán hình thành các tham số hệ thống và khóa

1 Thuật toán hình thành các tham số hệ thống

và khóa công khai

1- Chọn một số nguyên tố lớn p và phần tử sinh

g của nhóm sao cho bài toán logarit rời rạc trong là khó giải

*

p

Z

*

p

Z 2- Chọn khóa riêng (x) là một số nguyên thỏa

mãn: 1 < x < p

3- Khóa công khai tương ứng (y) được tính theo

công thức:

Trang 2

y = ( ) g xmod p

4- Chứng nhận và công khai y bởi một Cơ

quan chứng thực – CA (Certificate

Authority) đáng tin cậy

2 Thuật toán thỏa thuận khóa

2.1 Mô tả thuật toán

Các đối tượng tham gia trao đổi thông tin mật

cùng thống nhất chọn các tham số p và g, chọn

khóa riêng và tính khóa công khai của mình theo

Thuật toán hình thành các tham số hệ thống và

khóa công khai ở Mục 1 Giả sử đối tượng gửi/mã

hóa thông tin ký hiệu là A có khóa riêng là xA,

khóa công khai tương ứng của A là yA; Đối tượng

nhận/giải mã thông tin ký hiệu là B có khóa riêng

là xB và khóa công khai là yB Các đối tượng A và

B thống nhất sử dụng một thuật toán mật mã khóa

bí mật (ví dụ: DES, AES, ) để mã hóa thông tin

(bản tin, thông báo, tài liệu, ) cần trao đổi với

nhau, khi đó phương pháp để thiết lập một khóa bí

mật chung cho phép A mã hóa thông tin và B giải

mã thông tin, bao gồm các bước thực hiện như sau:

Bước 1:

+ Đối tượng A thực hiện các bước:

1- Chọn ngẫu nhiên một giá trị k A thỏa mãn:

p

k A <

<

1

2- Hình thành thông tin thỏa thuận khóa R A

theo công thức:

R ( ) g k A p

3- Gửi giá trị R A cho đối tượng B

+ Đối tượng B thực hiện các bước:

1- Chọn ngẫu nhiên một giá trị k B thỏa mãn:

p

k B <

<

2- Hình thành thông tin thỏa thuận khóa R B

theo công thức:

R ( ) g k B p

3- Gửi giá trị R B cho đối tượng A

Bước 2:

1- Đối tượng A hình thành khóa mã hóa theo công thức:

K ( ) ( ) R A y x A p

B

k B

2- Đối tượng B hình thành khóa giải mã theo công thức:

K ( ) ( ) R B y x B p

A

k A

2.2 Tính đúng đắn của thuật toán mới đề xuất

Điều cần chứng minh ở đây là: cho p là số nguyên tố, g là phần tử sinh của nhóm Zp,

p x

x A B <

< ,

( ) g p

y x B

( ) g p

R k A

( ) g p

R k B

( ) ( ) R y p

B

k B

( ) ( ) R y p

A

k A

B = × mod thì: K A =K B

Chứng minh:

Trang 3

Thật vậy, do:

=

( ) ( )

p g

g

p p

g p g

p y

R

K

B A B

A

A B

A B

A A

x x k

k

x x

k k

x B

k B A

mod

mod mod

mod

mod

. ×

=

×

×

=

Mặt khác, do:

( ) ( )

p g

g

p p

g p g

p y

R

K

B A B

A

B A

B A

B B

x x k

k

x x

k k

x A

k A B

mod

mod mod

mod

mod

. ×

=

×

=

×

=

Từ đây suy ra: K A =K B

Đây là điều cần chứng minh

2.3 Mức độ an toàn của thuật toán mới đề xuất

Mức độ an toàn của thuật toán mới đề xuất được

đánh giá qua các khả năng như sau:

a) Chống tấn công làm lộ khóa bí mật

Từ: K ( ) ( ) R A y x A p

B

k B

thể tính được khóa bí mật dùng chung cho các bên

tham gia truyền thông nếu biết được k

( ) ( ) R y p

A

k A

A và x A hoặc:

k B và x B Các giá trị này có thể tính được nhờ việc

giải:

R ( ) g k A p (1)

và:

y ( ) g x A p (2)

Hoặc:

R ( ) g k B p (3)

và:

y ( ) g x B p

Việc giải (1) và (2) hay (3) và (4) thực chất là giải bài toán logarit rời rạc trong trường hữu hạn nguyên tố Zp

Như vậy, khả năng chống tấn công làm lộ khóa

bí mật dùng chung của thuật toán mới đề xuất phụ thuộc vào mức độ khó của bài toán logarit rời rạc

b) Khả năng chống giả mạo về nguồn gốc khóa

bí mật

Để mạo danh A, kẻ giả mạo cần phải tính được khóa riêng (xA) của A Việc tính xA có thể thực hiện bằng cách giải (2) Tương tự, cũng có thể mạo danh B nếu tính được xB nhờ việc giải (4) Như đã chỉ ra, việc giải (2) và (4) thực chất là giải bài toán logarit rời rạc

Những phân tích trên cho thấy khả năng chống giả mạo nguồn gốc của khóa bí mật dùng chung phụ thuộc vào mức độ khó của bài toán logarit rời rạc

c) Tính bí mật về phía trước đối với A

Việc biết khóa riêng dài hạn của A sau một quá trình thỏa thuận khóa không cho phép kẻ tấn công tính lại được các khóa bí mật dùng chung do thuật toán tạo đã ra trước đó

d) Tính bí mật về phía trước riêng biệt đối với

cả A và B

Nếu biết khóa riêng dài hạn của A hoặc biết khóa riêng dài hạn của B sau một quá trình thỏa

Trang 4

thuận khóa, kẻ tấn công cũng không thể tính lại

được các khóa bí mật dùng chung do thuật toán tạo

đã ra trước đó

e) Tính bí mật về phía trước tương hỗ

Khi biết cả khóa riêng dài hạn của A và B sau

một quá trình thỏa thuận khóa thì kẻ tấn công cũng

không thể tính lại được các khóa bí mật dùng

chung do thuật toán tạo đã ra trước đó

2.4 Thuật toán thỏa thuận khóa mở rộng

Thuật toán thỏa thuận khóa mở rộng (thuật toán

mở rộng) được đề xuất cho các trường hợp mà ở

đó có số đối tượng tham gia thỏa thuận khóa lớn

hơn 2 Xét trường hợp số đối tượng là 3, với các

trường hợp có số đối tượng tham gia thỏa thuận

khóa lớn hơn 3 cũng có thể thực hiện hoàn toàn

tương tự giá sử các đối tượng cần thỏa thuận khóa

bí mật chung là A, B và C, các đối tượng này có

khóa riêng tương ứng là xA, xB, xC và các khóa

công khai tương ứng là yA, yB, yC Các đối tượng

thỏa thuận một khóa bí mật chung qua các bước

như sau:

Bước 1:

1- A chọn một giá trị k A thỏa mãn: 1<k A < p

tính giá trị RA và SA theo công thức:

gửi cho B

( ) g p

R k A

C

2- B chọn một giá trị k B thỏa mãn: 1<k B < p

tính giá trị RB và SB theo công thức:

R ( ) g k B p

gửi cho C

( ) y p

B

3- C chọn một giá trị k C thỏa mãn: 1<k C < p và tính giá trị RC và SC theo công thức:

( ) g p

R k C

rồi gửi cho A

( ) y p

S x C

B

Bước 2:

1- A tính giá trị RAC theo công thức:

R ( ) R k A p

C

AC = mod , rồi gửi cho B

2- B tính giá trị RB theo công thức:

R ( ) R k B p

A

AB = mod , rồi gửi cho C

3- C tính giá trị RBC theo công thức:

R ( ) R k C p

B

BC = mod , rồi gửi cho A

Bước 3:

1- A tính khóa bí mật KA theo công thức:

( ) ( ) R S p

C

k BC

2- B tính khóa bí mật KB theo công thức:

( ) ( ) R S p

A

k AC

3- C tính khóa bí mật KC theo công thức:

( ) ( ) R S p

B

k AB

Tính đúng đắn của thuật toán thỏa thuận khóa mở rộng được đề xuất có thể chứng minh như sau: Điều cần chứng minh ở đây là:

K A =K B =K C Thật vậy, ta có:

Trang 5

( ) ( )

( )

( ) g ( ) g p

p p

g p

g

p p

y p

R

p S

R

K

C B A C

B

A

C a B

C A B

A C

A C

A A

x x x k

k

k

x x x

k k k

x x

B

k k

B

x C

k

BC

A

mod

mod mod

mod

mod mod

mod

mod

.

.

.

×

=

×

=

×

=

×

=

Tương tự, ta cũng có:

( ) ( )

( )

( ) g p

p p

g p

g

p p

y p

R

p S

R

K

C

B

A

C B A C

B A C

B A

B A

B B

k

k

k

x x x x

k k k

x x

C k

k

C

x A

k

AC

B

mod

mod mod

mod

mod mod

mod

mod

.

.

.

=

×

=

×

=

×

=

Và:

( ) ( )

( )

( ) g ( ) g p

p p

g p

g

p p

y p

R

p S

R

K

C B A C

B

A

C B A

C B A

C B

C B

C C

x x x k

k

k

x x x

k k k

x x

A

k k

A

x B

k

AB

C

mod

mod mod

mod

mod mod

mod

mod

.

.

.

×

=

×

=

×

=

×

=

Từ đây suy ra: K A =K B =K C

Mức độ an toàn của thuật toán mở rộng có thể

phân tích đánh giá tương tự như với thuật toán thỏa

thuận khóa đã đề xuất ở Mục 2.3

3 Thuật toán chuyển khóa

3.1 Mô tả thuật toán

Ở đây cũng giả thiết rằng, các đối tượng tham

gia trao đổi thông tin A và B cùng thống nhất sử

dụng một thuật toán mật mã khóa bí mật (ví dụ:

DES, AES, ) để mã hóa thông tin (bản tin, thông

báo, tài liệu, ) cần trao đổi với nhau Các đối

tượng A và B lựa chọn các tham số dùng chung p

và g, chọn khóa riêng và tính khóa công khai của

mình theo Thuật toán hình thành các tham số hệ thống và khóa công khai ở Mục 1 Giả sử đối

tượng A có khóa riêng là xA, khóa công khai tương ứng của A là yA; Đối tượng B có khóa riêng là xB

và khóa công khai là yB Giả sử rằng, đối tượng A chọn khóa bí mật cho việc mã hóa và giải mã thông tin là K, với: 1 < K < p và gửi cho đối tượng B, quá trình thực hiện bao gồm các bước như sau:

Bước 1:

Đối tượng B thực hiện:

1- Chọn ngẫu nhiên một giá trị k B thỏa mãn:

p

k B <

<

2- Tính giá tri R B theo công thức:

R ( ) g k B p

3- Gửi giá trị R B cho đối tượng A

Bước 2:

Đối tượng A thực hiện:

1- Chọn ngẫu nhiên một giá trị k A thỏa mãn:

p

k A <

<

2- Tính giá trị C theo công thức:

C K ( ) ( ) R A y x A p

B

k

×

= 3- Tính giá trị R theo công thức:

R ( ) g k A p

mod

= 4- Gửi bản mã (C,R) cho đối tượng B

Bước 3:

Từ bản mã (C,R) nhận được, đối tượng B thực hiện việc giải mã (C,R) để nhận khóa bí mật (K) theo công thức sau:

Trang 6

( ) R ( ) y p C

A k

mod

×

=

3.2 Tính đúng đắn của thuật toán mới đề xuất

Điều cần chứng minh ở đây là: cho p là số

nguyên tố, g là phần tử sinh của nhóm Zp,

p x

x A B <

< ,

( ) g p

y x B

( ) g p

R k B

( ) ( ) R y p

K

B

k

×

( ) g p

R k A

mod

( ) R ( ) y p

C

A k

mod

×

Chứng minh:

Thật vậy, do:

R ( ) g k A p

mod

=

Nên:

( ) ( )

( ) ( )

×

×

×

=

=

×

×

×

=

×

×

=

p g

p g

p p

g p g

K

p p

g

p g

p y

R

K

p y

R C

K

A B B

A

A B

A B

B A

B A

A A

B B

x x k

k

x x

k k

x x

k k

x B

k B

x A k

mod mod

mod mod

mod

mod mod

mod mod

mod

.

×

K

p g

g g

g

K

p p g

g

p g

g

K

A B B A B A A B

A B B

A

B A A B

x x k k x x k k

x x k

k

x x k k

=

×

×

×

×

=

=

×

×

×

×

×

=

mod

mod mod mod

.

.

.

.

3.3 Mức độ an toàn của thuật toán mới đề xuất

Tương tự thuật toán thỏa thuận khóa ở Mục 2,

mức độ an toàn của thuật toán chuyển khóa mới đề xuất cũng được đánh giá qua các khả năng như sau:

a) Chống tấn công làm lộ khóa bí mật

Từ: C K ( ) ( ) R A y x A p

B

k

×

và: K C ( ) R B ( ) y x B p

A

×

thấy, có thể tính được khóa bí mật dùng chung cho

các bên tham gia truyền thông nếu biết được k A

x A hoặc k B và x B Các giá trị này có thể tính được nhờ việc giải:

y ( ) g x A p

và:

R ( ) g k A p

mod

Hoặc:

y ( ) g x B p

và:

R ( ) g k B p

Như đã chỉ ra ở Mục 2.3.a, khả năng chống tấn công làm lộ khóa bí mật dùng chung của thuật toán mới đề xuất ở đây cũng phụ thuộc vào mức độ khó của bài toán logarit rời rạc

b) Khả năng chống giả mạo về nguồn gốc khóa

bí mật

Để mạo danh A, kẻ giả mạo cần phải tính được khóa riêng (xA) của A Việc tính xA có thể thực hiện bằng cách giải (5) Tương tự, cũng có thể mạo danh B nếu tính được xB nhờ việc giải (7) Như vậy, khả năng chống giả mạo nguồn gốc của khóa

Trang 7

bí mật dùng chung (K) cũng phụ thuộc vào mức độ

khó của bài toán logarit rời rạc

3.4 Thuật toán chuyển khóa mở rộng

Thuật toán chuyển khóa mở rộng (thuật toán mở

rộng) được đề xuất cho các trường hợp mà ở đó có

số đối tượng lớn hơn 2 Xét trường hợp số đối

tượng là 3, với các trường hợp có số đối tượng

tham gia thỏa thuận khóa lớn hơn 3 cũng có thể

thực hiện hoàn toàn tương tự giá sử các đối tượng

cần thỏa thuận khóa bí mật chung là A, B và C, có

các khóa riêng là xA, xB, xC và các khóa công khai

tương ứng là yA, yB, yC Giả sử đối tượng A tạo

trước một khóa bí mật dùng chung K với:

và chuyển cho các đối tượng B và C,

thuật toán bao gồm các bước như sau:

p

K <

<

1

Bước 1:

1- A chọn một giá trị k A thỏa mãn: 1<k A < p

tính giá trị RA và SA theo công thức:

gửi cho B

( ) g p

R k A

C

2- B chọn một giá trị k B thỏa mãn: 1<k B < p

tính giá trị RB và SB theo công thức:

gửi cho C

( ) g p

R k B

A

3- C chọn một giá trị k C thỏa mãn: 1<k C < p

tính giá trị RC và SC theo công thức:

( ) g p

R k C

rồi gửi cho A

( ) y p

S x C

B

Bước 2:

1- A tính giá trị RAC theo công thức:

R ( ) R k A p

C

AC = mod , rồi gửi cho B

2- B tính giá trị RB theo công thức:

R ( ) R k B p

A

AB = mod , rồi gửi cho C

3- C tính giá trị RBC theo công thức:

R ( ) R k C p

B

BC = mod , rồi gửi cho A

Bước 3:

1- A mã hóa khóa bí mật KA theo công thức:

C K ( ) ( ) R A S x A p

C

k BC A

cho B và C

2- B giải mã CK để nhận khóa bí mật KA theo công thức:

A

k AC K

3- C giải mã CK để nhận khóa bí mật KA theo công thức:

K C ( ) R C ( ) S x C p

B

k AB K

Có thể dễ dàng thấy rằng:

K B =K C =K A

Thật vậy, ta có:

( ) ( ) ( ) ( )

( ) ( )

( )

×

×

×

=

=

×

×

×

×

=

×

×

=

B A

B A

A C

A C

B

B A

A

B B

x x

C k k

C

x x

B

k k

B A

x A

k AC

x C

k BC A

x A

k AC K B

p y

p R

p p

y p R

K

p S

R p S

R K

p S

R C K

mod mod

mod mod

mod mod

mod mod

Trang 8

( ) ( )

( ) ( )

(

( ) ( )

( )

( )( )

A x

x x

k

k

k

x x x k k

k

A

x x x k

k

k

x x x k k

k

A

x x x

k k k

x x x

k k k

A

K p g

g

K

p p g

g

p g

g

K

p p

g p

g

p p

g p

g

K

C B A

C

B

A

C B A C B

A

C B A C

B

A

C B A C B A

B A C

B A C

C A B

C A B

=

×

×

×

=

×

×

×

×

×

=

×

×

×

×

=

+

+

mod

mod mod mod

mod mod

mod

mod mod

mod

.

.

.

.

.

.

.

.

.

)

)

Tương tự, ta cũng có:

( ) ( )

( ) ( )

( )

( )

(

( )

( )( )

( )( )

A x

x x k

k

k

x x x k k

k

A

x x x k

k

k

x x x k k k

A

x x x

k k k

x x x

k k k

A

x x

A

k k

A

x x

B k k

B

A

x

B

k AB

x C

k

BC

A

x B

k AB K

C

K p g

g

K

p p g

p g

K

p p

g p

g

p p

g p

g

K

p p

y p

R

p p

y p

R

K

p S

R p S

R

K

p S

R

C

K

C B A C

B

A

C B A C B A

C B A C

B

A

C B A C B A

C B A

C B A

C A B

C A B

C B

C B

A C

A C

C

C A

A

C C

=

×

×

×

=

×

×

×

=

=

×

×

×

×

=

=

×

×

×

×

=

=

×

×

×

×

=

×

×

=

+

+

+

+

mod

mod mod mod

mod mod

mod

mod mod

mod

mod mod

mod

mod mod

mod mod

mod mod

.

.

.

.

.

.

.

.

Từ đây suy ra: K A=K B =K C

Mức độ an toàn của thuật toán mở rộng có thể

phân tích đánh giá tương tự như với thuật toán

chuyển khóa đã đề xuất ở Mục 3.3

III KẾT LUẬN

Bài báo đề xuất giao thức xác lập khóa cho

các hệ mật mã khóa bí mật, bao gồm một thuật

toán thỏa thuận khóa và một thuật toán chuyển

khóa Các thuật toán mới đề xuất có những đặc điểm cơ bản như sau:

- Mức độ an toàn của thuật toán phụ thuộc vào tính khó giải của bài toán logarit rời rạc trong trường hữu hạn nguyên tố

- Khóa mật dùng chung được xác thực về nguồn gốc, nên thuật toán mới đề xuất có khả năng chống lại các dạng tấn công giả mạo

- Khi bị lộ khóa riêng dài hạn (xA,xB) của các đối tượng tham gia thỏa thuận khóa (A,B) thì kẻ tấn công cũng không tính được khóa bí mật dùng chung (K) do thuật toán đã tạo ra trước đó

- Có thể mở rộng thuật toán cho các trường hợp có số lượng các đối tượng tham gia thỏa thuận khóa lớn hơn 2

Chứng minh về tính đúng đắn và những đánh giá về mức độ an toàn của thuật toán mới đề xuất

đã cho thấy khả năng ứng dụng của nó trong thực

tế

TÀI LIỆU THAM KHẢO

[1] W Diffie & M Hellman, New Directions in Cryptography, IEEE Trans On Info Theory,

IT-22(6):644-654, 1976

[2] William Stallings, Cryptography and Network Security Principles and Practices, Fourth

Edition, Prentice Hall PTR, p 592, 2005

[3] D.R Stinson, Cryptography: Theory and Practice, CRC Press 1995

Trang 9

_

SƠ LƯỢC VỀ TÁC GIẢ

LƯU HỒNG DŨNG

Sinh năm 1966

Tốt nghiệp đại học ngành Vô tuyến Điện tử tại Học

viện Kỹ thuật Quân sự năm 1989

Hiện đang công tác tại khoa CNTT- Học viện

KTQS

Hướng nghiên cứu: An toàn và bảo mật thông tin

Email: luuhongdung@gmail.com

Ngày đăng: 07/05/2021, 12:56

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