Tải bản đầy đủ (.pdf) (7 trang)

Phát triển một số thuật toán mật mã khóa công khai - Trường Đại Học Quốc Tế Hồng Bàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (187.89 KB, 7 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<i>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, 03-04/12/2012</i>


<b>Phát triển một số thuật tốn mật mã khóa cơng khai </b>



Development of some public key cryptographic algorithms



L

ư

u H

ng D

ũ

ng

1

, Tr

n Trung D

ũ

ng

2

, V

ũ

T

t Th

ng

3


, ,


1

<sub> Khoa Công ngh</sub>



Thông tin – H

c vi

n K

thu

t Quân s


2


Đạ

i h

c CNTT và Truy

n thông –

Đạ

i h

c Thái Nguyên


3

<sub> Vi</sub>



n Công ngh

Thông tin – Vi

n Khoa h

c và Cơng ngh

Vi

t nam





<i><b>Tóm t</b><b>ắ</b><b>t</b></i><b>—</b><i><b>Bài báo </b><b>đề</b><b> xu</b><b>ấ</b><b>t m</b><b>ộ</b><b>t s</b><b>ố</b><b> thu</b><b>ậ</b><b>t tốn m</b><b>ậ</b><b>t mã khóa cơng </b></i>
<i><b>khai </b><b>đượ</b><b>c phát tri</b><b>ể</b><b>n t</b><b>ừ</b><b> h</b><b>ệ</b><b> m</b><b>ậ</b><b>t ElGamal. </b><b>Ư</b><b>u </b><b>đ</b><b>i</b><b>ể</b><b>m c</b><b>ủ</b><b>a các thu</b><b>ậ</b><b>t </b></i>
<i><b>toán m</b><b>ớ</b><b>i </b><b>đề</b><b> xu</b><b>ấ</b><b>t là cho phép b</b><b>ả</b><b>o m</b><b>ậ</b><b>t và xác th</b><b>ự</b><b>c thông tin m</b><b>ộ</b><b>t </b></i>
<i><b>cách </b><b>đồ</b><b>ng th</b><b>ờ</b><b>i. H</b><b>ơ</b><b>n n</b><b>ữ</b><b>a, m</b><b>ứ</b><b>c </b><b>độ</b><b> an tồn c</b><b>ủ</b><b>a các thu</b><b>ậ</b><b>t tốn </b></i>
<i><b>m</b><b>ớ</b><b>i </b><b>đề</b><b> xu</b><b>ấ</b><b>t không nh</b><b>ỏ</b><b> h</b><b>ơ</b><b>n m</b><b>ứ</b><b>c </b><b>độ</b><b> an toàn c</b><b>ủ</b><b>a thu</b><b>ậ</b><b>t toán </b></i>
<i><b>ElGamal. </b></i>


<i><b>T</b><b>ừ</b></i> <i><b>khoáa: </b></i> <i><b>Public Key </b></i> <i><b>Cryptosystem, </b></i> <i><b>SignCryption </b></i>



<i><b>Algorithm, Digital Signature, Hash Function. </b></i>
I. ĐẶTVẤNĐỀ


Thuật toán mật mã RSA [1] và ElGamal [2] là những
thuật tốn mật mã khóa cơng khai được biết đến và sử dụng
phổ biến nhất trong thực tế. Nhược điểm cơ bản của các
thuật toán này là khơng có cơ chế xác thực thơng tin được
bảo mật (nguồn gốc, tính tồn vẹn), vì thế nó 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ế.
Đã có một số kết quả đạt được từ việc phát triển các thuật
tốn này nhằm khắc phục yếu điểm nói trên của nó. Trong


[3]đề xuất một thuật tốn cải tiển từ ElGamal bằng việc sử
dụng chữ ký sốđể tạo cơ chế xác thực về nguồn gốc và tính
tồn vẹn cho thông tin (bản tin, thông điệp dữ liệu, ...) được
bảo mật. Đặc điểm của thuật toán này là chữ ký sốđược hình
thành trực tiếp từ bản rõ nên chỉ phù hợp với các ứng dụng
mà ở đó bản tin được truyền trực tiếp giữa 2 đối tượng
gửi/mã hóa và nhận/giải mã. Do đặc điểm trên, nó bị hạn chế
trong một số tình huống ứng dụng khi bản tin mật được
truyền từ người gửi/mã hóa đến người nhận/giải mã phải
chuyển tiếp qua một số khâu trung gian, mà ởđó nó cần phải
được xác thực về nguồn gốc cũng như tính toàn vẹn trước
khi gửi đến các khâu trung gian khác hay đến đối tượng
nhận. Vấn đề là ở chỗ, các khâu trung gian không được phép
biết nội dung bản tin, nhưng để xác thực được nguồn gốc và
tính tồn vẹn của nó thì bản tin cần phải được giải mã, nghĩa
là thông tin sẽ bị lộở các khâu trung gian mà lẽ ra là không
được phép. Thuật toán thứ nhất được đề xuất ởđây cho phép
khắc phục nhược điểm nói trên của thuật tốn trong [3] nhờ


việc hình thành chữ ký số từ bản mã chứ không phải từ bản
rõ. Do đó, với thuật tốn mới đề xuất việc giải mã bản tin
được bảo mật là không cần thiết khi phải xác thực nguồn gốc
và tính tồn vẹn của nó ở các khâu trung gian. Bốn thuật toán
tiếp theo cũng được phát triển từ thuật toán ElGamal nhằm
bảo đảm khả năng xác thực về nguồn gốc nhưng không xác
thực về tính tồn vẹn của bản tin cũng được đề xuất ởđây.


II. PHÁTTRIỂNMỘTSỐTHUẬTTỐNMẬTMÃ
KHĨACƠNGKHAI


<i>A.</i> <i>Các thuật toán cơ sở</i>


Các thuật toán cơ sởởđây bao gồm thuật tốn mật mã
khóa cơng khai El Gamal và thuật toán chữ ký số DSA.
Thuật toán mật mã Elgama được đề xuất vào năm 1985,
thuật toán này được xây dựng trên cơ sở bài toán logarith
rời rạc và được sử dụng bởi Cơ quan An ninh Quốc gia Mỹ
- NSA (National Security Agency). Thuật toán chữ ký số
DSA (Digital Signature Algorithm) được phát triển từ thuật
toán chữ ký số ElGamal. DSA được NSA đề xuất và NIST
(<i>National Institute of Standards and Technology</i>) công nhận
làm chuẩn chữ ký số của Mỹ từ năm 1994 [4].Các thuật
toán trên được sử dụng để phát triển một số thuật tốn mật
mã có khả năng bảo mật và xác thực thông tin một cách
đồng thời.


<i>1)</i> <i>Thuật toán mật mã ElGamal </i>


