Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP

Hầu hết các hệ mã khóa đối xứng đều được thiết kế dựa trên 2 nguyên tắc cơ bản của Claude Shannon, đó là tính hỗn loạn (confusion) và tính khuếch tán (diffusion). Trong bài báo này, nhóm tác giả đề xuất giải pháp xây dựng hệ mã khóa đối xứng theo nguyên tắc mã hóa của hệ mã sử dụng khóa 1 lần (OTP) [1-5] kết hợp với hệ mã lũy thừa như: RSA [6], ElGamal [7],. nhằm giải quyết các yêu cầu sau: - Tốc độ thực hiện cao, dễ cài đặt trên các hệ nền khác nhau, cũng như cho phép tích hợp hiệu quả trên các thiết bị có kích thước, dung lượng nhớ nhỏ và năng lực tính toán hạn chế. - Có khả năng loại trừ các dạng tấn công đối với các hệ mã khóa đối xứng đã biết trên thực tế [8]. Bài báo cũng đề xuất 2 thuật toán xây dựng theo giải pháp mới đề xuất, cho thấy tính khả thi của giải pháp cũng như về cơ bản, các thuật toán ở đây có thể đáp ứng tốt các yêu cầu đã đặt ra

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 1

Trang 1

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 2

Trang 2

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 3

Trang 3

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 4

Trang 4

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 5

Trang 5

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 6

Trang 6

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 7

Trang 7

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP trang 8

Trang 8

pdf 8 trang minhkhanh 8400
Bạn đang xem tài liệu "Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP", để 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: Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP

Giải pháp phát triển thuật toán mật mã khóa đối xứng từ các hệ mã lũy thừa và mã OTP
Kỷ yếu Hội nghị Khoa học Quốc gia lần thứ IX ―Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR'9)‖; Cần Thơ, ngày 4-5/8/2016 
DOI: 10.15625/vap.2016.00022 
GIẢI PHÁP PHÁT TRIỂN THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG 
TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
Lưu Hồng Dũng 1, Nguyễn Vĩnh Thái2, Tống Minh Đức3, Bùi Thế Truyền4 
1
 Khoa CNTT, Học viện Kỹ thuật Quân sự 
2 Viện CNTT, Viện Khoa học và Công nghệ Quân sự 
3
 Khoa CNTT, Học viện Kỹ thuật Quân sự 
4
 Viện CN Mô phỏng, Học viện Kỹ thuật Quân sự 
