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 1XÂ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 2mô 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 0i1i2 i t n
jt
While j 0 do
i j invert 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 t1
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 4xuấ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
y P e
1
. T
s Q
( || )
1, , , )2 0
Sgi i i i
1
j j
( )
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ồmmã), 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
= 110, 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 = 110)
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 8Như 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 9chữ 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 10khả 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