Các thành viên trong hệ thống muốn trao đổi thông tin


mật với nhau bằng thuật tốn mật mã Elgamal thì trước tiên
thực hiện q trình hình thành khóa như sau:


• Chọn số nguyên tốđủ lớn <i>p</i> sao cho bài toán logarit
trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải.


• Chọn phần tử sinh <i>g</i> của nhóm ∗


<i>p</i>


<i>Z</i>

.


• Chọn khóa mật x là số nguyên thỏa mãn:

(

1

)



1

<

<i>x</i>

<

<i>p</i>

. Tính khóa cơng khai y theo cơng
thức:

<i>y</i>

=

<i>g</i>

<i>x</i>

mod

<i>p</i>

.


Giả sử người gửi/mã hóa là A, người nhận/giải mã là B.
Người A có khóa bí mật là <i>xA</i> và khóa cơng khai là <i>yA</i>. Người


B có khóa bí mật là <i>xB</i> và khóa cơng khai là <i>yB</i>. Khi đó, để


gửi bản tin <i>M</i> cho B, với:

0

<i>M</i>

<

<i>p</i>

<b>, </b>người gửi A sẽ thực
hiện các bước như sau:


• Chọn số ngẫu nhiên <i>k</i> thỏa mãn:

1

<

<i>k</i>

<

(

<i>p</i>

1

)

;
• Tính giá trị<i>R</i> theo cơng thức:


<i>p</i>



<i>g</i>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<i>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, 03-04/12/2012</i>


• Sử dụng khóa cơng khai của B để tính:

<i>p</i>


<i>y</i>



<i>M</i>



<i>C</i>

=

×

(

<i><sub>B</sub></i>

)

<i>k</i>

mod

.


• Gửi bản mã

(

<i>C</i>

,

<i>R</i>

)

đến người nhận B.


Để khôi phục bản tin ban đầu (M) từ bản mã

(

<i>C</i>

,

<i>R</i>

)


nhận được, người nhận B thực hiện các bước như sau:


• Tính giá trị Z theo công thức:

<i>p</i>


<i>R</i>



<i>Z</i>

=

−1

mod

.
• Khơi phục bản tin ban đầu (M):


( )

<i>Z</i>

<i>p</i>


<i>C</i>



<i>M</i>

<sub>=</sub>

<sub>×</sub>

<i>xB</i>

mod

<sub>. </sub>
<i>2)</i> <i>Thuật tốn chữ ký số DSA </i>



Thủ tục hình thành tham số và khóa bao gồm các bước
thực hiện như sau:


• Chọn cặp số nguyên tố <i>p</i> và <i>q</i> sao cho bài toán
logarit trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải và thỏa mãn:


)


1


(


|

<i>p</i>



<i>q</i>

;


• Chọn

<i>g</i>

=

<i>h</i>

(<i>p</i>−1)/<i>q</i>

mod

<i>p</i>

là phần tử sinh có bậc <i>q</i>
của nhóm ∗


<i>p</i>


<i>Z</i>

, nghĩa là:

1

<

<i>g</i>

<

<i>p</i>

và:

<i>p</i>



<i>g</i>

<i>q</i>

1

mod

. Ở đây: <i>h</i> là một số ngun thỏa
mãn:

1

<

<i>h</i>

<

<i>p</i>

;


• Khóa bí mật x là một giá trị được chọn trong
khoảng:

1

<

<i>x</i>

<

<i>q</i>

.


• Khóa cơng khai y được tính theo cơng thức:

<i>p</i>




<i>g</i>



<i>y</i>

=

<i>x</i>

mod

.


Thủ tục hình thành chữ ký lên bản tin M bao gồm các
bước như sau:


• Chọn một giá trị<i>k</i> thỏa mãn:

1

<

<i>k</i>

<

<i>q</i>

.


• Tính thành phần thứ nhất <i>R</i> của chữ ký theo công
thức:


<i>R</i>

=

(

<i>g</i>

<i>k</i>

mod

<i>p</i>

)

mod

<i>q</i>

.


• Thành phần thứ hai S của chữ ký được tính theo
cơng thức:


(

<i>H</i>

<i>M</i>

<i>x</i>

<i>R</i>

)

<i>q</i>


<i>k</i>



<i>S</i>

=

−1

×

(

)

+

×

mod

,


Với: |q| = 160 bit, hàm băm H(.) được chọn ở đây là
SHA-1.


Thủ tục kiểm tra tính hợp lệ của chữ ký bao gồm các bước
như sau:


• Tính giá trị:

<i>W</i>

<sub>=</sub>

<i>S</i>

−1

mod

<i>q</i>

<sub>: </sub>
• Tính giá trị:

<i>U</i>

=

<i>W</i>

.

<i>H</i>

( )

<i>M</i>

mod

<i>q</i>



• Tính giá trị:

<i>V</i>

=

<i>W</i>

.

<i>R</i>

mod

<i>q</i>



• Kiểm tra nếu

<i>R</i>

<sub>=</sub>

(

<i>g</i>

<i>U</i>

<sub>×</sub>

<i>y</i>

<i>V</i>

<sub>mod</sub>

<i>p</i>

)

<sub>mod</sub>

<i>q</i>

<sub>thì </sub>
chữ ký (<i>R</i>,<i>S</i>) hợp lệ, do đó nguồn gốc và tính tồn
vẹn của bản tin M được cơng nhận.


<i>B.</i> <i>Thuật tốn mật mã khóa cơng khai phát triển dựa trên </i>
<i>hệ mật ElGamal và DSA </i>


<i>1)</i> <i>Thuật toán thứ nhất </i>


Thuật toán thứ nhất đề xuất ở đây được phát triển từ
việc kết hợp thuật toán mật mã El Gamal và thuật tốn chữ
sơ DSA nhằm bảo đảm các khả năng về bảo mật và xác thực
thông tin. Ởđây thông tin được xác thực đồng thời về nguồn
gốc cũng như tính tồn vẹn.


<i>a)</i> <i>Thủ tục hình thành tham số và khóa </i>


Thủ tục hình thành tham số và khóa ở đây hồn tồn
tương tự nhưở thuật toán DSA, bao gồm các bước như sau:


• Chọn cặp số nguyên tố p và q sao cho bài toán
logarit trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải và thỏa mãn:


)


1


