Một giải pháp xây dựng hệ mật khóa đối xứng

Việc xây dựng các thuật toán mật mã hiệu năng

cao cho mục đích thiết kế, chế tạo các thiết bị bảo

mật thông tin phục vụ lĩnh vực an ninh - quốc phòng

và kinh tế - xã hội trong điều kiện hiện nay có ý

nghĩa thực tiễn hết sức to lớn. Với mục tiêu đặt ra,

thuật toán được xây dựng nhằm đáp ứng các yêu cầu:

- Loại trừ các dạng tấn công đã biết đối với các hệ

mật khóa đối xứng trong thực tế;

- Tích hợp hiệu quả trên các thiết bị có kích thước

nhỏ, dung lượng nhớ và năng lực tính toán hạn chế.

Giải pháp để xây dựng thuật toán mật mã với các

yêu cầu đặt ra được đề xuất dựa trên việc phát triển

hệ mã sử dụng OTP có độ an toàn và hiệu quả thực

hiện cao [1-5]. OTP được Gilbert Vernam đề xuất

vào năm 1917 và được Joseph Mauborgne tiếp tục

hoàn thiện sau đó. Nguyên tắc căn bản của OTP là

sử dụng một khóa mật chia sẻ trước có độ dài bằng

với độ dài của bản tin cần mã hóa (bản rõ), các bit

của bản mã nhận được từ việc cộng loại trừ (XOR)

trực tiếp các bit của bản rõ với các bit tương ứng của

khóa mật.

Lý thuyết của Claude E. Shannon [6] đã chỉ ra

OTP là một loại mật mã có độ mật hoàn thiện (perfect

secrecy). Hiện tại, OTP vẫn được xem là loại mật mã

an toàn tuyệt đối, không thể phá vỡ. Điều đặc biệt là

ngay cả tấn công vét cạn (brute force) bằng máy tính

lượng tử đối với loại mã này cũng trở nên vô nghĩa, nếu

có thể đáp ứng được các điều kiện về khóa như sau:

- Khóa có tính chất ngẫu nhiên;

- Mỗi khóa chỉ được dùng để mã hóa duy nhất

một bản tin;

- Kích thước của khóa phải bằng hoặc lớn hơn

kích thước của bản rõ;

- Khóa phải được giữ bí mật hoàn toàn.

Một giải pháp xây dựng hệ mật khóa đối xứng trang 1

Trang 1

Một giải pháp xây dựng hệ mật khóa đối xứng trang 2

Trang 2

Một giải pháp xây dựng hệ mật khóa đối xứng trang 3

Trang 3

Một giải pháp xây dựng hệ mật khóa đối xứng trang 4

Trang 4

Một giải pháp xây dựng hệ mật khóa đối xứng trang 5

Trang 5

pdf 5 trang duykhanh 5500
Bạn đang xem tài liệu "Một giải pháp xây dựng hệ mật khóa đối xứng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Một giải pháp xây dựng hệ mật khóa đối xứng

Một giải pháp xây dựng hệ mật khóa đối xứng
bit, i = 1...n
có thể tìm (suy ra) được các khóa đã được sử dụng OT 1 2 i n i
trước đó hay các khóa sẽ được sử dụng trong tương Thuật toán mã hóa là phép XOR các bit của khối 
lai; b) chuỗi bit khóa tồn tại chu kỳ lặp lại, từ đó tạo bản rõ Pi với các bit tương ứng của khóa con Ki :
ra mối liên quan giữa bản rõ và bản mã, kẻ tấn công ⊕
 Ci = Pi Ki, i = 1...n
có thể tận dụng mối liên quan này để phá mã, tương 
 Do đó, bản mã C cũng bao gồm n khối dữ liệu C 
tự như với mã hóa đa bảng Vigenère [7]. Tuy nhiên, i
 có kích thước m bit:
đây là một yêu cầu không dễ thực hiện về mặt kỹ 
thuật trong các ứng dụng. C = {C1,C2,,Ci,,Cn}, |Ci| = m bit, i = 1...n
 Trong [8], trên cơ sở các nghiên cứu đã được Tương tự, thuật toán giải mã cũng là phép XOR 