luuhongdung@gmail.com, nguyenvinhthai@gmail.com, ductm08@gmail.com, buithetruyen@gmail.com 
TÓM TẮT— Bài báo đề xuất giải pháp xây dựng thuật toán mật mã khóa đối xứng từ việc phát triển hệ mã sử dụng khóa 1 lần - 
OTP (One - time Pad) kết hợp với các hệ mã lũy thừa. Ưu điểm của thuật toán mới đề xuất là có tính an toàn và hiệu quả thực hiện 
cao tương tự OTP, đồng thời với việc sử dụng khóa hoàn toàn giống như các hệ mã khối được sử dụng trong thực tế: DES, AES, 
Từ khóa— Mật mã khóa đối xứng, thuật toán mật mã khóa đối xứng, thuật toán mật mã sử dụng khóa một lần, mật mã OTP. 
I. ĐẶT VẤN ĐỀ 
Hầu hết các hệ mã khóa đối xứng đều được thiết kế dựa trên 2 nguyên tắc cơ bản của Claude Shannon, đó là 
tính hỗn loạn (confusion) và tính khuếch tán (diffusion). Trong bài báo này, nhóm tác giả đề xuất giải pháp xây dựng hệ 
mã khóa đối xứng theo nguyên tắc mã hóa của hệ mã sử dụng khóa 1 lần (OTP) [1-5] kết hợp với hệ mã lũy thừa như: 
RSA [6], ElGamal [7],... nhằm giải quyết các yêu cầu sau: 
- Tốc độ thực hiện cao, dễ cài đặt trên các hệ nền khác nhau, cũng như cho phép tích hợp hiệu quả trên các 
thiết bị có kích thước, dung lượng nhớ nhỏ và năng lực tính toán hạn chế. 
- Có khả năng loại trừ các dạng tấn công đối với các hệ mã khóa đối xứng đã biết trên thực tế [8]. 
Bài báo cũng đề xuất 2 thuật toán xây dựng theo giải pháp mới đề xuất, cho thấy tính khả thi của giải pháp cũng 
như về cơ bản, các thuật toán ở đây có thể đáp ứng tốt các yêu cầu đã đặt ra. 
II. PHÁT TRIỂN THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
A. Các hệ mã cơ sở 
1. Hệ mã sử dụng khóa 1 lần OTP 
Mật mã sử dụng khóa 1 lần – OTP (One – Time Pad) được đề xuất bởi Gilbert Vernam và Joseph Mauborgne 
vào năm 1917. Nguyên tắc căn cản của mã OTP là sử dụng 1 khóa mật 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 của khóa 
mật: 
KPC  
Trong đó: 
 )......( 21 ni PPPPP : Bản rõ n bit. 
 )......( 21 ni KKKKK : Khóa mật n bit. 
 )......( 21 ni CCCCC : Bản mã n bit. 
Lý thuyết của Claude E. Shannon [9] đã chỉ ra OTP là một loại mã có độ mật hoàn thiện (Perfect Secrecy). Hiện 
tại, mật mã OTP vẫn được xem là loại mã an toàn tuyệt đối và chưa có kết quả nào được công bố cho thấy có thể phá 
được loại mã này nếu mỗi khóa chỉ dùng để mã hóa 1 bản tin duy nhất và các khóa được chọn có tính chất ngẫu nhiên. 
Trong bài báo đề xuất phát triển một hệ mật mã có nguyên tắc mã hóa và giải mã tương tự OTP, nhằm giải 
quyết các yêu cầu cao về tính an toàn bảo mật và tốc độ cũng như hiệu quả khi thực hiện. 
2. Các hệ mã lũy thừa 
Mật mã OTP có độ an toàn rất cao, song độ an toàn của OTP lại phụ thuộc vào một thực tế là mỗi khóa chỉ 
được sử dụng cho 1 lần mã hóa. Với cơ chế mã hóa của OTP, rõ ràng nó không thể đứng vững trước tấn công với chỉ 
bản rõ đã biết, vì khóa mật dễ dàng tính được từ phép cộng loại trừ bản rõ và bản mã tương ứng: 
CPK  
Do vậy, cần phải tạo một khóa mới và thông báo nó trên một kênh an toàn với mỗi bản tin trước khi gửi đi. 
Điều đó gây khó khăn cho vấn đề quản lý khóa và hạn chế khả năng sử dụng rộng rãi OTP. Để khắc phục hạn chế trên 
174 MỘT DẠNG THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG PHÁT TRIỂN TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
của OTP, các thuật toán ElGamal và RSA áp dụng nguyên tắc mã hóa của các hệ mã lũy thừa nhằm cho phép sử dụng 
khóa mật nhiều lần tương tự các hệ mã khóa đối xứng khác. 
a) Hệ ElGamal 
Đây là 1 hệ mật mã khóa công khai được T. ElGamal đề xuất năm 1985, hệ mật này được xây dựng dựa trên 
tính khó của bài toán logarit rời rạc như sau: 
- Các thành viên trong cùng hệ thống chọn chung một số nguyên tố p và phần tử sinh g của nhóm *pZ . 
- Mỗi thành viên chọn cho mình 1 khóa bí mật x trong khoảng (1,p) và tính khóa công khai tương ứng: 
pgy x mod 
- Giả sử A muốn gửi cho B bản tin M với: pM , A chọn ngẫu nhiên 1 giá trị k trong khoảng (1,p-1). A tính: 
pgr k mod , pyMC kB mod , trong đó: pgy B
x
B mod là khóa công khai của B, rồi gửi cho B cặp: 
(r,C). 
- B sử dụng khóa bí mật xB của mình để giải mã bản tin bằng cách tính: pr B
x
mod
 rồi nhân với C. 
