Công nghệ thông tin<br />
<br />
XÂY DỰNG CÁC THUẬT TOÁN MẬT MÃ KHÓA CÔNG KHAI<br />
DỰA TRÊN TÍNH KHÓ CỦA VIỆC GIẢI ĐỒNG THỜI 2 BÀI TOÁN<br />
LOGARIT RỜI RẠC VÀ PHÂN TÍCH SỐ/KHAI CĂN<br />
Nguyễn Vĩnh Thái1*, Lưu Hồng Dũng2<br />
Tóm tắt: Bài báo đề xuất xây dựng thuật toán mật mã khóa công khai từ mức độ<br />
khó của việc giải đồng thời 2 bài toán: bài toán logarit rời rạc trên Zp và bài toán<br />
phân tích một số nguyên lớn ra các thừa số nguyên tố, hoặc: bài toán logarit rời rạc<br />
trên Zp và bài toán khai căn trên vành Zn. 02 thuật toán mới đề xuất đảm bảo mức<br />
độ an toàn trước các tấn công: làm lộ khóa bí mật, thám mã bản tin. Đồng thời xác<br />
thực nguồn gốc văn bản điện tử, cũng như đảm bảo việc xác thực người gửi.<br />
Từ khóa: Logarit rời rạc; Phân tích số; Khai căn; Thuật toán khóa mật mã; Hệ thống mã khóa khóa công khai.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
Hiện tại, RSA [1] vẫn đang được sử dụng trong các giao dịch điện tử (Chính<br />
phủ điện tử, thương mại điện tử...) do tính mềm dẻo và độ an toàn của nó. Tuy<br />
nhiên, thuật toán hệ mật này cũng có một nhược điểm căn bản so với các hệ mật<br />
được xây dựng trên bài toán logarit rời rạc (ElGamal, DSA, GOST R34.10-94...)<br />
[3] đó là các thực thể đầu cuối không được phép dùng chung modulo n với nhau.<br />
Nói cách khác: mỗi thực thể đầu cuối phải sở hữu một cặp tham số ( , ) nguyên<br />
tố riêng biệt. Hơn nữa, cặp tham số này phải được giữ bí mật tuyệt đối. Trên thực<br />
tế, việc tạo ra các số nguyên tố lớn và mạnh theo các tiêu chuẩn an toàn (FIPS 186<br />
- 4) [2] và giữ bí mật tuyệt đối cho chúng là không đơn giản, nên nhược điểm trên<br />
đã ảnh hưởng không nhỏ đến khả năng ứng dụng rộng rãi của hệ mật này (RSA)<br />
trong thực tế.<br />
Nâng cao độ an toàn cho các thuật toán mật mã khóa công khai dựa trên tính<br />
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<br />
nhiều sự quan tâm của các nhà nghiên cứu [4 - 9].<br />
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<br />
công trong thực tế, nhóm tác giả bài báo này đề xuất xây dựng 02 thuật toán: mật<br />
mã khóa công khai; mã hóa - xác thực dựa trên tính khó của việc giải đồng thời 2<br />
bài toán logarit rời rạc và phân tích số/khai căn, cho phép nhiều người dùng (thực<br />
thể cuối) sử dụng chung một , nghĩa là chỉ cần tạo ra một cặp tham số<br />
( , ) duy nhất cho tất cả các thực thể cuối. Ngoài ra, các tham số này không cần<br />
phải được giữ bí mật như ở hệ RSA mà vẫn có thể chống lại các dạng tấn công đã<br />
biết trong thực tế, đảm bảo độ an toàn của hệ thống.<br />
2. MỘT SỐ BÀI TOÁN KHÓ ỨNG DỤNG TRONG MẬT MÃ<br />
2.1. Bài toán phân tích số<br />
Bài toán phân tích số được phát biểu như sau: Cho số ∈ ℕ, hãy tìm biểu diễn:<br />
=Π với: ≥ 1( = 1, … , ) nguyên dương;<br />
≥ 1 ( = 1, … , ) nguyên tố.<br />
<br />
<br />
<br />
24 N. V. Thái, L. H. Dũng, “Xây dựng các thuật toán mật mã … và phân tích số/khai căn.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
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ệ<br />
mật RSA mà ở đó là tích của hai số nguyên tố và . Khi đó, bài toán phân tích<br />
số hay còn gọi là bài toán ( ) được phát biểu như sau:<br />
<br />
Với mỗi số nguyên dương , hãy tìm số nguyên tố hoặc thỏa mãn phương<br />
trình sau: × = .<br />
Giải thuật cho bài toán ( ) có thể được viết như một thuật toán tính hàm<br />
(.) với biến đầu vào là , còn giá trị hàm là hoặc của phương trình sau:<br />
= ( ) hoặc: = ( )<br />
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<br />
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ố<br />
( , ) thì việc tính được khóa bí mật ( ) từ khóa công khai ( ) và ( ) là<br />
một bài toán khó nếu , được chọn đủ lớn và mạnh. Hiện tại bài toán trên vẫn<br />
đượ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<br />
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<br />
toán này. Trong thực tế, các tham số , có thể chọn theo FIPS 186 - 4 của Hoa<br />
Kỳ cho hệ mật RSA.<br />
2.2. Bài toán khai căn trên<br />
Cho cặp số nguyên dương ( , ) với là tích 2 số nguyên tố và sao cho bài<br />
toán phân tích số là khó giải trên Z , còn là một giá trị thỏa mãn: 1 < < ( )<br />
và gcd , ( ) = 1, ở đây: ( ) = ( − 1). ( − 1). Khi đó, bài toán khai căn<br />
trên Z hay còn gọi là RSAP( , ) được phát biểu như sau:<br />
Với mỗi số nguyên dương ∈ ℤ∗ , hãy tìm thỏa mãn phương trình sau:<br />
= <br />
Bài toán RSAP( , ) cũng là một cơ sở quan trọng để xây dựng nên hệ mật RSA.<br />
Ở hệ mật RSA nếu giải được RSAP( , ) , kẻ thám mã có thể tìm được bản rõ (M) từ<br />
bản mã (C) và các tham số công khai ( , ), hoặc dễ dàng tạo được chữ ký giả mạo<br />
(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ý<br />
(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<br />
toán này và do đó việc tấn công hệ mật RSA bằng việc giải RSAP( , ) là vẫn chưa<br />
khả thi.<br />
2.3. Bài toán logarit rời rạc trên<br />
Cho cặp số nguyên dương ( , ) với là số nguyên tố, còn là một phần tử<br />
của nhóm ∗ . Khi đó, bài toán logarit rời rạc trên Z hay còn gọi là bài toán<br />
DLP( , ) được phát biểu như sau:<br />
Với mỗi số nguyên dương ∈ ℤ∗ , hãy tìm thỏa mãn phương trình sau:<br />
=<br />
Giải thuật cho bài toán DLP( , ) có thể được viết như một thuật toán tính hàm<br />
DLP( , ) (. ) với biến đầu vào là , còn giá trị hàm là của phương trình sau:<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 25<br />
Công nghệ thông tin<br />
<br />
= DLP( , )( )<br />
Bài toán DLP( , ) là cơ sở để xây dựng nên hệ mật ElGamal. Hiện tại chưa có<br />
giải thuật hiệu quả cho DLP( , ) và độ an toàn của thuật toán DSA trong chuẩn<br />
chữ ký số DSS của Hoa Kỳ là một minh chứng thực tế cho tính khó giải của bài<br />
toán này.<br />
3. XÂY DỰNG THUẬT TOÁN MẬT MÃ KHÓA CÔNG KHAI<br />
3.1. Thuật toán hình thành tham số và khóa<br />
Các tham số hệ thống hay tham số miền được nhà cung cấp dịch vụ chứng thực<br />
số hình thành bằng thuật toán như sau:<br />
a) Thuật toán 1. Hình thành các tham số hệ thống<br />
Input: , - độ dài (tính theo bit) của các số nguyên tố , .<br />
Output: , , .<br />
Bước 1. Chọn cặp số , nguyên tố với:<br />
( )= , ( ) = sao cho |( − 1)<br />
Bước 2. Chọn là phần tử sinh của nhóm ∗ theo:<br />
<br />
= , với ∈ (1, )<br />
Chú thích: (. ): hàm tính độ dài (theo bit) của một số.<br />
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<br />
thuật toán như sau:<br />
b) Thuật toán 2. Hình thành khóa<br />
Input: , , , , - độ dài (tính theo bit) của các số nguyên tố , .<br />
Output: , , ( ), .<br />
Bước 1. Chọn cặp số , là các nguyên tố với: ( )= , ( )=<br />
Bước 2. Tính = . , nếu ≤ thì thực hiện lại Bước 1.<br />
Bước 3. Tính ( ) = ( − 1). ( − 1)<br />
Bước 4. Chọn khóa bí mật thứ nhất trong khoảng 1, ( )<br />
Bước 5. Tính khóa công khai theo: = ± (1)<br />
Kiểm tra nếu: ≥ ( ) hoặc: gcd ( , ( )) ≠ 1 thì thực hiện lại từ Bước 4.<br />
Bước 6. Tính khóa bí mật thứ hai theo: = ( ) (2)<br />
Bước 7. Chọn hàm băm : {0,1}∗ → với < ℎ <<br />
3.2. Thuật toán mật mã khóa công khai<br />
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<br />
MTA 01.19-02) và giải mã (Thuật toán MTA 01.19-03) với các tham số hệ thống<br />
được hình thành theo (1) và khóa hình thành theo (2). Giả thiết người gửi/mã hóa<br />
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à<br />
<br />
<br />
<br />
<br />
26 N. V. Thái, L. H. Dũng, “Xây dựng các thuật toán mật mã … và phân tích số/khai căn.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
( , , ), trong đó: được chọn ngẫu nhiên trong khoảng (1, ), còn<br />
( , ) được tính theo (1) và (2) như sau:<br />
= , =( ) ( ) (3)<br />
a) Thuật toán mã hóa (MTA 01.19 - 02)<br />
Input: p, q , g, , , M.<br />
Output: , .<br />
Bước 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<br />
khoảng [1, − 1], chọn ngẫu nhiên một giá trị trong khoảng (1, ) rồi tính thành<br />
phần thứ nhất của bản mã: = × ( ) (4)<br />
Bước 2. Tính thành phần thứ 2 của bản mã: = ( ) (5)<br />
Bước 3. Gửi bản mã ( , ) cho B.<br />
b) Thuật toán giải mã (MTA 01.19 - 03)<br />
Input: p, q , g, , , , (C, R).<br />
Output: .<br />
Bước 1. B sử dụng khóa bí mật thứ hai để tính theo: = ( ) (6)<br />
Bước 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<br />
nhận được: = × ( ) (7)<br />
Bước 3. Chuyển giá trị thành bản tin M.<br />
c) Tính đúng đắn của thuật toán<br />
Điều cần chứng minh ở đây là: Cho p, q, , là các số nguyên tố thỏa mãn:<br />
|(p − 1), n = p × q , > , 1 < < , = ,1 < < , <br />
= , =( ) ( ), 1 < < , 0 ≤ ≤ − 1, <br />
= ×( ) , = ( ) <br />
Nếu: = ( ) , = ×( ) thì =<br />
Chứng minh:<br />
Từ (3), (5) và (6) ta có:<br />
=( ) = (( ) ) <br />
.<br />
= = (8)<br />
Nên từ (3), (4), (7) và (8) ta có điều cần chứng minh:<br />
= ×( ) = × ×( ) <br />
.<br />
= × × . =<br />
3.3. Độ an toàn của thuật toán MTA 01.19 - 02; MTA 01.19 - 03<br />
a) Tấn công khóa bí mật<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 27<br />
Công nghệ thông tin<br />
<br />
Ở thuật toán mới đề xuất, tính an toàn của lược đồ sẽ bị phá vỡ khi cặp khóa<br />
, có thể tính được bởi một hay các đối tượng không mong muốn. Từ Thuật<br />
toán 2 cho thấy, để tìm được cần phải giải được ( ) , còn để tính được cần<br />
phải giải được DLP( , ) . Nói một cách khác, độ an toàn về khóa của thuật toán<br />
được đảm bảo bằng độ khó của việc giải đồng thời 2 bài toán ( ) và DLP( , ) .<br />
b) Tấn công thám mã bản tin<br />
Để 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ã<br />
như sau:<br />
- Tấn công thuật toán mã hóa<br />
Có thể giải mã bản tin nếu tính được trong (4) theo 2 cách:<br />
Cách thứ nhất: giải được bài toán RSAP( , ) để tìm X = RSAP( , ) ( ), sau đó<br />
phải giải tiếp bài toán DLP( , ) để tìm k = DLP( , ) ( ).<br />
Cách thứ hai: giải bài toán ( ) để tìm để tìm X = ( ) , sau<br />
đó giải tiếp DLP( , ) để tìm k như cách thứ nhất.<br />
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ã<br />
hóa, kẻ tấn công cần phải giải được đồng thời hai bài toán RSAP( , ) và DLP( , )<br />
hoặc ( ) và DLP( , ) đã chỉ ra ở trên. Nên độ an toàn của thuật toán trước dạng<br />
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<br />
toán logarit rời rạc và bài toán khai căn, hoặc: bài toán logarit rời rạc và bài toán<br />
phân tích số.<br />
- Tấn công thuật toán giải mã<br />
Để 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<br />
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<br />
thời hai bài toán bài toán ( ) và DLP( , ) . Hay, độ an toàn của thuật toán trước<br />
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<br />
phân tích số và bài toán logarit rời rạc trên Zp.<br />
3.4. Thuật toán mã hóa - xác thực<br />
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<br />
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<br />
mã hóa, thuật toán được đề xuất bao gồm thuật toán mã hóa (Thuật toán MTA<br />
01.19 - 04) và giải mã (Thuật toán MTA 01.19 - 05), với các tham số hệ thống<br />
cũng được hình thành theo Thuật toán 1 và khóa hình thành theo Thuật toán 2. Giả<br />
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<br />
tương ứng là ( , / ) và ( , / ), trong đó: ( , ) được chọn ngẫu<br />
nhiên trong khoảng (1, ), ( , ) và ( , ) được tính theo (1) và (2) như sau:<br />
= , =( ) ( ) (9)<br />
= , =( ) ( )<br />
a) Thuật toán mã hóa (MTA 01.19 - 04)<br />
Input: p, q , g, , , , , M.<br />
<br />
<br />
28 N. V. Thái, L. H. Dũng, “Xây dựng các thuật toán mật mã … và phân tích số/khai căn.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Output: , , .<br />
Bước 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<br />
khoảng [1, − 1], chọn ngẫu nhiên một giá trị trong khoảng (1, ) rồi tính thành<br />
phần thứ nhất của bản mã: = ( × ( ) ) (10)<br />
Bước 2. Tính giá trị: = (11)<br />
Bước 3. Tính thành phần thứ hai của bản mã: = ( ‖ ) (12)<br />
Bước 4. Tính thành phần thứ ba của bản mã: = ( ) ×( +<br />
2 (13)<br />
Bước 5. Gửi bản mã ( , , ) cho B.<br />
b) Thuật toán giải mã (MTA 01.19 - 05)<br />
Input: p, q , g, , , , , , , ( , , ).<br />
Output: , ( , ) = / .<br />
Bước 1. Người nhận sử dụng khóa bí mật thứ hai để tính ̅ theo:<br />
= (14)<br />
Bước 2. Tính giá trị: =( ) (15)<br />
và = ( ) ×( ) (16)<br />
Bước 3. Từ , giải mã bản tin nhận được: = ×( ) (17)<br />
Bước 4. Chuyển giá trị thành bản tin và tính: = (18)<br />
Bước 5. Nếu = thì = và khẳng định người gửi chính xác là A.<br />
c) Tính đúng đắn của thuật toán MTA 01.19 - 04; MTA 01.19 - 05<br />
Điều cần chứng minh ở đây là: Cho p, q, , là các số nguyên tố thỏa mãn:<br />
|(p − 1), n = p × q , > , 1 < < , = ,1 < , < , <br />
= , = , =( ) ( ), 1 < < ,<br />
=( ) ( ), 0 ≤ ≤ − 1, = ,<br />
: {0,1}∗ → với |q| ≤ |h| < | |, = ( ‖ ) , <br />
= × (( + × ) ) ( )<br />
Nếu = , =( ) , = ( ) ×( ) ,<br />
= ×( ) , = thì = và =<br />
Chứng minh:<br />
Từ (9), (10) và (14) ta có: = <br />
= (( × ( ) ) ) <br />
.<br />
= × (19)<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 29<br />
Công nghệ thông tin<br />
.<br />
=( × ) = × <br />
Từ (9), (13) và (15) ta lại có: =( ) <br />
= (( ) × ( + ) )) ) (20)<br />
.<br />
= (( ) × ( + ) )) <br />
= ( ) × ( + ) <br />
Thay (9) và (20) vào (16) ta được: = ( ) ×( ) <br />
<br />
= ( )( ) .( )<br />
×( ) <br />
.( ) .( )<br />
= × =( × × ) (21)<br />
= =<br />
Từ (9), (19) và (21) ta suy ra điều cần chứng minh thứ nhất:<br />
.<br />
= ×( ) = × ×( ) <br />
. .<br />
=( × × ) = (22)<br />
Từ (17), (18), (21) và (22) ta suy ra điều cần chứng minh thứ hai:<br />
= = ( ‖ ) =<br />
3.5. Độ an toàn của thuật toán MTA 01.19 - 04; MTA 01.19 - 05<br />
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<br />
thuật toán mật mã ở mục 3.2 của bài báo này với thuật toán chữ ký số, nhằm cung<br />
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<br />
toàn vẹn của bản tin được thực hiện một cách đồng thời. Nhờ đó, thuật toán này<br />
cho phép chống lại các dạng tấn công giả mạo rất hiệu quả. Có một điểm cần lưu ý<br />
là dạng tấn công giả mạo ở đây cần được hiểu theo nghĩa một kẻ thứ 3 (T) muốn<br />
mạo danh A để gửi cho B bản tin M hoặc là T gửi một bản tin không phải M cho B<br />
trong khi B hiểu rằng A đã gửi bản tin M cho mình. Từ thuật toán kiểm tra cho<br />
thấy, điều kiện để B nhận biết chính xác bản tin M được A gửi đến khi nhận được<br />
1 cặp (C,E,S) là:<br />
<br />
<br />
<br />
<br />
(23)<br />
<br />
<br />
<br />
<br />
Kẻ tấn công giả mạo có thể thực hiện được (23) nếu thực hiện được các bước<br />
tính toán sau:<br />
∗ ∗<br />
- Chọn giá trị và tính: = ×( ) ;<br />
<br />
<br />
<br />
<br />
30 N. V. Thái, L. H. Dũng, “Xây dựng các thuật toán mật mã … và phân tích số/khai căn.”<br />
Nghiên cứu khoa học công nghệ<br />
∗ ∗ ∗<br />
- Giải bài toán DLP( , ) để tìm từ: ( ) ≡ × <br />
∗<br />
- Giải bài toán RSAP( , ) hoặc ( ) để tìm từ: =( ) <br />
Tuy nhiên, để thực hiện được các bước tính toán như trên, kẻ tấn công cũng<br />
buộc phải giải được đồng thời 2 bài toán toán DLP( , ) và RSAP( , ) hoặc DLP( , ) và<br />
( ) . Như vậy, độ an toàn của thuật toán trước kiểu tấn công giả mạo chữ ký<br />
cũng được đảm bảo bằng độ khó của việc giải đồng thời 2 bài toán. Bên cạnh đó<br />
nếu (. ) được chọn là hàm băm có tính kháng va chạm cao (SHA 256/512,...) thì<br />
việc tạo ngẫu nhiên được cặp (C,E,S) thỏa mãn điều kiện của thuật toán kiểm tra là<br />
không khả thi trong các ứng dụng thực tế.<br />
4. KẾT LUẬN<br />
Bài báo đề xuất xây dựng thuật toán mã hóa khóa công khai, thuật toán mã hóa -<br />
xác thực dựa trên độ khó giải của 2 bài toán khó, các thuật toán được thiết kế để<br />
các thực thể cuối trong cùng một hệ thống có thể sử dụng chung một bộ tham số.<br />
Qua phân tích đánh giá cho thấy các thuật toán mới đề xuất có độ an toàn được<br />
đả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 logarit rời<br />
rạc và bài toán phân tích số hoặc: bài toán logarit rời rạc và bài toán khai căn.<br />
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 các thuật<br />
toán 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,<br />
do đó thuật toán mới (MTA 01.19 - 02; 03; 04; 05) đề xuất có thể phù hợp với các<br />
ứng dụng yêu cầu cao về độ an toàn trong thực tế.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. R. L. Rivest, A. Shamir, and L. M. Adleman, “A Method for Obtaining Digital<br />
Signatures and Public Key Cryptosystems”, Commun. of the ACM, Vol. 21,<br />
No. 2, 1978, pp. 120-126<br />
[2]. National Institute of Standards and Technology, NIST FIPS PUB 186-4.<br />
Digital Signature Standard, U.S. Department of Commerce, 2013.<br />
[3]. T. ElGamal, “A public key cryptosystem and a signature scheme based on<br />
discrete logarithms”, IEEE Transactions on Information Theory 1985, Vol. IT-<br />
31, No. 4. pp.469–472.<br />
[4]. Eddie Shahrie Ismail, Tahat N.M.F., Rokiah. R. Ahmad, “A New Digital<br />
Signature Scheme Based on Factoring and Discrete Logarithms”, Journal of<br />
Mathematics and Statistics, 04/2008; 12(3).<br />
[5]. Qin Yanlin, Wu Xiaoping,“New Digital Signature Scheme Based on both<br />
ECDLP and IFP”, Computer Science and Information Technology, 2009.<br />
ICCSIT 2009. 2nd IEEE International Conference on, 8-11 Aug. 2009, E-<br />
ISBN : 978-1-4244-4520-2, pp 348 - 351.<br />
[6]. Swati Verma1, Birendra Kumar Sharma, “A New Digital Signature Scheme<br />
Based on Two Hard Problems”, International Journal of Pure and Applied<br />
Sciences and Technology, ISSN 2229 – 6107, Int. J. Pure Appl. Sci. Technol.,<br />
5(2) (2011), pp. 55-59.<br />
[7]. Sushila Vishnoi, Vishal Shrivastava, “A new Digital Signature Algorithm<br />
based on Factorization and Discrete Logarithm problem”, International<br />
Journal of Computer Trends and Technology, volume 3, Issue 4, 2012.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 04 - 2019 31<br />
Công nghệ thông tin<br />
<br />
[8]. A.N. Berezin, N.A. Moldovyan, V.A. Shcherbacov, “Cryptoschemes Based on<br />
Difficulty of Simultaneous Solving Two Different Difficult Problems”,<br />
Computer Science Journal of Moldova, vol.21, no.2(62), 2013.<br />
[9]. Lưu Hồng Dũng, Trần Trung Dũng, Tống Minh Đức, “Nghiên cứu xây dựng<br />
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<br />
(Học viện KTQS), số 149 (08-2012). ISSN: 1859 - 0209., 01/08/2012.<br />
ABSTRACT<br />
A NEW PUBLIC - KEY CRYPTOGRAPHY ALGORITHM BASED<br />
ON TWO HARD PROBLEMS<br />
The paper proposes to build a new Public - Key Cryptography algorithm based<br />
on two hard problems: Discrete Logarithm and Factorization/Root problems. 02<br />
new algorithms proposed to ensure the level of security against attacks: reveal the<br />
secret key, decrypting messages. At the same time verify the origin of documents, as<br />
well as ensure the sender authentication.<br />
Keywords: Discrete Logarithm; Factorization; Root Problems; Public - Key Cryptography Algorithm; Public -<br />
Key CryptoSystem.<br />
<br />
<br />
<br />
<br />
Nhận bài ngày 19 tháng 12 năm 2018<br />
Hoàn thiện ngày 10 tháng 3 năm 2019<br />
Chấp nhận đăng ngày 25 tháng 3 năm 2019<br />
<br />
1<br />
Địa chỉ: Viện CNTT, Viện KH và CNQS;<br />
2<br />
Khoa CNTT, Học viện KTQS.<br />
*<br />
Email: nguyenvinhthai@gmail.com.<br />
<br />
<br />
<br />
<br />
32 N. V. Thái, L. H. Dũng, “Xây dựng các thuật toán mật mã … và phân tích số/khai căn.”<br />