Lĩnh vực Công nghệ thông tin
Khảo sátmộtsố mã xiclic trên vànhđathức x
9
+ 1
PGS.TS. Nguyễn Bình, KS. Ngô Đức Thiện
Khoa Kỹ thuật điện tử 1
Tóm tắt: Các mã xyclic đã có nhiều ứng dụng rất hiệu quả trong thực tiễn. Chúng đợc xây
dựng trên các Ideal của vànhđa thức, tuy nhiên số Ideal trên mộtvànhđathức ít nên số bộ
tạo ra cũng hạn chế. Để mở rộng khả năng tạo thêm các mã trên mộtvànhđa thức, bài báo
đề cập đến phơng pháp phân hoạch vànhđathức (cụ thể trên vànhđathức
[ ]
9
2
Z x x 1
+
),
trên cơ sở đó khảo sátmộtsố bộ mã xyclic không có trên vành X
9
+1 theo quan điểm xây
dựng mã xyclic truyền thống.
1. Mộtsô khái niệm
1.1. Vànhđa thức
Nếu R là mộtvành giao hoán thì vànhđathức R[x] là mộtvành đợc tạo bởi tập tất cả
các đathức của biến x có các hệ số trong R. Hai phép toán là phép cộng và phép nhân đa
thức thông thờng với số học các hệ số đợc thực hiện trong vành R.
Trong trờng nhị phân, vànhđathức đợc ký hiệu:
(f(x); f, ) = Z
2
[x]/ x
n
+ 1
e(x) = 0 gọi là phần tử đơn vị, deg e(x) = 0 (bậc của e(x) = 0)
(f(x), +) là một nhóm đối với phép cộng, thỏa mãn các tiên đề của nhóm.
(f(x), *) là nửa nhóm đối với phép nhân, không tồn tại f(x), g(x) mà f(x).g(x) = 0.
Cấp của mộtđa thức, ký hiệu ord a(x), là số nguyên dơng (m) nhỏ nhất sao cho:
a
m
(x) = e(x) mod (x
n
+1).
Trong đó: e(x) là một lũy đẳng nào đó.
1.2. Nhóm nhân
Tập các đathức f(x) trong vànhđathức Z
2
[x]/ x
n
+1 với một phép toán nhân đathức tạo
nên một nhóm nhân G.
Nếu g(x), f(x) G thì g(x).f(x) = d(x) G. Trong nhóm nhân tồn tại phần tử đơn vị e(x)
với f(x).e(x) = f(x).
Các phần tử đơn vị e(x) thỏa mãn điều kiện: e(x) = e
2
(x) = e(x
2
) đợc gọi là lũy đẳng. Trong
một vành Z
2
[x]/x
n
+1 có thể tồn tại nhiều lũy đẳng khác nhau.
a) Nhóm nhân xyclic (CMG - Cyclic Multiplicate Groups)
Nhóm nhân xyclic trong vànhđathức là tập hợp các phần tử đều bằng lũy thừa của một phần
tử gọi là phần tử sinh. Trong vànhđathức có nhiều nhóm nhân xyclic, số nhóm nhân bằng số
các lũy đẳng có thể có trong vành.
A = {
,
2
,
3
, }
Trong đó: A là nhóm nhân xyclic; là phần tử sinh (đa thức sinh), cấp của phần tử sinh là
cấp của nhóm (cấp của nhóm là tổng số các phần tử của nhóm). Phần tử đơn vị của nhóm
chính là một lũy đẳng e(x).
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
b) Nhóm nhân xyclic đơn vị
Nhóm nhân xyclic đơn vị là một nhóm bao gồm mọi đơn thức và có cấp là n. Ký hiệu là I ,
hay nhóm nhân xyclic đơn vị là nhóm nhân xyclic với phần tử sinh là x.
I = {x, (x)
2
, (x)
3
, , (x)
n-1
, 1}
c) Nhóm nhân xyclic với phần tử sinh a(x)
Nhóm nhân xyclic với phần tử sinh là đathức a(x) bao gồm các phần tử là lũy thừa của
phần tử sinh và có thể viết dới dạng: A = {a(x), (a(x))
2
, (a(x))
3
, }
1.3. Cấp số nhân xyclic (CGP - Cyclic Geometic Progressions) trên vànhđa thức
Cấp số nhân xyclic trên vànhđathức là một tập hợp con có dạng sau:
A(a,q) = {a(x), a(x).q(x), a(x).q
2
(x), , a(x).q
m -1
(x)}.
Trong đó: m là số các số hạng của cấp số nhân; a(x) là số hạng đầu của cấp số nhân; q(x) là
công bội; a(x).q
m
(x) a(x) mod x
n
+ 1
Giá trị của m đợc xác định bởi cấp của nhóm nhân xyclic.
2. Cấu trúc các nhóm nhân xyclic trong vànhđathức Z
2
[x] /x
9
+ 1
2.1. Cấu trúc các nhóm nhân
Với vành Z
2
[x]/ x
9
+ 1, ta có n = 9 (là số lẻ).
+ Khai triển nhị thức: x
9
+ 1 = (1 + x)(1 + x + x
2
)(1 + x
3
+ x
6
).
Vành đathức này có có 2
9
- 1 = 511 phần tử khác 0.
Trong đó có: 256 phần tử có trọng số lẻ.
255 phần tử có trọng số chẵn.
+ Cấp cực đại của đathức a(x) đợc xác định nh sau:
Max ord(a(x)) = 2
m
-1 = 2
6
- 1 = 63.
ở đây m cũng chính bằng max m
s
= 6, hay cấp lớn nhất của đathức bất khả quy trong khai
triển nhị thức x
9
+1.
+ Phân tích max ord(a(x)) ra thừa số nguyên tố để xác định các ớc của nó:
Max ord(a(x)) = 63 = 3.3.7.
+ Cấp các phần tử trong vành là các ớc số của max ord(a(x)), tơng ứng các nhóm nhân trong
vành có các cấp là: 1, 3, 7, 9, 21, 63.
+ Xác định các chu trình C
s
.
Các chu trình C
s
đợc xác định nh sau:
{ }
1
2
, .2, .2 , , .2
s
m
s
C s s s s
=
trong đó
1
.2
s
m
s
s mod n
C
0
= {0} |C
0
| = m
0
= 1
C
1
= {1, 2, 4, 8, 7, 5} |C
1
| = m
1
= 6
C
3
= {3, 6} |C
3
| = m
3
= 2
Đa thức e(x) là một lũy đẳng khi và chỉ khi tập các hệ số khác không của nó là hợp mộtsố
các chu trình C
s
nào đó. Các lũy đẳng chính là các phần tử đơn vị của các nhóm nhân xyclic
trong vànhđa thức. Ta tìm đợc các lũy đẵng nh sau:
Bảng 1: Các lũy đẳng của vànhđathức Z
2
[x]/ x
9
+ 1
Học viện Công nghệ BCVT
Lĩnh vực Công nghệ thông tin
Các lũy đẳng
Dạng số mũ
của đa thức
Các chu trình
tơng ứng
e
1
(x) = 1 + x + x
2
+ x
4
+ x
5
+ x
7
+ x
8
(0124578)
C
0
C
1
e
2
(x) = 1 + x
3
+ x
6
(036)
C
0
C
3
e
3
(x) = e
0
(x) = 1 + x + x
2
+ x
3
+ x
4
+ x
5
+ x
6
+ x
7
+ x
8
(012345678)
C
0
C
1
C
3
e
4
(x) = 1 (0) C
0
e
5
(x) = x
3
+ x
6
(36) C
3
e
6
(x) = x + x
2
+ x
4
+ x
5
+ x
7
+ x
8
(124578) C
1
e
7
(x) = x + x
2
+ x
3
+ x
4
+ x
5
+ x
6
+ x
7
+ x
8
(12345678)
C
1
C
3
256 phần tử có trọng số lẻ bao gồm:
1 nhóm nhân cấp 63 với phần tử sinh a
1
(x) = (012), với lũy đẳng e
1
(x) = (0124578).
1 nhóm nhân cấp 3 với phần tử sinh a
2
(x) = (147), với lũy đẳng e
2
(x) = (036).
1 nhóm nhân cấp 1 với phần tử sinh a
3
(x) = e
3
(x) = (012345678).
3 nhóm nhân cấp 63 với phần tử sinh a
4
(x) = (014), a
5
(x) = (016), a
6
(x) = (02357) với lũy
đẳng e
4
(x) = (0).
1 nhóm nhân cấp 21 với phần tử sinh b
1
(x) = (12345), với lũy đẳng e
4
(x) = (0).
3 nhóm nhân cấp 21 với phần tử sinh a
7
(x) = (124), a
8
(x) = (245), a
9
(x) = (128) với lũy đẳng
e
4
(x) = (0).
Một nhóm nhân cấp 7 với phần tử sính b
2
(x) = (12345) với lũy đẳng e
4
(x) = (0).
2.2. Phơng pháp phân hoạch vànhđathức thành nhóm nhân xyclic
Các bớc phân hoạch vànhđathức để xây dựng các nhóm nhân xyclic có thể khái quát nh sau:
- Tìm cấp cực đại của nhóm nhân xyclic trong vành.
- Tìm phần tử sinh có cấp lớn nhất.
Do vànhđathức có cấu trúc đối xứng, một nửa vành gồm các phần tử có trọng số lẻ, một nửa
vành gồm các phần tử có trọng số chẵn. Hơn nữa do vành đối xứng nên khi biết nửa vành có
thể suy ra nửa vành kia. Vì vậy trớc tiên ta đi xác định các phần tử có trọng số lể. Trong các
phần tử có trọng số lẻ xác định các phần tử sinh có cấp lớn nhất.
Sau đó xây dựng tất cả các nhóm nhân chứa các phần tử có trọng số lẻ. Để xây dựng đợc tất
cả các nhóm nhân ta phải thực hiện các bớc:
o Xác định tất cả các đathức lũy đẳng trong vành, trên cơ sở phân tích các chu trình.
o Chọn các đathức lũy đẳng có trọng số lẻ để xây dựng các nhóm nhân chứa chúng.
- Xây dựng tất cả các nhóm nhân xyclic có thể có của vành. Tùy theo từng lũy đẳng mà
mỗi lũy đẳng có thể tham gia trong nhiều nhóm nhân.
- Lấy đối xứng tất cả các nhóm nhân có chứa các phần tử có trọng số lẻ sẽ tạo đợc tất cả
các nhóm nhân có chứa các phần tử có trọng số chẵn.
3. Khảo sátmộtsố mã xyclic và xyclic cục bộ trên vànhđathức X
9
+ 1
3.1. Khái niệm mã xyclic cục bộ (XCB)
Mã xyclic cục bộ là mã hệ thống tuyến tính (n, k) trong đó:
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
k dấu thông tin đợc chọn là k đơn thức có dạng
( )
0,1, 2, , 1
i
x i k=
và là nhóm nhân xyclic
cấp k của vành
[ ]
( )
2
/ 1
n
Z x x +
.
r n k
=
dấu kiểm tra đợc chọn là một tập con không trống tùy ý nào đó các lớp kề của
nhóm nhân này.
Tập các trởng lớp kề tạo mã sẽ cho ta mô tả đầy đủ của mã xyclic cục bộ.
3.2. Mối quan hệ giữa mã xyclic và xyclic cục bộ
Theo quan điểm xây dựng mã xyclic thông thờng: mã xyclic là một Ideal của vànhđa thức;
trong đó mỗi từ mã là một phần tử của Ideal đó trên vànhđa thức.
Theo quan điểm xây dựng mã XCB mối dấu mã là một phần tử của Ideal; toàn bộ từ mã là
một bộ phận của vành gồm n phần tử xác định của Ideal.
Nh vậy, ta hoàn toàn có thể dùng lý thuyết xây dựng các đathức sinh của mã xyclic để tạo
các trởng lớp kề cho các mã XCB. Với quan điểm đó: lớp kề đợc xây dựng theo cách sau đây
sẽ tạo nên mộtmã xyclic:
Mã XCB đợc xây dựng từ:
+ Trởng lớp kề là mộtđathức sinh g(x) thỏa mãn:
Đathức sinh là ớc của
( )
1; 1
n n
x g x x+ +
.
Bậc của đathức sinh bằng r với r = n k.
Sử dụng r dấu thông tin giả khi tạo lớp kề này; tức là cho trớc:
0 1 2 1
0
n
x x x x
= = = = =
.
Trên cơ sở phân tích nh vậy thì mã xyclic là một lớp kề đặc biệt của mã XCB. Hay mã xyclic
là một dạng đặc biệt của mã XCB.
3.3. Khảo sátmộtsố mã xyclic và xyclic cục bộ trên vànhđathức x
9
+ 1
a) Khảosátmã xyclic (n, k) với k = m.
Trong mộtvànhđathức luôn tồn tạimã xyclic (m, m) có d
0
= 1, mã này đợc xây dựng từ
nhóm nhân đơn vị.
{ }
, 1, 1
i
I x i m= =
Mã này không có khả năng phát hiện và sửa sai. Do số dấu thông tin k = m, nên để tạo các mã có
khả năng phát hiện và sửa sai xây dựng trên các nhóm nhân xyclic thì yêu cầu phải thỏa mãn
điều kiện n > m . Hay nói cách khác là cấp của nhóm nhân xyclic tạo mã phải lớn hơn và bằng
bội của m, nhóm nhân đơn vị I phải là nhóm nhân con của nhóm nhân xyclic tạo mã.
Nhóm nhân xyclic tạo mã (n, m) phải thỏa mãn 2 điều kiện:
Nhóm nhân xyclic đơn vị có cấp m phải là một nhóm con của nhóm nhân xyclic cấp n
( )
n m m nM hoặc
.
Cấp của nhóm nhân xyclic tạo mã (n, m) phải là ớc nào đó của cấp số lớn nhất các phần
tử trong vành:
( )
max ord an x
.
Trong vành Z
2
[x]/ x
9
+ 1, ta có m = 9.
( )
( ) ( )
9 2 3 6
1 1 1 1x x x x x x+ = + + + + +
.
Ta có max ord a(x) = 2
6
- 1 = 63 = 1.3.3.7.
Học viện Công nghệ BCVT
Lĩnh vực Công nghệ thông tin
Do đó, trong vành này tồn tại các nhóm nhân có cấp: 1, 3, 7, 9, 21, 63. Nhng chỉ có các
nhóm nhân có cấp 9 và 63 mới tạo đợc mã xyclic. Mã xyclic đợc xây dựng trên các nhóm
nhân có cấp 9 và 63 là 2 loại mã xyclic (9, 9) và (63, 9).
Mã (9, 9)
{ }
, 0,8
i
I x i= =
, mã (63, 9)
( )
{ }
, 0,62
i
A a x i= =
.
* Mã xyclic (63, 9) xây dựng trên nhóm nhân cấp 63
Xét đathức sinh a = (1 + x
2
+ x
3
+ x
5
+ x
7
), đathức này có cấp 63. Cấu trúc của nhóm nhân là
A = {a
i
= (1 + x
2
+ x
3
+ x
5
+ x
7
); i = 0, 1, 2, , 62}.
Đánh giá:
Số tổng kiểm tra (TKT) tự trực giao của mã này: J = 17, do đó khoảng cách tối thiểu d
0
= 18.
Theo giới hạn dới của độ dài từ mã (giới hạn Griesmer):
1
0
0
2
k
j
j
d
n
=
ta có:
8
0
18
18 9 5 3 2 1 1 1 1 41
2
j
j
n
=
= + + + + + + + + =
.
Với mã này có độ dài từ mã là n = 63 > 41 mã không tối u.
b) Khảosát các mã xyclic (n, k) với k < m.
* Mã xyclic (63, 7).
Chọn nhóm nhân xyclic theo modulo
( )
3 4 6 7
1h x x x x x x= + + + + +
với phần tử sinh của
nhóm nhân là:
( )
( )
4
1 014x x
= + +
có cấp là 63, làm mã xyclic (63,7).
Nhóm nhân này có dạng nh sau:
( )
{ }
( ) ( )
{ }
mod , 0,1, 2, ,62 014 mod , 0,1, 2, , 62
i
i
A h x i h x i
= = = =
Do mã này là mã xyclic có khả năng trực giao, cho nên phải giải mã 2 cấp. ở cấp ngỡng thứ
nhất giải mã ra các cặp dấu thông tin, sau đó qua bớc giải mã cấp ngỡng thứ hai mới giải mã
đợc toàn bộ các dấu thông tin.
Đánh giá:
Số TKT tự trực giao của mã này là: J = 30, do đó khoảng cách tối thiểu d
0
= 31.
Cấp ngỡng giải mã là:
30 1
16
2
M
+
= =
.
Theo giới hạn Griesmer:
1 6
0
0 0
31
31 16 8 4 2 1 1 63
2 2
m
i i
i i
d
n
= =
= = + + + + + + =
Mã này là mã tối u.
c) Khảosátmã xyclic cục bộ.
* Mã XCB (27, 9)
Mã XCB (27 9) đợc xây dựng từ 3 cấp số nhân (CGP) xyclic lấy trong phân hoạch vànhđa
thức
[ ]
9
2
/ 1Z x x +
thành các CGP cấp 9. CGP1 chính là nhóm nhân xyclic đơn vị (là đathức
thông tin). Chọn CGP2 (trởng lớp kề là (7)) và CGP3 (trởng lớp là (11)) làm các dấu kiểm
tra. Do CGP2 và CGP3 là 2 lớp kề lẻ liên tiếp, cho nên mã này sẽ là mã XCB có khả năng
trực giao.
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
Cấu trúc từ mã XCB (27,9) này nh sau: (các dấu mã biểu diễn ở dạng thập phân).
1 2 4 8 16 32 64 128256 7 14 28 56 112224448385259 11 22 44 88 176352193386261
Nếu biểu diển mã XCB này theo trởng lớp kề thì có dạng {1, 7, 11}.
Số TKT có khả năng trực giao J = 6 d
0
= 7. Theo giới hạn Griesmer thì mã này cũng
không tối u:
3.4. Phơng pháp giải mã ngỡng
Có các phuơng pháp giải mã nguỡng sử dụng cho việc giải mã XCB:
+ Giải mã nguỡng theo đasố (GMĐS).
+ Giải mã nguỡng đại số khác: giải mã nguỡng trên đasố 1 biểu quyết (GMĐS + 1), giải
mã nguỡng trên đasố 2 biểu quyết (GMĐS +2).
* Phơng pháp giải mã ngỡng theo đasố (GMĐS)
Giả sử ta xét một bộ mã tự trực giao nào đó, với bộ mã này ta có thể xây dựng đ ợc J tổng
kiểm tra trực giao cho một dấu mã nào đó.
{ }
, 1,
m
S m J=
Nếu
1
1
2
J
m
m
J
S
=
+
, trong đó
x
là số nguyên nhỏ nhất lớn hơn hoặc bằng x.
Thì coi e
i
= 1 có sai ở dấu thứ i, ngợc lại e
i
= 0: dấu thứ i thu đúng.
Mỗi tổng kiểm tra (TKT) trong hệ J TKT này cho phép đa ra các dấu a
i
ở dạng tổ hợp tuyến
tính của các dấu khác mà nó không nằm trong một TKT. Vì vậy có 2t TKT (2t = d
0
1 = J)
để giải mã đúng các dấu a
i
theo biểu quyết đa số.
Do các TKT phải thỏa mãn với bất kỳ từ mã nào thì tính chất tuần hoàn của bộ mã mới có
hiệu quả để giải mã các dấu tiếp theo. Do vậy ta dịch chuyển tuần hoàn từ mã và lại áp dụng
biểu quyết theo đa số. Cứ nh vậy sẽ thực hiện giải mã cho tất cả các dấu mã.
Nh vậy với mã xyclic tự trực giao thì phơng pháp giải mã ngỡng đơn giản hơn nhiều so với
các phơng pháp giải mã khác về thiết bị giải mã với bộ mã có cùng chiều dài. Thiết bị giải
mã chỉ gồm bộ ghi, bộ cộng và thiết bị ngỡng theo đa số. Chính có u điểm này nên việc thực
hiện kỹ thuật sẽ đơn giản.
Đối với các mã có khả năng trực giao, ta có thể thiết lập đợc hệ TKT có khả năng trực giao.
Một hệ TKT có khả năng trực giao nếu tồn tạimột tổ hợp tuyến tính các dấu mã:
1 2
i i im
M x x x= + + +
thỏa mãn điều kiện sau:
+ Tổ hợp tuyến tính các dấu mã M có mặt trong mọi TKT.
+ Các dấu còn lại:
j
x M
chỉ nằm ở nhiều nhất một TKT.
Trên cơ sở đó ta có thể coi tập M đóng vai trò nh một dấu mã x trong hệ TKT trực giao.
Theo nguyên tắc giải mã theo đa số, ta có thể giải mã cho tập M hay có thể nói đây là hệ
TKT trực giao với tập M. Thông thờng tập M là một cặp dấu mã.
4. Chơng trình mô phỏng mã hóa và giải mãmộtsốmã xyclic và xyclic cục bộ trên
vành đathức X
9
+ 1
Chơng trình mô phỏng đợc viết trên phần mềm MATLAB, với u điểm:
Chơng trình đơn giản, tốc độ tính toán nhanh.
Học viện Công nghệ BCVT
Lĩnh vực Công nghệ thông tin
Có thể mô phỏng thêm các bộ mã khác dựa trên các hàm mà chơng trình mô phỏng
đã lập.
Giao diện của chơng trình mô phỏng mã hóa và giải mã.
4.1. Mã có độ dài 63
4.2. Mã có độ dài 27
Kết luận
Mã xyclic là một trong các mã dễ thực hiện và đã đợc ứng dụng nhiều trong thực tế.
Ưu điểm của mã xyclic đó là: là loại mã có cấu trúc đại số tờng tận, có nhiều phơng pháp
giải mã hiệu quả, lập mã và giải mã đơn giản. Để xây dựng mã xyclic ngời ta tiến hành phân
hoạch vànhđathức thành các Ideal, Ideal thực chất là một nhóm con của nhóm cộng trong
vành. Tuy nhiên, số Ideal trong mộtvànhđathức ít nên khả năng tạo các bộ mã xyclic cũng
bị hạn chế.
Để mở rộng khả năng tạo mã có thể xây dựng các mã xyclic cục bộ trên vànhđa thức.
Bằng cách phân hoạch vànhđathức thành các nhóm nhân xyclic hoặc các cấp số nhân
xyclic, trên cơ sở các nhóm nhân và cấp số nhân xyclic này xây dựng các mã xyclic và xyclic
cục bộ. Khác với các mã xyclic thông thờng (mỗi từ mã là một phần tử có cấu trúc đại số),
với mã xyclic cục bộ mỗi dấu mã trong một từ mã là một phần tử có cấu trúc đại số. Do đó
mã xyclic cục bộ có cấu trúc đại số tinh tế hơn và cũng vì thế mà khả năng sửa sai của nó tốt
hơn.
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
Tài liệu tham khảo
[1] F.J. Mac Williams, N.J.A. Sloane: The theory of error-correcting codes. North-Holland
Publisher Com. 1977.
[2] A.J. Menezes, P.C. Van Oorchot, S.A. Vanstone: Handbook of Applied Cryptography.
CRC Press 1998.
[3] Ass.Prof. Nguyễn Bình, Nguyễn Quốc Hng: Circuland Crypto-System based on
polynominal ring with two cycloctomic cosets.
[4] PGS. TS. Nguyễn Bình, ThS. Vũ Việt, KS. Trần Đức Sự: Các vànhđathức có hai lớp kề
xyclic trong lý thuyết mã hóa.
[6] Vũ Việt: Phân hoạch vànhđa thức. Chuyên đề tiến sĩ, 2001
[7] Nguyen Binh. Tran Duc Su, Pham Viet Trung.
"Decomposition of polynomial ring according to the classes of conjugate elements".
ATC - 26. Hanoi, 10.2001.
[8] Nguyen Binh, Vu Viet, Pham Viet Trung.
"Decomposition of polynomial ring and coding with random clock". CAFEO 2000.
Hanoi, 22-24 Nov, 2000.
Học viện Công nghệ BCVT
. của vành đa thức, tuy nhiên số Ideal trên một vành đa thức ít nên số bộ
tạo ra cũng hạn chế. Để mở rộng khả năng tạo thêm các mã trên một vành đa thức, . pháp phân hoạch vành đa thức (cụ thể trên vành đa thức
[ ]
9
2
Z x x 1
+
),
trên cơ sở đó khảo sát một số bộ mã xyclic không có trên vành X
9
+1 theo