intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Phương pháp trao đổi khóa mã đối xứng không sử dụng mật mã khóa công khai

Chia sẻ: ViSumika2711 ViSumika2711 | Ngày: | Loại File: PDF | Số trang:5

41
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mật mã là công cụ hữu hiệu, được sử dụng rộng rãi để bảo vệ bí mật thông tin trong quá trình trao đổi những việc phân phối khóa mã qua kênh an toàn cho các mạng thông tin - thuộc các lĩnh vực Ngoại giao, An ninh, Quốc phòng - vốn có nhiều đầu mối, trên phạm vi địa lý rộng luôn là vấn đề khó khăn hàng đầu.

Chủ đề:
Lưu

Nội dung Text: Phương pháp trao đổi khóa mã đối xứng không sử dụng mật mã khóa công khai

Nghiên cứu khoa học công nghệ<br /> <br /> PHƯƠNG PHÁP TRAO ĐỔI KHÓA MÃ ĐỐI XỨNG<br /> KHÔNG SỬ DỤNG MẬT MÃ KHÓA CÔNG KHAI<br /> Lê Danh Cường1*, Hồ Văn Canh2<br /> Tóm tắt: Mật mã là công cụ hữu hiệu, được sử dụng rộng rãi để bảo vệ bí mật<br /> thông tin trong quá trình trao đổi nhưng việc phân phối khóa mã qua kênh an toàn<br /> cho các mạng thông tin - thuộc các lĩnh vực Ngoại giao, An ninh, Quốc phòng - vốn<br /> có nhiều đầu mối, trên phạm vi địa lý rộng luôn là vấn đề khó khăn hàng đầu. Mật<br /> mã khóa công khai ra đời cuối những năm 1970 với nhiều ưu điểm đã làm giảm bớt<br /> những khó khăn trong khâu phân phối khóa; Tuy nhiên, mặt khác, mật mã khóa<br /> công khai làm tăng dung lượng bản mã, đồng thời cần nhiều tài nguyên trong quá<br /> trình xử lý, gây khó khăn triển khai ứng dụng trên những thiết bị hạn chế về bộ nhớ.<br /> Bài báo này trình bày những nghiên cứu và đề xuất một phương pháp trao đổi khóa<br /> mã dựa trên hệ mật khóa đối xứng, không sử dụng hệ mật khóa công khai.<br /> Từ khóa: Mật mã; Thám mã; Mật mã khóa đối xứng; Mật mã khóa bất đối xứng; Khóa bí mật; Khóa<br /> công khai.<br /> <br /> 1. ĐẶT VẤN ĐỀ<br /> Ngoài ứng dụng các hệ mật mã khóa bí mật, hiện nay các thuật toán mã hóa khóa công<br /> khai (Asymmetric Key Cryptography) được sử dụng rộng rãi để bảo mật thông tin, đặc<br /> biệt là những thông tin nhạy cảm, liên quan đến thương mại điện tử [8, 9, 10]. Tuy nhiên,<br /> nhược điểm lớn nhất của chúng là vấn đề trao đổi khóa mã. Việc trao đổi khóa bằng hệ<br /> mật khóa công khai có một số nhược điểm như làm tăng đáng kể kích cỡ bản mã (so với<br /> bản mã gốc) và chậm hơn so với sử dụng mô hình mật mã khóa đối xứng (Symmetric Key<br /> Cryptography) [1]. Do vậy, làm cho việc mã hóa/ giải mã thông tin trở nên chậm chạp và<br /> tốn nhiều bộ nhớ, gây khó khăn trong việc ứng dụng trên những thiết bị hạn chế về loại tài<br /> nguyên này. Câu hỏi đặt ra là có hay không một phương pháp trao đổi, thỏa thuận khóa<br /> không cần sử dụng hệ mật khóa công khai? Câu trả lời là có [11].<br /> Vấn đề này đang được nhiều tổ chức, cá nhân tập trung nghiên cứu. Bài báo này đề<br /> xuất một phương pháp thỏa thuận khóa mã dựa trên hệ mật khóa đối xứng, thông qua trình<br /> bày một số thuật toán đơn giản, dễ thực hiện và có độ an toàn cao.<br /> 2. NỘI DUNG NGHIÊN CỨU<br /> Trong hệ mật mã khóa đối xứng, chúng tôi chọn mật mã khối làm mục tiêu để nghiên<br /> cứu, với Chuẩn mật mã dữ liệu (DES - Data Encryption Standard) là đặc trưng. Sau đây là<br /> nội dung cụ thể.<br /> 2.1. Hệ mật mã DES<br /> DES là hệ mật mã khối điển hình nhất trong số các mật mã khối nói chung. Khóa của<br /> nó 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 , k 2 ,.., k 64 với<br /> k  0,1, i  1,2,..,64 . Trong hoạt động mã hóa thực tế, thuật toán DES sẽ bỏ qua 8 bít ở<br /> các vị trí 8,16,24,32,40,48,56,64 [12]. Như vậy, độ dài khóa DES chỉ còn 56 bít, nhưng<br /> để đơn giản trong phần nghiên cứu này chúng ta vẫn coi khóa DES có độ dài 64 bít.Mô tả<br /> hoạt động của hệ mật như sau:<br /> Giả sử nơi gửi (A) muốn chuyển bí mật cho nơi nhận (B) một bản rõ X  x1 , x 2 ,.., x n<br /> trong đó xi  a, b,.., z.<br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 95<br /> Công nghệ thông tin & Cơ sở toán học cho tin học<br /> <br /> - A dùng Hệ mật DES với khóa mã K để mã hóa bản rõ X . Khi đó bản mã sẽ được ký<br /> hiệu là Y  y1 , y 2 ,.., y n .<br /> - Khi nhận được bản mã Y , B cần có khóa mã K để giải bản mã và đọc được nội<br /> dung bản rõ X .<br /> - Việc trao đổi khóa K giữa A và B có thể có nhiều cách, phổ biến và thuận tiện nhất<br /> hiện nay là dùng mật mã khóa công khai, trong bài toán này ta giả sử sử dụng Hệ mật mã<br /> khóa công khai RSA. Giả sử B sử dụng Hệ mật mã RSA với cặp khóa công khai và khóa<br /> riêng lần lượt là ( N , bB ) và ( N , a B ) .<br /> - Để trao đổi khóa K cho B, người gửi A lấy khóa công khai ( N , bB ) và tính:<br /> Z  K bB mod(N ) . Sau đó gửi cặp ( Z , Y ) cho B trên kênh công cộng tùy ý.<br /> - Khi nhận được cặp ( Z , Y ) , B sử dụng khóa riêng ( N , a B ) để khôi phục khóa K<br /> aB<br /> bằng cách tính: K  Z mod(N ) . Vậy là B đã có khóa để giải bản mã Y.<br /> Như vậy, rõ ràng cặp ( Z , Y ) được truyền đi có kích cỡ lớn hơn bản mã Y , điều đó sẽ<br /> làm cho thời gian truyền, dung lượng bộ nhớ sử dụng tăng đáng kể, đồng thời làm giảm độ<br /> an toàn của hệ thống và không thích hợp cho các ứng dụng trên các thiết bị như<br /> smartphone. Hơn thế nữa, cách làm này còn phụ thuộc vào sự phổ biến, phát triển của mật<br /> mã khóa công khai và cách thức quản lý khóa công khai trong một mạng lưới liên lạc.<br /> Thực tế đó đòi hỏi phải có một phương pháp trao đổi khóa bí mật một cách thuận tiện an<br /> toàn và thực tế hơn.<br /> 2.2. Phương pháp thỏa thuận khóa được đề xuất<br /> Ta biết rằng, độ dài 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, cụ<br /> thể độ dài khóa mã hóa DES là 56 bit [5] - tương ứng với 7 ký tự la tinh; Độ dài khóa của<br /> thuật toán mã hóa IDEA là 128 bit [13] - tương ứng với 16 ký tự La tinhv.v... Mật mã<br /> nhóm tác giả đề xuất có độ dài mầm khóa 240 bit (tương ứng với 30 ký tự La tinh).<br /> Trong thuật toán sinh khóa bí mật, ta ký hiệu d là độ dài tính theo ký tự La tinh của<br /> mầm khóa (Key Seed) bí mật. Ký hiệu m  5 là một số tự nhiên tùy ý, cố định do hai thực<br /> thể thống nhất trước.<br /> 2.2.1. Thuật toán 1<br /> Input: Cho X (x ) là một dãy các ký tự La tinh có độ dài n tùy ý, ví dụ:<br /> X (37 ) = coongj hoaf xax hooij chur nghiax Vieetj Nam.<br /> Output: Một dãy gồm d ký tự La tinh, với d là một số nguyên dương tùy ý, cố<br /> định trước.<br /> Các bước tiến hành của thuật toán như sau:<br /> Bước 1: Lấy một số nguyên dương m  5 tùy ý,<br /> Bước 2: Nếu n  md thì viết liên tiếp X (n ) cho đến khi<br /> X (md )  x1 , x 2 ,.., xn , x1 , x2 ,.., xmd<br /> Bước 3: Đổi dãy X (md ) sang dãy số nguyên dương theo nguyên tắc sau:<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 là ký tự<br /> <br /> <br /> <br /> 96 L. D. Cường, H. V. Canh, “Phương pháp trao đổi khóa mã … mật mã khóa công khai.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> có giá trị lớn nhất được đánh số. Như vậy dãy Y (md ) sẽ có md số khác nhau; tức là<br /> Y (md ) gồm X (md ) chữ số khác nhau.<br /> Bước 4: Lập bảng (ma trận) B(bij ) md<br /> Bước 5: Đ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 ô thì chuyển sang bước 6.<br /> m<br /> Bước 6: Với j  1,2,.., d ; tính tổng Z j  b<br /> i 1<br /> ij mod 26<br /> <br /> Bước 7: Return ( Z 1 , Z 2 ,.., Z d )<br /> Thuật toán dừng và dãy Z  (Z 1 , Z 2 ,.., Z d ) là mầm khóa mà hai thực thể A và B<br /> cần có để liên lạc mật với nhau.<br /> Mô tả ví dụ<br /> Giả sử từ khóa X (37 ) = ‘‘coongj hoaf xax hooij chur nghiax vieetj nam’’<br /> <br /> Lấy d  10 ; m  5 ; m.d  50 nên ta phải mở rộng X (37 ) thành X (50 ) :<br /> X (50 ) =‘‘coongj hoaf xax hooij chur nghiax vieetj nam coongj hoaf xax’’<br /> Bây giờ ta đổi X (50 ) sang dãy số<br /> Y (50) =7,34,35,30,14,25,17,36,1,12,46,2,47,18,37,38,22,26,8,19,44,42,31,<br /> 15,20,23,3,48,45,24,10,11,43,27,32,4,29,9,39,40,33,16,28,21,41,5,13,49,6,50.<br /> Tiếp theo điền dãy Y (50) vào bảng B, ta có:<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 /> Với j  1, 2,..,10 , ta có:<br /> Z 1  (7 + 46 + 44 + 10 + 33) mod 26  10 : K<br /> Z 2  (34 + 2 + 42 + 11 + 16) mod 26  1 : B<br /> Z 3  (35 + 47 + 31 + 43 + 28) mod 26  2 : C<br /> Z 4  (30 + 18 + 15 + 27 + 21) mod 26  7 : H<br /> Z 5  (14 + 37 + 20 + 32 + 41) mod 26  14 : O<br /> Z6  (25 + 38 + 23 + 4 + 5) mod 26  17 : R<br /> Z7  (17 + 22 + 3 + 29 + 13) mod 26  6 : G<br /> Z8  (36 + 26 + 48 + 9 + 49) mod 26  12 : M<br /> Z9  (1 + 8 + 45 + 39 + 6) mod 26  21 : V<br /> Z10  (12 + 19 + 24 + 40 + 50) mod 26  15 : P<br /> Vậy mầm khóa là: Z  (Z 1 , Z 2 ,.., Z d ) = (K, B, C, H, O, R, G, M, V, P)<br /> 2.2.2. Thuật toán 2 (thường được áp dụng cho kỹ thuật giấu tin mật)<br /> <br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 97<br /> Công nghệ thông tin & Cơ sở toán học cho tin học<br /> <br /> Input: ảnh C<br /> Output: Khóa mã K  k1 , k 2 ,.., k n ; k i  0,1 và n là độ dài khóa mã.<br /> Step1: 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 , c 2 ,.., c N<br /> Step 2: Lập bảng (ma trận) gồm m dòng, d cột ( d có độ dài tùy ý nhưng không<br /> bé hơn n còn m  5 , A( a ij ) m d<br /> Step 3: Viết các bít c1 , c2 ,.., c N theo thứ tự tự nhiên vào bảng A<br /> m<br /> Step 4: For j  1,2,.., d tính các tổng b j  a<br /> i 1<br /> ij mod(2)<br /> <br /> Step 5: Return (b1 , b2 ,.., bd )<br /> Đây là khóa mã mà ta cần.<br /> Trong một số trường hợp, ta có thể áp dụng thuật toán trên bằng cách chọn từ khóa bất kỳ<br /> (theo quy ước) như sử dụng thông tin một số trường (họ tên, quê quá, địa chỉ… người nhận)<br /> sau đó viết lặp lại với số lần tùy ý rồi chuyển sang số hóa theo một quy tắc nhất định.<br /> Ví dụ: lee danh cuwowngf và d  30 còn m  5 . Ta làm như sau:<br /> Trước hết viết leedanhcuwowngf leedanhcuwowngf leedanhcuwowngf…<br /> (viết lặp lại 10 lần). Sau đó chuyển sang số hóa như đã thực hiện trong thuật toán 1. Từ đó<br /> viết dãy số này vào ma trận A theo thứ tự tự nhiên cho đến hết các ô trong bảng thì dừng.<br /> Step 4 và step 5 vẫn thực hiện như trên.<br /> 2.2.3. Mầm khóa<br /> Trong hai thuật toán trên, mầm khóa sử dụng yêu cầu phải được giữ bí mật tùy theo<br /> tính chất, cách bố trí và tổ chức mạng liên lạc. Mỗi phiên, mầm khóa được các đầu mối<br /> liên lạc thống nhất lựa chọn ngẫu nhiên từ tập cơ sở dữ liệu đủ lớn, có thể là tập các văn<br /> bản hay các ma trận điểm ảnhv.v... Khi đó, chủ thể liên lạc sẽ sử dụng mầm khóa bí mật<br /> làm đầu vào của các thuật toán trên để trao đổi, thỏa thuận khóa cho các phiên liên lạc. Từ<br /> kết quả của hai thuật toán trên cho phép ta ứng dụng xây dựng các hệ mật mã khóa bí mật<br /> an toàn trong trao đổi thông tin.<br /> 3. KẾT LUẬN<br /> Phương pháp thỏa thuận khóa bí mật trên đây có thể được dùng cho mọi hệ mật mã<br /> 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 văn rõ làm<br /> đầu vào cho thuật toán là tùy ý, hoặc có thể lấy một dãy số bất kỳ hoặc một hỗn hợp cả<br /> chữ cái và chữ số và có thể một dãy các bản rõ được lặp lạiv.v... Độ an toàn của khóa K<br /> không bị ảnh hưởng, vì dãy số tương ứng chỉ phụ thuộc vào vị trí của các ký tự trong dãy<br /> và độc lập với bản thân ký tự đó.<br /> Lý thuyết Markov đã chứng minh kết quả thu được là dãy ngẫu nhiên độc lập [4, 7, 11].<br /> Do đó để thuận lợi và đơn giản trong trao đổi khóa, hai người A và B muốn liên lạc mật<br /> với nhau mà từ xa, có thể qui ước sử dụng ngày tháng ở đầu bản thông báo nào đó một<br /> cách công khai mà không sợ bị nghi ngờ. Điểm mạnh của phương pháp trao đổi này là<br /> thuật toán đơn giản, nhưng vẫn đảm bảo độ bí mật và an toàn cao.<br /> 4. TÀI LIỆU THAM KHẢO<br /> [1]. Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, ‘‘Hanhdbook of<br /> Applied Cryptography’’,CRC Press, 1999.<br /> <br /> <br /> <br /> 98 L. D. Cường, H. V. Canh, “Phương pháp trao đổi khóa mã … mật mã khóa công khai.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> [2]. A. Menzes, M. Qu, and S. Vanstone, ‘‘Some new key agreement protocols providing<br /> implicit authentication’’. Ottawa, Canada, 1995.<br /> [3]. Doughlas R. Stison, ‘‘Cryptography: Theory and Practices’’. CRC Press 1999.<br /> [4]. FIPS, ‘‘Key management using ANSI X9, 17 Federal Information Proceeding.<br /> Standards Publication 171. U.S. Department of Commerce/ NIST.<br /> [5]. 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’’. NXB<br /> Hà Nội T&T. 2010.<br /> [6]. M. Bellare and P. Rogaway, ‘‘Provably Secure Session Key Distribution’’.<br /> Proceedings of The 27th Annal ACM Symposium.<br /> [7]. Michael R.A. Huth, ‘‘Secure communicating Systems’’. Cambridge University Press,<br /> 2001.<br /> [8]. M. Burmester, ‘‘On the risk of opening distributed keys’’. Advances in Crypto-94.<br /> [9]. Phan Đình Diệu, ‘‘Mật mã và an toàn thông tin’’. NXB ĐHQG Hà Nội, 2002.<br /> [10]. R. Blom, ‘‘Non-public key distribution’’. Advances in Cryptology- Proceedings of<br /> Crypto-o3.<br /> [11]. T. Leighton and S. Micall, ‘‘Secret key agreement without public-key cryptography’’.<br /> Advances in Crypto-04.<br /> [12]. Timothy Charles Clapp, ‘‘Statistical Methods for the Processing of communication<br /> data’’. University of Cambridge Press- 2000.<br /> [13]. Trịnh Nhật Tiến, ‘‘Bảo mật thông tin và an toàn dữ liệu’’. NXBĐHQG Hà Nội,<br /> 2009.<br /> [14]. W. F. Ehrsam, S.M. Matyas, C.H. Meyer, and W.L. Tuchman, ‘‘A Cryptographic key<br /> manmagement scheme for implementing the Data Encyption Standard’’. IBM<br /> Systems Journal.<br /> ABSTRACT<br /> THE SECRET KEY EXCHANGING IN SYMMETRIC<br /> CRYPTOGRAPHY WITHOUT USING PUBLIC KEY CRYPTOGRAPHY<br /> Key distribution is one of the hardest problems in cryptography. Therefore,<br /> cryptography has been a special product used in the field of national security and<br /> defense, politics and foreign affair for a long time. Public key cryptography was<br /> invented at the end of 1970s with many advantages and quickly has application in<br /> many aspects of the daily life. In comparison with classical cryptography that uses<br /> symmetric keys and needs to keep the key secret, public key cryptography has<br /> greatly reduced the difficulty in key management and distribution. However, it also<br /> has lower computation speed and requires high performance devices as well as<br /> increases the size of the messages. In the paper, a method for exchanging secret key<br /> of symmetric key cryptography without using any public key cryptography is<br /> proposed. Input of the Algorithm is a character string of some Latin language.<br /> Keywords: Cryptography; Cryptanalysis; Symmetric key cryptography; Asymmetric key cryptography;<br /> Plaintext; Private key; Public key.<br /> <br /> Nhận bài ngày 22 tháng 6 năm 2017<br /> Hoàn thiện ngày 07 tháng 7 năm 2017<br /> Chấp nhận đăng ngày25 tháng 10 năm 2017<br /> <br /> Địa chỉ: 1 Cục Kỹ thuật, Bộ Công an;<br /> 2<br /> Cục Kỹ thuật nghiệp vụ, Tổng cục I, Bộ Công an.<br /> *<br /> Email: cuongqt34@yahoo.com.<br /> <br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 51, 10 - 2017 99<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2