Tải bản đầy đủ (.pdf) (27 trang)

Nghiên cứu ứng dụng mã sửa sai trong bảo mật thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.03 KB, 27 trang )








































Bộ Giáo dục và đào tạo Bộ Quốc phòng
Học viện Kỹ thuật Quân sự




Phạm Việt Trung






Nghiên cứu ứng dụng m sửa sai trong bảo mật
thông tin




Chuyên ngành : Kỹ thuật điện tử
Mã số : 62.52.70.01







Tóm tắt luận án Tiến sỹ Kỹ thuật





H nội 2007


Luận án đợc hoàn thành tại
Học viện Kỹ thuật Quân sự. Bộ Quốc Phòng



Ngời hớng dẫn khoa học:
1. GS. TS Nguyễn Bình
2. TS. Nguyễn Đức Thắng



Phản biện 1: PGS. TS Lê Mỹ Tú

Phản biện 2: PGS.TS Nguyễn Quốc Trung

Phản biện 3: PGS.TS Phan Hữu Huân


Luận án sẽ đợc bảo vệ trớc Hội đồng chấm luận án cấp
nhà nớc họp tại Học viện Kỹ thuật Quân sự
Vào hồi 14 giờ 00 ngày 03 tháng 5 năm 2007


Có thể tìm hiểu luận án tại:
Th viện Học viện kỹ thuật Quân sự
Th viện Quốc gia





Công trình công bố của tác giả
1. Th.S Phạm Việt Trung (1999), ứng dụng phơng pháp mã
hoá và giải mã Huffman trong bảo mật thông tin, Tạp chí
Nghiên cứu khoa học kỹ thuật quân sự, số 30, pp 81-85.
2. Ass.Prof. Nguyen Binh, Vu Viet, Pham Viet Trung (2000),
Decompositions of polynomial ring and coding with random
clock, CAFEO2000, pp 149 - 154
3. Ass Prof. Dr. Nguyen Binh, M.E. Van Danh Nhuan, M.E
Pham Viet Trung (2001), Constructing cyclic codes over
cyclic multiplicative groups, 25
th
AIC Conference (Shanghai),
pp 413 417.
4. Ass Prof. Dr. Nguyen Binh, M.E. Tran Duc Su, M.E Pham
Viet Trung (2001), Decomposition of polynomial ring
according to the classes of conjugate elements , 26
th

AIC
Conference (Ha Noi), (WG1, Distribution only)
5. Bùi Việt Hồng, Bạch Nhật Hồng, Nguyễn Thế Hiếu, Phạm
Việt Trung (2005), "Xây dựng thuật toán chơng trình an toàn
thông tin, áp dụng cho mô hình an toàn th điện tử", Tạp chí
nghiên cứu KHKT và công nghệ quân sự, số 12, pp 49 - 52
6. Th.S Phạm Việt Trung (2005), Xây dựng hệ mật McEliece
trên mã xyclic cục bộ, Tạp chí nghiên cứu KHKT và công
nghệ quân sự, số 13, pp 63 - 69.





1
A. Mở đầu

Tính cấp thiết: ngày nay với sự phát triển mạnh mẽ của công nghệ
thông tin và truyền thông, mạng máy tính đang trở thành một phơng
tiện điều hành thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội do
vậy an toàn thông tin truyền trên mạng đóng một vai trò rất quan trọng.
Trong những thập kỷ 70 và 80 của thế kỷ trớc công nghệ mã hoá
thông tin đã có bớc phát triển vợt bậc [27] [36] [45], các hội nghị khoa
học thờng niên của hiệp hội quốc tế về nghiên cứu công nghệ mã đợc
tổ chức liên tục, các hội nghị Euro Crypt tại châu âu, Crypto tại Mỹ thu
hút đợc sự quan tâm của các chuyên gia công nghệ hàng đầu trên thế
giới. Các công nghệ mã hoá hiện đại đều không dựa vào khả năng giữ bí
mật về công nghệ mã hoá ( thuật toán là công khai), mà chỉ dựa vào bí
mật chìa khoá giải mã, một hệ mã nh vậy đợc gọi là hệ mật khoá công
khai. Một hệ mật nh vậy đáp ứng đợc đầy đủ đòi hỏi của các chuyên

gia về bảo mật thông tin, phù hợp cho các ứng dụng rộng rãi trong cộng
đồng. Trong thời gian gần đây nhiều thuật toán tốt đã đợc xây dựng
song song với tốc độ phát triển của công nghệ thông tin nói chung, tuy
nhiên đó là những thuật toán và công nghệ mã hoá do nớc ngoài cung
cấp, do vậy để bảo vệ các thông tin trong lĩnh vực an ninh quốc phòng
chúng ta phải tự mình xây dựng các giải pháp cho bảo mật thông tin.
ý nghĩa khoa học và thực tiễn của luận án:
Về khoa học: Nghiên cứu của luận án góp phần làm phong phú thêm
về lý thuyết mã XCB, chứng minh một khả năng mới xây dựng hệ mật
khoá công khai dựa trên lý thuyết mã đại số.
Về thực tiễn: Kết quả nghiên cứu sẽ đa ra một khả năng có thể ứng
dụng trong thực tế, góp phần nâng cao tính bảo mật của thông tin trên
đờng truyền. Một số kết quả nghiên cứu mới về mã xyclic cục bộ(XCB)
cho phép các đồng nghiệp có thể tham khảo và xây dựng các bộ mã XCB
có số dấu thông tin lớn.
Mục đích của luận án
- Nghiên cứu phát triển lý thuyết về mã xyclic cục bộ.
- Xây dựng một hệ mật khoá công khai dựa trên thuật toán McEliece
sử dụng mã XCB.
Những kết quả mới cơ bản trong nội dung nghiên cứu của luận án:
- Nghiên cứu hệ mật khoá công khai McEliece, trên cơ sở đó đề xuất
các vấn đề cần giải quyết.
- Nghiên cứu về mã XCB, hon thiện thuật toán, kiểm chứng bằng
phần mềm, phơng án phân hoạch tổng quát vành theo nhóm nhân
xyclic đơn vị với k > 20.
- Đề xuất và chứng minh về mặt lý thuyết phân hoạch vành đa thức
chẵn theo lớp các phần tử liên hợp.

2
- Đề xuất và chứng minh một phơng án xây dựng hệ mật McEliece

trên mã XCB.
- Kết quả nghiên cứu của luận án sẽ góp phần phát triển lý thuyết
mã XCB nói riêng và mã sửa sai nói chung. Đa ra một kết quả
mới trong việc xây dựng hệ mật khoá công khai dựa trên lý thuyết
mã đại số.
Bố cục của luận án
Luận án gồm: 104 trang, có 13 bảng số liệu, 13 hình vẽ, 83 tài liệu
tham khảo. Nội dung của luận án đợc chia làm 3 chơng, kết luận, tài
liệu tham khảo, phụ lục và đĩa chơng trình:
Chơng 1. Tổng quan về hệ mật khoá công khai
Chơng 2. Lý thuyết về mã XCB và phân hoạch vành theo các phần tử
liên hợp.
Chơng 3.Xây dựng hệ mật McEliece trên mã XCB
Kết luận. Kết luận về kết quả nghiên cứu đã đạt đợc, những kết quả
nghiên cứu mới của luận án và kiến nghị về hớng phát triển
tiếp theo.
Phụ lục. Phụ lục A: Chơng trình nguồn của thuật toán phân hoạch vành
dựa trên nhóm nhân xyclic đơn vị (kèm theo 01 đĩa
CD chơng trình).
Phụ lục B: Chơng trình nguồn xây dựng hệ mật McEliece trên
mã XCB: chơng trình mã hoá, chơng trình giải
mã, chơng trình tạo khoá (kèm theo 01 đĩa CD
chơng trình).