công bố trước đó, các tác giả đề xuất thuật toán mã các bit của khối bản mã Ci với các bit tương ứng của 
hóa phát triển dựa trên nguyên lý của mật mã OTP khóa con Ki:
trong đó sử dụng hàm băm (Hash Function) để sinh ⊕
 Pi = Ci Ki, i = 1...n
dòng khóa, thuật toán có tính hiệu quả thực hiện cao, 
dễ cài đặt trên cả phần cứng và phần mềm. Chú ý, trường hợp chia bản tin P thành n khối 
 không chẵn thì bù thêm 1 số bit để khối cuối cùng đủ 
 Trong bài báo này, nhóm tác giả đề xuất một giải m bit, việc bù thêm này được thực hiện tương tự như 
pháp nhằm cho phép tạo ra các biến thể của mật mã ở các hệ mã khối khác (DES, AES,).
OTP, thừa kế được một số ưu điểm của OTP, song 
việc thiết lập, quản lý – phân phối và sử dụng khóa Sử dụng 2 khóa khác nhau để mã hóa/giải mã bản tin
là đồng nhất với các hệ mã khóa đối xứng đang sử Khóa bí mật K để mã hóa/giải mã cho một bản tin 
dụng trong thực tế. Ngoài ra, xác thực nguồn gốc và P bao gồm khóa sử dụng một lần KOT và khóa bí mật 
tính toàn vẹn của bản tin được mã hóa cũng là một chia sẻ trước giữa 2 đối tượng gửi (mã hóa) và nhận 
tính năng bổ sung quan trọng cho các thuật toán xây (giải mã) – KS. Trong đó, khóa sử dụng một lần KOT 
dựng theo giải pháp này. Điểm khác của giải pháp đề được dùng để mã hóa các khối dữ liệu của bản rõ ở 
xuất ở đây so với thuật toán trong [8] là chuỗi khóa bên gửi và giải mã các khối bản mã ở phía bên nhận. 
được tạo ra chủ yếu bằng các thuật toán sinh số ngẫu 
 Khóa bí mật chia sẻ K được bên gửi sử dụng để 
nhiên có kết hợp với hàm băm mà không hoàn toàn S
 tạo ra “mầm khóa” C tương ứng với mỗi bản tin cần 
bởi hàm băm như trong [8], điều đó cho phép nâng 0
 mã hóa nhờ hàm băm F : C = F (P, K ). Thành phần 
cao tốc độ thực hiện thuật toán mã hóa nhất là khi sử 1 0 1 S
 C này được gửi như một khối của bản mã sang cho 
dụng thuật toán sinh số ngẫu nhiên dạng thanh ghi 0
 bên nhận. Dễ thấy rằng, giá trị C là khác nhau với 
dịch hồi tiếp tuyến tính – LFSR (Linear Feedback 0
 các bản tin cần mã hóa khác nhau và có tính chất 
Shift Registers) [9] kiểu Shrinking Generator [10].
 ngẫu nhiên vì được tạo ra từ hàm băm F1.
GIẢI PHÁP XÂY DỰNG THUẬT TOÁN MẬT 
 Tiếp đến, hai bên gửi và nhận đều tạo khóa con 
MÃ KHÓA ĐỐI XỨNG HIỆU NĂNG CAO
 đầu tiên K1 từ KS và C0 nhờ hàm F1 như sau:
Nguyên tắc xây dựng thuật toán mật mã theo giải 
 K = F (C , K )
pháp đề xuất 1 1 0 S
 Phía gửi tin, các khóa K được sinh bởi cùng một 
Mã hóa và giải mã theo khối với OTP i
 thuật toán F2 từ khóa con đứng trước Ki-1 và khối dữ 
 Bản rõ P được mã hóa dưới dạng n khối dữ liệu liệu tương ứng Pi-1: 
Pi có kích thước m bit:
 Ki = F2(Pi-1, Ki-1), i = 2...n
 P = {P1,P2,,Pi,,Pn}, |Pi| = m bit, i = 1...n
 Ở đây, F2 là hàm sinh số ngẫu nhiên – RNG 
 Khóa sử dụng một lần KOT cũng bao gồm n khóa (Random Number Generator), như phân tích ở phần 
