1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Xây dựng sơ đồ chữ ký số trên hệ mật mã dựa trên mã sử dụng phương pháp giải mã theo chuẩn syndrome

11 67 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 357,29 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 viết đề xuất sơ đồ chữ ký số dựa trên hệ mật Niederreiter, biến thể của hệ mật McEliece. Để khắc phục nhược điểm kích thước khóa lớn của đề xuất gốc và hạn chế về khả năng ký một văn bản bất kỳ, tác giả đã sử dụng giải pháp ghép các mã BCH thành phần và sử dụng phương pháp giải mã theo chuẩn syndrome.

Trang 1

XÂY DỰNG SƠ ĐỒ CHỮ KÝ SỐ TRÊN HỆ MẬT MÃ

DỰA TRÊN MÃ SỬ DỤNG PHƯƠNG PHÁP GIẢI MÃ

THEO CHUẨN SYNDROME

Lê Văn Thái*

Tóm tắt: Nội dung bài báo đề xuất sơ đồ chữ ký số dựa trên hệ mật Niederreiter,

biến thể của hệ mật McEliece Để khắc phục nhược điểm kích thước khóa lớn của

đề xuất gốc và hạn chế về khả năng ký một văn bản bất kỳ, tác giả đã sử dụng giải pháp ghép các mã BCH thành phần và sử dụng phương pháp giải mã theo chuẩn syndrome Kết quả thử nghiệm sơ đồ đề xuất trên máy tính Corei5-2.3GHz, 8Gb Ram: thời gian ký nhỏ hơn 20ms, thời gian xác nhận chữ ký nhỏ hơn 1ms đồng thời cho phép giảm kích thước khóa 65 lần so với chữ ký CFS (m=15, t=12) trong cùng mức bảo mật

Từ khóa: Hệ mật Niederreiter; Hệ mật McEliece; Sơ đồ chữ ký số; Hệ mật dựa trên mã, Chuẩn syndrome

1 ĐẶT VẤN ĐỀ

Hiện nay, vấn đề đảm bảo an toàn, bảo mật thông tin trên hạ tầng mạng là nhiệm vụ quan trọng, cấp thiết, đặc biệt là trong xu hướng hội nhập, toàn cầu hóa cùng với sự tiến

bộ của khoa học công nghệ trong lĩnh vực mật mã, xử lý thông tin và truyền thông Chữ ký

số dựa trên nền tảng hệ mật khóa công khai là công nghệ cho phép nâng cao tính bảo mật, đảm bảo toàn vẹn dữ liệu, đảm bảo tính xác thực, chống chối bỏ trách nhiệm

Thuật toán lượng tử trong thời gian đa thức của Shor công bố năm 1994 và thuật toán tìm kiếm trên dữ liệu không có cấu trúc của Grover năm 1996 đã cảnh báo các sơ đồ chữ

ký số RSA, DSA, ECDSA đang được sử dụng trong thực tế hiện nay sẽ không an toàn khi chế tạo thành công máy tính lượng tử đủ lớn [1, 2] Do đó, việc xây dựng sơ đồ chữ ký mới trên cơ sở các hệ mật có khả năng chống lại tấn công từ máy tính hiện đại và máy tính lượng tử là nội dung đang được nhiều nhà khoa học nghiên cứu

Mật mã dựa trên mã là một trong những hệ thống mật mã kháng lượng tử và được coi

là ứng cử tiềm năng trong thế giới lượng tử thay thế các hệ mật đang được sử dụng hiện nay [3] An ninh của hệ mật dựa trên độ khó của bài toán giải mã syndrome đã được chứng minh là NP-đầy đủ [4] Hệ mật McEliece khi mới đề xuất không thể trực tiếp áp dụng để xây dựng chữ ký số do ràng buộc về khả năng sửa lỗi của mã nên không thể ký được một văn bản tùy ý và kích thước khóa còn lớn Những năm gần đây đã có nhiều công bố là biến thể mới của hệ mật McEliece, có nhiều đề xuất xây dựng sơ đồ chữ ký số trên hệ mật này thông qua việc nghiên cứu, cải tiến và sử dụng các họ mã khác nhau thay thế cho mã Goppa trong hệ mật gốc [5], [6] Trong đó, hai đề xuất chính của sơ đồ chữ ký số dựa trên

mã là sơ đồ chữ ký Kabatianskii-Krouk-Smeets (KKS) [7] và sơ đồ chữ ký Courtois-Finiasz-Sendrier (CFS) [8]