B. Nội dung nghiên cứu của luận án
Chơng 1. Tổng quan về hệ mật khoá công khai
Nghiên cứu tổng quan về hệ mật khoá công khai: Khái quát chung về hệ
mật mã cổ điển, trên cơ sở đó phân tích các u nhợc điểm của hệ mật
mã cổ điển và sự ra đời của hệ mật khoá công khai. Nghiên cứu tổng
quan về hệ mật khoá công khai phân tích quá trình phát triển của hệ mật

khoá công khai, tập trung sâu vào phân tích hệ mật khoá công khai dựa
trên thuật toán McEliece.
1.1 Khái quát chung hệ mật mã cổ điển
1.1.1 Mô hình hệ thống truyền tin mật
1.1.2 Một số hệ mật mã cổ điển điển hình
1.1.2.1 Mã dịch vòng (MDV)
1.1.2.2 Mã thay thế (MTT)
1.1.3 Các u nhợc điểm của hệ mật m cổ điển
1.2 Hệ mật mã phi đối xứng (Hệ mật khóa công khai)
1.2.1 Khái quát chung

3
1.2.2 Nguyên tắc chung m hoá với khoá công khai
1.2.3 Quá trình phát triển của hệ mật m khoá công khai (phi đối
xứng)
1.2.3.1 Hệ mật RSA
1.2.3.3 Hệ mật Elgamal
1.2.3.4 Hệ mật xếp ba lô Merkle - Hellman
1.2.3.5 Hệ mật McEliece
Hệ mật McEliece [72] sử dụng nguyên lý tơng tự nh hệ mật Merkle-
Hellman. Phép giải mã là một trờng hợp đặc biệt của bài toán NP đầy
đủ nhng nó đợc ngụy trang giống nh trờng hợp chung của bài toán.
Trong hệ thống này bài toán NP đợc áp dụng ở đây là bài toán giải mã
cho một mã sửa sai (nhị phân) tuyến tính nói chung. Tuy nhiên, đối với
nhiều lớp mã đặc biệt tồn tại các thuật toán thời gian đa thức. Một trong
những lớp mã này là mã Goppa, chúng đợc dùng làm cơ sở cho hệ mật
McEliece.
Hệ mật McEliece đợc mô tả nh sau:
Cho G là một ma trận sinh của một mã Goppa C[n, k, d],
trong đó

n = 2
m
, d = 2t+1 và k = n - mt. Cho s là một ma trận khả
nghịch cấp
k x k trên Z
2
. Giả sử P là một ma trận hoán vị cấp n x n, ta đặt
G = SGP. Cho P = (Z
2
)
2
, C = (Z
2
)
n
và ký hiệu: K = {(G, S, P,
G)}
Trong đó G, S, P đợc xây dựng nh mô tả ở trên và đợc giữ
kín, còn G đợc công khai. Với K = (G, S, P, G), ta định
nghĩa:
e
k
(x, e) = x.G + e.
ở đây, e

(Z
2
)
n
là một vector ngẫu nhiên có trọng số t.

Ngời nhận giải mã bản mã y

(Z
2
)
n
theo các bớc sau:
1. Tính y
1
= yP
-1
.
2. Giải mã y
1
, Ngời nhận tìm đợc
y
1
= x
1
+ e
1
, x
1

C.
3. Tính x
0


(Z

2
)
k
sao cho x
0
G=x
1

4. Tính x = x
0
S
-1

- Đánh giá chung: McEliece đã đa ra hệ mật mã khoá công khai đầu
tiên dựa trên lý thuyết mã hoá đại số vào năm 1978. ý tởng đằng sau
của hệ mật mã khoá công khai này dựa trên một thực tế là vấn đề giải mã
của một mã tuyến tính bất kỳ là một vấn đề rất khó khăn. Trong quá khứ,
rất nhiều nhà nghiên cứu đã rất cố gắng để phá vỡ lợc đồ McEliece
nhng không ai trong số họ thành công, một số ngời quả quyết rằng họ
đã phá đợc lợc đồ McEliece, tuy nhiên, hầu hết các nhà mật mã đều
không tin vào kết quả của họ bởi vì có quá ít các bằng chứng rõ ràng để

4
chứng thực giới hạn thời gian họ đã đạt đợc. Theo đánh giá của
McEliece, một mã sửa sai có khả năng tạo ra nhiều lớp mã khác nhau có
thể đợc ứng dụng vào để xây dựng hệ mật.
Ưu nhợc điểm của hệ mật McEliece dùng mã Goppa:
- Dung lợng khoá lớn
- Mã hóa và giải mã khá phức tạp
- Cha có thuật toán tìm mã hữu hiệu.

Mã Xyclic có thuật toán mã hoá và giải mã rất đơn giản nhng không
dùng đợc trong hệ mật McEliece do số lợng hạn chế các Ideal trong
vành làm giảm khả năng lựa chọn.
Mã tuyến tính ngẫu nhiên cũng không phải là ứng cử viên trong hệ mật
này mặc dù có khả năng lựa chọn rất lớn vì các mã này có thuật toán mã
hoá và giải mã phức tạp.
Các mã XCB có thuật toán mã hoá và giải mã đơn giản và có nhiều khả
năng lựa chọn, bởi vậy các mã XCB có thể xem xét để ứng dụng trong hệ
mật McEliece
1.3 Kết luận: - Trong chơng này đã đề cập tới các nội dung về các hệ
mật mã cổ điển và các hệ mật mã khoá công khai, trên cơ sở phân tích
các u nhợc điểm của các hệ mật, chúng ta nhận thấy rằng trong các hệ
mật khoá công khai chỉ có hệ mật McEliece là sử dụng lý thuyết mã đại
số cụ thể là mã Goppa để xây dựng hệ mật. Với sự phát triển của lý
thuyết xây dựng mã XCB, chúng ta hoàn toàn có thể tự xây dựng một hệ
mật khoá công khai dựa trên lợc đồ McEliece sử dụng mã XCB.
Bên cạnh các u điểm của mã XCB là đơn giản dễ thực hiện về mặt kỹ
thuật mã hoá và giải mã (đặc biệt thích hợp với phơng pháp giải mã
ngỡng), có nhiểu khả năng lựa chọn các lớp kề để lập mã thì vẫn còn
tồn tại các nhợc điểm đó là cha tìm đợc lớp mã tốt nào. Vì vậy các
vấn đề cần phải tiếp tục nghiên cứu là:
- Cần tối u hoá các thuật toán phân hoạch vành đa thức theo nhóm nhân
xyclic đơn vị để đa ra các phân hoạch với số dấu thông tin lớn.
- Phát triển lý thuyết về mã XCB để chứng minh tính đa dạng trong tạo
mã, xây dựng phân hoạch vành mới (phân hoạch vành theo các phần tử
liên hợp), đề xuất các lớp mã tốt đa vào sử dụng trong thực tế.
Chơng 2. Lý THUYếT Về M XYCLIC CụC Bộ V PHÂN
HOạCH VNH THEO CáC PHầN Tử LIÊN HợP
2.1. Mã Xyclic cục bộ
2.1.1 Nhóm nhân Xyclic trong vành đa thức

2.1.2 Phân hoạch của vành theo các nhóm nhân Xyclic
Trong vành R
n
, trớc tiên xác định nhóm nhân xyclic A, số phần tử
nhóm nhân nhiều nhất là max ord a(x) và các đa thức.
* Các bớc thực hiện:

5
1. Chọn a(x) thuộc vành R
n
.
2. Xây dựng nhóm nhân Xyclic A = {a
i
(x)}
3. Xây dựng các lớp kề của A. Về thực chất là xây dựng cấp số nhân
Xyclic có công bội a(x) có phần tử sinh b(x) R
n
, b(x) không thuộc
A và không thuộc bất cứ cấp số nhân nào chúng ta thiết lập.




Hình 2.1. Xây dựng các lớp kề của A
Ví dụ: xét vành R
5
; I = {x
i
, i = 0 ữ 4}. Phân hoạch vành thành các
phần tử:

Bảng 2.1 Phân hoạch vành theo nhóm nhân Xyclic đơn vị
1 2 3 4 0
01 12 23 34 04
02 13 24 03 14

012 123 234 034 014
013 124 023 134 024

0123 1234 0234 0134 0124
01234

Trong vành này có 31 phần tử khác không và đợc phân hoạch thành 7
lớp kề: có 6 lớp kề có cấp 5 và 1 lớp kề cấp 1.
Chọn phần tử khác làm phân hoạch: a(x) = 1 + x + x
2

A = {(1 + x + x
2
)
i
, i = 0 ữ 14}. Lúc này có phân hoạch khác.
Bảng 2.2 Phân hoạch vành với a(x) = 1 + x + x
2

012 024 3 034 023 1 123 013 4 014 134 2 234 124 0
34 13 0124 12 14 0234 04 24 0123 23 02 0134 01 03 1234
01234

Đây là nhóm nhân Xyclic cấp 15 có a(x)= 1+ x + x
2


Trong mọi phân hoạch bất kỳ luôn tồn tại nhóm nhân cấp 1 tầm thờng.
Nh vậy chọn hạt nhân khác nhau sẽ cho các phân hoạch khác nhau.Nếu
a(x) = 1 + x
2
+ x
3
{0 2 3}. Ta có phân hoạch vành:

A

b(x)


R
n


6
023 014 0
1 134 012
123 2 024
4 124 034
234 3 013
14 23 1234
0234 02 34
04 0134 13
0123 03 12
01 0124 24
01234


Bảng 2.3 Phân hoạch vành với a(x) = 1 + x
2
+ x
3

Định nghĩa 2.1 (Phần tử đối xứng): a(x) đợc gọi là phần tử đối xứng
của
()ax nếu:
1
0
0
() () ()
n
i
i
ax ax c x
x

=
+= =

,
() , ()
j
i
iI iJ
ax ax
j
i

x
x
a
a

==


IJ = S = {0,1,2,,n-1}
IJ =



2.1.3 Định nghĩa m XCB
Định nghĩa 2.2
Mã XCB là một mã tuyến tính mà từ mã bao gồm các dấu mã là một tập
con không trống tuỳ ý các lớp kề trong phân hoạch của vành đa thức
theo một nhóm nhân Xyclic nào đó.
Mã XCB đợc lựa chọn là mã hệ thống nếu các lớp kề đợc chọn chứa
các phần tử trong nhóm nhân Xyclic đơn vị ngợc lại mã XCB là một mã
tuyến tính không hệ thống.
2.1.4. M XCB xây dựng trên các nhóm nhân Xyclic
Trờn Z
2
[x]/(x
k
+ 1) xột nhúm nhõn Xyclic sau: A = {a
i
(x)} i = 1, 2,
Gi s ord a(x) = n. Mi nhúm nhõn Xyclic s to nờn mt mó Xyclic

(n, k, d) no ú. S cỏc nhúm nhõn Xyclic to nờn cỏc mó (n, k, d) cú
cựng tham s l (n), trong ú (n) l hm Euler, (n) l s cỏc s
nguyờn nguyờn t cựng nhau vi n.
Nu n = p l mt s nguyờn t thỡ (p) = p 1
Bng cỏch dch vũng (Xyclic) cỏc phn t trong mi nhúm nhõn, ta cng
cú th to ra cỏc mó Xyclic (n, k, d) cú cựng tham s. Nh vy s cỏc
mó Xyclic cú cựng tham s cú th to ra l: N = n.(n)
2.1.5 Quan điểm xây dựng m dựa trên các phân hoạch
Với các vấn đề đã trình bày ở trên chúng ta hình dung đợc các tồn tại
của mã XCB. Các vấn đề của mã xyclic cục bộ là tìm các mã tốt theo
một tiêu chí nào đó:

7
- Các tiêu chí chọn lớp kề nh thế nào để đạt đợc mã tốt: chọn lớp
kề đối xứng lập mã, xây dựng 2 lớp mã trực giao, tự trực giao. Bóc
từ lớp kề có trọng số bé nhất đến lớp cao.Bóc tất cả các lớp có
trọng số lẻ có khả năng trực giao
- Chọn lớp kề nh thế nào để có khả năng sửa sai tốt nhng tốc độ
cao?
Một trong những vấn đề cơ bản của mã xyclic cục bộ là nghiên cứu các
khả năng phân hoạch khác nhau trên cơ sở đó đề xuất các phơng án lựa
chọn bộ mã tối u. Trong các nghiên cứu trớc đây đã đề cập đến các
phơng án phân hoạch: Phân hoạch theo nhóm nhân Xyclic đơn vị, Phân
hoạch theo nhóm nhân xyclic cực đại. Phân hoạch theo nhóm nhân
Xyclic cấp bất kỳ với các hạt nhân phân hoạch khác nhau. Với các phân
hoạch khác nhau sẽ tạo ra các bộ mã khác nhau và các phơng pháp giải
mã khác nhau. Tuy nhiên để mở rộng thêm về lý thuyết mã XCB sau đây
chúng ta sẽ xây dựng chơng trình tổng quát phân hoạch vành theo
nhóm nhân xyclic đơn vị, đa ra các ,nghiên cứu lý thuyết mới về phân
hoạch vành dựa trên: phân hoạch vành hỗn hợp, phân hoạch dựa trên các

phần tử liên hợp.
2.2 Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị
2.2.1 Phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị
Ta ký hiệu vành đa thức Z
2
[x] / [x
k
+1] có nhóm nhân xyclic đơn vị đợc
biểu diễn: [I] = {x
0
, x
1
, , x
k-1
}. Hạt nhân phân hoạch của nhóm nhân
xyclic đơn vị chính là x Vấn đề cơ bản là phải xây dựng thuật toán xác
định chính xác các lớp kề cần có và các phần tử trong các lớp kề. Thực
chất vành đa thức bao gồm nhóm nhân xyclic đơn vị và các lớp kề đợc
tạo từ nhóm nhân xyclic đơn vị [I]. Việc xây dựng các lớp kề đợc thực
hiện nh sau:
Bớc 1. Chọn A(x) không thuộc nhóm nhân [I], là tổ hợp của các đơn
thức trong nhóm nhân [I], A(x) chính là trởng lớp kề. Tiếp theo lần lợt
xây dựng các phần tử trong lớp kề này bằng cách nhân với hạt nhân phân
hoạch.
Bớc 2. Tiếp tục thực hiện bớc 1 cho đến khi quét hết các lớp kề có thể
có của vành đa thức. Phân hoạch này có số phần tử của vành là (2
n
-1) đa
thức khác 0. Trong các nghiên cứu trớc đây đều phân hoạch vành với k
nhỏ, tuy nhiên để phân hoạch đợc vành với các k lớn cần phải hoàn

thiện thuật toán tổng quát để tính toán đợc hết các phần tử và các lớp kề
của phân hoạch.
2.2.2 Thuật toán xây dựng vành đa thức theo nhóm nhân xyclic đơn vị
Phân hoạch vành Z
2
[x] /x
k
+1 theo nhóm nhân xyclic đơn vị, ta có thể
ứng dụng hầu hết các ngôn ngữ lập trình hiện nay. Với Visual Basic, ta
có thể lập trình đa ra bảng phân hoạch với số k lớn. Trong thực tế, với
số dấu thông tin nhỏ thì tốc độ tính toán là rất nhanh. Khi thử nghiệm

