Nội dung bài viết sẽ trình bày phương pháp tạo dãy giả ngẫu nhiên mới, sử dụng thuật toán sinh các bit ngẫu nhiên dựa trên tổ hợp các thanh ghi dịch phản hồi tuyến tính (LFSR) đáp ứng yêu cầu nâng cao độ an toàn của khóa mã sử dụng trong các hệ mật mã đối với lĩnh vực ANQP.
Kỹ thuật điều khiển & Điện tử PHƯƠNG PHÁP TẠO DÃY GIẢ NGẪU NHIÊN ĐỂ ỨNG DỤNG TRONG GIAO THỨC MẬT MÃ Lê Danh Cường1*, Hồ Văn Canh2, Võ Văn Tùng1 Tóm tắt: Bảo vệ thơng tin phương pháp mật mã giải pháp hữu hiệu nay, đặc biệt lĩnh vực Quốc phòng - An ninh Đối với hệ mật, độ mật phụ thuộc chủ yếu vào khóa mã Bởi vấn đề sinh khóa mã để đảm bảo an tồn cho hệ mật ln mang tính thời thực tiễn lĩnh vực bảo mật thơng tin Có hai phương pháp sinh khóa sinh khóa ngẫu nhiên phương pháp sinh khóa giả ngẫu nhiên Tuy nhiên, tốn sinh khóa giả ngẫu nhiên quan tâm nghiên cứu nhiều Nội dung báo trình bày phương pháp tạo dãy giả ngẫu nhiên mới, sử dụng thuật toán sinh bit ngẫu nhiên dựa tổ hợp ghi dịch phản hồi tuyến tính (LFSR) đáp ứng yêu cầu nâng cao độ an tồn khóa mã sử dụng hệ mật mã lĩnh vực ANQP Từ khóa: Bit giả ngẫu nhiên, Thanh ghi dịch NFSR, Bộ tạo bit giả ngẫu nhiên, Mật mã, Thám mã; ĐẶT VẤN ĐỀ Khi sử dụng giải pháp bảo vệ thông tin mật mã, câu hỏi đặt “độ an tồn thơng tin khẳng định ứng dụng kỹ thuật mật mã ?” Ta biết rằng, an tồn thơng tin hồn tồn phụ thuộc vào độ an toàn hệ mật sử dụng, tức phụ thuộc vào hai yếu tố khóa mã thuật tốn mã hóa Trong giao dịch thương mại điện tử, thường thuật tốn mã hóa cơng khai, vật độ an tồn thơng tin hồn tồn cịn phụ thuộc vào độ an tồn khóa mã Đối với hệ mật sử dụng khóa giả ngẫu nhiên, để tạo khóa mã cho phiên liên lạc người ta phải cung cấp “số ngẫu nhiên ban đầu” cho thuật toán sinh khóa, q trình mã hóa thuật tốn mã hóa tạo khóa mã dịch cho phiên liên lạc Số ngẫu nhiên ban đầu cung cấp cho hệ mật gọi “Mầm khóa” (Key Seed) Như nói, độ an tồn hệ mật phụ thuộc vào mầm khóa thuật tốn sinh khóa Giả sử trường hợp mã thám biết thuật toán sinh khóa, độ mật hệ mật cịn phụ thuộc vào mầm khóa Do mầm khóa dãy bit có độ dài hữu hạn, việc cơng khai thác mầm khóa mã thám thường sử dụng công vét cạn Đối với công vét cạn, thời gian công phụ thuộc vào độ dài mầm khóa Để chống lại cơng vét cạn người ta buộc phải nâng độ dài mầm khóa Điều dẫn đến lực lượng khơng gian cung cấp mầm khóa phải đủ lớn để chống lại công Để chống lại công vét cạn để tìm khóa đúng, khơng gian mầm khóa phải “đủ lớn” việc chọn mầm khóa để sinh khóa phải hồn tồn ngẫu nhiên Tuy nhiên, khơng gian mầm khóa thể qua độ dài khóa, độ dài khóa dài khơng gian khóa lớn Nếu độ dài mầm k lực lượng khơng gian mầm 2k khóa mầm Một số ví dụ điển hình chứng minh điều nhận xét trên: - Đối với chuẩn mã hóa DES độ dài mầm khóa 56 bit, khơng gian khóa DES có lực lượng 256 Khi đời, khơng gian khóa đủ lớn để chống lại cơng vét cạn tìm khóa Tuy nhiên, phát triển cơng nghệ tính tốn ngày nay, độ dài khóa chưa đủ để chống lại khả vét cạn quan mã thám - Hiện nay, thay DES, người ta sử dụng mật mã AES (Advance Encryption Standard) có độ dài mầm khóa đến 256 bit, tức khơng gian khóa có lực lượng 2256=1664 người ta tin tưởng việc cơng vét cạn khó khả thi có phát triển tính tốn tiềm hệ máy tính 98 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ Đối với mã thám không khai thác mầm khóa thuật tốn sinh khóa, họ tìm cách công trực tiếp vào mã dựa thuật tốn mã hóa Một ví dụ điển hình cơng thuật tốn mã hóa mã thuật toán IDEA (International Data Encryption Algorithm), thuật toán sử dụng độ dài mầm khóa 128 bit, gọi “đủ lớn” nay, tương đương với khơng gian khóa 2128 phần tử, tức 1632 phần tử Tuy nhiên, thuật toán mã khối (block), với thông báo rõ chia thành khối ký tự, khối khóa mã cho trước Thuật toán mã khối khối cuối Nếu coi block gồm ký tự thơng báo thuật tốn mã trùng khóa (khóa có lặp lại) Ở đây, có hai điểm mã thám sử dụng để công mã Đó là: - Khi viết dọc khối thứ khối thứ hai; khối thứ hai khối thứ 3,.v.v khối cuối cùng, sau tính tần số xuất ký tự theo cột (có cột tất cả) phát số quy luật giúp cho cơng - Trong thuật tốn mã hóa có tương ứng 1-1 khối rõ với khối mã Nhưng số khối rõ gồm ký tự có ngơn ngữ tiếng Anh 268, số khối mã tương ứng nhiều 26 khơng gian khóa thực tế nhiều 26 khóa có Từ đó, có thuật tốn thực phân hoạch khơng gian khóa K K1 K ; Trong đó, K1 K khả tìm khóa lớp gồm 26 khóa (chẳng hạn K1) khả thi Qua kết cơng bố ngồi nước mà nhóm tác giả tiếp cận, việc phân tích trên, thấy độ mật hệ mật phụ thuộc vào độ an tồn khóa mã dịch, hay nói cách khác phụ thuộc vào độ dài mầm khóa độ phức tạp thuật tốn sinh khóa Do vậy, việc nghiên cứu sinh khóa giả ngẫu nhiên sử dụng mật mã đóng vai trị quan trọng Bài báo tìm hiểu số thuật toán tạo dãy giả ngẫu nhiên cơng bố ngồi nước, sở nghiên cứu nhóm tác giả đưa thuật tốn tạo khóa giả ngẫu nhiên đáp ứng cho yêu cầu bảo mật Quốc phòng - An ninh mật mã MỘT SỐ KHÁI NIỆM CƠ SỞ 2.1 Một số định nghĩa Định nghĩa 1: Một thuật toán sinh bit giả ngẫu nhiên gọi tất định (deterministic) cho trước dãy nhị phân ngẫu nhiên có độ dài k đầu dãy bit giả ngẫu nhiên độ dài l l k Dãy đầu vào k bit gọi mầm (seed) Còn đầu l bit gọi dãy giả ngẫu nhiên Định nghĩa 2: Một thuật toán sinh bit giả ngẫu nhiên gọi thuật toán sinh bit giả ngẫu nhiên an tồn cho mật mã dãy thuật tốn sinh qua tiêu chuẩn thống kê [1] 2.2 Một số thuật toán sinh bit giả ngẫu nhiên [4] 2.2.1 Thuật toán tạo bit giả ngẫu nhiên thuật toán RSA Cho hệ mật RSA: n p q với p, q hai số nguyên tố khác đủ lớn Đặt: (n) p 1q 1 (2.1) Lấy b số nguyên cho: Ký hiệu: b, (n) Z n* 1 x n : x, n 1 Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 (2.2) 99 Kỹ thuật điều khiển & Điện tử Lấy số r Z n* tính: x0 r , xi 1 xib (mod n) ; i 0,1,2, (2.3) Khi định nghĩa: Z i xi mod với i 1,2, (2.4) Lúc đó, dãy Z i : i 1 gọi dãy bit giả ngẫu nhiên tạo từ thuật toán RSA 2.2.2 Thuật toán tạo bit giả ngẫu nhiên BBS (Blum_Blum_Shub) Thuật toán: Chọn n p q , p, q số nguyên tố khác cho p, q mod Ký hiệu Q (n) tập thặng dư bình phương theo mod n Với r Q(n) , xác định dãy số x0 , x1 , x2 , sau: B1 : x0 r B2 : Với i 0,1,2, tính xi 1 xi2 mod n (2.5) B3 : Đặt Z i xi mod với i 0,1,2, B4 : Quay lại Z i ; i 1,2, dãy bit giả ngẫu nhiên BBS 2.2.3 Thuật toán tạo bit ngẫu nhiên dựa toán logarit rời rạc Cho p số nguyên tố đủ lớn, phần tử nguyên thủy Z *p , xác định dãy: x0 r xi 1 xi2 mod n (2.6) xi 1 mod p đặt: xi 1ifxi Zi 0ifx i p p (2.7) Z Z1 , Z2 , dòng bit giả ngẫu nhiên sinh từ toán logarit rời rạc 2.3 Nhận xét Các thuật toán sinh dãy bit giả ngẫu nhiên trình bày có ưu điểm đơn giản chất lượng dãy chưa có đánh giá tiêu chuẩn thống kê điển hình tính đồng xác suất rõ Tuy nhiên, việc cứng hóa modul mật mã ứng dụng thuật toán tạo dãy giả ngẫu nhiên phức tạp dãy bit dễ tuần hồn có chu kỳ không đủ lớn Bởi vậy, với số lý khác, chẳng hạn việc xác định phần tử nguyên thủy Z *p không đơn giản số khơng phải ngun thủy rõ ràng khơng tốt chắn dãy bit giả ngẫu nhiên thuật toán logarit rời rạc sinh tuần hoàn với chu kỳ ngắn ĐỀ XUẤT THUẬT TOÁN TẠO CHUỖI BIT GIẢ NGẪU NHIÊN ỨNG DỤNG CHO GIAO THỨC MẬT MÃ 3.1 Khái niệm ghi dịch có phản hồi 100 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ 3.1.1 Định nghĩa Định nghĩa 1: Thanh ghi dịch phản hồi tuyến tính (LFSR) độ dài L gồm L trạng thái (L ô) đánh số từ 0,1,2, , l ; ô chứa bit 0/1 có đầu vào đầu Đồng thời liên hệ với đồng hồ nhằm điều khiển việc dịch chuyển liệu R Định nghĩa 2: Thanh ghi dịch R ký hiệu: R L, C ( x ) (3.1) đó: C( x) C1 x1 CL xL GF ( 2)[ x] (3.2) đa thức kết nối (connection polynomial) Thanh ghi dịch tuyến tính R gọi không suy biến (nonsingular) bậc C(x) L, tức CL=1 Giả sử nội dung ô thứ i si{0,1}, i 0,1, , L Khi đó, dãy S L1 , , S1 , S gọi trạng thái ban đầu (khởi tạo) LFSR Định nghĩa 3: Cho: C ( x ) GF ( 2)[ x ] đa thức nguyên thủy (primitive polynomial) bậc L Khi đó, ( L, C ( x) ) gọi LFSR có độ dài cực đại (maximum length) Đầu LFSR có độ dài cực đại với trạng thái ban đầu khác gọi maximum L sequence (m_sequence) Khi với trạng thái ban đầu khác ghi dịch phản hồi tuyến tính LFSR sinh dãy giả ngẫu nhiên có chu kỳ cực đại L Từ suy để tạo ghi dịch phản hồi tuyến tính có chu kỳ cực đại L , L điều kiện cần độ dài ghi dịch phải số nguyên tố ( số nguyên tố mersenne) 3.1.2 Các khẳng định Khẳng định 1: Nếu trạng thái ban đầu LFSR S L1 , , S1 , S dãy đầu S S0 , S1 , xác định cách phép đệ quy (recursion) sau đây: S J C1S j 1 C2 S j 2 C L S j L mod (3.3) j L Khẳng định 2: Với dãy đầu LFSR L, C ( x) tuần hoàn với chu kỳ L đa thức C (x) đa thức nguyên thủy có bậc (degree) L Khẳng định 3: Cho đa thức C ( x ) GF ( 2)[ x ] có bậc L Khi đó: Nếu C (x) bất khả quy trường GF (2) , L trạng thái ban đầu khác LFSR không suy biến sinh dãy đầu tuần hoàn với chu kỳ số nguyên dương nhỏ N cho x N chia hết cho C (x) (có nghĩa đa thức C (x) nguyên thủy trường GF (2) [15] 3.2 Thuật toán sinh dãy giả ngẫu nhiên đề xuất 3.2.1 Cấu tạo hệ thống ghi dịch phản hồi phi tuyến Việc xây dựng hệ thống ghi dịch với số lượng thanh, độ dài thuật toán chúng cần có quy tắc định Theo trình bày trên, độ dài ghi Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 101 Kỹ thuật điều khiển & Điện tử dịch phải số nguyên tố; Nếu có nhiều ghi dịch độ dài khác độ dài chúng phải nguyên tố với đôi Trong này, chọn ghi dịch với độ dài (bằng 31) Giả sử, ta có K ghi dịch phản hồi tuyến tính, ký hiệu R1 , R2 , RK , ghi dịch Ri có độ dài Li ; i 1,2, K Trong đó, Li số nguyên tố Lược đồ hoạt động ghi dịch: 3.2.2 Tạo mầm khóa Cho hệ thống khóa gồm khóa, mầm khóa ký hiệu là: K1 K b1b2 bm1 d1d d m2 (3.4) Để dễ hình dung, ta lấy m1 20 , m2 10 , đó, bi , d j a, b, c, , z K , L1 L2 L3 L4 L5 31 Các chữ bi , d j : i 1, 20; j 1,10 chuyển thành vectơ nhị phân thành phần Trong thuật toán này, ta chuyển bi , d j thành vectơ nhị phân thành phần, cho bảng sau đây: 102 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ A 1 0 B 0 1 C 1 D 0 E 0 0 F 1 G 1 H 0 1 I 1 0 J 1 K 1 1 L 0 M 0 1 N 0 1 O 0 1 P 1 Bảng Bảng véc tơ nhị phân thành phần Q R S T U V W X Y Z + / 1 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 Bây ta đặt: g1 ( ) j 1. j 1* Z 32 j 1 (3.5) j 1 * g ( ) j Z 32 j 1 Trong đó, 1 , , , vectơ nhị phân tương ứng chữ bảng trên: Ta lập bảng sau đây: Bảng Bảng véc tơ chuyển đổi tương ứng 3.2.3 Lấp đầy ghi dịch (5 ghi) Mầm khóa K1 , K lấp đầy ô ghi dịch thực sau: K1 Ký hiệu: vectơ nhị phân khóa K b1 , b2 , , b20 , khóa d1 , d , , d10 , với bt (bi(1) , bi( ) , , bi(5) ); i 1,20 (3.6) d t (d i(1) , d i( ) , , d i( 5) ); i 1,10 Ký hiệu yi( j ) ô thứ i ghi R j với i 1, 2, ; j 1, 2, ,5 Đặt: yi( j ) 1j 1, yi(j1) bi( j ) , i 1, 20, j 1,5 ( j) i 21 y (3.7) ( j) i c với ci( j ) thành phần thứ j vectơ nhị phân ci (ci(1) , ci(2) , ci(3) , ci(4) , ci(5) ), i 1,10 ci [g (di )-g1 (bi 10 )] mod32 Nói cách khác ci g 21 (ci ) , đó, (3.8) ci [g (di )-g1 (bi 10 )] mod32 Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 103 Kỹ thuật điều khiển & Điện tử Các hàm g1 (.) , g (.) cho bảng 3.2, tức g1 bi j 1 bi j mod 32 j 1 (3.9) j 1 b i i g bi b mod 32 j 1 Như vậy, sau giai đoạn 31 ô ghi lấp đầy thông tin nhờ hệ thống mầm khóa cho trước K1 K 3.2.4 Sự hoạt động ghi R1,R2, ,R5 Như sau ghi dịch nạp đủ trạng thái ban đầu (lấp đầy) ký hiệu y1( j ) , y2( j ) , , y31( j ) yij 0,1 , i 1, 31; j 1, Ta ký hiệu t(1) , t(2) , , t(5) vectơ ngẫu nhiên ghi tạo nhịp thứ t với t 1, 2,3, Ta có: *) Bước 1: Với t , 1(1) , 1(2) , 1(3) , 1(4) , 1(5) (3.10) ( j) ( j) Trong đó, y27 , j 1,5 *) Bước 2: Với i 1, 2,3, đặt ) ) , j 1, yi(j31 yi( J ) yi(j28 (3.11) *) Bước 3: từ (3.10)(3.11), t 2,3, tính t(1) , t(2) , t(3) , t(4) , t(5) , t( j ) y( (j )j ,t ) 27 với j 1,5 (3.12) Và hàm hai biến ( j, t ) định nghĩa là: ( j ,1) ( j, t 1) ( j, t ) ( j, t ) (3.13) j 1,5; t 1, 2,3, Hàm ( j, t ) định nghĩa là: (1, t ) với t 1, 2,3, (2, t ) y(1)(1,t )19 ( j 1, t ) ( j, t ) y( (j )j ,t )19 (3.14) với j 2,3, Từ (3.12), (3.13), (3.14) ta tạo dãy bit giả ngẫu nhiên có độ dài tùy ý t với t 3.2.5 Ví dụ *) Bước 1: Giả sử ta có: K1= JOMPC NXRJO MDHJX BVKFM (20 ký tự) K2= CPWKV EEBSN (10 ký tự) Khi ta lập bảng K1 bảng K sau: 104 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ CC Tt J 1 O M P 0 1 0 1 Bảng Lập bảng cho K1 O M D H J X B V K F M C N X R I 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 Bảng Lập bảng cho K2 CC TT C P W K V E E B S N 1 0 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 *) Bước 2: Lập trạng thái ban đầu cho ghi dịch R1 , R2 , R5 Tính Ci , i 1,10 C1 g (d1 ) g1 (b11 ) mod 32 g (01110) g1 (00111) mod 32 (14 28) mod 32 18 C2 g (d ) g1 (b12 ) (13 9) mod 32 C3 g3 (d3 ) g1 (b13 ) (25 20) mod 32 C4 19 ; C5 18 ; C6 23 ; C7 18 ; C8 ; C9 ; C10 10 Từ áp dụng bảng 3.2 ta có kết quả: 1 C1 g (C1 ) g (18) 10010 1 1 C2 g (C2 ) g (4) 00100 1 1 1 1 C8 g (C8 ) g (4) 00100 C4 g (C4 ) g (19) 10011 1 C7 g (C7 ) g (18) 10010 C3 g (C3 ) g (5) 00101 1 C6 g (C6 ) g (23) 10111 C9 g (C9 ) g (7) 00111 C5 g (C5 ) g (18) 10010 C10 g (C10 ) g (10) 01010 55 trạng thái đầu ghi dịch phản hồi thể bảng 5: Bảng 55 trạng thái ghi dịch 10 11 12 13 14 15 16 17 18 19 20 21 R1 1 0 0 0 0 1 1 1 R2 1 0 1 R3 0 1 R4 1 1 R5 1 1 0 1 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 105 Kỹ thuật điều khiển & Điện tử 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 0 1 1 0 1 1 0 R1 R2 0 0 0 0 1 1 0 1 0 R3 R4 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 R5 0 1 0 1 1 0 1 0 R1 43 44 45 46 47 48 49 50 51 52 53 54 55 … 0 1 1 0 1 … R2 0 0 1 1 … R3 0 0 1 1 … R4 0 1 0 0 … R5 0 1 1 0 1 … *) Bước 3: Tạo dãy giả ngẫu nhiên Cho j 1, 2, ,5; t 1, 2,3, i/ Theo (3.12), (3.13), (3.14) ta có: ( j,1) 0; j 1,5 (1, t ) 1; t 1, 2,3, ii/ Cuối ta có bảng tương ứng t 1, 2,3, sau: t 1 2 4 10 Bảng Bảng dãy giả ngẫu nhiên tương ứng 10 11 12 13 14 15… 1 1 1 1 1… 12 14 16 18 20 22 24 26 28… R1 (1, t ) (1, t ) R2 (2, t ) (2, t ) t 0 1 3 5 6 7 11 12 10 13 11 15 12 17 13 18 14 20 15… 0… 22… R3 t (3, t ) (3, t ) 1 3 5 10 12 14 10 16 11 18 12 19 13 20 14 21 15… 0… 22… R4 (4, t ) (4, t ) t 0 1 3 5 6 7 10 11 10 13 11 15 12 17 13 18 14 20 15… 0… 22… R5 t (5, t ) (5, t ) 1 3 5 10 11 13 10 14 11 16 12 17 13 18 14 19 15… 0… 20… 106 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ iii/ Tạo dãy bit giả ngẫu nhiên Áp dụng công thức t( j ) y( (j )j ,t ) 27 ; j 1,5; t 1, 2, ,15, ta nhận dãy giả ngẫu nhiên sau: = 10111 00010 00111 11011 11001 01100 00101 11110 00111 01000 10000 10000 00001 10010 11111 … iv/ Nhận xét + Từ kết trên, chu kỳ dãy giả ngẫu nhiên vừa đươc tạo (231 1)5 Để chứng minh, xem [16] cách sử dụng định nghĩa 1, 2, định lý sau: Định lý: Một thiết bị sinh tuyến tính nhớ với kích cỡ cho trước tạo dãy phần tử từ trường GF ( p ) với chu kỳ cực đại đa thức đặc trưng chúng nguyên thủy Khi đó, chu kỳ chúng là: N p ( L) ( p L 1) k ( pi 1) p i 1 pi (3.15) Trong đó, pi nhân tử nguyên tố p L Đặc biệt, thiết bị sinh có k ghi dịch phản hồi tuyến tính có độ dài L N p ( L) ( p L 1) k (3.16) + Kết thực nghiệm theo số tiêu chuẩn NIS Lấy ngẫu nhiên mẫu cần test độ dài đủ lớn n bit (theo số khuyến cáo chọn n 10.000 ) từ : , , , , 10.000 với i 0,1, i n Kiểm tra kết test tiêu chuẩn NIS [1], ta thu P_giá trị ( P _ gt ) Sau đó, so sánh với mức NIS chọn 0,001;0,01 (tương ứng với xác suất sai lầm loại 1) Kết đạt thỏa mãn tiêu chuẩn NIS Phép test Tiêu chuẩn Kết The P _ gt : ngẫu nhiên hoàn hảo; Frequency P _ gt : hồn tồn khơng ngẫu test P _ gt = nhiên; 0,109599 P _ gt : ngẫu nhiên; P _ gt : không ngẫu nhiên Frequency P _ gt = N X (obs ) 0,706438 P _ gt = igamc , Test 2 winthin a Block : ngẫu nhiên; Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 So sánh P _ gt 0,01 : thỏa mãn P _ gt 0,01 : thỏa mãn Kết luận Dãy xét dãy ngẫu nhiên Dãy xét dãy ngẫu nhiên 107 Kỹ thuật điều khiển & Điện tử The Runs P _ gt Test 2Vn (obs ) 2n (1 ) erfc 2n (1 ) The Serial P _ gt1 igamc m , m Test P _ gt igamc m 3 , m2 The m 1 X Approxim P _ gt igamc , ate Entropy Test P _ gt = P _ gt 0,01 : 0,500798 thỏa mãn Dãy xét dãy ngẫu Nhiên P _ gt1 = 0,9057 P _ gt1; P _ gt Dãy xét 0,01 : thỏa mãn dãy ngẫu P _ gt = Nhiên 0,8805 P _ gt = P _ gt 0,01 : 0,261961 thỏa mãn Dãy xét dãy ngẫu Nhiên + Trong ví dụ trên, chúng tơi trình bày trường hợp ghi dịch phản hồi với ghi 31 (là số nguyên tố) Trong thực tế ta có, thể dùng 4, 6, ghi dịch có độ dài khác độ dài phải số nguyên tố nguyên tố Tùy theo yêu cầu cụ thể, tác giả nghiên cứu tiếp để tạo k ghi dịch phản hồi phi tuyến với L nguyên tố xây dựng module mã hóa khóa dịng an toàn dùng thực tế KẾT LUẬN Việc xây dựng ghi dịch phản hồi tuyến tính vừa trình bày báo dễ dàng cứng hóa thành modul mật mã để ứng dụng an ninh - quốc phịng Về mặt tốn học, hệ thống xây dựng cách tổ hợp đầu ghi dịch phản hồi tuyến tính cho chuỗi khóa phi tuyến Thật vậy, hàm j, t j, t định nghĩa, hàm phi tuyến (non-linear) Do hàm hợp f ( j , t ), ( j , t ) tạo dãy bít giả ngẫu nhiên đề xuất hàm phi tuyến Việc công vào hệ mật mã chủ yếu sử dụng công vào mầm khóa Khơng gian khóa sinh trường hợp 2620x 2610 = 2630 Con số lớn khơng gian khóa nhiều thuật tốn mã hóa dùng thương mại DES, 3DES, IDEA Do vậy, đối phó với cơng vét cạn nhằm tìm khóa nhà thám mã Hơn nữa, với việc tạo dãy giả ngẫu nhiên đề xuất khắc phục nhược điểm mà hệ mật mã khối mắc phải mã hóa khối Dựa ưu điểm đó, nghiên cứu xây dựng thuật tốn mật mã khóa dịng ứng dụng an ninh - quốc phịng Hướng phát triển nghiên cứu đề xuất modul mật mã có ứng dụng ghi dịch phản hồi phi tuyến nhằm tạo dãy bít giả ngẫu nhiên phục vụ việc mã hóa văn với đầu vào đầu chữ La tinh thuộc bảng 26 chữ La tinh TÀI LIỆU THAM KHẢO [1] Andrew Rukhin, Juan Soto, James Nechvatal, Miles Smid, Elaine Barker, Stefan Leigh, Mark Levenson, Mark Vangel, David Banks, Alan Heckert, James Dray, San 108 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” Nghiên cứu khoa học công nghệ Vo, “A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications”, 2010 [2] Andreas Klein, “Stream Ciphers”, Springer-Verlag London, 2013 [3] A Shamir “On the generation of cryptographically strong pseudorandom sequences”, ACM Transactions on Information Systems, 1983 [4] L Blum,M Blum,M Shub, “A Simple Unpredictable Pseudo-Random Number Generator”, SIAM Journal on Computing, 1986, pp.364-383 [5] Ashish Jain, Narendra S Chaudhari: ‘‘Cryptanalytic Results on Knapsack Cryptosystem Using Binary Particle Swarm Optimization’’, International Conference on Computational Intelligence in Secuirty for Information System (CISIS 2014), Springer International Publishing, pp 375-384, 2014; [6] Bruce Schneier, “Applied Cryptography: Protocols, Algorithms, and Source Code in C”, Second Edition, John Wiley & Sons, 1996 [7] Dieter Gollmann, “Pseudo random properties of cascade connections of clock controlled shift registers”, Advances in Cryptology Proceedings of EURO-CRYPT 84 (LNCS 209), 1985; [8] J Håstad, “Pseudo-Random Generators under Uniform Assumptions”, Proceedings of the 22nd Annual ACM Symposium on Theory of Computing, pp.395-404,1990; [9] Kalendri, Maria; Pnevmatikatos, Dionisios; Papaefstathiou, Ioannis; Manifav-as, Charalampos, “Breaking The GSM A5/1 Cryptography Algorithm with Rainbow Tables and High-end FPGAs”, In proc Of 22nd International Con-ference on Fieldprogrammable Logic and Applications, pp.747-753, 2012; [10] Lano J., “Cryptanalysis and Design of Synchronous Stream Ciphers” PhD thesis, Katholieke Universiteit Leuven, Faculteit Ingenieurswetenschappen, Department Elektrolechnik_ESAT, 2006; [11] M Blum and S Micali, “How to generate cryptographically strong sequences of of Pseudorandom bits”, Proceedings of the 23rd Annual Symposium on Foundations of Computer Science, IEEE, New York, pp 112–117,1982 [12] Matthew Robshaw, Olivien Billet, “New Stream Cipher Designs: The eSTREAM Finalists”, Springer-Verlag Berlin, Heidelberg ©2008; [13] D Eastlake, S Crocker and J Schiller, “Randomness requirements for security”, Internet Request for Comments 1750, December 1994; [14] W Meier and O Staffelbach, “Analysis of pseudo random sequences generated by cellular automata”, In EUROCRYPT ’91, Lecture Notes in Computer, Science Springer Verlag, 1991; [15] Wicker, S.B., “Error Control Systems for Digital Communication and Storage”, Englewood Cliffs: Prentice Hall, 1995 [16] Martin K Simon, Jim K Omura, Robert A Scholtz, Barry K Levitt, ‘‘Spread spectrium commucications handbook’’, Mc Graw- Hill, Inc (Resived Editon) New York, London, Madrid, Mexico, City Milan, New Delhi, Singapror, Syney, Tokyo, Toronto, 2005 Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 109 Kỹ thuật điều khiển & Điện tử ABSTRACT A PSEUDO-RANDOM NUMBER GENERATION METHOD FOR CRYPTOGRAPHIC APPLICATIONS Information protection by using crytography is an effective method, especially in the field of national security and defense For crytography systems, the security depends much on the key Therefore, the problem of key generation that guarantees the security of a cipher system is crucial in the field of information security There are two basic key generation methods, namely random key generation and pseudorandom key generation However, pseudo-random key generation method currently attracts more attention in the communication crytography In the paper, a new pseudo-random key generation method which generate random bits using a generation algorithm based on Linear-feedback shift register (LFSR) to guarantee the security of the key used in crytography systems for national security and defense is proposed Keywords: Cryptography; Cryptoanalysis; Linear-feedback shift register (LFSR); Pseudo-random key generation; Pseudo-random bit Nhận ngày 21 tháng năm 2017 Hoàn thiện ngày 08 tháng năm 2017 Chấp nhận đăng ngày 18 tháng năm 2017 Địa chỉ: Cục Kỹ thuật, Bộ Công an; Cục Kỹ thuật nghiệp vụ, Tổng cục I, Bộ Công an * Email: cuongqt34@yahoo.com 110 L D Cường, H V Canh, V V Tùng, “Phương pháp tạo dãy giả … giao thức mật mã.” ... ? ?Phương pháp tạo dãy giả … giao thức mật mã. ” Nghiên cứu khoa học công nghệ iii/ Tạo dãy bit giả ngẫu nhiên Áp dụng công thức t( j ) y( (j )j ,t ) 27 ; j 1,5; t 1, 2, ,15, ta nhận dãy. .. thỏa mãn Dãy xét dãy ngẫu Nhiên P _ gt1 = 0,9057 P _ gt1; P _ gt Dãy xét 0,01 : thỏa mãn dãy ngẫu P _ gt = Nhiên 0,8805 P _ gt = P _ gt 0,01 : 0,261961 thỏa mãn Dãy xét dãy ngẫu Nhiên + Trong. .. hiểu số thuật tốn tạo dãy giả ngẫu nhiên công bố ngồi nước, sở nghiên cứu nhóm tác giả đưa thuật tốn tạo khóa giả ngẫu nhiên đáp ứng cho yêu cầu bảo mật Quốc phòng - An ninh mật mã MỘT SỐ KHÁI NIỆM