22 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN
sau (mục Mức độ an toàn) cho thấy F2 hoàn toàn Thuật toán sinh khóa, giải mã và xác thực bao 
có thể là các hàm sinh số giả ngẫu nhiên – PRNG gồm các bước thực hiện như sau:
(PseudoRandom Number Generator) mà không nhất 
 Input: C = {C ,C ,C ,,C ,,C }, K
thiết phải thực sự là RNG. 0 1 2 i n S
 Output: M = {M1,M2,,Mi,,Mn}, true/false.
 Phía nhận tin, sau khi tạo: K = F (C ,K ) sẽ giải 
 1 1 0 S [1]. K = F (C ,K )
mã khối đầu tiên: P = C K . Từ đây, các khóa con 1 1 0 S
 1 1 1 [2]. M = C ⊕ K
tiếp theo sẽ được tạo ra theo cùng một quy tắc với 1 1 1
 [3]. M[1] = M 
phía bên gửi: 1
 [4]. for i = 2 to n do:
 K = F (P , K ), i = 2...n
 i 2 i-1 i-1 begin
 Với mỗi khóa con Ki được tạo ra thì việc giải mã 
 Ki = F2(Mi-1,Ki-1) 
các khối mã tiếp theo sẽ được thực hiện:
 ⊕
 Mi = Ci Ki
 P = C K , i = 2...n
 i i i M[i] = Mi 
 Như vậy ở giải pháp đề xuất, khóa bí mật K sẽ end
bao gồm hai thành phần có chức năng phân biệt: K 
 [5]. M0 = F1(M,KS)
= {KS, KOT}. Trong đó: KS là khóa bí mật chia sẻ giữa 
 [6]. if (M0 = C0) then return {M,true} 
các đối tượng tham gia trao đổi thông tin mật, khóa else return {M,false} 
này được sử dụng để tạo ra khóa KOT tương ứng với 
 Ghi chú: 
mỗi bản tin. Còn KOT là khóa sử dụng một lần cho 
việc mã hóa và giải mã bản tin. - Nếu kết quả trả về là {M,true} thì bản tin được 
Thuật toán bên người gửi xác thực về nguồn gốc và tính toàn vẹn. Ngược lại, 
 kết quả trả về là {M,false} thì M là bản tin giả mạo 
 Thuật toán sinh khóa và mã hóa bao gồm các hoặc C đã bị thay đổi trong quá trình truyền tin.
bước thực hiện được mô tả như sau:
 - Nếu bản mã được truyền chính xác từ bên gửi 
 Input: P = {P ,P ,,P ,,P }, K
 1 2 i n S sang bên nhận thì khối dữ liệu C0 của bên nhận 
 Output: C = {C0,C1,C2,,Ci,,Cn} cũng chính là C0 của bên gửi. Mặt khác, do bên 
 nhận và bên gửi có cùng thuật toán sinh khóa với 
 [1]. C0 = F1(P,KS)
 dữ liệu vào C0 và khóa bí mật chia sẻ KS như nhau, 
 [2]. K1 = F1(C0,KS)
 nên khóa mã hóa và khóa giải mã sử dụng một lần GIẢI PHÁP - CÔNG NGHỆ
 [3]. C1 = P1 K1
 KOT sẽ hoàn toàn giống nhau. Vì thế bản tin sau giải 
 [4]. C[0] = C0, C[1] = C1 mã cũng chính là bản rõ trước khi mã hóa. Nên điều 
 [5]. for i = 2 to n do kiện M0 = C0 được thỏa mãn hoàn toàn.
 begin MỘT SỐ ĐÁNH GIÁ VỀ GIẢI PHÁP XÂY DỰNG 
 THUẬT TOÁN MẬT MÃ ĐƯỢC ĐỀ XUẤT
 Ki = F2(Pi-1, Ki-1)
 Ci = Pi Ki Mức độ an toàn 
 C[i] = C 
 i Mức độ an toàn của thuật toán mật mã khóa đối 
 end xứng xây dựng theo giải pháp đề xuất có thể đánh giá 
 [6]. return C qua khả năng chống lại một số dạng tấn công như sau:
 Ghi chú: - Tấn công khóa bí mật chia sẻ: Tấn công khóa bí 
 - Phép toán ⊕ là phép cộng modulo 2 (XOR) hai mật chia sẻ có thể thực hiện dựa vào cách tạo giá trị 
 C : C = F (P,K ) hoặc tính giá trị của khóa con K : 