Tính an toàn của hệ ElGamal dựa trên giả thiết không thể tính được pg B
xk
mod
. nếu chỉ biết pg k mod và 
pg B
x
mod . Trên lý thuyết, có thể có cách sử dụng tri thức về pg k mod và pg B
x
mod để tính pg B
xk
mod
. . Nhưng hiện 
tại, chưa có cách nào để tính pg Bxk mod. mà không phải giải bài toán logarit rời rạc. 
b) Hệ RSA 
RSA cũng là 1 hệ mã khóa công khai do R. Rivest, A. Shamir và L. Adleman phát minh năm 1977, hệ này có 
nguyên tắc hoạt động như sau: 
- Chọn 2 số nguyên tố p, q lớn và mạnh. Tính: qpn và )1()1()( qpn 
- Chọn e trong khoảng (1, )(n ) và 1))(,gcd( ne  
- Tính )(mod1 ned  . Công khai: (e,n), giữ bí mật: d và hủy các giá trị: p, q, )(n . 
- Để gửi thông điệp P (P < n) cho người có khóa công khai (e,n), người gửi tính: nPC e mod . 
- Để giải mã, người nhận sử dụng khóa bí mật của mình tính: nCP d mod . 
- Trong hệ mật RSA, bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố được sử dụng để hình thành 
cặp khóa công khai/bí mật (e,d). Thực vậy, do p, q, )(n được giữ bí mật, nên chỉ có thể tìm được khóa bí 
mật d từ khóa công khai (e,n) nếu có thể phân tích được: qpn . Như vậy, tính an toàn của hệ RSA được 
thiết lập dựa trên giả thiết về tính khó giải của bài toán này. 
B. Nguyên tắc xây dựng 
1. Mã hóa và giải m ... hối dữ liệu đầu tiên của bản mã được giải mã, các khóa Ki để giải mã cho các khối tiếp theo sẽ được 
sinh ra theo chính phương pháp đã sử dụng trong thủ tục mã hóa: 
)( 11 ii PFK , ni ,2 
và các khối còn lại của bản mã được giải mã theo thuật toán OTP: 
niKCP iii ,2,  
Như vậy, ở hệ mã được đề xuất khóa bí mật K sẽ bao gồm 2 thành phần có chức năng phân biệt: 
},{ OTS KKK 
Trong đó: KS là khóa bí mật chia sẻ giữa các đối tượng tham gia trao đổi thông tin mật, khóa này được sử 
dụng để chỉ mã hóa và giải mã cho riêng khối dữ liệu đầu tiên của bản tin, khóa này được sử dụng dài hạn tương tự 
khóa bí mật chia sẻ của các hệ mã khối khác như DES, AES,... Trong khi đó, KOT là khóa sử dụng chỉ 1 lần với 1 bản 
tin và khóa này được sử dụng để mã hóa và giải mã cho các khối dữ liệu từ thứ 2 trở đi của bản tin. 
3. Khóa mã hóa sử dụng 1 lần là khóa tự sinh 
Mục đích của việc mã hóa bản tin theo các khối bit là để tạo các khóa Ki từ các khối dữ liệu đứng trước Pi-1 
bằng một hàm sinh số ngẫu nhiên F1: 
)( 11 ii PFK , ni ,2 
Hơn nữa, ở thủ tục giải mã, sau khi khối đầu tiên đã được giải mã, khóa Ki để giải mã cho các khối tiếp theo 
cũng được tạo ra bằng chính phương pháp này. Do đó, thủ tục mã hóa và giải mã của hệ mã đề xuất ở đây có thể được 
thực hiện với cùng một thuật toán tương tự các hệ mã khối điển hình như DES, AES,... 
Thực tế, trong 1 bản tin cần mã hóa có thể bao gồm nhiều khối Pi có giá trị giống nhau, để Ki không bị lặp lại 
thì việc chỉ sử dụng hàm F1 là không đủ, khi đó Ki cần phải được tạo ra từ Pi-1 và 1 giá trị ngẫu nhiên V nhờ hàm F1: 
),( 11 VPFK ii , ni ,2 
C. Xây dựng thuật toán mật mã khóa đối xứng theo giải pháp đề xuất 
Mục này đề xuất xây dựng 2 dạng thuật toán khác nhau. Thuật toán thứ nhất – ký hiệu: MTA 16.5 – 01, được 
thiết kế để làm việc ở chế độ mã dòng, thuật toán dạng 2 – ký hiệu: MTA 16.5 – 02, làm việc như các hệ mã khối thông 
thường nhưng hỗ trợ khả năng xác thực nguồn gốc và tính toàn vẹn của bản tin được mã hóa. 
1. Thuật toán MTA 16.5 – 01 
a) Dữ liệu: 
176 MỘT DẠNG THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG PHÁT TRIỂN TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
III. BẢN RÕ P ĐƯỢC MÃ HÓA DƯỚI DẠNG CÁC KHỐI DỮ LIỆU PI CÓ KÍCH THƯỚC 128 BIT: 
},...,,...,,{ 21 ni PPPPP , ni ,1 , 128|| iP bit 
Bản mã C cũng được giải mã dưới dạng các khối dữ liệu Ci 128 bit: 
 },...,,...,,{ 21 ni CCCCC , ni ,1 , 128|| iC bit 
a) Khóa: 
Khóa bí mật bao gồm 2 phân khóa riêng biệt: 
 },{ OTS KKK 
Trong đó: 
- Khóa bí mật chia sẻ KS được sử dụng để mã hóa/giải mã khối dữ liệu đầu tiên của bản tin, bao gồm các thành 
phần: 
),,( xgpKS 
Trong đó: p là 1 số nguyên tố lớn có 128|| p bit, g là phần tử sinh của nhóm 
*
PZ và x là một giá trị được 
chọn ngẫu nhiên trong khoảng (1, p). 
 - KOT là khóa sử dụng 1 lần để mã hóa/giải mã cho các khối còn lại của bản tin: 
},...,,...,,{ 32 niOT KKKKK , ni ,2 , 128|| iK bit 
Trong thuật toán đề xuất ở đây, KOT là khóa tự sinh được tạo ra từ chính bản tin cần mã hóa/giải mã. Trong đó, 
các khóa con Ki để mã hóa/giải mã cho khối dữ liệu Pi/Ci được tạo ra từ khối dữ liệu đứng trước Pi-1 và 1 vector khởi 
tạo V nhờ hàm băm MD5 [10] như sau: 
),(5 1 VPMDK ii , ni ,2 
Ở đây: V là vector khởi tạo có giá trị được chọn ngẫu nhiên cho mỗi lần mã hóa bản tin, nhằm loại bỏ các 
trường hợp: ji PP 11 dẫn tới: ji KK 11 . Ở đây: i, j là chỉ số định danh các bản tin khác nhau được mã hóa. 
b) Thuật toán mã hóa: 
- Sinh khóa mã hóa sử dụng 1 lần KOT: 
 [1]. Chọn ngẫu nhiên một giá trị k trong khoảng (1,p) 
 [2]. Tính giá trị vector khởi tạo: pgV k mod 
 [3]. Thủ tục sinh khóa KOT: 
 for i =2 to n do 
 begin 
 )||||||(5 11 VPVPMDK iii 
 end 
- Mã hóa khối đầu tiên của bản rõ: 
 [1]. Tính giá trị: pVPC x mod10 
 [2]. Tính giá trị: pVPMDE mod)||(5 1 
 [3]. Tính giá trị: pEkxS mod)(1 
 Khối đầu tiên của bản mã: ),,( 01 SECC 
- Mã hóa các khối từ 2 đến n: 
 for i = 2 to n do 
 begin 
iii KPC  
 end 
- Bản mã nhận được: 
 },...,,...,,{ 21 ni CCCCC , ni ,1 , 128|| iC bit 
Chú ý: 
Lưu Hồng Dũng, Nguyễn Vĩnh Thái, Tống Minh Đức, Bùi Thế Truyền 177 
- Toán tử “||” sử dụng ở thủ tục sinh khóa KOT và bước [2] của thủ tục mã hóa khối C0 là phép toán ghép nối 2 
xâu bit. 
- Điều kiện để giải mã đúng khối đầu tiên là: pP 1 . Trong thực tế, có thể xảy ra một số trường hợp mà: 
pP 1 và kết quả giải mã sẽ bị sai. Do đó, ở bước [1] của thủ tục mã hóa khối đầu tiên của bản rõ có thể tính: 
 pVPpC x mod
210
 thay vì: pVPC x mod10 , trong đó: 21Pp là dạng mã bù 2 của 1Pp . 
c) Thuật toán giải mã: 
- Giải mã khối thứ nhất cuả bản mã: 
 [1]. Tính giá trị: pggV ESx mod. 
 [2]. Tính: pVCP x mod01
 [3]. Tính: pVPMDE mod)||(5 1 
 [4]. Nếu: EE thì: 
11 PP . Khi đó sẽ chuyển sang thực hiện thủ tục sinh khóa và giải mã các khối từ 2 
đến n. Ngược lại, nếu EE : kết thúc việc giải mã. 
- Thủ tục sinh khóa và giải mã các khối từ 2 đến n được: 
 for i = 2 to n do 
 begin 
 )||||||(5 11 VPVPMDK iii 
iii KCP  
 end 
Chú ý: 
- Giá trị pg x mod có thể tính 1 lần và lưu trữ như 1 thành phần của KS: ),,,( yxgpKS , ở đây: 
pgy x mod . 
- Khi đó, giá trị V ở bước [1] của thuật toán giải mã được tính theo: pgyV ES mod . 
d) Tính đúng đắn của MTA 16.5 – 01 
Điều cần chứng minh ở đây là: p số nguyên tố,  qZMD 
1,0:5 với: 128|||| qp bit , pkgx ,,1 , 
pgy x mod , pgV k mod , pVPMDE mod)||(5 1 , pEkxS mod
1 , pVPC x mod10 . Nếu: 
pygV SE mod , pVCP x mod01
 , pVPMDE mod)||(5 1 thì: 11 PP và EE . 
Chứng minh: 
Ta có: 
Vpgpg
pggpygV
kEkE
EkxxESE
modmod
modmod ..
1
Nên: 
 1101 modmod PpVVPpVCP
xxx
Và: 
 EpIVPMDpVIPMDE mod)||(5mod||5 11 
Đây là điều cần chứng minh. 
2. Thuật toán MTA 16.5 – 02 
a) Dữ liệu và khóa: 
IV. BẢN RÕ CẦN MÃ HÓA P BAO GỒM N KHỐI DỮ LIỆU CÓ ĐỘ DÀI 128 BIT: 
 },...,,...,,{ 21 ni PPPPP , ni ,1 , 128|| iP bit 
178 MỘT DẠNG THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG PHÁT TRIỂN TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
- Bản rõ được mã hóa mP là bản rõ P được bổ sung khối 0P : 
 },...,,...,,,{},{ 2100 nim PPPPPPPP , ở đây: )(50 PMDP 
- Khóa bí mật chia sẻ KS bao gồm 2 thành phần: 
 ),( xpKS 
Trong đó: p là 1 số nguyên tố lớn có 128|| p bit, x là một giá trị được chọn ngẫu nhiên trong khoảng (1,p) và 
thỏa mãn: 1)1,gcd( px . 
a) Thuật toán mã hóa: 
- Thủ tục sinh khóa KOT: 
 for i =1 to n do 
 begin 
 )||||||(5 0101 PPPPMDK iii 
 end 
- Mã hóa khối đầu tiên của bản rõ mP : 
 pPC x mod00 
- Mã hóa các khối còn lại: 
 for i =1 to n do 
 begin 
iii KPC  
 end 
- Bản mã nhận được: 
 },...,,...,,,{ 210 ni CCCCCC , ni ,0 , 128|| iC bit 
Chú ý: 
- Đối với các trường hợp mà: pPMD )(5 , dẫn đến: pP 0 và việc giải mã sẽ bị sai. Vì thế, ở thủ tục mã 
hóa khối đầu tiên của Pm cần tính: pPC x mod00 với: 20 )(5 PMDpP thay vì: )(50 PMDP , ở đây: 
2
)(5 PMDp là dạng mã bù 2 của )(5 PMDp . 
b) Thuật toán giải mã: 
- Giải mã khối 0C của bản mã nhận được: 
 pCP x mod
