Công nghệ thông tin<br />
<br />
ĐỀ XUẤT THUẬT TOÁN TRAO ĐỔI KHÓA HIỆU QUẢ<br />
SỬ DỤNG MẬT MÃ KHÓA ĐỐI XỨNG<br />
Trần Xuân Ban1,*, Hồ Văn Canh2<br />
Tóm tắt: Có nhiều phương pháp trao đổi khóa: trao đổi khóa công khai và trao<br />
đổi khóa bí mật. Sử dụng mật mã khóa công khai tốc độ tính toán chậm vì độ khó<br />
của bài toán phụ thuộc vào việc chọn các số nguyên tố đủ lớn. Đối với các hệ thống<br />
có năng lực tính toán hạn chế như các thiết bị thông minh, các thiết bị trong mạng<br />
internet of things thì cần thiết phải sử dụng những hệ thống mật mã nhẹ<br />
(lightweight). Bài báo này đề xuất một thuật toán trao đổi khóa dựa trên mật mã đối<br />
xứng. Thuật toán đơn giản dễ sử dụng, có độ an toàn cao và đặc biệt kích thước<br />
khóa nhỏ, tốc độ tính toán nhanh phù hợp với phát triển các phương pháp mã hóa<br />
hạng nhẹ dựa theo phương pháp mã hóa khóa đối xứng có độ dài mầm khóa là 30 ký<br />
tự La tinh, tương đương 240 bít được sử dụng để tạo khóa bí mật.<br />
Từ khóa: Mã hóa bí mật, Mã hóa nhẹ, Trao đổi khóa.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
Mật mã khóa đối xứng (Symmetric Key Cryptography), bao gồm Hệ mật truyền<br />
thống và Hệ mật mã hiện đại, có nhiều ưu điểm như: tốc độ mã hóa/giải mã nhanh<br />
và độ mật đã được khẳng định. Hiện nay, đã có nhiều thuật toán có tốc độ mã hóa<br />
rất nhanh và độ an toàn cao. Loại mật mã này hiện nay đang được sử dụng rộng rãi<br />
để bảo mật thông tin, đặc biệt là những thông tin liên quan đến thương mại. Tuy<br />
nhiên các hệ mật khóa đối xứng có hạn chế về vấn đề trao đổi khóa mã và thực<br />
hiện ký số. Hiện nay, có thể sử dụng Hệ mật mã khóa công khai (Asymmetric Key<br />
Cryptography) để thực hiện trao đổi khóa và ký số để đảm bảo an toàn. Tuy nhiên,<br />
việc trao đổi khóa bằng mật mã khóa công khai làm cho kích cỡ bản mã tăng lên<br />
đáng kể (có thể tăng gấp đôi bản mã gốc) và rất có thể làm giảm độ an toàn cho<br />
khóa mã. Trong thực hành việc giải mã với khóa công khai rất chậm so với mật mã<br />
khóa đối xứng, chiếm nhiều dung lượng nhớ, không phù hợp với các hệ thống có<br />
nguồn năng lượng tính toán thấp (lowpower), có bộ nhớ hạn chế và các thiết bị tính<br />
toán khắp nơi như trong mạng internet of things (IoT). Mạng IoT là xu hướng của<br />
tương lai và hiện được ứng dụng trong các lĩnh vực như y tế, vận tải, giao thông,<br />
chăm sóc sức khỏe,…ngoài ra, còn một vài nhược điểm khác nữa.<br />
Để giải quyết vấn đề này, cần một hệ mã có kích thước nhỏ song vẫn đảm bảo<br />
độ an toàn tối thiểu trong trao đổi khóa. Bài báo này trình bày thuật toán về trao<br />
đổi khóa dựa trên mật mã khóa đối xứng nhằm đảm bảo bảo tính nhẹ (lightweight)<br />
khi xây dựng khóa nhưng vẫn đảm bảo độ an toàn. Bài báo gồm 4 phần: đầu tiên là<br />
phần giới thiệu về vấn đề trao đổi khóa, tiếp theo là đề cập đến mật mã hóa đối<br />
xứng và trao đổi khóa, phần 3 là thuật toán do nhóm tác giả đề xuất, cuối cùng là<br />
kết luận và hướng phát triển.<br />
2. NỘI DUNG CẦN GIẢI QUYẾT<br />
2.1. Hệ mã khóa đối xứng và trao đổi khóa<br />
Trong Hệ mật mã khóa đối xứng, chúng tôi lấy Hệ mật mã khối làm mục tiêu<br />
để nghiên cứu, trong đó Chuẩn mật mã dữ liệu (DES) được chọn làm đặc trưng<br />
để tìm hiểu.<br />
<br />
<br />
256 T. X. Ban, H. V. Canh, “Đề xuất thuật toán trao đổi khóa … mật mã khóa đối xứng.”<br />
Thông tin khoa học công nghệ<br />
<br />
2.1.1. Hệ mật mã DES<br />
DES (Data Encryption Standard) là một Hệ mật mã khối điển hình, khóa của nó<br />
là một dãy bít giả ngẫu nhiên độ dài 64 bít. Ta ký hiệu khóa là k = k1,k2,..., k64, với<br />
ki ϵ{0,1}, i= 1,2,...,64. Mỗi khi tiến hành mã hóa một bản rõ nào đó, thuật toán<br />
DES sẽ bỏ qua 8 bít ở các vị trí 8,16, 24, 32, 40, 48, 56 và 64. Như vậy, thực tế<br />
khóa chỉ còn 56 bít. Để đơn giản, trong nghiên cứu này chúng ta coi như khóa DES<br />
có độ dài 56 bít. Việc truyền khóa k độ dài 56 bít thực hiện trên kênh công cộng<br />
với mã hóa công khai (ví dụ như RSA).<br />
Giả sử A muốn chuyển cho B một bản rõ X =x1, x2,..., xn, trong đó, xiϵ{a, b,<br />
c,..., z}, dùng Hệ mật mã DES mã hóa bản rõ X bởi khóa k (56 bít ). Khi đó, bản<br />
mã sẽ được ký hiệu là Y = y1, y2,..., yn. B cần có khóa mã k để giải bản mã Y thành<br />
X. Để trao đổi khóa k giữa A và B sử dụng mật khóa công khai RSA với cặp khóa<br />
công khai và khóa riêng lần lượt là (N, bB) và (N, aB) và thực hiện:<br />
- A lấy khóa công khai (N, bB) và tính: Z = kbBmod(N), sau đó gửi cặp (Z, Y)<br />
cho B trên kênh công cộng (>56 bit).<br />
- B nhận được cặp (Z, Y) và sử dụng khóa riêng (N, aB) để khôi phục khóa k (k<br />
= ZaB mod(N), thực hiện giải mã Y.<br />
Vì cặp (Z, Y) lớn hơn bản mã Y nhiều, có thể gấp hai lần, nên làm tăng kích<br />
thước bộ nhớ và dẫn đến tăng thời gian truyền và có thể gây mất an toàn (vì thời<br />
gian truyền trên mạng lâu).<br />
Như vậy, với hệ thống mạng có các thiết bị hạn chế năng lượng, hạn chế về bộ<br />
nhớ thì phương pháp trao đổi khóa trên là không phù hợp. Vì yêu cầu cần giảm<br />
kích thước dữ liệu khi truyền song vẫn đảm bảo tính an toàn, độ tin cậy, đặc biệt<br />
như trong mạng IoT cần sự tương tác nhanh chóng giữa các thiết bị.<br />
2.1.2. Hàm băm và ứng dụng xây dựng thuật toán trao đổi khóa<br />
Hàm băm mật mã học (Cryptographic hash function) được sử dụng trong nhiều<br />
ứng dụng bảo mật thông tin như chứng thực (authentication), kiểm tra tính nguyên<br />
vẹn của thông tin (message integrity), tạo chữ ký số,… Đầu vào hàm băm (hash) là<br />
một xâu có độ dài tùy ý, đầu ra là xâu có độ dài cố định. Hàm băm có các tính<br />
chất: cho trước h việc tìm m sao cho h = hash (m) là rất khó; cho thông điệp m1,<br />
việc tìm một thông điệp m2 (khác m1) sao cho hash(m1) = hash(m2) là rất khó; và<br />
việc tìm 2 thông điệp khác nhau m1 và m2 sao cho hash(m1) = hash(m2) là rất<br />
khó. Độ dài của đầu ra càng lớn thì độ khó trong phá hàm băm càng cao.<br />
2.2. Đề xuất thuật toán trao đổi khóa bí mật sử dụng phương pháp mật mã<br />
đối xứng<br />
Độ dài của một khóa bí mật phụ thuộc vào yêu cầu của từng thuật toán mã hóa<br />
cụ thể. Như độ dài của khóa mật mã khối DES là 56 bít tương ứng với 7 ký tự<br />
Latinh; độ dài khóa của thuật toán mã hóa IDEA (International Data Encryption<br />
Algorithm) là 128 bit; tương ứng với 16 ký tự Latinh, v.v…<br />
Trong phương pháp mật mã mà nhóm tác giả đề xuất có độ dài mầm khóa là 30<br />
ký tự Latinh, tương đương 240 bít. Một cách tổng quát, trong thuật toán sinh khóa<br />
bí mật sau đây, ta ký hiệu d là độ dài tính theo chữ cái Latinh của mầm khóa (Key<br />
Seed) bí mật của một thuật toán mã khối khóa đối xứng nào đó. Ký hiệu m là một<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 257<br />
Công nghệ thông tin<br />
<br />
số tự nhiên tùy ý nhưng cố định do hai thực thể thống nhất trước. Để đảm bảo an<br />
toàn số m phải lớn hơn hay bằng 5 (m ≥ 5).<br />
Thuật toán sinh khóa bí mật:<br />
Input: Cho x(n) là một dãy các ký tự Latinh có độ dài n tùy ý, một số nguyên<br />
dương cho trước d cố định tùy ý và một số nguyên m ≥ 5 cho trước.<br />
Output: một dãy gồm d chữ cái.<br />
Các bước tiến hành của thuật toán như sau:<br />
Bước 1. Nếu n < md thì viết liên tiếp và lặp lại dãy x(md) = x1,x2,...xn,x1, x2,<br />
..., xmd.<br />
Bước 2. Đổi dãy x(md) sang dãy số nguyên dương theo nguyên tắc:<br />
- Chữ cái nào ở trong dãy x(md) có giá trị bé nhất được đánh số 1;<br />
- Nếu trong dãy x(md) có m ký tự đều có giá trị bé nhất thì ưu tiên đánh số 1<br />
cho ký tự xuất hiện đầu tiên, tiếp đó là số 2, v.v. cho đến ký tự thứ m và cuối cùng<br />
là ký tự có giá trị lớn nhất được đánh số.<br />
Như vậy, dãy y(md) sẽ có md số khác nhau. Tuy dãy các ký tự x(md) không độc<br />
lập, chúng được phân bố theo qui luật Maxkov nhưng dãy số y(md) thì độc lập [2].<br />
Bước 3. Lập bảng (ma trận) B = ( bij )mxd.<br />
Bước 4. Điền các số của dãy y(md) vào bảng B theo thứ tự tự nhiên cho đến khi<br />
bảng B được lấp đầy các ô của bảng.<br />
Bước 5. Với j = 1,2, ..., d tính:<br />
zj = (Ʃi=1,m bij ) mod 26<br />
Bước 6. Khi được dãy (z1, z2,..., zd) thuật toán dừng và đổi dãy (z1, z2,..., zd)<br />
sang ký tự trong bảng mã ASCIL được dãy các ký tự chính là mầm khóa mà hai<br />
thực thể A và B cần có để liên lạc mật với nhau.<br />
3. TÍNH TOÁN ÁP DỤNG VÀ BÀN LUẬN<br />
3.1. Tính toán áp dụng<br />
3.1.1. Mã hóa dãy ký tự<br />
Input: Dãy ký tự x(37) = "coongj hoaf xax hooij chur nghiax vieetj nam", với<br />
n=37. Lấy d = 10 và m = 5.<br />
Output: Dãy gồm 10 chữ cái.<br />
Bước 1: n=37< m*d = 5.10 = 50 nên thực hiện viết liên tiếp dãy x(37) cho đến<br />
khi được dãy x(50). Dãy x(50) = "coongj hoaf xax hooij chur nghiax vieetj nam<br />
coongj hoaf xax".<br />
Bước 2: Thực hiện đổi dãy ký tự x(50) sang dãy số y(50) được:<br />
7,34,35,30,14,25,17,36,1,12,46,2,47,18,37,38,22,26,8,19,44,42,31,15,20,23,3,4<br />
8,45,24,10,11,43,27,32,4,29,9,39,40,33,16,28,21,41,5,13,49,6,50.<br />
Bước 3+4: Lập bảng kích thước mxd=5x10 và điền các giá trị của dãy y(50) vào<br />
bảng được kết quả như sau:<br />
<br />
<br />
<br />
258 T. X. Ban, H. V. Canh, “Đề xuất thuật toán trao đổi khóa … mật mã khóa đối xứng.”<br />
Thông tin khoa học công nghệ<br />
<br />
Bảng 1. Giá trị ma trận kích thước m x d.<br />
7 34 35 30 14 25 17 36 1 12<br />
46 2 47 18 37 38 22 26 8 19<br />
44 42 31 15 20 23 3 48 45 24<br />
10 11 43 27 32 4 29 9 30 40<br />
33 16 28 21 41 5 13 49 6 50<br />
Bước 5: Tính các giá trị zj theo (1), với j = 1,2,...,10. Kết quả:<br />
z1= (7+46+44+10+33)mod26 = 10 = K,<br />
z2 = (34+2+42+11+16)mod26 = 1 = B,<br />
z3= (35+47+31+43+28)mod26 = 2= C<br />
z4= (30+18+15+27+21)mod26 = 7 = H<br />
z5 = (14+37+20+32+41)mod26 = 14 = O<br />
z6 =(25+38+23+4+5)mod26 = 17 = R<br />
z7 = (17+22+3+29+13)mod26 = 6 = G<br />
z8 = (36+26+48+9+49)mod26 = 12 = M<br />
z9 = (1+8+45+39+6)mod26 = 21 = V<br />
z10 = (12+19+24+40+50)mod26 = 15 = P .<br />
Vậy mầm khóa là Z =(K, B, C, H, O, R,G, M, V, P)<br />
3.1.2. Giấu tin mật trong ảnh số<br />
Xét trường hợp tổng quát:<br />
Input: Ảnh C.<br />
Output: Dãy khóa k = k1, k2,..., kd, ki ϵ{ 0,1} với d là độ dài khóa mã.<br />
Bước 1: Trích chọn tất cả hoặc một phần các MSB (Most Significant Bit) do hai<br />
thực thể liên lạc mật với nhau qui định trước của ảnh C và tạo thành ảnh thứ cấp<br />
C(1) = c1, c2,...,cN .<br />
Bước 2: Lập bảng (ma trận) gồm m dòng , d cột với m ≥ 5: A (ai,j)mxd .<br />
Bước 3: Viết các bít c1, c2,..., cN theo thứ tự tự nhiên vào bảng A.<br />
Bước 4: For j = 1,2,...,d tính các bj = Ʃi=1,m aij (mod2).<br />
Bước 5: Viết dãy b1, b2,..., bd . Đây là dãy giá trị của khóa bí mật cần giấu trong<br />
ảnh mà hai bên muốn trao đổi.<br />
3.2. Bàn luận<br />
Thuật toán khóa mã được trình bày trên là thuật toán tựa hàm băm (quasi-hash<br />
function). Ở đây, bản rõ được ngẫu nhiên hóa thành quá trình điểm với số gia độc<br />
lập trước lúc chúng trở thành đầu vào (input) của thuật toán băm. Trong thuật<br />
toán có 2 tham số bí mật rất quan trọng là độ sâu m và độ dài d của khóa. Số d có<br />
thể bị lộ nhưng số m thì chỉ có người gửi và người nhận đích thực biết. Do đó, dù<br />
thuật toán bị lộ, nhưng số m và việc xử lý ban đầu được bí mật thì kẻ tấn công<br />
khó có thể xác định được đầu ra (output) là khóa mã. Đó chính là mức độ an toàn<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 259<br />
Công nghệ thông tin<br />
<br />
của việc trao đổi khóa. Bên cạnh đó còn chưa tính đến đầu vào bản rõ là quy ước<br />
giữa nơi gửi và nơi nhận đích thực nên kẻ tấn công khó biết được dãy ký tự đầu<br />
vào. Như vậy, việc tấn công vét cạn (brute force attack) đối với thuật toán này là<br />
không khả thi.<br />
Thấy rằng: Trong thuật toán, tại Bước 5 nếu biết trước giá trị zj để tìm ngược lại<br />
các giá trị 26 và Ʃi=1,m bij là khó.<br />
Phương pháp trao đổi khóa bí mật trên đây có thể được dùng cho mọi Hệ mật<br />
mã khóa đối xứng và cùng lúc cho nhiều người khác nhau. Việc chọn một đoạn<br />
văn bản rõ làm đầu vào cho thuật toán là tùy ý, thậm chí có thể lấy một dãy số bất<br />
kỳ hoặc một hỗn hợp cả chữ cái và chữ số, có thể một dãy các bản rõ được lặp lại,<br />
chẳng hạn: "thi dua thi dua thi dua", vv... mà không sợ làm giảm độ an toàn cho<br />
khóa k, vì dãy số tương ứng chỉ phụ thuộc vào vị trí của các ký tự trong dãy và độc<br />
lập với bản thân ký tự đó. Lý thuyết Markov đã chứng minh được rằng: Đó là dãy<br />
ngẫu nhiên độc lập. Do đó, để thuận lợi trong thực hành, hai người A và B muốn<br />
liên lạc mật với nhau mà ở cách xa nhau thì họ có thể qui ước sử dụng ngày tháng<br />
ở đầu bản thông báo nào đó một cách công khai mà không sợ bị nghi ngờ. Riêng<br />
thuật toán đơn giản và dễ nhớ, dễ lập trình và có tính ứng dụng trong thực tế.<br />
Hiện nay, có 2 phương pháp trao đổi khóa: sử dụng mã khóa bí mật (Diffie-<br />
Hellman) và sử dụng mã khóa công khai (RSA).<br />
* Trong trao đổi khóa bí mật Diffie-Hellman:<br />
A và B khi thỏa thuận khoa bí mật sẽ thực hiện như sau:<br />
- A thống nhất với B một phần tử nguyên thủy g trong vành Z *p và số nguyên tố<br />
p đủ lớn. Khi đó sơ đồ thỏa thuận khóa như sau:<br />
- A sẽ chọn một giá trị x bí mật trong khoảng (0, p-2) và tính g x mod p rồi gửi<br />
giá trị này cho bên B.<br />
- B chọn một giá trị bí mật y trong khoảng (0, p-2) và tính g y mod p rồi gửi giá<br />
trị này cho bên A.<br />
- Hai bên A, B tính khóa bí mật dựa vào các giá trị x, y, g x mod p , g y mod p .<br />
Khóa bí mật chung là: KA,B= K 1A .<br />
Như vậy, thỏa thuận khóa bí mật Diffie-Hellman rất đơn giản. Để đảm bảo an<br />
toàn thì số nguyên tố p phải chọn là đủ lớ (cỡ 10155 ). Việc xác định số p lớn có là<br />
số nguyên tố không cũng là bài toán khó, tốn nhiều thời gian. Độ khó ở thỏa thuận<br />
khóa bí mật Diffie-Hellman chính là giải quyết bài toán logarit rời rạc và phụ thuộc<br />
vào khả năng tính toán của con người và thiết bị. Điều này không phù hợp với<br />
những thiết bị hạn chế (tài nguyên, bộ nhớ,…).<br />
* Trong trao đổi khóa công khai RSA:<br />
Trao đổi khóa bí mật dựa trên Lược đồ RSA được áp dụng rộng rãi. Để sử dụng<br />
lược đồ này thì cả hai bên A và B đều phải sử dụng hệ mật RSA. Quá trình trao đổi<br />
khóa diễn ra như sau:<br />
- A có cặp khóa bí mật và công khai là ( K 1A , K A2 );<br />
<br />
<br />
260 T. X. Ban, H. V. Canh, “Đề xuất thuật toán trao đổi khóa … mật mã khóa đối xứng.”<br />
Thông tin khoa học công nghệ<br />
<br />
- B có cặp khóa bí mật và công khai là ( K B1 , K B2 );<br />
- A muốn gửi 1 khóa bí mật K cho B cần thực hiện:<br />
2<br />
+ A sử dụng khóa công khai của B ( K B2 ) và tính: y K K B modn B , với<br />
nB pB *q B , pB , qB là 2 số nguyên tố đủ lớn và khác nhau của hệ RSA của B. A<br />
thực hiện gửi y cho B.<br />
+ B thực hiện tính (sau khi nhận được y từ A) để xác định khóa K:<br />
1<br />
K y K B modn B . Nếu cần khẳng định lại K có phải là khóa do A gửi không thì B<br />
2<br />
lấy khóa công khai của A ( K A2 ) và tính: y ' K K A modn A , với nA p A *q A , p A ,<br />
q A là 2 số nguyên tố đủ lớn và khác nhau của hệ RSA của A. B thực hiện gửi y’<br />
cho A.<br />
+ A thực hiện tính toán ra khóa mới theo các thông tin B gửi và so sánh với<br />
1<br />
khóa K trước đó: K ' y 'K A modn A . So sánh K và K’nếu giống nhau thì đúng khóa<br />
A đã gửi cho B.<br />
Ở đây ta thấy: để đảm bảo an toàn cho K thì nA và nB phải đủ lớn tránh việc tấn<br />
công phân tích thành thừa số 2 số nguyên tố. Theo tiêu chuẩn X.509 thì mỗi số này<br />
phải có độ dài tối thiểu là 1024 bit (cỡ 10310 số thập phân). Với kích thước lớn như<br />
vậy các thiết bị hạn chế sẽ không thể thực hiện được (kích thước các thiết bị này<br />
thường cỡ vài MB).<br />
* Đối với mô hình trao đổi khóa bí mật do nhóm tác giả đề xuất:<br />
Không sử dụng 2 lược đồ trao đổi khóa trên (mã khóa bí mật và mã khóa công<br />
khai). Trong 2 lược đồ này luôn yêu cầu bộ nhớ của các thiết bị phải đủ lớn, điều<br />
này hoàn toàn không phù hợp cho các thiết bị trong mạng IoT. Thuật toán mà<br />
nhóm đã đề xuất không yêu cầu thiết bị tính toán lớn, phù hợp với các thiết bị hạn<br />
chế và phù hợp với các khóa mã bí mật trong mã hạng nhẹ (lightweight). Như đề<br />
cập trên, đầu vào của thuật toán là công khai, chỉ cần giữ bí mật: độ dài khóa, độ<br />
sâu của hàm tựa hàm băm và thuật toán giữa 2 bên A và B. Những tham số này do<br />
quy ước chứ hoàn toàn không truyền qua một kênh nào nên đảm bảo sự an toàn.<br />
Mô hình trao đổi khóa đề xuất có khả năng ứng dụng thực tiễn trong công tác an<br />
ninh, quốc phòng.<br />
4. KẾT LUẬN<br />
Trên cơ sở nghiên cứu một số hệ mật phổ biến, nhóm tác giả đã đề xuất một<br />
thuật toán sinh khóa đơn giản, hiệu quả và dễ triển khai trong thực tiễn để áp dụng<br />
cho việc trao đổi khóa, xác thực thông tin giữa bên gửi và bên nhận.<br />
Đặc tính của các thiết bị trong mạng IoT có năng lực tính toán thấp, yêu cầu<br />
việc xác thực phải nhanh chóng. Thuật toán sinh khóa trên đơn giản, song vẫn đáp<br />
ứng độ bảo mật sẽ phù hợp với yêu cầu thực tiễn.<br />
Tuy nhiên đối với các hệ thống phức tạp và yêu cầu sự bảo mật cao trong xác<br />
thực thì thuật toán dễ bị tấn công. Đây là vấn đề cần được nghiên cứu, cải tiến<br />
thêm. Nhóm tác giả sẽ tiến hành cài đặt thử nghiệm để đánh giá chính xác hiệu quả<br />
trên thiết bị của mạng IoT.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 261<br />
Công nghệ thông tin<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Hồ Văn Canh, Nguyễn Viết Thế, "Nhập môn phân tích thông tin có bảo mật".<br />
NXB Hà Nội T&T. 2010.<br />
[2]. Nguyễn Đào Trường, Lê Mỹ Tú, “Cải tiến phương pháp phân phối khóa mật<br />
mã an toàn trong mạng có tài nguyên hạn chế”, Kỷ yếu Hội thảo Quốc gia<br />
lần thứ X về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), Đà<br />
Nẵng, 2017.<br />
[3]. Đặng Minh Tuấn, Nguyễn Văn Căn, Nguyễn Ánh Việt, Nguyễn Tiến Xuân,<br />
“Đề xuất chữ ký số ủy nhiệm và ứng dụng cho ủy nhiệm chi trong hệ thống<br />
Bitcoin”, Kỷ yếu Hội thảo Quốc gia lần thứ X về Nghiên cứu cơ bản và ứng<br />
dụng Công nghệ thông tin (FAIR), Đà Nẵng, 2017.<br />
[4]. Lưu Hồng Dũng, Hồ Ngọc Duy, Tống Minh Đức, Bùi Thế Truyền, Đặng<br />
Hùng Việt, “Giao thức trao đổi khoa an toàn cho các hệ mật khóa đối xứng”,<br />
Kỷ yếu Hội thảo Quốc gia lần thứ X về Nghiên cứu cơ bản và ứng dụng Công<br />
nghệ thông tin (FAIR), Đà Nẵng, 2017.<br />
[5]. Nguyễn Đào Trường, Lê Mỹ Tú, Nguyễn Doãn Cường, “Một phương pháp<br />
cải tiến mật mã khối áp dụng trong mạng đòi hỏi thời gian xử lý nhanh”, Kỷ<br />
yếu Hội thảo Quốc gia lần thứ X về Nghiên cứu cơ bản và ứng dụng Công<br />
nghệ thông tin (FAIR), Đà Nẵng, 2017.<br />
[6]. Nguyễn Đức Toàn, Bùi Thế Hồng, Nguyễn Văn Tảo, “Về một thuật toán mã<br />
hóa khóa đối xứng cải tiến”, Kỷ yếu Hội thảo Quốc gia lần thứ X về Nghiên<br />
cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), Đà Nẵng, 2017.<br />
[7]. Trịnh Nhật Tiến, "Bảo mật thông tin và an toàn dữ liệu". NXB ĐHQG Hà<br />
Nội, 2009.<br />
[8]. Peter Brockwell , Richard A. Davis, Time Series: Theory and Methods. -<br />
Springer Series In Statistics, Spriger-Verlag: New York, Berlin Heidelberg,<br />
London, Paris, Tokyo (1987).<br />
[9]. Rafael Alvarez, Cándido Caballero-Gil, Juan Santonja and Antonio Zamora<br />
1, “Algorithms for Lightweight Key Exchange”, 2016.<br />
[10]. Daniel Dinu, Yann Le Corre, Dmitry Khovratovich, L´eo Perrin, Johann<br />
Großschadl, Alex Biryukov, Triathlon of Lightweight Block Ciphers for the<br />
Internet of Things, University of Luxembourg<br />
[11]. Kai Fan, Jie Li and Hui Li, Xiaohui Liang, Xuemin (Sherman), Yintang<br />
Yang, ESLRAS: A Lightweight RFID Authentication Scheme with High<br />
Efficiency and Strong Security for Internet of Things, 2012 Fourth<br />
International Conference on Intelligent Networking and Collaborative<br />
Systems.<br />
[12]. Doughlas R. Stison, "Cryptography: Theory and Practices". CRC Press<br />
1999.<br />
[13]. FIPS, "Key management using ANSI X9,17" Federal Information Proceeding.<br />
Standards Publication 171. U.S. Department of Commerce /N.I.S.T.<br />
[14]. M. Bellare and P. Rogaway, "Provably Secure Session Key Distribution".<br />
Proceedings of The 27th Annal ACM Symposium.<br />
[15]. Michael R.A. Huth, "Secure communicating Systems". Cambridge University<br />
Press, 2001.<br />
<br />
<br />
262 T. X. Ban, H. V. Canh, “Đề xuất thuật toán trao đổi khóa … mật mã khóa đối xứng.”<br />
Thông tin khoa học công nghệ<br />
<br />
[16]. Phil Zimmermann, "Protect Your Privacy", 2013.<br />
[17]. R. Blom, "Non-public key distribution". Advances in Cryptology-<br />
Proceedings ò Crypto-o3.<br />
[18]. W. F. Ehrsam, S.M. Matyas, C.H. Meyer, and W.L. Tuchman, "A<br />
Cryptographic key manmagement scheme for implementing the Data<br />
Encyption Standard". IBM Systems Journal.<br />
ABSTRACT<br />
PROPOSING AN EFFECTIVE KEY EXCHANGE ALGORITHM USING<br />
SYMMETRIC KEY CRYPTOGRAPHY<br />
There are several methods of key exchange: public key exchange and<br />
secret key exchange. Using public key cryptography the calculation speed is<br />
slow because the difficulty of the problem depends on the choice of prime<br />
numbers large enough. For systems with limited computing power, such as<br />
smart devices and devices in the internet of things, it is necessary to use<br />
lightweight systems. This article proposes a symmetric encryption key<br />
exchange algorithm. Simple algorithms for ease of use, high security and<br />
especially small key sizes, fast computation speed are suitable for the<br />
development of lightweight cryptographic methods based on symmetric-key<br />
encryption method. The 30-character Latin alphabet, equivalent to 240 bits,<br />
is used to generate the secret key.<br />
Keywords: Secret encryption, Light encryption, Key exchange.<br />
<br />
Nhận bài ngày 25 tháng 9 năm 2017<br />
Hoàn thiện ngày 26 tháng 11 năm 2017<br />
Chấp nhận đăng ngày 28 tháng 11 năm 2017<br />
1<br />
Địa chỉ: Đại học Kỹ thuật – Hậu cần Công an nhân dân (Bộ Công an);<br />
2<br />
Cục A70 (Bộ Công an).<br />
*<br />
Email: tranban050179@gmail.com.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 263<br />