1. Trang chủ
  2. » Cao đẳng - Đại học

Phương pháp tạo dãy giả ngẫu nhiên để ứng dụng trong giao thức mật mã - Trường Đại Học Quốc Tế Hồng Bàng

7 23 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 491,08 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung bài báo 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[r]

Trang 1

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 bằng phương pháp mật mã là giải pháp hữu hiệu hiện

nay, đặc biệt trong lĩnh vực Quốc phòng - An ninh Đối với các hệ mật, độ mật phụ thuộc chủ yếu vào khóa mã Bởi vậy vấn đề sinh khóa mã để đảm bảo an toàn cho hệ mật luôn mang tính thời sự và thực tiễn trong lĩnh vực bảo mật thông tin hiện nay Có hai phương pháp sinh khóa cơ bản là sinh khóa ngẫu nhiên và phương pháp sinh khóa giả ngẫu nhiên Tuy nhiên, hiện nay bài toán sinh khóa giả ngẫu nhiên đang được quan tâm nghiên cứu nhiều hơn Nội dung bài báo 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

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ã;

1 ĐẶT VẤN ĐỀ

Khi sử dụng giải pháp bảo vệ thông tin bằng mật mã, một câu hỏi đặt ra là “độ an toàn của thông tin được khẳng định như thế nào khi ứng dụng kỹ thuật mật mã ?” Ta biết rằng,

sự an toàn của thông tin hoàn toàn phụ thuộc vào độ an toàn của hệ mật sử dụng, tức là phụ thuộc vào hai yếu tố là khóa mã và thuật toán mã hóa Trong các giao dịch thương mại điện tử, thường các thuật toán mã hóa được công khai, bởi vật độ an toàn của thông tin hoàn toàn chỉ còn phụ thuộc vào độ an toàn của khóa mã Đối với các hệ mật sử dụng khóa giả ngẫu nhiên, để tạo ra khóa mã cho mỗi phiên liên lạc người ta phải cung cấp một “số ngẫu nhiên ban đầu” cho thuật toán sinh khóa, trong quá trình mã hóa thuật toán mã hóa sẽ tạo ra 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 được gọi là “Mầm khóa” (Key Seed) Như vậy có thể nói, độ an toàn của hệ mật sẽ phụ thuộc vào mầm khóa và thuật toán sinh khóa

Giả sử trong trường hợp mã thám biết thuật toán sinh khóa, khi đó độ mật của hệ mật

sẽ chỉ còn phụ thuộc vào mầm khóa Do mầm khóa là dãy bit có độ dài hữu hạn, bởi vậy việc tấn công khai thác mầm khóa mã thám thường sử dụng tấn công vét cạn Đối với tấn công vét cạn, thời gian tấn công sẽ phụ thuộc vào độ dài của mầm khóa Để chống lại tấn công vét cạn người ta buộc phải nâng độ dài của mầm khóa Điều này dẫn đến lực lượng của không gian cung cấp mầm khóa phải đủ lớn để chống lại tấn công Để chống lại các tấn công vét cạn để tìm khóa đúng, không gian mầm khóa phải “đủ lớn” và việc chọn mầm khóa để sinh khóa phải hoàn toàn ngẫu nhiên Tuy nhiên, không gian mầm khóa được thể hiện qua độ dài khóa, độ dài khóa càng dài thì không gian khóa càng lớn Nếu độ dài 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 là 56 bit, không gian khóa của DES có

công vét cạn tìm khóa đúng Tuy nhiên, do sự phát triển của công nghệ tính toán ngày nay,

độ dài khóa như vậy chưa đủ để chống lại khả năng vét cạn của các cơ quan mã thám