Sơ đồ chữ ký số KKS được đề xuất năm 1997, sử dụng hai mã với chiều dài khác nhau, một mã được lựa chọn là mã con của mã kia và sử dụng phương pháp giải mã đầy đủ Tuy nhiên, sơ đồ KKS có thể bị tấn công khôi phục khóa trong 277 phép tính nhị phân với khoảng tối đa 20 chữ ký [9]

Năm 2001, sơ đồ chữ ký số dựa trên mã được Courtois, Finiasz, và Sendrier xây dựng trên hệ mật Niederreiter và được gọi là sơ đồ CFS Giải pháp của sơ đồ chữ ký số CFS để đảm bảo ký được mọi văn bản là sử dụng phương pháp giải mã đầy đủ (sơ đồ CFS được trình bày chi tiết trong mục 2.2) Hạn chế của phương pháp này là số lần lặp thực hiện lớn,

trung bình khoảng t! lần [8] Mặt khác, cuộc tấn công của D.Bleichenbacher đưa ra được

Trang 2

mô tả bởi Finiasz trong [10] đã chỉ ra điểm yếu để giả mạo thành công chữ ký CFS hợp lệ đối với các tham số trong đề xuất gốc dựa trên thuật toán ngày sinh nhật tổng quát [11] Giải pháp khác để khắc phục điểm hạn chế trên của hệ mật là nghiên cứu xây dựng một cấu trúc mã và thuật toán giải mã hiệu quả để đạt được một tỷ lệ tối ưu giữa số syndrome giải mã được và tổng số syndrome có thể có Để hiện thực hóa giải pháp trên, tác giả đề xuất lựa chọn giải pháp ghép các mã BCH thành phần, đảm bảo tính bảo mật với các tấn công giải mã và tấn công cấu trúc, giảm được kích thước khóa, đồng thời cho phép tăng số syndrome có thể giải mã được

Phần còn lại của bài báo được tổ chức như sau: Trong phần 2 nghiên cứu về hệ mật mã dựa trên mã và sơ đồ chữ ký số CFS, phần 3 đề xuất xây dựng sơ đồ chữ ký số mới trên hệ mật Niederreiter sử dụng phương pháp ghép mã BCH thành phần, phần 4 đánh giá độ phức tạp và độ bảo mật của sơ đồ đề xuất

2 HỆ MẬT MÃ DỰA TRÊN MÃ VÀ SƠ ĐỒ CHỮ KÝ SỐ CFS

2.1 Hệ mật Niederreiter

Hệ mật mã dựa trên mã McEliece là một trong những hệ mật mã đầu tiên sử dụng tính ngẫu nhiên trong mã hóa Để mô tả khóa bí mật, một mã sửa lỗi được lựa chọn với thuật toán giải mã hiệu quả lựa chọn trước Hệ mật gốc sử dụng mã nhị phân Goppa và thuật toán giải mã Petterson Khóa công khai thu được từ khóa bí mật bằng cách xáo trộn ma

trận sinh G của mã nhị phân thông qua hai ma trận khả nghịch ngẫu nhiên

Hệ mật Niederreiter là một biến thể của hệ mật McEliece Hệ mật Niederreiter sử dụng

ma trận kiểm tra H để làm khóa và sử dụng vector lỗi để giải mã Sơ đồ hệ mật mã khóa

công khai Niederreiter được thể hiện trong hình 1

Hình 1 Sơ đồ hệ mật mã khóa công khai Niederreiter

Các thuật toán của hệ mật Niederreiter được thực hiện như sau [12]:

a) Tạo khóa

Chọn mã Goppa (n,k) có khả năng sửa t lỗi, có ma trận kiểm tra H[n-k,n]

Chọn ma trận khả nghịch Q[(n-k, n-k)]

Chọn ma trận chuyển vị P[n, n]

Tính H’ = Q.H.P

Khóa công khai là (H’, t)

Khóa mật là (Q, H, P)

b) Mã hóa

Sử dụng khóa công khai (H’, t), bản tin M cho dưới dạng chuỗi nhị phân dài n bit có trọng số nhỏ hơn hoặc bằng t, bên gửi sẽ thực hiện tính bản mã: c = H’.M T

c) Giải mã

Bên nhận sở hữu khóa mật tiến hành thực hiện giải mã:

H’ = QHP

Kênh truyền

c = H’ MT Giải mã goppa

Khóa công khai: H’, t

Khóa bí mật: Q,H,P

Trang 3

Tính c’ = Q-1c = Q-1H’.M T = Q-1.Q.H.P.M T = H.P.M T ; c’ là một trong các

syndrome của mã Goppa được sử dụng