(


|

<i>p</i>




<i>q</i>

;


• Chọn

<i>g</i>

<i>h</i>

(<i>p</i>−1)/<i>q</i>

<sub>mod</sub>

<i>p</i>



=

là phần tử sinh có bậc <i>q</i>
của nhóm

<i>Z</i>

∗<i><sub>p</sub></i>, với <i>h</i> là một số nguyên thỏa mãn:


<i>p</i>


<i>h</i>

<


<



1

;


• Khóa bí mật x là một giá trị được chọn trong
khoảng:

1

<

<i>x</i>

<

<i>q</i>

. Khóa cơng khai y được tính
theo cơng thức:

<i>y</i>

=

<i>g</i>

<i>x</i>

mod

<i>p</i>

;


• Giữ bí mật: x; cơng khai: p, q, g, y. Khóa cơng khai
y cần phải được chứng thực bởi một CA (Certificate
Authority)đáng tin cậy.


<i>b)</i> <i>Thủ tục mã hóa </i>


Giả sử người gửi/mã hóa là A, người nhận/giải mã là B.
Người gửi A có khóa bí mật là xA và khóa cơng khai là yA.


Người nhận B có khóa bí mật là xB và khóa cơng khai là yB.


Để gửi bản tin M cho B, với:

0

<i>M</i>

<

<i>p</i>

<b>, </b>A thực hiện các
bước như sau:


• Chọn giá trị<i>kA</i> thỏa mãn:

1

<

<i>k</i>

<i><sub>A</sub></i>

<

<i>q</i>

và không lặp


lại.


• Sử dụng khóa cơng khai của B để mã hóa M theo
công thức:


(

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i>


<i>B</i>

mod



ì



=

,


ã Tớnh thnh phn <i>R</i> theo cụng thc:


(

<i>g</i>

<i>p</i>

)

<i>q</i>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<i>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, 03-04/12/2012</i>


( )

<i>k</i>

(

<i>C</i>

<i>x</i>

<i>R</i>

)

<i>q</i>


<i>S</i>

=

<i><sub>A</sub></i> −1

×

+

<i><sub>A</sub></i>

×

mod

,
• Gửi bản mã gồm

(

<i>C</i>

,

<i>R</i>

,

<i>S</i>

)

đến B.



<i>c)</i> <i>Thủ tục giải mã </i>


Từ bản mã

(

<i>C</i>

,

<i>R</i>

,

<i>S</i>

)

nhận được, B khôi phục và kiểm tra
nguồn gốc cũng như tính tồn vẹn của bản tin ban đầu (M)
như sau:


• Tính giá trị nghịch đảo của S:

<i>q</i>


<i>S</i>



<i>w</i>

=

−1

mod

.


• Tính giá trị<i>u</i> theo cơng thức:

(

<i>C</i>

<i>w</i>

)

<i>q</i>



<i>u</i>

=

ì

mod

,


ã Tớnh giỏ tr<i>v</i> theo cụng thc:

(

<i>R</i>

<i>w</i>

)

<i>q</i>



<i>v</i>

=

ì

mod

,


ã Tớnh giỏ tr

<i>R</i>

theo công thức:

( )

<i>g</i>

( )

<i>y</i>

<i>p</i>



<i>R</i>

<i>A</i> <i>v</i>


<i>u</i>

<sub>mod</sub>



ì




=

,


ã Tớnh giỏ tr

<i>M</i>

theo cụng thc:


( )

<i>R</i>

<i>p</i>


<i>C</i>



<i>M</i>

<i>xB</i>

<sub>mod</sub>



ì



=

,


ã Tính giá trị

<i>R</i>

theo cơng thức:


( )

<i>R</i>

<i>q</i>



<i>R</i>

=

mod

,


• So sánh

<i>R</i>

với

<i>R</i>

, nếu

<i>R</i>

=

<i>R</i>

thì

<i>M</i>

=

<i>M</i>


bản tin nhận được (C,R,S) có nguồn gốc từ đối
tượng gửi A.


<i>d)</i> <i>Tính đúng đắn của thuật toán mới đề xuất </i>


Điều cần chứng minh ởđây là: Cho: <i>p</i>, <i>q</i> là 2 số nguyên tố
phân biệt thỏa mãn:


)



1