8
thực tế với máy tính có cấu hình Pentium VI 2.4GHz, 1Gb RAM, kết
quả tính toán cụ thể đợc thống kê trong bảng 2.4.
Bảng 2.4. Kết quả thử nghiệm chơng trình phân hoạch vành đa thức
theo nhóm nhân xyclic đơn vị
STT
Số dấu thông
tin
Thời gian tính toán
Kích thớc file dữ
liệu
1 k=5 <1s 108 byte
2 k=7 <1s 1008 byte
3 k=8 <1s 2.25 Kbyte
4 k=9 <1s 5 Kbyte
5 k=12 <1s 56 Kbyte
6 k=16 16s 1.281 Kbyte
7 k=17 56s 2.68 Mbyte

8 k=23 44 giờ 25 phút 250 Mbyte
Qua quá trình thử nghiệm chơng trình chạy rất ổn định và không có lỗi
phát sinh. Vì vậy đây có thể là một kết quả của luận án nghiên cứu sinh.
Toàn bộ chơng trình nguồn và các file dữ liệu cùng với bộ cài đặt đợc
ghi trong một đĩa CD kèm với phụ lục 1.
2.3. Phân hoạch hỗn hợp
Xét một vành đa thức Z
2
[x]/ x
k
+ 1, giả sử D
1
và D
2
là hai phân hoạch
không suy biến của vành tơng ứng với hai hạt nhân phân hoạch là
q
1
(x)

q
2
(x). Khi ta kết hợp toàn bộ các phần tử lẻ của D
1
với toàn bộ các
phần tử chẵn của
D
2
(hoặc ngợc lại) ta đợc kiểu phân hoạch hỗn hợp
mới, và kiểu phân hoạch này cũng là kiểu không suy biến vì nó chứa tất

cả các phần tử của vành.
Chú ý: Để thuận tiện cho việc giải mã thì ord
q
1
(x) và ord q
2
(x) phải là
bội của nhau. Với vành
Z
2
[x]/ x
k
+ 1, nên chọn ord q
1
(x) = k (hoặc
ord q
2
(x) = k) lúc đó ord q
2
(x) (hoặc ord q
1
(x)) sẽ bội của n. Có thể khái
quát các bớc thực hiện phân hoạch hỗn hợp vành
Z
2
[x]/ x
k
+ 1 nh sau:
Bớc 1: Xác định max ord a(x) của phần tử trong vành, tính số ớc của
max ord a(x), số ớc số này cũng chính là M (số kiểu phân hoạch không

suy biến của vành).
Bớc 2: Phân hoạch vành theo hai hạt nhân trong đó phải có ít nhất một
hạt nhân có trọng số lẻ. Chọn một hạt nhân phân hoạch q
1
(x) sao cho
q
1
(x) = k, một hạt nhân phân hoạch thứ hai q
2
(x) với ord q
2
(x) là bội số
của n. Một hạt nhân có trọng số lẻ đợc dùng để phân hoạch các phần tử
có trọng số lẻ của vành, hạt nhân còn lại đợc dùng để phân hoạch các
phần tử có trọng số chẵn của vành.
Bớc 3: Kết hợp các CGP của hai phân hoạch với nhau để đợc một
phân hoạch mới.

9
2.4. Mã xyclic và xyclic cục bộ xây dựng trên các vành đa thức có độ
dài chẵn
Xét phân hoạch vành đa thức theo lớp các phần tử liên hợp. Với n lẻ ta
xét vành
Z
2
[x]/x
2k
+1, ta ký hiệu là Z
2k
. Ta có các khái niệm sau.

2.4.1. Các khái niệm (Các thặng d bậc 2 và các căn bậc 2 của chúng)
- Nếu n là lẻ với mọi a(x) thì luôn tồn tại
()ax . Phần tử có căn bậc hai
nh vậy gọi là thặng d bậc 2 và
()ax
này là duy nhất.
- Nếu n là chẵn thì các đa thức trong vành có hai loại khác nhau, một
loại có căn bậc hai, một loại không có căn bậc hai.
Định nghĩa 2.3.
Đa thức f(x) đợc gọi là một thặng d bậc hai (QR- quadratic residue)
trong vành
Z
2n
nếu tồn tại g(x) thoả mãn điều kiện sau:
g
2
(x)

f(x) mod x
2k
+ 1 (2.1)
g(x) là căn bậc hai của f(x).
Nhận xét: Chỉ có các đa thức f(x) chứa các đơn thức có mũ chẵn mới là
các QR
Vành Z
2k
có 2
2k
phần tử trong đó chỉ có 2
k

phần tử là các QR.
Định lý 2.2. Các căn bậc hai của một thặng d bậc hai với f(x)

Q
2n

đợc xác định:
Sqr[f(x)] = g(x) = (1 + x
n
)(
t
x
tU


) + ()
f
x (2.2)
()
f
x đợc gọi là căn bậc hai chính (các phần tử có số mũ chẵn).
Tập hợp U là tổ hợp tuỳ ý các giá trị trong tập hợp S bao gồm các giá trị
0, 1, 2, , k-1
S = {0, 1, 2, , k-1}

U bao gồm 2
k
phần tử kể cả tập trống.
Ví dụ2.1: Xét Z
6

có Q
6
= {0, 1, x
2
, 1 + x
2
, x
4
, 1 + x
4
, x
2
+ x
4
, 1+ x
2
+ x
4
};
Số phần tử 2
3
= 8; Xem xét cụ thể với x
2
ta có các căn bậc hai nh sau












x
1 + x + x
3

x
4

1 + x
2
+ x
5


1 + x
3
+ x
4

1 + x + x
2
+ x
3
+ x
5


x
2
+ x
4
+ x
5

2
x
=

1 + x
2
+ x
3
+ x
4
+ x
5

10
Sqr = (1+x
2
)
Sqr = (1)
Sqr =
(
1+x
2
+x

4
)

Sqr= (1+x
4
)
Sqr = (x
4
)
Sqr = (x
2
) Sqr = (0)
Sqr =
(
x
2
+x
4
)

Nhận xét:
- Ta có 8 căn bậc hai của x
2
. Bằng phơng pháp tơng tự tính đợc
các 8 căn bậc hai của các QR còn lại. Số căn bậc 2 của thặng d
bậc 2 là 2
k
.
2.4.2. Phân hoạch vành
Z

2k
theo các căn bậc của các thặng d bậc hai
(QR)
Trong
Z
2k
có 2
k
các QR, mỗi QR có 2
k
các căn bậc hai khác nhau do vậy
tạo đợc nhiều kiểu phân hoạch mới. Vấn đề là sử dụng phân hoạch này
để tạo mã nh thế nào?
j
j= trong số phức j đợc gọi là phần tử liên
hợp. Do căn bậc hai không phải duy nhất do vậy Sqr đợc gọi là phần tử
liên hợp.
Nghiên cứu tính chất của phần tử liên hợp là căn bậc hai của một đa thức
duy nhất.Theo ví dụ 2.1 ta có:














Hình 2.2. Các thặng d bậc 2 trong vành Z
6

Tập tất cả căn bậc hai của các phần tử trong Q
6
xem bảng 2.5
Bảng 2.5. Lớp các phần tử liên hợp trên Z
6


S
r
(x
2
) S
r
(x
4
)

S
r
(1)


S
r
(1+x

2
)