chuỗi bit. 0 0 1 S 1
 K1 = F1(C0,KS).
Thuật toán bên người nhận
 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN 23
 Với việc tạo C0 và K1 như trên thì kích thước LK con (m bit đầu tiên) rồi ghép nối tiếp n chuỗi con 
của khóa bí mật chia sẻ hoàn toàn có thể chọn tùy này với nhau. 
biến trong khoảng: L ≤L ≤2L-L . Trong đó, L là 
 min K P min Nếu các chuỗi bit cơ sở được tạo ra bởi các hàm 
kích thước tối thiểu đủ để bảo đảm ngưỡng an toàn 
 băm và hàm sinh số giả ngẫu nhiên có chu kỳ lặp lại 
(≥ 80 bit); L là kích thước bản rõ và L là kích thước 
 P lớn và kích thước của các chuỗi con K được chọn 
lớn nhất của dữ liệu đầu vào hàm băm F . Khi đó, dữ i
 1 nhỏ hơn chu kỳ lặp lại của chuỗi bit cơ sở thì các 
liệu đầu vào hàm F là sự ghép nối tiếp xâu bit của K 
 1 S chuỗi con này thực sự có tính ngẫu nhiên theo nghĩa: 
với P trong trường hợp tạo giá trị C , hoặc là sự ghép 
 0 a) không tồn tại chu kỳ lặp lại; b) từ một số bit cho 
nối tiếp xâu bit của K với C trong trường hợp tạo 
 S 0 trước không thể tính được bit tiếp theo, là điều hoàn 
khóa con K . Từ đây có thể thấy rằng, khóa bí mật 
 1 toàn có thể khẳng định. Mặt khác, do các chuỗi con 
chia sẻ trước giữa bên gửi và nhận hoàn toàn có thể 
 K được tạo theo: K = F (P , K ), nên một trong 
được giữ bí mật không chỉ về giá trị mà còn bí mật i i 2 i-1 i-1
 các điều kiện để các K tạo thành chuỗi giá trị lặp lại 
cả về kích thước khóa. i
 là các Pi cũng phải tạo thành chuỗi lặp lại, mà trên 
 Dễ thấy rằng, với đặc tính một chiều của hàm thực tế điều này lại khó xảy ra. 
băm, hơn nữa với kích thước của K cũng là một 
 S Do đó, với giải pháp đề xuất K đã đáp ứng được 
tham số bí mật, thì việc tìm được K từ C , P và K là OT
 S 0 1 yêu cầu về tính ngẫu nhiên của khóa theo nghĩa: a) 
hoàn toàn không khả thi.
 từ một khóa đã biết, kẻ tấn công không thể tìm được 
 - Tấn công vét cạn khi chỉ có bản mã: Nếu KOT là các khóa đã được tạo ra trước hoặc sau đó; b) chuỗi 
một chuỗi bit thực sự ngẫu nhiên thì giữa bản rõ và bit khóa không tồn tại chu kỳ lặp lại, nên sẽ không 
bản mã được tạo ra sẽ không có bất kỳ mối quan hệ tạo ra mối liên quan giữa bản rõ và bản mã. Từ đó, 
nào. Tấn công vét cạn có thể giải một bản mã thành thuật toán được xây dựng theo giải pháp đề xuất 
bất kỳ bản tin nào có cùng độ dài (với bản mã) và đối hoàn toàn có thể kháng lại tấn công vét cạn.
với kẻ tấn công thì tất cả các bản tin có nghĩa sau giải 
 - Tấn công giả mạo: OTP không cung cấp tính 
mã đều có khả năng là bản tin được mã hóa. Nghĩa 
 năng xác thực cho bản tin được mã hóa, vì vậy kẻ 
là, sẽ không có bất kỳ thông tin nào trong bản mã cho 
 tấn công có thể chặn bản mã được gửi đi và gửi cho 