(


|

<i>p</i>



<i>q</i>

,

1

<

<i>h</i>

<

<i>p</i>

,

<i>p</i>



<i>h</i>



<i>g</i>

<sub>=</sub>

(<i>p</i>−1)/<i>q</i>

<sub>mod</sub>



,

1

<

<i>x</i>

<i><sub>A</sub></i>

,

<i>x</i>

<i><sub>B</sub></i>

<

<i>q</i>

,

<i>p</i>



<i>g</i>



<i>y</i>

<i>xA</i>


<i>A</i>

=

mod

,

<i>y</i>

<i>g</i>

<i>B</i>

<i>p</i>


<i>x</i>


<i>B</i>

=

mod

,

1

<

<i>k</i>

<i>A</i>

<

<i>q</i>

,


(

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i>


<i>B</i>

mod




×



=

,

<i>R</i>

<sub>=</sub>

(

<i>g</i>

<i>kA</i>

mod

<i>p</i>

)

mod

<i>q</i>

<sub>, </sub>


( )

<i>k</i>

(

<i>C</i>

<i>x</i>

<i>R</i>

)

<i>q</i>


<i>S</i>

=

<i><sub>A</sub></i> −1

×

+

<i><sub>A</sub></i>

×

mod

. Νếu:


<i>q</i>


<i>S</i>



<i>w</i>

<sub>=</sub>

−1

mod



,


(

<i>C</i>

<i>w</i>

)

<i>q</i>



<i>u</i>

=

×

mod

,

<i>v</i>

=

(

<i>R</i>

×

<i>w</i>

)

mod

<i>q</i>

,

( )

<i>g</i>

( )

<i>y</i>

<i>p</i>



<i>R</i>

=

<i>u</i>

×

<i><sub>A</sub></i> <i>v</i>

mod

,

<i>M</i>

<i>C</i>

( )

<i>R</i>

<i>xB</i>

<i>p</i>


mod



×



=

,




( )

<i>R</i>

<i>q</i>




<i>R</i>

=

mod

. Thì :

<i>M</i>

=

<i>M</i>

<i>R</i>

=

<i>R</i>

.
<i>Chứng minh</i>:


Thật vậy, ta có:




( )



(

)



( )

( )



(

)



( )

( )



(

<i>g</i>

<i>y</i>

)

<i>p</i>



<i>p</i>


<i>y</i>



<i>g</i>



<i>p</i>


<i>y</i>



<i>g</i>


<i>R</i>




<i>S</i>
<i>R</i>
<i>A</i>
<i>S</i>
<i>C</i>


<i>w</i>
<i>R</i>
<i>A</i>
<i>w</i>
<i>C</i>


<i>v</i>
<i>A</i>
<i>u</i>


mod


mod


mod


)



(



1


1 −


− <sub>×</sub>



×


×
×


×


=



×


=



×


=





Mặt khác, từ:


( )

<i>k</i>

(

<i>C</i>

<i>x</i>

<i>R</i>

)

<i>q</i>



<i>S</i>

<i>A</i> <i>A</i>

mod



1


×


+


×



=

− ,



Suy ra:


(

<i>C</i>

<i>x</i>

<i>R</i>

)

<i>q</i>


<i>S</i>



<i>k</i>

<i><sub>A</sub></i>

=

−1

×

+

<i><sub>A</sub></i>

×

mod



.
Nên:


( )

( )


( )

( )



(

)

( )



( )

<i>y</i>

<i>p</i>



<i>g</i>



<i>p</i>


<i>p</i>



<i>g</i>


<i>p</i>


<i>g</i>



<i>p</i>


<i>g</i>




<i>g</i>



<i>p</i>


<i>g</i>



<i>p</i>


<i>g</i>



<i>S</i>
<i>R</i>
<i>A</i>
<i>S</i>
<i>C</i>


<i>S</i>
<i>R</i>
<i>x</i>
<i>S</i>


<i>C</i>


<i>S</i>
<i>R</i>
<i>x</i>
<i>S</i>


<i>C</i>


<i>R</i>
<i>x</i>


<i>C</i>
<i>S</i>
<i>k</i>


<i>A</i>
<i>A</i>


<i>A</i>
<i>A</i>


mod



mod


mod



mod



mod


mod


mod



1
1


1
1


1
1



1













×
×


×
×


×
×
×


×
+
×


×


=












×


=



×


=



=



Từđây suy ra:


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<i>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, 03-04/12/2012</i>


Do đó:


(

)

(

( )

)



(

)



(

)



(

)




(

)



(

)



(

)



(

)

(

( )

)



(

) (

)



(

<i>M</i>

<i>g</i>

<i>g</i>

)

<i>p</i>

<i>M</i>



<i>p</i>


<i>p</i>



<i>g</i>


<i>p</i>


<i>g</i>



<i>M</i>



<i>p</i>


<i>p</i>



<i>g</i>


<i>p</i>


<i>g</i>



<i>M</i>




<i>p</i>


<i>p</i>



<i>p</i>


<i>g</i>



<i>p</i>


<i>p</i>



<i>y</i>


<i>M</i>



<i>p</i>


<i>p</i>



<i>R</i>


<i>p</i>


<i>C</i>



<i>p</i>


<i>R</i>



<i>C</i>


<i>M</i>



<i>A</i>
<i>B</i>
<i>A</i>
<i>B</i>



<i>A</i>
<i>B</i>
<i>A</i>


<i>B</i>


<i>B</i>
<i>A</i>
<i>A</i>


<i>B</i>
<i>B</i>
<i>A</i>


<i>A</i>
<i>B</i>
<i>B</i>


<i>k</i>
<i>x</i>
<i>k</i>
<i>x</i>


<i>k</i>
<i>x</i>
<i>k</i>


<i>x</i>


<i>x</i>


<i>k</i>
<i>k</i>


<i>x</i>
<i>x</i>
<i>k</i>


<i>k</i>
<i>B</i>


<i>x</i>
<i>x</i>


=


×



×


=



×


×



=



×


×



=


×




×


×



=



×


=



×


=



×
×




×
×





mod



mod


mod



mod



mod



mod



mod



mod


mod



mod



mod


mod



mod


mod



mod



mod


)


(





Và:


<i>R</i>

<sub>=</sub>

( )

<i>R</i>

mod

<i>q</i>

<sub>=</sub>

(

<i>g</i>

<i>kA</i>

mod

<i>p</i>

)

mod

<i>q</i>

<sub>=</sub>

<i>R</i>

<sub>. </sub>
Đây là điều cần chứng minh.


<i>e)</i> <i>Mức độ an toàn của thuật tốn mới đề xuất </i>
Mức độ an tồn của thuật tốn mới đề xuất có thểđánh


giá qua các khả năng:


• Chống tấn cơng làm lộ khóa mật.
• Chống thám mã.


• Chống giả mạo nguồn gốc và nội dung bản tin.
Có thể thấy rằng, thủ tục hình thành khóa ở thuật tốn
được đề xuất và ở các thuật toán El Gamal, DSA thực chất
là một. Vì vậy, có thể kết luận khả năng chống tấn cơng làm
lộ khóa mật của thuật toán mới đề xuất là tương đương với
khả năng chống tấn cơng làm lộ khóa mật của các thuật toán
El Gamal và DSA.


Về khả năng chống thám mã, xét trong các trường hợp tấn
công trực tiếp vào thuật toán mã hóa:


(

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i>


<i>B</i>

mod



×



=

và thuật toán giải mã:


( )

<i>R</i>

<i>p</i>


<i>C</i>




<i>M</i>

<i>xB</i>

<sub>mod</sub>



×



=

, cho thấy rằng mức độ an tồn
của thuật tốn được đề xuất và của thuật toán El Gamal là
tương đương nhau.


Ở thuật toán mới đề xuất, cơ chế xác thực về nguồn gốc
và tính tồn vẹn của bản tin được thiết lập trên cơ sở các thủ
tục hình thành và xác minh chữ ký số của thuật tốn DSA.
Vì vậy, mức độ an tồn của thuật toán mới đề xuất xét theo
khả năng chống giả mạo nguồn gốc và nội dung bản tin là
tương đương khả năng chống giả mạo chữ ký của thuật toán
DSA.


<i>2)</i> <i>Thuật toán thứ 2 </i>


Thuật toán thứ 2 đề xuất ởđây cũng được phát triển từ
thuật toán mật mã El Gamal. Điểm khác biệt cơ bản với
thuật toán El Gamal là ở chỗ thuật toán mới đề xuất có cơ
chế xác thực nguồn gốc thơng tin 2 chiều được thiết lập dựa
trên việc sử dụng khóa cơng khai của người nhận (yB) trong


thủ tục mã hóa và khóa cơng khai của người gửi (yA) trong


thủ tục giải mã.


<i>a)</i> <i>Thủ tục hình thành tham số và khóa </i>



• Chọn số nguyên tố lớn <i>p</i> sao cho bài tốn logarit
trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải.


• Chọn <i>g</i> là phần tử sinh của ∗


<i>p</i>


<i>Z</i>

.


• Chọn khóa mật x là số nguyên thỏa mãn:


(

1

)



1

<

<i>x</i>

<

<i>p</i>

.


• Tính khóa cơng khai y theo cơng thức:

<i>p</i>



<i>g</i>