Sử dụng thuật toán giải mã theo chuẩn syndrome cho mã (n,k) ta tìm được M’ =

P.M T Tính : M T = M’.P -1 và thực hiện khôi phục bản tin gốc M

Hạn chế của hệ mật này trong việc sử dụng để mã hóa là yêu cầu bản tin phải có trọng

số nhỏ hơn hoặc bằng t Trong thực tế, các bản tin có chiều dài ngẫu nhiên, số syndrome

thỏa mãn được điều kiện này là nhỏ Do đó, để sử dụng được hệ mật này thì đòi hỏi phải

có thuật toán để chuyển đổi bản tin về dạng có trọng số nhỏ hơn hoặc bằng t

Niederreiter đề xuất thực hiện chuyển đổi bản tin thành vector lỗi có trọng số nhỏ hơn

hoặc bằng t sử dụng hàm n,t : {0,1}w n,t , trong đó  = log2|w n,t | và w n,t =

{e F2n |wt(e)=t} Thuật toán được trình bày trong hình 2 [13]:

Thuật toán chuyển đổi một số [0, C n t] thành vector có trọng số  t

Input: [0, t]

Output: vector trọng số t với 0i1i2 i tn

jt

While j 0 do

i jinvert binomial I_ ( , )y j

j

j

Trong đó invert binomial I_ ( , )y j trả về số nguyên i thỏa mãn C i tI yC i t1

Hình 2 Thuật toán chuyển đổi bản tin thành vector có trọng số t, chiều dài n

2.2 Sơ đồ chữ ký số CFS

Hệ mật Niederreiter và các hệ mật mã dựa trên các mã sửa lỗi không có khả năng ký

một bản tin bất kỳ Bởi vì chỉ có một số vector nhị phân có chiều dài n có trọng số w≤ t (t

là khả năng sửa lỗi của mã) Xét một mã C(n,k), với n = 2 m, tổng số vector lỗi có thể sửa, được xác định theo công thức:

t

n

t

   khi n đủ lớn (1)

và tổng số syndrome có thể có là:

2n k 2mt t

tong

Trong đó, T giaima là số syndrome có khả năng giải mã được, T tong là số syndrome có thể

có Về lý thuyết T giaima ≤ T tong , dấu bằng chỉ xẩy ra khi C(n,k) là một mã hoàn thiện Xác suất giải mã thành công (P giaima) được xác định theo công thức:

1

!

giaima giaima

tong

T P

Từ công thức (3) ta nhận thấy xác suất này không phụ thuộc vào n mà chỉ phụ thuộc vào t Mặt khác, thời gian ký sẽ không thay đổi nhiều khi n thay đổi, trong khi đó độ an toàn của hệ mật tăng nhanh khi n tăng Xác suất giải mã (P giaima ) giảm nhanh khi tăng t, qua khảo sát, xác suất giải mã thành công chỉ có thể chấp nhận được khi t ≤ 10 Do đó, các

nghiên cứu tập trung vào việc nâng cao khả năng sửa lỗi của mã để khắc phục điểm hạn chế này Để nâng cao hiệu quả sửa lỗi của mã, sơ đồ chữ ký CFS dựa trên hệ mật Niederreiter sử dụng phương pháp giải mã đầy đủ (complete decoding) Giải pháp được đề

Trang 4

xuất là sử dụng phương pháp giải mã ngoài giới hạn khoảng cách mã, dựa trên việc tìm một từ mã gần nhất với một từ mã trong không gian mã

Một giải pháp thực hiện giải mã đầy đủ là tiến hành sửa các lỗi cố định được thêm vào

Để giải mã một syndrome tương ứng với một lỗi có trọng số  = t+, có thể cộng  cột tùy

ý của ma trận kiểm tra vào syndrome và tiến hành giải mã syndrome mới nhận được Nếu tất cả  cột của tương ứng với một số vị trí lỗi thì syndrome mới sẽ tương ứng với một từ

mã có trọng số t và có thể giải mã được Nếu không, tiến hành thử lại với cột khác cho

tới khi giải mã được syndrome Như vậy, có thể giải mã bất kỳ một syndrome nào tương

ứng với một lỗi có trọng số nhỏ hơn hoặc bằng t+ [8] Nếu đủ lớn thì có thể thực hiện

giải mã được syndrome bất kì Tuy nhiên, khi  lớn sẽ dẫn đến xác suất giải mã thành công

cho mỗi lần chọn  cột là giảm Do đó, cần phải chọn các tham số mã để có đủ nhỏ và