S
r
(1+x
4
)S
r
(x
2
+x
4
)S
r
(1+x
2
+x
4
) S
r
(0)
(1) (2) (0) (01) (02) (12) (012) (03)
(013) (023) (014) (13) (23) (0123) (123) (14)
(034) (124) (025) (34) (0124) (0234) (234) (25)
(4) (5) (3) (04) (05) (24) (024) (0134)
(125) (035) (134) (0125) (35) (15) (015) (0235)
(245) (145) (235) (0245) (0145) (45) (045) (1245)
(01235) (1234) (01245) (1235) (1234) (0135) (135) (012345)
(02345) (01345) (12345) (2345) (1345) (0345) (345) (0)


11

2.4.3. Đặc tính của các phần tử liên hợp (Đặc tính các căn bậc hai của
các thặng d bậc hai)
2.4.3.1. Tính chất chung
Bổ đề 1:
a. Nếu a(x) là một căn bậc hai của f(x) thì
()ax cũng là một căn bậc
hai của f(x).
b. Tổng của hai phần tử liên hợp là một căn bậc hai của zero (0)
c. Tổng của 3 phần tử liên hợp là một phần tử liên hợp
Chứng minh:
Bổ đề 1.a. Giả sử a(x) là một căn bậc 2 của f(x): f(x) = [a(x)]
2
. Xét
b(x) là đa thức đối xứng của a(x). Ta có
21
0
() ()
n
i
i
bx ax x

=
=+

(2.3)
Bình phơng hai vế của (2.3), áp dụng nhị thức Newton ta có

[]
21
2
222
0
( ) [a(x)] [ ] [ ( )]
n
i
i
bx x ax

=
=+ =

(2.4)

21
2
0
[]0
n
i
i
x

=
=

nên [b(x)]
2

= f(x) (đpcm)

Nh vậy b(x) cũng là một căn bậc 2 của f(x).
2.4.3.2. Tính chất các căn bậc 2 của các luỹ dẳng
Bổ đề 2: (Nghiên cứu đặc tính căn bậc hai của các luỹ đẳng)
Các căn bậc hai của một luỹ đẳng trong Z
2n
là một nhóm nhân có phần
tử đơn vị là e
i
(x
2
).
Chứng minh: Xét hai phần tử liên hợp a(x) và b(x) ta có;
C(x) = a(x).b(x)
C
2
(x) = a
2
(x).b
2
(x) = e
i
(x
2
).e
i
(x
2
) = e

i
(x
2
)
C(x) cũng là một phần tử liên hợp
2.4.3.3. Tính chất các phần tử liên hợp luỹ đẳng nuốt
Định nghĩa 2.4. Trong Z
n
tồn tại một luỹ đẳng

1
0
0
()
n
i
i
ex x

=
=

( 2.5)

e
0
(x) đợc gọi là luỹ đẳng nuốt.Trong Z
2n
e
0

(x
2
) cũng đợc gọi là luỹ đẳng
nuốt.Trong Z
n
ta có x.e
0
(x) = e
0
(x). Trong Z
2n
ta có x
2
.e
0
(x) = e
0
(x
2
)
Bổ đề 3: (Nghiên cứu luỹ đẳng đặc biệt, luỹ đẳng nuốt)
Dịch vòng của một căn bậc hai của e
0
(x
2
) là một căn bậc hai của e
0
(x
2
)

(dịch vòng một phần tử liên hợp lại là một phần tử liên hợp).
Chứng minh: Giả sử a(x) là căn bậc hai của e
0
(x
2
).

12
Xét x.a(x) và [x.a(x)]
2
x
2
.e
0
(x
2
) = e
0
(x)
2
Bởi vậy x.a(x) cũng là một căn bậc 2 của e
0
(x)
2
Nhận xét: Các căn bậc 2 của zero cũng thoả mãn tính chất này, nghĩa là
dịch vòng của phần tử 0 cũng là căn bậc 2 của phần tử 0.
Nhờ 3 bổ đề trên việc tìm kiếm các phần tử liên hợp sẽ dễ dàng hơn.
Bổ đề 4: Các căn bậc hai của 0 là một nhóm cộng với phần tử đơn vị là 0
2.5. Các mã xyclic và xyclic cục bộ trên các phần tử liên hợp của luỹ
đẳng nuốt

2.5.1. M XCB xây dựng trên phân hoạch chuẩn (sử dụng nhóm nhân
Xyclic đơn vị).
Các lớp kề đều chứa phần tử liên hợp có độ dài tối đa là 2
k
. Mọi phần tử
lớp kề đều nằm trong căn bậc hai.
Bổ đề 5: Mỗi cấp số nhân Xyclic với công bội x trong các phần tử liên
hợp của e
0
(x
2
) là một lớp kề tự đối xứng.
Chứng minh: Giả sử a(x) là một căn bậc hai của e
0
(x
2
) thì a(x) phải có
dạng:
1
0
() (1 )( )
k
ii
k
iu i
ax x
x
x



=+ +

()
i
iu
ax
x

=

) + (
ik
iu
x
+


) + (
1
0
k
i
i
x

=

)
U là một tập con của S; S = {0, 1, 2,, k-1}
()

i
iV
ax
x

=

) + (
in
iU
x
+


)
Trong đó: UV = S UV =
Thực hiện dịch vòng a(x) k cấp:
().
ik
k
iV
ax x
x
+

=


i
iV

x

+


Cộng a(x) với a(x).x
k
:
1
0
() ().
k
i
k
i
ax ax x
x

=
+=

21k
i
ik
x

=
+



Tổng hai phần tử này là hai phần tử đối xứng, a(x) là một căn bậc hai thì
a(x).x
k
là căn bậc hai.
Bổ đề 6: Các phần tử liên hợp với luỹ đẳng nuốt là các đa thức có cùng
trọng số n.
Nhận xét:
a. Không phải mọi đa thức có trọng số n đều là các phần tử liên hợp
với luỹ đẳng nuốt.
b. Tập các đa thức có trọng số n > 2
k
(tập các phần tử liên hợp của luỹ
đẳng nuốt e
0
(x
2
)).
Ví dụ: với k= 5: trong Z
10
có 32 phần tử liên hợp của:
e
0
(x
2
) = 1 + x
2
+ x
4
+ x
6

+ x
8

Ba lớp kề chứa 10 phần tử, một lớp kề chứa 2 phần tử.


13
Bảng 2.6. Các phần tử liên hợp của Z
10

C
1
C
2
C
3
C
4

(0 1 2 3 4) (0 2 3 4 6) (0 3 4 6 7) (0 2 4 6 8)
(1 2 3 4 5) (1 3 4 5 7) (1 4 5 7 8) (1 3 5 7 9)
(2 3 4 5 6) (2 4 5 6 8) (2 5 6 8 9)
(3 4 5 6 7) (3 5 6 7 9) (3 6 7 9 0)
(4 5 6 7 8) (4 6 7 8 0) (4 7 8 0 1)
(5 6 7 8 9) (5 7 8 9 1) (5 8 9 1 2)
(6 7 8 9 0) (6 8 9 0 2) (6 9 0 2 3)
(7 8 9 0 1) (7 9 0 1 3) (7 0 1 3 4)
(8 9 0 1 2) (8 0 1 2 4) (8 1 2 4 5)
(9 0 1 2 3) (9 1 2 3 5) (9 2 3 5 6)
Bổ đề 7: Số các tổng kiểm tra trực giao với x

k
+1 có thể thiết lập đợc
trong tập 2
k
phần tử với luỹ đẳng nuốt bằng 2
k-1
.
Chứng minh: Giả sử a(x) là một phần tử liên hợp của luỹ đẳng e
0
(x
2
),
chúng ta có: a(x) = (1 + x
k
)(
i
iU
x


) + e
0
(x)
e
0
(x) là căn bậc hai chính của e
0
(x
2
)