phép kẻ tấn công lựa chọn đúng bản rõ trong số các 
 bên nhận một bản tin giả mạo có cùng kích thước với 
bản tin có nghĩa sau giải mã bằng tấn công vét cạn. 
 bản tin thật. Trường hợp giải mã ra một bản rõ vô 
Ngoài ra, nếu K thực sự ngẫu nhiên thì từ một khóa 
 OT nghĩa, người nhận có thể suy đoán về một sự giả mạo 
đã biết, kẻ tấn công không thể tìm (suy) ra các khóa 
 đã được thực hiện hoặc do lỗi truyền tin gây ra. Tuy 
khác đã được tạo ra trước hay sau đó.
 nhiên, nếu giải mã ra một bản tin có nghĩa, thì chính 
 Theo giải pháp đề xuất, khóa sử dụng một người nhận cũng không có cách nào để khẳng định 
lần KOT là một tập các khóa con Ki được tạo bởi được rằng đây là bản tin thật hay bản tin giả mạo.
hàm băm F và hàm sinh số ngẫu nhiên F theo 2 
 1 2 Với giải pháp đề xuất, bằng việc tạo “mầm khóa” 
nguyên tắc: Thứ nhất, mỗi khóa con K được sinh 
 i C từ khóa bí mật chia sẻ K và bản rõ nhờ hàm băm 
ra từ khóa con đứng trước nó là K và khối dữ liệu 0 S
 i-1 F ở phía bên gửi: C = F (P,K ), bên nhận hoàn toàn 
tương ứng P bởi F ; Thứ hai, riêng khóa con đầu 1 0 1 S
 i-1 2 có khả năng nhận thức chính xác nguồn gốc cũng 
tiên K được tạo ra bởi “mầm khóa” C và khóa bí 
 1 0 như tính toàn vẹn của bản tin sau giải mã qua việc 
mật chia sẻ K bởi hàm băm F . Như vậy, K thực 
 S 1 OT tính: M = F (M,K ) và kiểm tra điều kiện: M = C .
chất là một chuỗi bit được tạo ra bởi việc ghép nối 0 1 S 0 0
 Hiệu quả thực hiện 
tiếp n chuỗi (bit) con Ki, mà các chuỗi con Ki này 
chính là đoạn m bit đầu tiên của n chuỗi bit cơ sở Có thể nâng cao hiệu quả thuật toán xây dựng 
được tạo bởi F hoặc F với các giá trị khởi tạo 
 1 2 theo giải pháp đề xuất nếu khóa KOT được tạo ra 