<i>y</i>

=

<i>x</i>

mod

.


• Giữ bí mật: x; cơng khai: p, q, g, y. Khóa cơng khai
y cần phải được chứng thực bởi một CA (Certificate
Authority)đáng tin cậy.


<i>b)</i> <i>Thủ tục mã hóa</i>


Giả sử người gửi là A, người nhận là B. Người gửi A có


khóa bí mật là <i>xA</i> và khóa cơng khai là <i>yA</i>. Người nhận B có


khóa bí mật là <i>xB</i> và khóa cơng khai là <i>yB</i>. Khi đó, để gửi bản


tin <i>M</i> cho B, với:

0

<i>M</i>

<

<i>p</i>

<b>, </b>A sẽ thực hiện các bước như
sau:


• Chọn số ngẫu nhiên <i>kA</i> thỏa mãn:


)


1


(



1

<

<i>k</i>

<i>A</i>

<

<i>p</i>

. Tính giá trị<i>R</i> theo cơng thức:


<i>p</i>


<i>g</i>



<i>R</i>

<sub>=</sub>

<i>kA</i>

mod

<sub>. </sub>


• Sử dụng khóa cơng khai của B để tính:

<i>p</i>


<i>y</i>



<i>M</i>



<i>C</i>

<i>kA</i> <i>xA</i>


<i>B</i>

)

mod




(

+


×



=

.


• Gửi bản mã gồm

(

<i>C</i>

,

<i>R</i>

)

đến người nhận B.
<i>c)</i> <i>Thủ tục giải mã</i>


Để khôi phục bản tin ban đầu (M) từ bản mã

(

<i>C</i>

,

<i>R</i>

)


nhận được, người nhận B thực hiện các bước như sau:


• Tính giá trị<i>Z</i> theo công thức:


(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>Z</i>

<i>A</i>

mod



1



ì



=

.


ã Khụi phc bn tin ban u (M):

( )

<i>Z</i>

<i>p</i>


<i>C</i>



<i>M</i>

<sub>=</sub>

<sub>×</sub>

<i>xB</i>

mod



.
<i>d)</i> <i>Tính đúng đắn của thuật toán mới đề xuất</i>


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

<i>Z</i>

<i><sub>p</sub></i>∗ ,

1

<

<i>x</i>

<i><sub>A</sub></i>

,

<i>x</i>

<i><sub>B</sub></i>

<

(

<i>p</i>

1

)

,


<i>p</i>


<i>g</i>



<i>y</i>

<i>xA</i>


<i>A</i>

=

mod

,

<i>y</i>

<i>g</i>

<i>p</i>



<i>B</i>
<i>x</i>


<i>B</i>

=

mod

,

(

1

)



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<i>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, 03-04/12/2012</i>


(

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i> <i>xA</i>


<i>B</i>

mod



+


×



=

,

<i>R</i>

<sub>=</sub>

( )

<i>g</i>

<i>kA</i>

mod

<i>p</i>

<sub>. N</sub>


ếu:


(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>Z</i>

<i>A</i>

mod



1



×



=

,

<i>M</i>

<i>C</i>

( )

<i>Z</i>

<i>xB</i>

mod

<i>p</i>



×



=

thì:


<i>M</i>


<i>M</i>

=

.


<i>Chứng minh</i>:
Thật vậy, ta có:


( )


( )




(

)



(

)



(

)



(

)



(

)



(

) (

)



(

)



( )


(

)

<sub>(</sub>

( )

<sub>)</sub>



( ) ( )


<i>M</i>


<i>p</i>


<i>g</i>



<i>g</i>


<i>M</i>



<i>p</i>


<i>p</i>




<i>g</i>


<i>p</i>


<i>g</i>



<i>M</i>



<i>p</i>


<i>p</i>



<i>p</i>


<i>g</i>



<i>p</i>


<i>g</i>



<i>p</i>


<i>p</i>



<i>g</i>


<i>M</i>



<i>p</i>


<i>p</i>



<i>y</i>


<i>R</i>



<i>p</i>


<i>y</i>




<i>M</i>



<i>p</i>


<i>Z</i>



<i>C</i>


<i>M</i>



<i>B</i>
<i>A</i>
<i>A</i>
<i>B</i>
<i>A</i>
<i>A</i>


<i>B</i>
<i>A</i>
<i>A</i>
<i>B</i>


<i>A</i>
<i>A</i>


<i>B</i>
<i>A</i>


<i>A</i>


<i>A</i>
<i>A</i>


<i>B</i>


<i>B</i>
<i>A</i>
<i>A</i>


<i>B</i>


<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>x</i>
<i>k</i>


<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>


<i>x</i>
<i>k</i>


<i>x</i>
<i>x</i>


<i>k</i>


<i>x</i>
<i>k</i>


<i>x</i>


<i>x</i>
<i>A</i>


<i>x</i>
<i>k</i>
<i>B</i>


<i>x</i>


=


×



×


=



×


×



=



=


×



×



×


×




=



=


×



×



×


×



=



=


×



=



+

+


+

+



+


+



mod



mod


mod



mod



mod


mod



mod


mod



mod


mod



mod


mod



mod


mod



.
.


.
.


1


1


<i>e)</i> <i>Mức độ an tồn của thuật tốn mới đề xuất</i>


Ở thuật toán mới đề xuất, việc tấn công trực tiếp vào
thủ tục mã hóa là khó khăn hơn thuật tốn El Gamal, vì ở
thuật tốn này cả 2 khóa bí mật ngắn hạn (kA) và dài hạn


(xA) của người gửi cùng được sử dụng để mã hóa bản tin.


Do đó, việc thám mã và giả mạo, xét trong trường hợp này,
chỉ có thể thực hiện thành cơng khi cả 2 khóa bí mật đồng
thời bị lộ. Từđây có thể thấy rằng, mức độ an tồn của
thuật tốn mới đề xuất xét theo khả năng chống thám mã và
chống tấn công làm lộ khóa mật là khơng nhỏ hơn mức độ
an tồn của thuật tốn El Gamal trong khi mức độ chống giả
mạo nguồn gốc bản tin được bảo mật lại cao hơn thuật toán
El Gamal.


<i>3)</i> <i>Thuật toán thứ 3 </i>


Thuật tốn thứ 3 được đề xuất ởđây có cơ chế xác thực
tương tự như thuật toán thứ hai, nhưng có cách thức thực
hiện dưới dạng một giao thức (protocol). Ngoài ra, bản mã
được tạo ra bởi thuật toán này chỉ có một thành phần duy
nhất.


<i>a)</i> <i>Thủ tục hình thành tham số và khóa </i>