U là tập con của S = {0, 1, 2,, (n-1)}
Xét phần tử liên hợp b(x) = (1 + x
k
)(
{0}
i
iU
x
+

) + e
0
(x). Vì {o}
{0}
i
x

= 1 ,
ta có: a(x) + b(x) = (1 + x
n
) có đúng các cặp phần tử a(x) + b(x) =
(1 + x
k
), số cặp nh vậy là 2
n-1

Bổ đề 8: Tập mọi phần tử liên hợp với luỹ đẳng nuốt tạo nên một mã
xyclic cục bộ có các tham số sau (n, k, d) = (2
n
1, n, 2

n-1
).
Đây là mã tối u thoả mãn giới hạn Grismer.[14]
2.5.2. M xyclic cục bộ xây dựng trên phân hoạch cực đại
Xét vành Z
2
[x]/(x
k
+1). Biết tồn tại đa thức a(x) sao cho lấy a(x) bằng giá
trị lớn nhất của đa thức f(x) trong đó f(x) là đa thức bất kỳ trong vành.
Tồn tại a(x) ord(a(x)) = max ord(f(x)), f(x) Z
2
[x]/(x
k
+1). Chọn a(x) là
phần tử sinh đa thức f(x)
2.5.3. M xyclic trên các phần tử liên hợp với 0
Giả sử a(x) là một căn bậc hai của 0.
Ta có: a(x) = (1 + x
k
)(
{0}
t
tT
x
+

); T S
n
= {0,1,2,,k-1}. Vì hai tính chất

căn bậc hai ta có thể tạo đợc mã xyclic.
2.6. Kết luận
Trong chơng này, nghiên cứu sinh đã nghiên cứu hoàn thiện thuật toán
về phân hoạch vành đa thức theo nhóm nhân xyclic đơn vị. Phân hoạch
vành với k lớn cho phép lựa chọn các lớp kề để xây dựng các bộ mã XCB

14
đáp ứng yêu cầu đặt ra. Điều này giúp cho ngời sử dụng có nhiều
phơng án lựa chọn mã XCB để ứng dụng vào hệ mật McEliece. Nhờ các
nghiên cứu lý thuyết ở trên về mã XCB dựa trên phân hoạch vành hỗn
hợp, phân hoạch vành theo các phần tử liên hợp cho phép chúng ta chứng
minh đợc khả năng đa dạng hoá trong việc lựa chọn các bộ mã sửa sai
XCB.
Chơng 3. Xây dựng hệ mật McEliece trên m XCB
Hiện nay trên thế giới các hệ mật 40 bit đợc cung cấp miễn phí, hệ mật
128 bit đợc coi là hệ mật tốt. Tác giả lựa chọn hệ mật 49 bít nằm trong
khoảng cho phép. Để ứng dụng mã XCB vào hệ mật McEliece, tránh các
nhợc điểm của hệ mật McEliece sử dụng mã Goppa, tác giả lựa chọn
mã XCB với phân hoạch k=8 kết hợp với mã kiểm tra chẵn lẻ để đảm
bảo tốc độ mã hoá và giải mã. Theo các kết quả nghiên cứu đã đa ra
trong chơng 2, chọn phân hoạch có các lớp kề có cùng trọng số và có
trọng số lẻ (trọng số bằng 3) để xây dựng các thuật toán mã hoá và giải
mã.
3.1 Tiêu chí lựa chọn bộ mã XCB và mô hình toán học để xây dựng
hệ mật McEliece
3.1.1 Tiêu chí lựa chọn bộ m XCB để xây dựng hệ mật McEliece
+ Mã XCB đợc lựa chọn phải tồn tại một thuật toán hiệu quả để sửa
đợc t lỗi.
+ Cấu trúc mã XCB cho phép sửa đợc t lỗi khi kết hợp với ma trận S
và P thì không tìm ra đợc cấu trúc của mã XCB đó.

+ Mã XCB(n,k) đợc xây dựng từ các lớp kề có cùng trọng số, và có
trọng số lẻ làm dấu kiểm tra là mã XCB có khả năng trực giao.
+ Số lợng khóa tồn tại trong lớp mã phải đủ lớn.
3.1.2 Mô hình toán học xây dựng hệ mật McEliece với m XCB
3.1.2.1 Tạo khoá
Mỗi đối tợng trong hệ thống trao đổi thông tin cần tạo ra một khoá
công khai và một khoá bí mật, khoá công khai là
'
i
G
, khoá bí mật là S
i
,
G
i
, P
i
Khóa bí mật
+ G là ma trận sinh của một mã XCB [n,k,d] có khả năng sửa sai t lỗi
theo phơng pháp giải mã ngỡng, có số lợng phân phối khóa đủ
lớn.
+ S là ma trận khả nghịch [k x k] trên Z
2
.
+ P là ma trận hoán vị [n x n] trên Z
2
.
Khóa công khai:
G = S.G.P
3.1.2.2 Mã hoá và giải mã

Mã hóa : e
k
(x, e) = xG + e
e (Z
2
)
n
: vector ngẫu nhiên có trọng số t đợc lựa chọn từ bản tin

15
Giải mã
Giải mã bản mã y (Z
2
)

- Tính y
1
= y.P
-1
- Giải mã y
1
.Ngời nhận tìm đợc y
1
= x
1
+ e
1
, x
1
C

- Tính
x
0
(Z
2
)
k
sao cho x
0
.G=x
1

-

Tính x = x
0
.S
-1
3.2 Sơ đồ khối xây dựng hệ mật McEliece với mã XCB
3.2.1 Sơ đồ m hoá
Theo đề xuất của nghiên cứu sinh bộ mã đợc lựa chọn là (512,49,64)
đây là bộ mã đợc xây dựng từ mã XCB(64,7,32) và mã (8,7,2).
Trong lợc đồ mã hoá này ta sử dụng mã XCB (64,7) để xây dựng ma
trận sinh G. Ma trận này đợc rút gọn từ mã XCB (64,8). Ma trận S là
ma trận khả nghịch [7x7], ma trận đơn vị P là ma trận hoán vị cấp [64 x
64]. Khoá công khai G' = S.G.P là ma trận [ 7x 64]. Bản rõ m đợc
tách ra thành từng đoạn dữ liệu 49 bit và đoạn dữ liệu có chứa tối đa 31
bit 1 và có độ dài tối đa 512 bit. Đoạn dữ liệu 49 bit đợc sắp xếp thành
ma trận [7x7], và đợc mã hoá bằng khoá công khai G' tạo ra ma trận [8
x 64] với hàng thứ 8 bằng tổng các cột từ 1 đến 7. Từ ma trận này đợc

chuyển thành ma trận [1 x 512]. Đoạn dữ liệu có chứa tối đa 31 bit 1 và
có độ dài tối đa 512 bit (vec tơ sai e) đợc cộng module 2 với ma trận
[1x512] tạo thành dữ liệu mã hóa
M
1
= m.G+e.
Tiếp tục dữ liệu lại đợc mã hoá theo chu trình trên cho đến khi kết thúc.
Sơ đồ khối mã hoá của hệ mật McEliece với mã XCB đợc chỉ ra trên
hình 3.1
.
3.2.2. Sơ đồ giải m
Dữ liệu m đợc mã hoá thành M
1
= m.G+e.
Quá trình giải mã là ngợc với quá trình mã hoá vì vậy việc giải mã đợc
thực hiện nh sau:
Dữ liệu đợc lấy lần lợt 512 bít một lần để giải mã tạo thành ma trận
[8x64]. Sau đó ma trận này đợc nhân với ma trận P
-1
[64x64] thành ma
trận M
2
:
M
2
= M
1
.P
-1