hay các “mầm” khác nhau. Nói cách khác, chuỗi trước các khi các thủ tục mã hóa và giải mã được 
bit KOT được tạo ra từ n chuỗi bit cơ sở khác nhau, thực hiện. Khi đó, các thuật toán sinh khóa, mã hóa 
bằng cách lấy ra từ mỗi chuỗi bit cơ sở 1 chuỗi và giải mã được mô tả như sau:
24 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN
 + Thuật toán sinh khóa: dạng tấn công đối với các hệ mã khối, đây là một ưu 
 điểm rất quan trọng được kế thừa từ OTP. Ngoài ra, 
 Input: P = {P ,P ,,P ,,P }, K
 1 2 i n S do có cơ chế xác thực nguồn gốc và tính toàn vẹn 
 Output: K = {K ,K ,,K ,,K }, C
 OT 1 2 i n 0 của bản tin được mã hóa, các thuật toán này còn có 
 [1]. C = F (P,K )
 0 1 S khả năng chống lại các dạng tấn công giả mạo trong 
 [2]. K [1] = F (C ,K )
 OT 1 0 S thực tế. Những ưu điểm khác của các thuật toán này 
 [3]. for i = 2 to n do
 là tốc độ và hiệu quả thực hiện có thể so sánh với hệ 
 begin 
 mã OTP, song khóa mật chia sẻ có thể sử dụng nhiều 
 K [i] = F (K [i-1])
 OT 2 OT lần như các hệ mã khóa đối xứng khác. Đây là những 
 end
 đặc tính rất quan trọng mang lại khả năng cho các 
 [4]. return {K ,C }
 OT 0 thuật toán mới có thể ứng dụng được trong việc thiết 
 + Thuật toán mã hóa: kế, chế tạo các thiết bị bảo mật thông tin.
 Input: P = {P1,P2,,Pi,,Pn}, C0,
 KOT = {K1,K2,,Ki,,Kn} 
 TÀI LIỆU THAM KHẢO
 Output: C = {C0,C1,C2,,Ci,,Cn}
 [1]. C[0] = C 
 0 1. SharadPatil, Ajay Kumar (2010). Effective Secure 
 [2]. for i = 1 to n do Encryption Scheme (One Time Pad) using Complement 
 begin Approach. International Journal of Computer Science & 
 ⊕ Communication, Vol.1,No.1,January-June 2010, pp.229-233. 
 C[i] = P[i] KOT[i]
 end 2. Raman Kumar, Roma Jindal, Abhinav Gupta, 
 [3]. return C SagarBhalla, HarshitArora (2011). A Secure 
 Authentication System - Using Enhanced One Time Pad 
 + Thuật toán giải mã và xác thực: Technique. IJCSNS International Journal of Computer 
 Science and Network Security, Vol.11 No.2.
 Input: C = {C ,C ,C ,,C ,,C }, 
 0 1 2 i n 3. SharadPatil, ManojDevare, Ajay Kumar (2007). Modified 
 KOT = {K1,K2,,Ki,,Kn},KS One Time Pad Data Security Scheme: Random Key 
 Output: M = {M1,M2,,Mi,,Mn}, true/false. Generation Approach. International Journal of Computer 
 [1]. for i = 1 to n do: Science and Security (IJCSS), Volume (3): Issue(2).
 begin 4. N.J.Croft and M.S.Olivier (2005). “Using an 
 M[i] = C[i] ⊕ K [i] approximated One-Time Pad to Secure ShortMessaging 
 OT service(SMS)”. SATNAC 2005 Proceedings.
 end
 5. Jeff Connelly (1978). A Practical Implementation of a GIẢI PHÁP - CÔNG NGHỆ
 [2]. M = F (M,K )
 0 1 S One-time Pad Cryptosystem. CPE 456.
 [3]. if (M = C ) then return {M,true} 
 0 0 6. Shannon C.E. (1949). Communication Theory of Secrecy 
 else return {M,false} Systems. Bell System Technical Journal, Vol.28-4, pp.656-715.
 Có thể thấy rằng, hiệu quả thực hiện của thuật 7. William Stallings (2005). Cryptography and Network 
toán được đề xuất khi đó đạt xấp xỉ hiệu quả thực Security Principles and Practices. Prentice Hall.
hiện của mật mã OTP. Tuy nhiên, do: 8. Marcio Ricardo Rosemberg, Daniel Schwabe, Marcus Poggi, 
 A Hybrid Block and Stream Cipher Encryption Scheme 
 KOT[i] = F2(KOT[i-1]) Based on Collision Resistant Hash Functions. Monografias 
 em Ciência da Computação n° 13/17, ISSN: 0103-9741. 
 Nên sẽ tiềm tàng khả năng tồn tại chu kỳ lặp lại 
 9. Menezes A., Van Oorschot P. and Vanstone S. (1996). 
trong chuỗi K .
 OT Handbook of Applied Cryptography. Boca Raton, 
KẾT LUẬN Florida: CRC Press.
 10.  D. Coppersmith, H. Krawczyk, and Y. Mansour 
 Bài báo đề xuất giải pháp xây dựng thuật toán (1994), “The shrinking generator,” in CRYPTO ’93: 
mật mã khóa đối xứng từ việc phát triển mật mã sử Proceedings of the 13th annual international cryptology 
dụng khóa một lần OTP. Với giải pháp thiết kế khóa conference on Advances in cryptology, (New York, NY, 
mật từ 2 phân khóa tách biệt, các thuật toán xây dựng USA), pp. 22-39, Springer-Verlag New York, Inc.
theo giải pháp ở đây có khả năng loại trừ một số 
 Số 5 (057) 2020 l Tạp chí AN TOÀN THÔNG TIN 25

File đính kèm:

  • pdfmot_giai_phap_xay_dung_he_mat_khoa_doi_xung.pdf