đồng thời đảm bảo độ an toàn cho hệ mật Thuật toán ký phải lặp lại quá trình giải mã cho đến khi giải mã thành công

Một giải pháp khác là lấy một syndrome ngẫu nhiên bất kỳ nhận được thông qua hàm băm và thực hiện giải mã, trường hợp nếu không giải mã được thì xáo trộn lại bản tin và băm lại một lần nữa; thực hiện lại các bước này cho tới khi tất cả các syndrome được giải

mã thành công [8, 14]

Điểm hạn chế của sơ đồ chữ ký số CFS khi sử dụng phương pháp giải mã đầy đủ là

thuật toán ký phải lặp lại trung bình t! lần Vì vậy, đây là thuật toán ký chậm, khó được áp

dụng trong thực tiễn

Nội dung tiếp theo bài báo đề xuất một giải pháp mới là sử dụng giải pháp ghép các mã BCH thành phần thành mã tổng thay thế cho mã Goppa trong đề xuất gốc Nâng cao khả năng sửa của các mã thành phần này bằng cách sử dụng phương pháp giải mã thế dựa theo chuẩn syndrome Từ đó, tăng tỷ lệ số các syndrome giải mã được trên tổng số syndomre

3 XÂY DỰNG SƠ ĐỒ CHỮ KÝ SỐ TRÊN HỆ MẬT NIEDERREITER 3.1 Phương pháp giải mã thế dựa theo chuẩn syndrome

Các phương pháp đại số giải mã BCH yêu cầu phải giải phương trình khóa bậc cao trên trường Galoa như thuật toán Berlekamp Massey (BMA), thuật toán Euclid (EA) Các thuật

toán giải mã lặp BMA, EA có độ trễ xử lý lớn khi n và t tăng Điều đó, hạn chế việc ứng

dụng mã BCH vào các hệ thống thông tin thời gian thực

Qua việc nghiên cứu cấu trúc của mã BCH và các biến thể của nó, xây dựng một tham

số mới là chuẩn syndrome Chuẩn syndrome là bất biến với tác động của nhóm các dịch vòng và syndrome của các nhóm khác nhau thì khác nhau Khi sử dụng chuẩn syndrome, các lỗi ngẫu nhiên và lỗi cụm có thể được sửa đồng thời do chuẩn syndrome của các vector lỗi ngẫu nhiên và một số cấu hình lỗi cụm độ dài nhỏ, lỗi cụm đồng pha không trùng nhau khi chọn đa thức sinh của trường một cách thích hợp Đặc biệt khi kết hợp phương pháp chuẩn syndrome với phép thế cyctotomic cho phép giảm số lượng chuẩn syndrome cần xử lý nên có thể nâng cao chất lượng giải mã khi sửa lỗi bội cao [15], [16] Thuật toán giải mã theo phương pháp chuẩn syndrome được thực hiện theo các bước như sau:

+ Tính syndrome S(e)=(s1,s1,…,s t ) với s i là phần tử của trường Galoa GF(2m)

+ Tính bậc của chuẩn syndrome N Tính degs j , degs i là bậc thành phần s j , s i của

syndrome S(e)=(s1,s1,…s i ,s j ,…,s t )với 1  j ≤ j  t Tính chuẩn syndrome của S(e) và xác định bậc của nó degN ij

+ Từ degN ij xác định vector sinh và bậc i0 của thành phần syndrome đầu tiên s01 ứng với vector sinh

+ Tính số thứ tự bit lỗi đầu tiên bằng L i = (degs i – degs 0 i ) mod n

Trang 5

+ Tìm vector lỗi e bằng cách dịch vòng vector sinh đi L i nhịp

+ Sửa tín hiệu nhận được: Cộng tín hiệu nhận được với vector lỗi tìm được

Phương pháp chuẩn syndrome giải mã mã BCH đã nâng cao được hiệu quả sửa lỗi của

mã và có thể áp dụng mã BCH để thực hiện xây dựng được sơ đồ chữ ký số trên hệ mật Neiderreiter, khắc phục được các nhược điểm cơ bản của chữ ký số CFS dựa trên hệ mật Neiderreiter

3.2 Đề xuất sơ đồ chữ ký số sử dụng mã ghép BCH

Một sơ đồ chữ ký số ngoài việc đảm bảo các yêu cầu chặt chẽ về an ninh thì cần phải thỏa mãn hai điều kiện đó là: thuật toán tạo chữ ký số phải áp dụng ký được cho một bản tin bất kỳ và thuật toán xác nhận phải đủ nhanh Các thuật toán của sơ đồ chữ ký số dựa trên mã ghép BCH được thực hiện như sau:

a) Tạo khóa

- Ma trận kiểm tra H của chuỗi mã được hình thành từ các ma trận kiểm tra của  mã thành phần có dạng:

1

i

H

H

(4)

- Chọn ma trận hoán vị P[N,N], ma trận khả nghịch Q[(N-K),(N-K)] trong trường

GF(2)

- Tính khóa mật H’ = Q.H.P

- Khóa công khai là (H’,t) và một hàm băm có đầu ra có kích thước N-K bit

b) Thuật toán ký

Thuật toán tạo chữ ký số dựa trên chuỗi mã BCH thể hiện trên hình 3

  1   2  

|| || ||

  1   2  

|| || ||

1 2 0

{ , , , }

T

1

yP e

1

. T

s Q 

( || )



1, , , )2 0

Sgi i i i

1

jj

( )

1

i dec

i

  

Hình 3 Lưu đồ thuật toán ký sử dụng mã ghép BCH

- Bản tin cần ký M được cho dưới dạng chuỗi nhị phân

Trang 6

- Sử dụng một hàm băm để tiến hành băm bản tin, kết quả thu được một chuỗi nhị

phân có độ dài N-K bit: =h(M)

- Tính syndrome: Thực hiện nhân nghịch đảo của ma trận Q với chuỗi băm T để thu

được một syndrome (độ dài N – K bit) s = Q-1.T Từ số lượng mã BCH thành phần sử dụng (gồmmã), chia syndrome thu được thành các syndrome thành phần s (i) sắp xếp tương ứng với mỗi mã

- Tính chuẩn syndrome cho mỗi mã thành phần, giải mã các mã thành phần theo

phương pháp thế dựa trên chuẩn syndrome: Nếu s (i) là một syndrome trong tập giải mã

được (M dec ) ta tiến hành xác định vector lỗi e (i) theo phương pháp chuẩn syndrome tương

ứng với mã thứ i Ngược lại, ta ghép bản tin đầu vào với một biến đếm j và thực hiện quá trình lặp từ j=0 tăng dần một đơn vị cho đến khi giải mã thành công các syndrome thành phần s (i) Xác định và lưu giá trị i0 là giá trị của biến j nhỏ nhất mà tại đó tất cả các s (i) đều thực hiện giải mã được

- Hợp nhất các vector lỗi thành phần đã giải mã được thành vector lỗi tổng (chiều dài n bit) ta thu được e = e(1)||e(2)||…||e (i) ||…||e (l)

- Tính: y T = P-1.e T và xác định các tọa độ khác 0 của y T ta nhận được giá trị các vị trí

lỗi của y T :{i1,i2,…,i t}

- Chữ ký thu được là (i1,i2,…,i t ,i0) dưới dạng nhị phân

c) Thuật toán xác nhận chữ ký

Sau khi văn bản và chữ ký được gửi đến bên nhận, phía nhận sẽ tiến hành việc xác nhận chữ ký Lưu đồ thuật toán xác nhận chữ ký được trình bày trên hình 4

Hình 4 Lưu đồ thuật toán xác nhận chữ ký sử dụng mã ghép BCH

Trong bước xác nhận chữ ký, bên nhận có bản tin M và chữ ký Sg(i1,i2,…,i t ,i0) Tách

chữ ký Sg thành 2 thành phần, thành phần i0 và thành phần các tọa độ khác không

{i1,i2,…,i t } của y T

- Tính giá trị băm ρ: Bên nhận sử dụng hàm băm cho trước để tiến hành băm văn bản sau khi đã ghép bản tin với thành phần i0 và thu được chuỗi giá trị băm ρ=h(M||i0)

- Từ các tọa độ {i1,i2,…,i t } tiến hành khôi phục vector y T

- Tính ’T bằng cách nhân ma trận khóa công khai H’với y T:’T =H’.y T

Trang 7

- Xác nhận: So sánh chuỗi giá trị băm ρ và ρ’ nếu hai chuỗi này trùng nhau thì chữ ký

hợp lệ và được xác nhận, ngược lại chữ ký không được xác nhận

d) Lựa chọn tham số mã sử dụng trong sơ đồ chữ ký đề xuất

Như đã thảo luận mục 2, điểm hạn chế cơ bản của sơ đồ chữ ký số xây dựng trên hệ mật McEliece hoặc Niederreiter là không ký được văn bản bất kỳ Vì xác suất giải mã

thành công đối với một syndrome bất kỳ là 1/t!, nếu tăng khả năng sửa lỗi t thì xác suất