- Hiện nay, thay vì DES, người ta sử dụng mật mã AES (Advance Encryption

và người ta tin tưởng rằng việc tấn công vét cạn là khó khả thi trừ phi có sự phát triển tính toán tiềm năng của thế hệ máy tính mới

Trang 2

Đối với mã thám khi không khai thác được mầm khóa và thuật toán sinh khóa, họ sẽ tìm cách tấn công trực tiếp vào bản mã dựa trên thuật toán mã hóa

Một trong những ví dụ điển hình tấn công thuật toán mã hóa trên bản mã là thuật toán IDEA (International Data Encryption Algorithm), thuật toán này sử dụng độ dài mầm khóa

thành từng khối 8 ký tự, mỗi khối cùng một khóa mã cho trước Thuật toán sẽ mã lần lượt khối đầu tiên cho đến khối cuối cùng Nếu coi mỗi block gồm 8 ký tự là một thông báo thì thuật toán mã trùng khóa (khóa có lặp lại) Ở đây, có hai điểm mã thám sẽ sử dụng để tấn công bản mã Đó là:

- Khi viết dọc khối thứ nhất trên khối thứ hai; khối thứ hai trên khối thứ 3,.v.v cho đến khối cuối cùng, sau đó tính tần số xuất hiện các ký tự theo cột (có 8 cột tất cả) sẽ phát hiện

ra một số quy luật giúp cho tấn công

- Trong thuật toán mã hóa có sự tương ứng 1-1 giữa khối rõ với khối mã Nhưng số các

thể khả thi

Qua các kết quả công bố trong và ngoài nước mà nhóm tác giả được tiếp cận, cũng như việc phân tích ở trên, có thể thấy rằng độ mật của hệ mật phụ thuộc vào độ an toàn của khóa mã dịch, hay nói một cách khác là phụ thuộc vào độ dài của mầm khóa và độ phức tạp của thuật toán sinh khóa

Do vậy, việc nghiên cứu sinh khóa giả ngẫu nhiên sử dụng trong mật mã đóng vai trò rất quan trọng Bài báo đã tìm hiểu một số thuật toán tạo dãy giả ngẫu nhiên đã được công

bố trong và ngoài nước, trên cơ sở nghiên cứu nhóm tác giả đưa ra một thuật toá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 hiện nay bằng mật mã

2 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 được gọi là tất định

một dãy bit giả ngẫu nhiên độ dài ll  k  Dãy đầu vào k bit đó được gọi là mầm

Định nghĩa 2: Một thuật toán sinh bit giả ngẫu nhiên được gọi là thuật toán sinh bit giả

ngẫu nhiên an toàn cho mật mã nếu các dãy do thuật toán sinh ra qua được 5 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 bởi thuật toán RSA

)

Lấy b là một số nguyên sao cho:

Ký hiệu: Z n*1xn:x,n1

Trang 3

Lấy một số r  Z n* và tính:

r

Khi đó định nghĩa:

 mod 2 

i

Lúc đó, dãy  Zi:  i 1  được gọi là dãy bit giả ngẫu nhiên được tạo ra 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)

)