• Chọn số ngun tố lớn <i>p</i> sao cho bài toán logarit


trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải.


• Chọn <i>g</i> là phần tử sinh của

<i>Z</i>

∗<i><sub>p</sub></i>.


• Chọn khóa mật x là số nguyên thỏa mãn:


(

1

)



1

<

<i>x</i>

<

<i>p</i>

.


• Tính khóa cơng khai y theo công thức:

<i>p</i>



<i>g</i>



<i>y</i>

=

<i>x</i>

mod

.


• Giữ bí mật: x; cơng khai: p, q, g, y. Khóa cơng khai
y cần phải được chứng thực bởi một CA (Certificate
Authority)đáng tin cậy.


<i>b)</i> <i>Thủ tục mã hóa</i>


Giả sử người gửi là A, người nhận là B. Người gửi A có
khóa bí mật là <i>xA</i> và khóa cơng khai là yA. Người nhận B có


khóa bí mật là <i>xB</i> và khóa cơng khai là yB. Khi đó, thủ tục để


A gửi bản tin <i>M</i> cho B, với:

0

<i>M</i>

<

<i>p</i>

, bao gồm các
bước như sau:


<i>Bước 1</i>: Đối tượng B thực hiện:


• Chọn giá trị<i>kB</i> thỏa mãn:

1

<

<i>k</i>

<i><sub>B</sub></i>

<

(

<i>p</i>

1

)

.


• Tính giá trị<i>RB </i>theo công thức:


<i>p</i>


<i>g</i>



<i>R</i>

<i>kB</i>


<i>B</i>

=

mod

.


• Gửi giá trị RB cho đối tượng A.


<i>Bước 2</i>: Đối tượng A thực hiện:
• Mã hóa bản tin M theo cơng thức:


(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>xA</i>


<i>B</i>


<i>B</i>

×

mod



×




=

.


• Gửi bản mã C đến đối tượng nhận B.
<i>c)</i> <i>Thủ tục giải mã</i>


Để khôi phục bản tin ban đầu (M) từ bản mã nhận được
(C), người nhận B thực hiện các bước như sau:


• Tính giá trị Z theo công thức:


( )

<i>y</i>

<i>p</i>



<i>Z</i>

<i>A</i>

mod



1




=

.


• Khơi phục bản tin ban đầu (M):


( )

<i>Z</i>

<i>p</i>



<i>C</i>



<i>M</i>

<sub>=</sub>

<sub>×</sub>

<i>kB</i>+<i>xB</i>

mod


.
<i>d)</i> <i>Tính đúng đắn của thuật toán mới đề xuất</i>


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

<i>Z</i>

<i><sub>p</sub></i>∗ ,

1

<

<i>x</i>

<i><sub>A</sub></i>

,

<i>x</i>

<i><sub>B</sub></i>

<

(

<i>p</i>

1

)

,


<i>p</i>


<i>g</i>



<i>y</i>

<i>xA</i>


<i>A</i>

=

mod

,

<i>y</i>

<i>g</i>

<i>p</i>



<i>B</i>
<i>x</i>


<i>B</i>

=

mod

,

(

1

)



1

<

<i>k</i>

<i>B</i>

<

<i>p</i>

,

<i>R</i>

( )

<i>g</i>

<i>B</i>

<i>p</i>



<i>k</i>
<i>B</i>

=

mod



(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>xA</i>


<i>B</i>



<i>B</i>

×

mod



×



=

. Nếu:


( )

<i>y</i>

<i>p</i>



<i>Z</i>

<i>A</i>

mod



1




=

,

<i>M</i>

<sub>=</sub>

<i>C</i>

<sub>×</sub>

( )

<i>Z</i>

<i>kB</i>+<i>xB</i>

mod

<i>p</i>

<sub> thì: </sub>

<i>M</i>



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<i>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, 03-04/12/2012</i>

( )


(

)


(

)


( )


(

)


(

) (

)


(

)


(

)


(

)


(

)


( )

(

)

<sub>(</sub>

( )

<sub>)</sub>



( ) ( )

<i>M</i>


<i>p</i>


<i>g</i>


<i>g</i>


<i>M</i>


<i>p</i>


<i>p</i>


<i>g</i>


<i>p</i>


<i>g</i>


<i>M</i>


<i>p</i>


<i>p</i>


<i>p</i>


<i>g</i>


<i>p</i>


<i>p</i>


<i>g</i>


<i>p</i>


<i>g</i>


<i>M</i>


<i>p</i>


<i>p</i>


<i>y</i>


<i>p</i>


<i>y</i>


<i>R</i>


<i>M</i>


<i>p</i>



<i>Z</i>


<i>C</i>


<i>M</i>


<i>A</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>B</i>
<i>B</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>A</i>
<i>B</i>
<i>B</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>B</i>
<i>B</i>
<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>

<i>x</i>
<i>k</i>
<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>x</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>k</i>
<i>A</i>
<i>x</i>
<i>B</i>
<i>B</i>
<i>x</i>
<i>k</i>

=


×


×


=


×


×


=


=



×


×


×


×


=


=


×


×


×


×


=


=


×


=


+

+
+

+
+

+

+

mod


mod


mod


mod


mod



mod


mod


mod


mod


mod


mod


mod


mod


mod


.
.
.
.
1
1


<i>e)</i> <i>Mức độ an tồn của thuật tốn mới đề xuất</i>


Ở thuật toán mới đề xuất, khả năng chống thám mã xét
trong trường hợp tấn công trực tiếp vào thủ tục mã hóa là
tương đương với thuật tốn El Gamal, nhưng thủ tục giải mã
của thuật toán được đề xuất có khả năng chống thám mã cao
hơn so với thuật toán El Gamal do việc sử dụng kết hợp
đồng thời cả 2 khóa bí mật ngắn hạn (kB) và dài hạn (xB) của


người nhận (B).
<i>4)</i> <i>Thuật toán 4 </i>


Thuật toán thứ 4 được đề xuất ởđây cũng có cơ chế xác
thực và cách thức thực hiện tương tự như thuật toán thứ ba,


nhưng có mức độ an tồn xét theo khả năng chống thám mã
và giả mạo cao hơn do thủ tục mã hóa sử dụng đồng thời 2
khóa bí mật ngắn hạn và dài hạn của người gửi, còn thủ tục
giải mã lại sử dụng đồng thời 2 khóa bí mật ngắn hạn và dài
hạn của người nhận. Ở thuật toán thứ tư này, việc thám mã
và giả mạo chỉ có thể thực hiện thành cơng khi bị lộđồng
thời cả 2 khóa bí mật ngắn hạn và dài hạn.


<i>a)</i> <i>Thủ tục hình thành tham số và khóa </i>