giải mã thành công giảm Do đó, để xây dựng sơ đồ chữ ký số dựa trên hệ mật này cần tăng tỷ lệ số syndrome có thể giải mã được trên tổng số syndrome có thể có

Để thực hiện được điều đó, bài báo đề xuất giải pháp xây dựng sơ đồ chữ ký số sử dụng ghép các mã BCH thành phần Mã BCH tổng với các mã thành phần có khoảng cách mã không lớn, sử dụng phương pháp giải mã thế theo chuẩn syndrome nhằm mở rộng khả năng sửa lỗi của mã Thông qua khảo sát sự phụ thuộc của mức bảo mật vào chiều dài mã

N khi sử dụng thuật toán tấn công của Canteaut-Chabaud [17] và thuật toán tấn công ngày

sinh nhật [18] với mức an ninh ~ 80 bit, bộ tham số lựa chọn cho sơ đồ chữ ký số sử dụng

mã ghép BCH như sau:

Lựa chọn hàm băm SHA-1, chiều dài giá trị băm 160 bit

Số mã BCH thành phần lựa chọn 10 mã (=10) gồm: Một mã C5(31,21) và mã thuận

nghịch mở rộng C6(32,21), ba mã C7(31,16), một mã C8(32,16), hai mã C7(63,45) trên trường GF(26), hai mã C7(127,106), mỗi mã nói trên cho phép mở rộng khả năng sửa thêm

1 lỗi, ngoại trừ mã C7(31,16) có khả năng sửa đến 5 lỗi Mô hình thuật toán đề xuất được thể hiện trên hình 5

Hình 5 Thuật toán mã hóa và giải mã sơ đồ mã ghép BCH

Khi đó, các tham số của mã tổng được xác định như sau: Khả năng sửa lỗi t=t imax (i

= 110, t max là số bội lỗi tối đa mà mã thành phần có thể sửa được); tổng chiều dài mã hóa

N=n i và K=k i (i = 110)

Việc lựa chọn sử dụng các tham số của mã thành phần thành mã ghép tổng phải đảm

bảo sao cho r =160, để tương ứng với bản tin đầu ra của hàm băm SHA-1 có độ dài chính

bằng 160 bit và đây là giá trị được sử dụng làm syndrome Thực hiện chia các giá trị băm này thành các syndrome tương ứng với mã thành phần để áp dụng phương pháp giải mã thế theo chuẩn syndrome trên từng mã thành phần Độ dài của syndrome thành phần chính bằng số bit kiểm tra của mã đó

10 1 11 1 15 3 16 1 18 2 21 2 160

Trang 8

Như vậy, khi lựa chọn bộ mã gồm 10 mã BCH thành phần trên, ta được mã tổng với

các tham số mã: N = 568, K = 408, r = 160 và khả năng sửa lỗi t = 41 Chiều dài chữ ký được xác định như sau: Trong trường hợp tất cả các mã đều sửa tối đa số bội có thể t max = 41; mỗi giá trị này được lưu dưới dạng chuỗi nhị phân 10 bit và cần thêm 10 bit để lưu trữ chỉ số ký lại phục vụ cho việc xác nhận Do vậy, độ dài của chữ ký là 420 bit Để khôi phục bản tin gốc: thực hiện tách 10 bit cuối, chuyển sang số thập phân ta nhận được số lần

ký lặp lại Số bit còn lại (410 bit), chia thành các chuỗi 10 bit và đổi sang thập phân Nếu kết quả bằng 0 thì không có giá trị hay không thuộc vị trí nào, nếu lớn hơn 0 thì lưu lại vị trí trọng số vào mảng Khôi phục lại vector chữ ký dài 568 bít có trọng số ở các vị trí tương ứng với các giá trị đã lưu trong mảng

4 ĐÁNH GIÁ ĐỘ PHỨC TẠP VÀ ĐỘ BẢO MẬT SƠ ĐỒ CHỮ KÝ SỐ 4.1 Độ phức tạp của sơ đồ chữ ký số

Độ phức tạp của chữ ký số phụ thuộc vào độ phức tạp của việc giải mã mã BCH Hoạt động giải mã được thực hiện theo từng khối mã thành phần, bao gồm việc kiểm tra một

đoạn n - k i bit có là syndrome hay không

Dựa trên phương pháp chuẩn syndrome cho phép mở rộng khả năng sửa lỗi của mã lên

đến t+1 lỗi, khảo sát tỷ lệ số syndrome có thể giải mã được trên tổng số syndrome có thể

được thể hiện trong bảng 1

Bảng 1 Tỷ lệ syndrome có thể giải mã được

STT Số mã