Qua thuật giải mã XCB dựa trên phơng pháp giải mã ngỡng theo đa
số, ta thu đợc dữ liệu 49 bít mã hoá là ma trận M
3
.
Sau khi nhân M
3
với ma trận S
-1
[7x7] ta thu đợc m: m = M
3
.S
-1
ta sẽ thu
đợc 49 bít dữ liệu của bản rõ.
Để giải mã vectơ sai e có chứa tốiđa 31 bít 1 đợc cộng thêm, ta lại tiếp
tục thực hiện mã hoá lại 49 bít đó theo phần 3.2.1 ta sẽ thu đợc 512 bít
mã hoá. Sử dụng 512 bít này cộng module 2 với 512 bít đã mã hoá ban
đầu ta thu đợc vectơ e có chứa 31 bít 1 của bản rõ đã cộng thêm trong
quá trình mã hoá. Sơ đồ giải mã đợc trình bày trên hình 3.2.

16







































Phơng án đợc lựa chọn với mục đích nâng cao hiệu quả truyền tin của

hệ mật mã hoá khoá công khai McEliece với mã XCB.


7
1
(,8) (, )
j
iij
=
=


File mó húa
Hỡnh 3.1. S khi mó hoỏ ca h mt McEliece vi mó XCB
+
Ma trn
[8x64]

Ma trn
[1x512]
Ma trn sinh G
[7 x 64]
Ma trn
[7x7]
Vộc t sai [1x n] cú
cha ti a 31 bớt 1
v n 512

File gc
File gc

File mó húa
Hỡnh 3.2. S khi gii mó ca h mt McEliece vi mó XCB
+
Gii mó 2
cp ngng
Ma trn P
-1

[
64x64
]

Ma trn tng kim tra
Ma trn
[
8x64
]

Ma trn
[
8x64
]
Ma trn
[
7x7
]
Ma trn S
-1

[

7x7
]
Thc hin mó húa theo
s hỡnh 3.1
Ma trn [1x n] cú
cha ti a 31 bớt 1
v n 512
Ma trn
[1x512]

17
3.3 Về một phơng pháp xây dựng hệ mật McEliece trên mã Xyclic
cục bộ
3.3.1 Phơng pháp tạo khoá m:
Hệ mật McEliece trên mã Xyclic cục bộ sử dụng ma trận sinh G dựa trên
phân hoạch vành theo nhóm nhân xyclic đơn vị với k = 8, Trên cơ sở đó
ta chỉ lựa chọn các lớp kề có trọng số là 3 để xây dựng bộ mã (64,8,32).
Bảng 3.1. Các lớp kề lựa chọn để xây dựng bộ mã (64,8,32)
(0) (1) (2) (3) (4) (5) (6) (7) a
0
012 123 234 345 456 567 670 017 b
0

023 134 245 356 467 057 016 127 c
0

034 145 256 367 047 015 126 237 d
0

045 156 267 037 014 125 236 347 e

0

056 167 027 013 124 235 346 457 f
0

024 135 246 357 046 157 026 137 g
0

025 136 247 035 146 257 036 147 h
0

Số phần tử của các lớp kề có trọng số là 3 là:


Thông qua phân hoạch vành theo nhóm nhân xyclic đơn vị xây
dựng ma trận G
1
(8 x 64) đợc cho trong bảng 3.3.
Bảng 3.2. Ma trận G
1
(8 x 64)
(0) (012) (034) (045) (023) (056) (024) (025)
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1

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

0 0 0 1 1 0 1 0
0 0 0 0 1 1 0 1
1 0 1 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 1 0 1 1 0 0
0 0 0 1 0 1 1 0
0 0 0 0 1 0 1 1
1 0 0 0 0 1 0 1
1 1 0 0 0 0 1 0
0 1 1 0 0 0 0 1
1 0 0 0 1 0 1 0
0 1 0 0 0 1 0 1
1 0 1 0 0 0 1 0
0 1 0 1 0 0 0 1
1 0 1 0 1 0 0 0
0 1 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 0 0 1 0 1 0 1
1 0 0 1 0 0 1 0
0 1 0 0 1 0 0 1
1 0 1 0 0 1 0 0
0 1 0 1 0 0 1 0
0 0 1 0 1 0 0 1
1 0 0 1 0 1 0 0
0 1 0 0 1 0 1 0
0 0 1 0 0 1 0 1
Từ ma trận G
1
(8 x 64) lấy giá trị của các hàng từ 1 đến 7 cộng với hàng
cuối cùng ta đợc ma trận sinh G (7 x 64)



3
8
8.7.6
56
3.2
C
=
=

18
Bảng 3.3. Ma trận sinh G(7,64)
1 0 0 0 0 0 0 1
0 1 0 0 0 0 0 1
0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 1
0 0 0 0 1 0 0 1
0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 1
1 0 0 0 0 1 0 0
1 1 0 0 0 1 1 0
1 1 1 0 0 1 1 1
0 1 1 1 0 1 1 1
0 0 1 1 1 1 1 1
0 0 0 1 1 0 1 1
0 0 0 0 1 0 0 1
1 0 0 1 0 1 0 1
0 1 0 1 1 1 1 1
0 0 1 1 1 0 1 0

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

0 1 0 0 0 0 0 1
0 0 1 1 1 1 1 1
1 0 1 1 0 1 1 1
0 1 1 0 1 1 0 0
1 0 0 0 0 0 0 1
0 1 1 1 0 1 1 1
0 0 0 0 1 1 0 0
1 0 1 1 0 0 0 1
0 1 1 0 1 1 1 1
Với bảng phân hoạch trên khi dịch vòng các phần tử trên cùng một lớp
kề hoặc hoán vị các lớp kề khác nhau ta xây dựng đợc các ma trận sinh
G khác nhau. Với lớp mã này ta có thể xây dựng đợc 8
8
.8! 676 tỷ
khóa .
Trên cơ sở lợc đồ của hệ mật McEliece ta có khóa công khai G=S.G.P
(S là ma trận khả nghịch cấp 7x7, P là ma trận hoán vị 64x64) do đó
ngoài việc hoán vị các vị trí trên phân hoạch để tạo ra các ma trận sinh G
khác nhau, ta còn có thể thay đổi ma trận S và P để tăng khả năng tạo
khoá cho hệ mật.
3.3.2 Thuật toán m hoá
3.3.2.1. Nguyên tắc chung
Để tăng khả năng tốc độ thông tin ta sử dụng mã XCB (64,7,32) kết hợp
với mã Elias (8,7,2): (512,49,64) = (64,7,32)(8,7,2)
Thông tin đầu vào đợc chia nh sau:
7 bit 7 bit 7 bit 7 bit 7 bit 7 bit 7 bit Có chứa 31 bit 1 và độ dài #512 bit
Khi mã hoá ta sẽ mã hoá mỗi lần 7x7=49 bit chứa thông tin thông qua
khóa công khai G' (7,64)= S.G.P
Trong đó: S là ma trận khả nghịch 7x7
G là ma trận sinh 7x64

P là ma trận hoán vị 64x64
G'=
(1,1) (1,7 ) (1,1) (1,6 4 ) (1,1) (1,6 4 )
(7,1) (7,7) (7,1) (7,64) (64,1) (64,64)
**
aaaaa a
aaaaa a





KK K
MO M MO M M O M
LL L


Khi mã hoá ta nhân ma trận chứa thông tin M (7x7) với ma trận
G'(7x64)

(1,1) (1,7 ) (1,1) (1,6 4 )
(7,1) (7,7) (7,1) (7,64)
*
aaaa
aaaa






KK
MO M MO M
LL