• Chọn số nguyên tố lớn <i>p</i> sao cho bài tốn logarit
trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải.


• Chọn <i>g</i> là phần tử sinh của

<i>Z</i>

∗<i><sub>p</sub></i>.


• Chọn khóa mật x là số nguyên thỏa mãn:


(

1

)



1

<

<i>x</i>

<

<i>p</i>

.


• Tính khóa công khai y theo công thức:

<i>p</i>



<i>g</i>



<i>y</i>

=

<i>x</i>

mod

.


• Giữ bí mật: x; cơng khai: p, q, g, y. Khóa cơng khai
y cần phải được chứng thực bởi một CA (Certificate


Authority)đáng tin cậy.


<i>b)</i> <i>Thủ tục mã hóa</i>


Giả sử người gửi là A, người nhận là B. Người gửi A có
khóa bí mật là <i>xA</i> và khóa cơng khai là yA. Người nhận B có


khóa bí mật là <i>xB</i> và khóa cơng khai là yB. Khi đó, thủ tục để


A gửi bản tin <i>M</i> cho B, với:

0

<i>M</i>

<

<i>p</i>

, bao gồm các
bước như sau:


<i>Bước 1</i>: Đối tượng B thực hiện:


• Chọn giá trị<i>kB</i> thỏa mãn:

1

<

<i>k</i>

<i>B</i>

<

(

<i>p</i>

1

)

.


• Tính giá trị<i>RB </i>theo cơng thức:


<i>p</i>


<i>g</i>



<i>R</i>

<i>kB</i>


<i>B</i>

=

mod

.


• Gửi giá trị RB cho đối tượng A.


<i>Bước 2</i>: Đối tượng A thực hiện:


• Chọn giá trị<i>kA</i> thỏa mãn:

1

<

<i>k</i>

<i>A</i>

<

(

<i>p</i>

1

)

.


• Hình thành phần thứ nhất của bản mã theo công
thức:


(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i> <i>xA</i>


<i>B</i>
<i>B</i>

mod


+

ì


ì


=

.


ã Hỡnh thnh phn thứ hai của bản mã:

<i>R</i>

<sub>=</sub>

<i>g</i>

<i>kA</i>

mod

<i>p</i>



• Gửi bản mã (C,R) đến đối tượng nhận B.
<i>c)</i> <i>Thủ tục giải mã</i>


Để khôi phục bản tin ban đầu (M) từ bản mã nhận được
(C,R), người nhận B thực hiện các bước như sau:


• Tính giá trị Z theo cơng thức:


(

<i>R</i>

<i>y</i>

)

<i>p</i>




<i>Z</i>

<i>A</i>

mod



1



ì



=

.


ã Khụi phc bn tin ban đầu (M):


( )

<i>Z</i>

<i>p</i>



<i>C</i>



<i>M</i>

<sub>=</sub>

<sub>×</sub>

<i>kB</i>+<i>xB</i>

mod


.
<i>d)</i> <i>Tính đúng đắn của thuật tốn mới đề xuất</i>


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

<i>Z</i>

<i><sub>p</sub></i>∗ ,

1

<

<i>x</i>

<i>A</i>

,

<i>x</i>

<i>B</i>

<

(

<i>p</i>

1

)

,


<i>p</i>


<i>g</i>



<i>y</i>

<i>xA</i>


<i>A</i>

=

mod

,

<i>y</i>

<i>g</i>

<i>p</i>



<i>B</i>


<i>x</i>


<i>B</i>

=

mod

,

(

1

)



,



1

<

<i>k</i>

<i><sub>A</sub></i>

<i>k</i>

<i><sub>B</sub></i>

<

<i>p</i>

,

<i>R</i>

( )

<i>g</i>

<i>kB</i>

<i>p</i>



<i>B</i>

=

mod



(

<i>R</i>

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>kA</i> <i>xA</i>


<i>B</i>


<i>B</i>

mod



+

×


×



=

,.

<i>R</i>

<sub>=</sub>

( )

<i>g</i>

<i>kA</i>

mod

<i>p</i>



Nếu:

<i>Z</i>

(

<i>R</i>

<i>y</i>

<i>A</i>

)

mod

<i>p</i>


1




×



=

,


( )

<i>Z</i>

<i>p</i>



<i>C</i>



<i>M</i>

<sub>=</sub>

<sub>×</sub>

<i>kB</i>+<i>xB</i>

mod

<sub> thì: </sub>


<i>M</i>


<i>M</i>

=

.
<i>Chứng minh</i>:


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<i>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, 03-04/12/2012</i>


<i>e)</i> <i>Mức độ an tồn của thuật tốn mới đề xuất</i>


Ở thuật toán mới đề xuất, cả 2 khóa bí mật ngắn hạn
(kA) và dài hạn (xA) của người gửi (A) cũng như khóa bí mật


ngắn hạn (kB) và dài hạn (xB) của người nhận (B) đều được


sử dụng kết hợp trong các thủ tục mã hóa và giải mã. Vì
vậy, mức độ an tồn của thuật tốn mới đề xuất xét theo khả
năng chống thám mã trong cả 2 trường hợp tấn công trực
tiếp vào thủ tục mã hóa và giải mã đều cao hơn thuật toán El
Gamal.



<i>5)</i> <i>Thuật toán thứ 5 </i>


Thuật toán thứ 5 đề xuất ở đây được xây dựng theo
nguyên tắc tương tự như thuật toán thứ 4.


<i>a)</i> <i>Thủ tục hình thành tham số và khóa </i>


• Chọn số nguyên tố lớn <i>p</i> sao cho bài toán logarit
trong

<i>Z</i>

<i><sub>p</sub></i> là khó giải.


• Chọn <i>g</i> là phần tử sinh của

<i>Z</i>

∗<i><sub>p</sub></i>.


• Chọn khóa mật x là số nguyên thỏa mãn:

(

1

)



1

<

<i>x</i>

<

<i>p</i>

.


• Tính khóa cơng khai y theo cơng thức:

<i>p</i>



<i>g</i>


<i>y</i>

−<i>x</i>

<sub>mod</sub>



=

.


• Giữ bí mật: x; cơng khai: p, q, g, y. Khóa cơng khai
y cần phải được chứng thực bởi một CA (Certificate
Authority)đáng tin cậy.


<i>b)</i> <i>Thủ tục mã hóa</i>



Giả sử người gửi là A, người nhận là B. Người gửi A có
khóa bí mật là <i>xA</i> và khóa cơng khai là yA. Người nhận B có


khóa bí mật là <i>xB</i> và khóa cơng khai là yB. Khi đó, thủ tục để