thành phần Mã thành phần

Tỷ lệ syndrome có thể giải mã được

Tỷ lệ trung bình các syndrome có thể giải mã được xác định theo công thức:

1Pdi 10, 3%

Do đó, thuật toán đề xuất cần phải thực hiện băm lại văn bản trung bình 10 lần Bỏ qua

độ phức tạp của các mã khoảng cách nhỏ n i≤32, độ phức tạp của sơ đồ chữ ký xác định theo công thức (6) và có giá trị 225,7

 

1

2 i log 63 2 i log (127) 2 ( ) 2

Độ phức tạp của việc xác nhận chữ ký: Đó là độ phức tạp của việc quyết định

syndrome từ vector lỗi, thực hiện nhân ma trận N×(N-K) với vector độ dài N Với thuật toán đề xuất, việc xác nhận yêu cầu N×(N-K)/2 phép tính nhị phân tương đương độ phức

tạp 215,5 Đây là độ phức tạp chấp nhận được và có thể thực hiện được trong thực tế 4.2 Đánh giá khả năng bảo mật của sơ đồ chữ ký số đề xuất

a) Tấn công giải mã

Sơ đồ chữ ký số sử dụng mã ghép BCH với các tham số đề xuất ở trên đảm bảo được độ bảo mật khi áp dụng các thuật toán tấn công vào sơ đồ Độ an toàn của sơ đồ

Trang 9

chữ ký số khi sử dụng thuật toán tấn công của Canteaut-Chabaud [17] là 284,2 và 2127 khi

sử dụng thuật toán tấn công ngày sinh nhật [18]

b) Tấn công cấu trúc

Trường hợp sử dụng thuật toán tấn công, cho phép xác định được ma trận H và Q, khi

đó sẽ tính toán và tìm được ma trận P Sau đó, với mỗi khóa bí mật, thuật toán phải thực

hiện kiểm tra cho tới khi khóa này là khóa đúng Đối với sơ đồ chữ ký đề xuất, độ phức tạp của phương pháp tấn công này sẽ tăng theo độ phức tạp của các mã BCH thành phần

Vì các mã BCH, mã BCH mở rộng, mã thuận nghịch có độ dài khác nhau với các đa thức sinh khác nhau Ngoài ra còn áp dụng hoán vị với các mã BCH thành phần để tăng thêm

độ phức tạp tấn công cấu trúc

Để tấn công cấu trúc trong trường hợp thuận lợi nhất là xác định được tham số n i , k i của

mã thành phần Từ đó, tính toán xác định việc sử dụng các mã thành phần còn lại Giả sử

thay đổi tham số b để bí mật ma trận mã BCH thành phần (có khoảng cách cấu trúc d = 5, 7),

cho công khai các đa thức sinh của trường GF(2m ), m = 5, 6, 7 Trong đề xuất cho phép sử

dụng mã BCH mở rộng, mã thuận nghịch và mở rộng của nó nên số lượng mã có thể chọn sẽ tăng đột biến Mặt khác tương ứng có 6; 6; 14 đa thức nguyên thủy bậc 5, 6, 7 Các mã được sắp xếp thành chuỗi theo một thứ tự ngẫu nhiên Do đó, số lượng mã thành phần khác nhau

là 10668 mã và độ phức tạp xác định cấu trúc 10 mã thành phần khoảng 2137

Với các giá trị của độ phức tạp tấn công giải mã và tấn công cấu trúc vào sơ đồ đề xuất

ở trên, đã khẳng định độ an toàn bảo mật của sơ đồ đề xuất trước các tấn công phổ biến vào sơ đồ

Kết quả thử nghiệm sơ đồ chữ ký số sử dụng mã ghép BCH trên máy tính core-i5 2.3 GHz, RAM 8GB:

- Số lần ký lại trung bình khoảng 10 lần,

- Thời gian ký trung bình nhỏ hơn 20 ms,

- Thời gian xác nhận chữ ký nhỏ hơn 1ms

Bảng 2 So sánh sơ đồ chữ ký dựa trên mã ghép BCH và sơ đồ chữ ký CFS

TT Sơ đồ chữ ký Sơ đồ chữ ký CFS

(m = 15, t = 12)

Sơ đồ chữ ký dựa trên mã ghép BCH

Qua bảng so sánh trên, sơ đồ chữ ký số sử dụng mã ghép BCH đề xuất cho phép giảm kích thước khóa 65 lần trong cùng mức an ninh Cho phép tăng độ bảo mật lên nhiều lần