(n

Q

1

B : x 0 r

2

B : Với i0,1,2, tính

n x

3

B : Đặt Z i ximod 2 với i0,1,2,

4

B : Quay lại   Zi ; i1,2, là 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 trên bài toán logarit rời rạc

dãy: x 0 r

n x

i

1 2 0 2

i i i

p ifx Z

p ifx

 

(2.7)

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 là đơn giản và chất lượng của các dãy đó tuy chưa có đánh giá bằng 5 tiêu chuẩn thống kê điển hình nhất nhưng tính đồng xác suất được hiện rõ Tuy nhiên, việc cứng hóa modul mật mã khi ứng dụng các thuật toán tạo dãy giả ngẫu nhiên này phức tạp và dãy bit đó rất dễ tuần hoàn có chu kỳ không đủ lớn Bởi vậy, cùng với một số lý do khác, chẳng hạn việc xác định một

rõ ràng là không tốt vì chắc chắn dãy bit giả ngẫu nhiên do thuật toán logarit rời rạc sinh ra

sẽ tuần hoàn với chu kỳ ngắn

3 ĐỀ 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 thanh ghi dịch có phản hồi

Trang 4

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

Đồng thời liên hệ với một đồng hồ nhằm điều khiển việc dịch chuyển dữ liệu của thanh R Định nghĩa 2: Thanh ghi dịch R được ký hiệu:

trong đó:

là đa thức kết nối (connection polynomial) Thanh ghi dịch tuyến tính R được gọi là không

Giả sử nội dung của ô thứ i là s i{0,1}, đối với mỗi i 0 , 1 , ,L 1 Khi đó, dãy

S L1 , ,S1 ,S0 được gọi là trạng thái ban đầu (khởi tạo) của thanh LFSR

Định nghĩa 3: Cho:

] )[

2 ( ) (x GF x

Đầu ra của LFSR có độ dài cực đại với trạng thái ban đầu khác 0 được gọi là maximum

thanh ghi dịch phản hồi tuyến tính LFSR sẽ sinh ra một dãy giả ngẫu nhiên có chu kỳ cực đại là 2 L 1

điều kiện cần là độ dài thanh ghi dịch đó phải là số nguyên tố (2 L 1

là 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 của LFSR là S L1, ,S1,S0 thì dãy đầu ra

,

, 1

0 S S

 1 j1 2 j 2 L j Lmod2

đối với j  L

Khẳng định 2: Với mọi dãy đầu ra của một LFSR L , C ( x )  là tuần hoàn với chu kỳ

1

Khẳng định 3: Cho đa thức C(x)GF(2)[x] có bậc L Khi đó: Nếu C (x)là bất khả quy trên trường GF(2), thì mỗi một 2 L 1 trạng thái ban đầu khác 0 của một LFSR không suy biến sẽ sinh ra dãy đầu ra tuần hoàn với chu kỳ bằng số nguyên dương nhỏ nhất

x

) 2 (

3.2 Thuật toán sinh dãy giả ngẫu nhiên được đề xuất

3.2.1 Cấu tạo hệ thống các thanh ghi dịch phản hồi phi tuyến

Việc xây dựng hệ thống các thanh ghi dịch với số lượng thanh, độ dài mỗi thanh và thuật toán của chúng cần có quy tắc nhất định Theo trình bày trên, độ dài mỗi thanh ghi

Trang 5

dịch phải là số nguyên tố; Nếu có nhiều thanh ghi dịch độ dài khác nhau thì các độ dài của chúng phải nguyên tố với nhau từng đôi một hoặc bằng nhau Trong bài này, chúng tôi chọn 5 thanh ghi dịch với độ dài bằng nhau (bằng 31)

ghi dịch Ri có độ dài Li;  i 1 , 2 , K Trong đó, các Li là những số nguyên tố

Lược đồ hoạt động của các thanh ghi dịch:

3.2.2 Tạo mầm khóa

Cho một hệ thống khóa gồm 2 khóa, mầm khóa được ký hiệu lần lượt là:

2

1

2 1 2

2 1 1

m

m d d d K

b b b K

(3.4)

Để dễ hình dung, ta lấy m1  20, m2  10, trong đó, b i,d ja,b,c, ,z và K 5,

31 5 4 3 2

1  LLLL

Các chữ cái b d i, j:i1, 20;j1,10 được chuyển thành các vectơ nhị phân 5 hoặc 8 thành phần Trong thuật toán này, ta chuyển các b d thành các vectơ nhị phân 5 thành i, j phần, được cho trong bảng 1 sau đây:

Trang 6

Bảng 1 Bảng véc tơ nhị phân 5 thành phần

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 3 4 8 9 + /

1 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0

1 0 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0

0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 0

0 1 1 1 0 1 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0

0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 Bây giờ ta đặt:

5 1

32

* 1 1

1( ) 2

j

j j

Z

5

1

32

* 1 6 1

j

j j

Z

(3.5)

Ta lập bảng 2 sau đây:

Bảng 2 Bảng véc tơ chuyển đổi tương ứng

3.2.3 Lấp đầy các thanh ghi dịch (5 thanh ghi)

b b1, 2, ,b20, khóa K2

d d1 , 2 , ,d10, với

20 , 1 );

, , , ( (1) (2) (5) 

10 , 1 );

, , , ( (1) (2) (5) 

(3.6)

Ký hiệu y i ( j)là ô thứ i của thanh ghi R j với i 1, 2, ;j 1, 2, ,5

Đặt:

( )

j i

y   j

( ) ( )

21

y  c

(3.7)

với c i( )j là thành phần thứ j của vectơ nhị phân

2 1 10

[g ( )-g ( )] mod32

cgc , trong đó, c i [g ( )-g (2 d i 1 b i10)] mod32

Trang 7

Các hàm g1(.), g2(.) được cho trong bảng 3.2, tức là

1

1

2j jmod 32

j



2

1

2j b imod 32

j

(3.9)

Như vậy, sau giai đoạn này cả 31 ô của cả 5 thanh ghi đã được lấp đầy thông tin nhờ hệ

3.2.4 Sự hoạt động của 5 thanh ghi R 1 ,R 2 , ,R 5

Như vậy sau khi các thanh ghi dịch được nạp đủ trạng thái ban đầu (lấp đầy) và ký hiệu

1j, 2j, , 31j

y y yy  i j  0,1 , i 1, 31;j 1, 5

, , ,

thứ t với t 1, 2, 3, Ta có:

*) Bước 1: Vớit  1,

 (1) (2) (3) (4) (5)

Trong đó,

( ) ( )

1j y27j,j 1,5

*) Bước 2: Với i 1, 2,3, đặt

( ) ( ) ( )

*) Bước 3: từ (3.10)(3.11), t 2, 3, tính  t(1) ,t( 2) ,t(3) ,t( 4) ,t(5), trong đó

) ( 27 ) , ( )

t j

Và hàm hai biến  ( , ) j t được định nghĩa là: (j,1)0

( ,j t 1) ( , )j t ( , ) 1j t

đối với  j 1,5;t1, 2,3,

Hàm  ( , ) j t được định nghĩa là: (1, ) 1t  với  t 1, 2,3,

(1) (1, ) 19

(2, )t yt 1

( ) ( , ) 19

(j 1, )t ( , )j t yj j t 1

với j 2,3, 4

Từ (3.12), (3.13), (3.14) ta có thể tạo ra được dãy bit giả ngẫu nhiên có độ dài tùy ý

 t với t 1

3.2.5 Ví dụ

*) Bước 1: Giả sử ta có:

Ngày đăng: 01/04/2021, 02:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w