A gửi bản tin <i>M</i> cho B, với:

0

<i>M</i>

<

<i>p</i>

, bao gồm các
bước như sau:


<i>Bước 1</i>: Đối tượng B thực hiện:


• Chọn giá trị<i>kB</i> thỏa mãn:

1

<

<i>k</i>

<i><sub>B</sub></i>

<

(

<i>p</i>

1

)

.


• Tính giá trị<i>RB </i>theo công thức:


<i>p</i>


<i>g</i>



<i>R</i>

<i>kB</i>


<i>B</i>

=

mod

.


• Gửi giá trị RB cho đối tượng A.


<i>Bước 2</i>: Đối tượng A thực hiện:


• Chọn giá trị<i>kA</i> thỏa mãn:

1

<

<i>k</i>

<i><sub>A</sub></i>

<

(

<i>p</i>

1

)

.


• Hình thành phần thứ nhất của bản mã theo cơng
thức:



(

<i>R</i>

)

(

<i>y</i>

)

<i>p</i>


<i>M</i>



<i>C</i>

<i>A</i> <i>kA</i>


<i>B</i>
<i>x</i>


<i>B</i>

×

mod



ì



=

.


ã Hỡnh thnh phn th hai ca bn mã:

<i>R</i>

<sub>=</sub>

<i>g</i>

<i>kA</i>

mod

<i>p</i>



• Gửi bản mã (C,R) đến đối tượng nhận B.
<i>c)</i> <i>Thủ tục giải mã</i>


Từ bản mã nhận được (C,R), người nhận B khôi phục lại
bản tin ban đầu theo cơng thức:


( )

<i>R</i>

(

<i>y</i>

)

<i>p</i>


<i>C</i>



<i>M</i>

<i>B</i> <i>kB</i>


<i>A</i>


<i>x</i>


mod



×


×



=

.


<i>d)</i> <i>Tính đúng đắn của thuật tốn mới đề xuất</i>


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


<i>p</i>


<i>Z</i>

,

1

<

<i>x</i>

<i>A</i>

,

<i>x</i>

<i>B</i>

<

(

<i>p</i>

1

)

,


<i>p</i>


<i>g</i>



<i>y</i>

<i>xA</i>


<i>A</i>

mod





=

,

<i>y</i>

<i>g</i>

<i>xB</i>

<i>p</i>



<i>B</i>

mod






=

,


(

1

)



,



1

<

<i>k</i>

<i><sub>A</sub></i>

<i>k</i>

<i><sub>B</sub></i>

<

<i>p</i>

,

<i>R</i>

( )

<i>g</i>

<i>kB</i>

<i>p</i>



<i>B</i>

=

mod


(

<i>R</i>

)

(

<i>y</i>

)

<i>p</i>



<i>M</i>



<i>C</i>

<i>A</i> <i>kA</i>


<i>B</i>
<i>x</i>


<i>B</i>

×

mod



×



=

,.

<i>R</i>

<sub>=</sub>

( )

<i>g</i>

<i>kA</i>

mod

<i>p</i>



Nếu:

<i>M</i>

<i>C</i>

( )

<i>R</i>

<i>B</i>

( )

<i>y</i>

<i>kB</i>

<i>p</i>



<i>A</i>


<i>x</i>


mod



×


×



=

thì:

<i>M</i>

=

<i>M</i>

.


<i>Chứng minh</i>:
Thật vậy, ta có:


( )

(

)



(

)

(

)



(

)



( )

(

)



(

)

(

)



(

)

(

)



<i>M</i>



<i>p</i>


<i>g</i>



<i>g</i>



<i>g</i>



<i>g</i>


<i>M</i>



<i>p</i>


<i>p</i>



<i>g</i>


<i>p</i>


<i>g</i>



<i>p</i>


<i>g</i>



<i>p</i>


<i>g</i>



<i>M</i>



<i>p</i>


<i>y</i>



<i>R</i>



<i>p</i>


<i>y</i>



<i>R</i>


<i>M</i>




<i>p</i>


<i>y</i>



<i>R</i>


<i>C</i>


<i>M</i>



<i>A</i>
<i>B</i>
<i>B</i>
<i>A</i>
<i>B</i>
<i>A</i>
<i>A</i>
<i>B</i>


<i>B</i>
<i>A</i>


<i>B</i>
<i>A</i>


<i>A</i>
<i>B</i>


<i>A</i>
<i>B</i>


<i>B</i>


<i>B</i>


<i>A</i>
<i>A</i>


<i>B</i>
<i>B</i>


<i>x</i>
<i>k</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>k</i>
<i>x</i>
<i>k</i>


<i>k</i>
<i>x</i>


<i>x</i>
<i>k</i>


<i>k</i>
<i>x</i>


<i>x</i>
<i>k</i>


<i>k</i>


<i>A</i>
<i>x</i>


<i>k</i>
<i>B</i>
<i>x</i>
<i>B</i>


<i>k</i>
<i>A</i>
<i>x</i>


=



×


×



×


×



=



=


×



×



×


×




×


=



=


×



×



×


×



×


=



=


×



×


=









mod


mod


mod




mod



mod


mod



mod


mod



mod



.
.


.
.


<i>e)</i> <i>Mức độ an tồn của thuật tốn mới đề xuất</i>


Phân tích tương tự như với thuật tốn thứ 4, có thể thấy
rằng mức độ an tồn của 2 thuật tốn này là như nhau.


III. KẾTLUẬN


Bài báo đề xuất 5 thuật tốn mật mã khóa cơng khai được
phát triển dựa trên hệ mật ElGamal, các thuật tốn này có
thể bảo đảm đồng thời 2 khả năng bảo mật và xác thực
nguồn gốc thơng tin. Hơn nữa, mức độ an tồn của các thuật
tốn được đề xuất ởđây khơng nhỏ hơn mức độ an tồn của
thuật tốn El Gamal xét theo khả năng chống thám mã khi
tấn công trực tiếp vào các thủ tục mã hóa và giải mã.



TÀILIỆUTHAMKHẢO


[1] R. L. Rivest, A. Shamir, and L. M. Adleman, <i>A Method </i>
<i>for Obtaining Digital Signatures and Public Key </i>
<i>Cryptosystems /</i> Commun. of the ACM, Vol. 21, No. 2,
1978, pp. 120-126.


[2] 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.


[3] Lưu Hồng Dũng, Nghiên cứu phát triển thuật toán mật
mã khóa cơng khai dựa trên hệ mật ElGamal, Chun
san CNTT và TT, Bộ Thông tin và Truyền thông, số
8(28), 12-2012.


[4] National Institute of Standards and Technology, NIST


</div>

<!--links-->

×