do khó thực hiện tấn công thông thường với sơ đồ trên Đặc biệt, độ phức tạp thực hiện của chữ ký giảm nhiều lần thông qua việc giảm độ dài của các mã thành phần và sử dụng phương pháp giải mã thế dựa trên chuẩn syndrome Phương pháp giải mã này cho phép

mở rộng khả năng sửa lỗi của mã, đồng thời tăng số lượng các syndrome có thể giải mã được nên khắc phục nhược điểm cơ bản của hệ mật mã dựa trên mã trong đề xuất gốc

5 KẾT LUẬN

Bài báo đề xuất sơ đồ chữ ký số mới dựa trên cấu trúc mã ghép BCH Phương pháp giải

mã thế dựa trên chuẩn syndrome để giải mã các mã thành phần đã cho phép mở rộng được

Trang 10

khả năng sửa lỗi của mã đồng thời làm tăng độ phức tạp của tấn công cấu trúc và tấn công giải mã Sơ đồ đề xuất mới cũng đã khảo sát các dạng tấn công điển hình vào sơ đồ Kết quả khảo sát cho thấy sơ đồ chữ ký số đề xuất cho phép giảm kích thước khóa 65 lần so

với sơ đồ chữ ký số CFS (m =15, t = 12) trong cùng mức an ninh và giảm được độ phức

tạp của quá trình ký và xác nhận Kết quả thử nghiệm chương trình phần mềm sơ đồ chữ

ký số đề xuất trên máy tính core-i5 6200U 2.3 GHz, RAM 8 GB: số lần ký lại trung bình khoảng 10 lần, thời gian ký trung bình nhỏ hơn 20 ms, thời gian xác nhận nhỏ hơn 1ms Với những kết quả đạt được, sơ đồ chữ ký đề xuất có thể đáp ứng được yêu cầu của các hệ thống bảo mật trong thực tế

TÀI LIỆU THAM KHẢO

[1] Grover L K (1996), "A fast quantum mechanical algorithm for database search",

STOC, pp: 212-219

[2] Shor P W (1997), "Polynomial-time algorithms for prime factorization and discrete

logarithms on a quantum computer", SIAM Journal on Computing, 25(5), pp:

1484-1509

[3] L Chen S J., Y.K Liu, D Moody, R Peralta, R Perlner, D S Tone (2016), "Report

on Post-Quantum Cryptography" The National Institute of Standards and

Technology Internal Report 8105, U.S Department of Commerce

[4] Berlekamp E., McEliece R., and Tilborg H v (1978), "On the Inherent Intractability

of Certain Coding Problems", IEEE Transactions on Information Theory, 24(3), pp:

384-386

[5] Cayrel P L., Gaborit P., Giraul M (2007) Identity-based identification and signature

schemes using correcting codes, International Workshop on Coding and Cryptography

2007, pp: 69-78

[6] Finiasz M., and Sendrier N (2011), "Digital Signature Scheme Based on McEliece",

in : Henk C.A van Tilborg and Sushil Jajodia (editors), Encyclopedia of Cryptography and Security (2nd edition), Springer., pp: 342-343

[7] Kabatianskii G., Krouk E., and Smeets B (1997) A digital signature scheme based

on random error correcting codes, The 6th IMA International Conference on

Cryptography and Coding, London, UK, 1997, pp: 161-167

[8] Courtois N., Finiasz M., and Sendrier N (2001) How to achieve a mceliece based

digital signature scheme, Lecture Notes in Computer Science, pp: 157-174

[9] Otmani A., and Tillich J P (2011) An Efficient Attack on All Concrete KKS

Proposals, International Workshop on Post-Quantum Cryptography, Lecture Notes

in Computer Science, Springer, Berlin, Heidelberg, Vol 7071, pp: 98-116

[10] Finiasz M., and Sendrier N (2009) Security Bounds for the Design of Code-Based

Cryptosystems, Advances in Cryptology ASIACRYPT 2009, Lecture Notes in

Computer Science, pp: 88-105

[11] Wagner D (2002) A Generalized Birthday Problem, Annual International Cryptology

Conference: Advances in Cryptology - CRYPTO 2002, Lecture Notes in Computer Science, Springer, Berlin, Heidelberg, pp: 288-304

[12] Niederreiter H (1986), "Knapsack-type Cryptosystems and Algebraic Coding Theory",

Problems of Control and Information Theory, 15(2), pp: 159-166

[13] Bernstein D J., Buchmann J., and Dahmen E (2009), Post-quantum cryptography,

Springer-Verlag Berlin Heidelberg, pp: 95-145

Ngày đăng: 10/02/2020, 02:11

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