1
00
- Thủ tục sinh khóa và giải mã các khối từ 1 đến n: 
 for i = 1 to n do 
 begin 
 )||||||(5 0101 PPPPMDK iii 
iii KCP  
 end 
- Bản rõ nhận được: 
 },...,,...,,{ 21 ni PPPPP , ni ,1 
- Thủ tục xác thực bản tin nhận được: 
[1]. Tính: )(5 PMDH 
[2]. Nếu: 
0PH thì: PP . Khi đó bản tin được xác thực về nguồn gốc và tính toàn vẹn. 
Chú ý: 
Lưu Hồng Dũng, Nguyễn Vĩnh Thái, Tống Minh Đức, Bùi Thế Truyền 179 
- Việc tính giá trị 1mod1 px trong thủ tục giải mã khối C0 có thể thực hiện 1 lần và lưu trữ như 1 
thành phần của KS: },,{ yxpKS , ở đây: 1mod
1 pxy . 
- Khi đó, giá trị 
0P được tính theo: pCP
y
mod00 . 
c) Tính đúng đắn của MTA 16.5 – 02 
Điều cần chứng minh ở đây là: p số nguyên tố,  qZMD 
1,0:5 với: 128|||| qp bit , px 1 , 
 1mod1 pxy , },...,,...,,{ 21 ni PPPPP , },...,,...,,,{},{ 2100 nim PPPPPPPP với: 128|| iP bit và: 
)(50 PMDP , )||||||(5 0101 PPPPMDK iii với: ni ,1 , pPC
x
mod00 , iii KPC  với: ni ,1 . Nếu: 
 pCP y mod00 , )||||||(5 0101 PPPPMDK iii , iii KCP  với: ni ,1 , )(5 PMDH thì: 0PH và 
PP với: },...,,...,,{ 21 ni PPPPP . 
Chứng minh: 
Thật vậy, ta có: 
 0.0000 modmodmodmod
1
1
PpPppPpCP
xxxxy
Nên: 
1000000001 )||||||(5)||||||(5 KPPPPMDPPPPMDK 
Do đó: 
111111 PKCKCP   
Tiếp theo: 
2010101012 )||||||(5)||||||(5 KPPPPMDPPPPMDK 
Và: 
222222 PKCKCP   
Tương tự: 
33 KK ,..., nn KK 
Và: 
33 PP ,..., nn PP 
Suy ra: 
PP 
Và: 
00)(5)(5 PPPMDPMDH 
Đây là điều cần chứng minh. 
1. Một số đánh giá về độ an toàn và hiệu quả thực hiện của các thuật toán mới đề xuất 
a) Mức độ an toàn và hiệu quả thực hiện của MTA 16.5 – 01 
Mức độ an toàn: Việc sử dụng 2 khóa phân biệt để mã hóa/giải mã bản tin, trong đó khóa KOT được sử dụng 
tương tự như hệ mã OTP cho phép loại trừ hầu hết các dạng tấn công đã được biết đến trong thực tế: thám mã vi sai, 
thám mã tuyến tính, tấn công bản mã có lựa chọn, tấn công bản rõ đã biết, Các phương pháp tấn công này hoàn toàn 
không có tác dụng với thuật toán mới đề xuất do KOT chỉ sử dụng 1 lần cùng với bản tin được mã hóa, hơn nữa với kích 
thước 128 bit thì phương pháp vét cạn là không khả thi để tấn công các khóa con Ki. Mặt khác, khóa bí mật chia sẻ KS 
trong thuật toán này chỉ sử dụng để mã hóa và giải mã cho khối dữ liệu đầu tiên của bản tin và các thuật toán mã 
hóa/giải mã ở đây được thực hiện theo phương pháp của các hệ mã lũy thừa (RSA, ElGamal,...) nên khóa bí mật chia sẻ 
có thể sử dụng nhiều lần hoàn toàn như các hệ mã khối thông thường khác: DES, AES, Ngoài ra, thuật toán mã 
hóa/giải mã khối đầu tiên của bản tin với khóa KS còn có tác dụng cho phép xác thực nguồn gốc của bản tin nhận được. 
180 MỘT DẠNG THUẬT TOÁN MẬT MÃ KHÓA ĐỐI XỨNG PHÁT TRIỂN TỪ CÁC HỆ MÃ LŨY THỪA VÀ MÃ OTP 
Hiệu quả thực hiện: Ngoại trừ khối đầu tiên được mã hóa và giải mã theo phương pháp của các hệ mã lũy thừa 
như: RSA, ElGamal,... cho hiệu quả thực hiện không cao, các khối còn lại của bản tin được mã hóa/giải mã hoàn toàn 
theo nguyên tắc của hệ mã OTP. Vì vậy, về căn bản hiệu quả thực hiện của thuật toán mới đề xuất là tương đương với 
hệ mã OTP. 
b) Mức độ an toàn và hiệu quả thực hiện của MTA 16.5 – 02 
Mức độ an toàn và hiệu quả thực hiện của MTA 16.5 – 02 về cơ bản có thể đánh giá tương tự thuật toán MTA 
16.5 – 01, ngoại trừ 2 điểm khác biệt chủ yếu: 
- Có khả năng xác thực nguồn gốc và tính toàn vẹn của bản tin nhận được. Vì thế ngoài khả năng chống được 
các dạng tấn công đối với các hệ mã khối thông thường khác, thuật toán còn có thể chống lại một số dạng tấn công giả 
mạo trong thực tế. 
- Chỉ thực hiện với các loại bản tin có kích thước xác định, nói cách khác thuật toán này không làm việc được 
với các dòng dữ liệu mà kích thước chưa được xác định tại thời điểm tiến hành mã hóa như MTA 16.5 – 01. 
V. KẾT LUẬN 
Bài báo đề xuất giải pháp xây dựng một hệ mã khóa đối xứng hiệu năng cao từ việc phát triển hệ mã sử dụng khóa 
1 lần OTP kết hợp với các hệ mã lũy thừa khác nhằm đáp ứng các yêu cầu về độ an toàn và hiệu quả thực hiện. Với 
giải pháp thiết kế khóa mật từ 2 phân khóa tách biệt, các thuật toán được xây dựng theo giải pháp được đề xuất ở đây 
có khả năng loại trừ hầu hết các dạng tấn công đối với các hệ mã khóa đối xứng, đây là một ưu điểm rất quan trọng 
được kế thừa từ hệ mã OTP. Ngoài ra, do có cơ chế xác thực nguồn gốc và tính toàn vẹn của bản tin được mã hóa, các 
thuật toán này còn có khả năng chống các dạng tấn công giả mạo đã biết trên thực tế. Những ưu điểm khác của các 
thuật toán này là có tốc độ và hiệu quả thực hiện có thể so sánh với hệ mã OTP, song khóa mật chia sẻ có thể dụng 
nhiều lần như các hệ mã khóa đối xứng khác. Đây là những đặc tính rất quan trọng để ứng dụng các thuật toán mới 
trong việc thiết kế - chế tạo các thiết bị bảo mật thông tin trong thực tế. 
TÀI LIỆU THAM KHẢO 
[1] SharadPatil , Ajay Kumar, “Effective Secure Encryption Scheme(One Time Pad) using Complement Approach‖, International 
Journal of Computer Science & Communication, Vol.1,No.1,January-June 2010,pp.229-233. 
[2] Raman Kumar, Roma Jindal, Abhinav Gupta, SagarBhalla, HarshitArora, “A Secure Authentication System-Using Enhanced 
One Time Pad Technique”, IJCSNS International Journal of Computer Science and Network Security, VOL.11 No.2, February 
2011. 
[3] SharadPatil, ManojDevare, Ajay Kumar, “Modified One Time Pad Data Security Scheme: Random Key Generation 
Approach‖, International Journal of Computer Science and Security (IJCSS) ,Volume (3): Issue(2). 
[4] N.J.Croft and M.S.Olivier, “Using an approximated One-Time Pad to Secure ShortMessaging service (SMS)‖, SATNAC 2005 
Proceedings. 
[5] Jeff Connelly, “A Practical Implementation of a One-time Pad Cryptosystem‖, CPE 456, June 11, 2008. 
[6] R. L. Rivest, A. Shamir, and L. M. Adleman, “A Method for Obtaining Digital Signatures and Public Key Cryptosystems”, 
Communications of the ACM, Vol. 21, No. 2, 1978, pp. 120-126. 
[7] 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. 
[8] Mark Stamp, Richard M. Low, “Applicd cryptanalysis: Breaking Ciphers in the Real World”, John Wiley & Sons, Inc., ISBN 
978-0-470-1. 
[9] Shannon C.E., “Communication Theory of Secrecy Systems”, Bell System Technical Journal, Vol.28-4, pp 656-715, 1949. 
[10] Menezes A., Van Oorschot P. and Vanstone S., “Handbook of Applied Cryptography”, Boca Raton, Florida: CRC Press. 1996. 
A SOLUTION FOR DEVELOPING SYMMETRIC - KEY CRYPTOGRAPHIC 
ALGORITHMS BASED ON THE OTP AND EXPONENTIAL CIPHERS 
Luu Hong Dung, Nguyen Vinh Thai, Tong Minh Duc, Bui The Truyen 
ABSTRACT— This paper proposes a solution for developing Symmetric-key cryptographic algorithms based on the OTP cipher 
combined with the exponential ciphers. Advantages of the new algorithm have high safety and efficient implementation as OTP 
cipher, but the use of secret keys are exactly the same as DES/AES algorithms. 
Keywords — Symmetric-Key Cryptography, Symmetric-Key Cryptographic Algorithm, One - Time Pad Algorithm, OTP Cipher. 

File đính kèm:

  • pdfgiai_phap_phat_trien_thuat_toan_mat_ma_khoa_doi_xung_tu_cac.pdf