19
3.3.2.2. Thuật toán mã hoá
Sơ đồ thuật toán mã hoá đợc trình bầy trên hình 3.3









































Sp xp v 512 bit
Mó hoỏ d liu vi G
i

Ma trn (8,64)

ỳng
Sai


H

ỡnh 3.3.
S
thut toỏn mó hoỏ
Kt thỳc
512 bit ó mó hoỏ
Cng
module 2
K< T
Vec t sai V ly t
bn tin
Sai
ỳng
Chốn thờm du gi
thụng tin
Bt u
c khúa cụng khai G
i

(G
i
= S.G
i
.P)
K=0
c file d liu
c kớch thc file T
Phõn tớch d liu theo bit
- M(49 bit d liu )
- V(vect sai cha ti a 31 bit
1 v di 512 bit)

K=K+Leng(M)+Leng(V)
Cú 49 bit


mó húa?

Ghi kt qu

20
3.3.3 Thuật toán giải m
3.3.3.1. Nguyên tắc chung
Việc giải mã đợc thực hiện nh sau:
- Từ 512 bit dữ liệu thu đợc khôi phục thành ma trận M
1
(8x64)
- Nhân ma trận M
1
với ma trận nghịch đảo của P thu đợc ma trận
M
2
.
M
2
= M
1
*P
-1

- Sử dụng các tổng kiểm tra giải mã cho M
2

thu đợc ma trận M
3
-
(7x7)
- Nhân ma trận M
3
với ma trận nghịch đảo của S thu đợc ma trận
M.
M

= M
3
*S
-1
với ma trận M (7x7) là ma trận chứa 49 bit thông tin
mã hoá.
Do sử dụng vectơ sai chứa thông tin lên phải thực hiện thêm một số bớc
sau:
- Mã hoá lại ma trận M(7x7) thu đợc: M(7x7)*G'(7x64) thu đợc
ma trận 8x64 chứa dữ liệu mã hoá cha có vectơ sai (Hàng thứ 8
bằng tổng các hàng phía trên).
- Xắp xếp thành chuỗi 512 bit, sau đó thực hiện cộng module 2 với
512 bit thu đợc ta sẽ thu đợc vectơ sai.
3.3.3.2. Xây dựng các tổng kiểm tra
Do sử dụng mã xyclic cục bộ nên ta sử dụng phơng pháp giải mã
ngỡng cho nên ta phải xây dựng các tổng kiểm tra để giải mã.
Các tổng kiểm tra cấp 1 (Giải mã cho các cặp dấu)
A(0)
a
0

+
a
1
A(1)
a
1
+ a
2

A(2)
a
2
+ a
3

A(3)
a
3
+ a
4
A(4)
a
4
+ a
5
A(5)
a
5
+ a
6

A(6)
a
6
+ a
7

A(7)
a
7
+ a
0
Dựa trên phân hoạch vành theo nhóm nhân xyclic đơn vị với k=8 ta xây
dựng đợc 32 tổng kiểm tra cho cặp dấu A
0
(a
0
+ a
1
). Đối với tính chất
của mã (512,49,64) = (64,7,32) (8,7,2)
Ta thiết lập đợc thêm 32 tổng kiểm tra cho cặp dấu
01
00
+
aa
:
Sau đó xây dựng 64 tổng kiểm tra cho cấp ngỡng thứ 2 thông qua phân
hoạch vành theo nhóm nhân xyclic đơn vị với k=8 và tính chất của mã
(512,49,64) để giải mã cho từng dấu thông tin.
3.3.3.3. Thuật toán giải mã

Sơ đồ thuật toán giải mã đợc trình bày trên hình 3.4.
21











































Vectơ sai có
chứa dữ liệu
Cộng
Module 2
Kết thúc
Sắp xếp về
ma trận M
1
(8,64)
Đọc file mã hóa
Đọc kich thước file T
H
ình 3.4. Sơ đồ thu

t toán
g

iải mã
Ghép
dữ liệu
Đọc G
i
' = S
i
.G
i
.P
i
Sai
Đúng
K<T
Giải mã dữ liệu
M
2
= M
1
* P
i
-1

M
3
=

Giải mã sửa sai M
2
theo tổng kiểm tra 2 cấp ngưỡng

M = M
3
* S
i
-1

Sắp xếp thành 512 bít
Bắt đầu
Đọc P
i
-1
, S
i
-1
Đọc ma trận tổng kiểm tra của G
i
K=0
Phân tích dữ liệu theo bit
M (512 bit dữ liệu mã hóa)
K=K+Leng(M)
49 bit dữ liệu của bản tin
Ghi kết quả
Mã hóa lại dữ liệu với G
i
’ tạo Ma trận (8,64)
22


3.4 Nghiên cứu thử nghiệm hệ mật McEliece trên mã Xyclic cục bộ.
Phần này là ví dụ về xây dựng hệ mật McEliece trên mã Xyclic cục bộ.

3.4.1 Quá trình tạo khoá
3.4.2 Quá trình m hoá
3.4.3 Quá trình giải m
3.5 Đánh giá hệ mật McEliece trên mã Xyclic cục bộ
3.5.1. Các kết quả thử nghiệm thực tế
Chơng trình đợc xây dựng theo thuật toán trên. Việc chạy thử chơng
trình đợc sử dụng trên máy tính có cấu hình Pentium IV 2.4Ghz, RAM
1GB.
Các tham số của hệ mật McEliece sử dụng mã XCB đợc trình bầy trong
bảng 3.4. Trên bảng này ta nhận thấy nếu sử dụng thêm các chơng trình
nén dữ liệu phổ biến hiện nay thì nâng cao đợc tốc độ truyền tin mật mà
không ảnh hởng đến độ chính xác của bản tin. Việc sử dụng các kỹ
thuật nén trớc khi mã bản tin là một đề xuất mới của nghiên cứu sinh.
Với việc sử dụng các hệ nén tự phát triển sẽ đem lại tính bảo mật tốt hơn.
Tỷ lệ mã và giải mã không sử dụng nén
Bảng 3.4. Các tham số thử nghiệm hệ mật McEliece trên mã XCB
Dạng
file
Kích
thớc
(byte)
Kích
thớc bản
mã (byte)
Tốc độ
mã hoá
(byte/giây)
Tốc độ
giải mã
(byte/giây)

Tỷ lệ
bản mã / bản rõ
.pdf 4677 19975 < 1 s 137.56 4.27 (512/117)
.txt 12905 44163 <1s 138.76 3.42 (512/148)
.exe 24576 46746 <1s 261.45 1.9 (512/271)
.doc 30720 48461 <1s 331.4 1.57 (512/322)
Tỷ lệ mã và giải mã có sử dụng nén (Winrar)
Dạn
g

File

Kích
thớc
(byte)
Kích
thớc
sau nén
(byte)
Kích
thớc bản
mã (byte)
Tốc độ
mã hoá
(byte/giây)
Tốc độ
giải mã
(byte/giây)
Tỷ lệ
bản mã / bản

nén

Tỷ lệ
bản mã / bản rõ
.txt 12905 2.869 13009 <1s 143.45 4.53 (512/113) 1.008
.pdf 4677 3098 14225 <1s 147.52 4.59 (512/111) 3.04
.exe 24576 4795 22215 <1s 133.19 4.63 (512/110) 0.9
.doc 30720 3409 15624 <1s 136.36 4.58 (512/112) 0.51
3.5.2. Đánh giá hệ mật McEliece trên mã Xyclic cục bộ
Theo [54] [25] đã chỉ ra rằng khả năng phá vỡ hệ mật McEliece là cha
có thể. Trong quá khứ, một số nhà nghiên cứu mã đã đa ra một số cách

×