Thông tin tài liệu
1
BỘ GIÁO DỤC VÀ ĐÀO
TẠO
TẬP ĐOÀN BƯU CHÍNH VI
ỄN THÔNG
VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NGUYỄN TRUNG HIẾU
ỨNG DỤNG FPGA THỰC HIỆN THUẬT TOÁN NHÂN V
À BÌNH
PHƯƠNG TRÊN VÀNH ĐA THỨC
CHUYÊN NGÀNH : KỸ THUẬT ĐIỆN TỬ
MÃ SỐ:23.060.52.704.3898
TÓM TẮT LUẬN VĂN THẠC SỸ KỸ THUẬT
Người hướng dẫn khoa học: TS. NGUYỄN NGỌC MINH
HÀ NỘI - 2010
2
Luận văn được hoàn thành tại:
Học viện Công nghệ Bưu chính Viễn thông
Tập đoàn Bưu chính Viễn thông Việt Nam
Người hướng dẫn khoa học:
TS. Nguyễn Ngọc Minh
Phản biện 1: ……………………………………………………
……………………………………………………
Phản biện 2: ……………………………………………………
……………………………………………………
Phản biện 3: ……………………………………………………
……………………………………………………
Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm 2010.
Có thể tìm hiểu luận văn tại:
Thư viện Học viện Công nghệ Bưu chính Viễn thông
3
………………………………………………………
4
LỜI NÓI ĐẦU
Nâng cao hiệu quả của hệ thống truyền tin là một yêu cầu thực
tiễn luôn chứa đựng tính cấp thiết, tính đa dạng, lại vừa chứa đựng tính
phát triển không ngừng. Các phương pháp mã hóa, mật mã đã đóng góp
không nhỏ vào việc nâng cao hiệu quả và đảm bảo độ an toan, tin cậy
của các hệ thống truyền tin.
Thuật toán nhân và bình phương đa thức có lặp được ứng dụng và
đóng vai trò quan trọng trong việc xây dựng nhiều bộ mã hóa, mật mã
như: Các bộ mã hóa xyclic, xyclic cục bộ, Mật mã AES, các hệ mật
RSA, Chor-Rivest, Merkele-Hellman, Elgamal, Rabin,
Ngày nay, sự phát triển không ngừng của thiết kế số cho các cấu
kiện logic khả trình theo công nghệ CPLD/FPGA mở ra cho chúng ta
hướng nghiên cứu xây dựng thuật toán nhân và bình phương đa thức có
lặp trên các cấu kiện logic khả trình, từ đó ứng dụng xây dựng các bộ
mã hóa, mật mã trên các cấu kiện FPGA.
Luận văn nghiên cứu ứng dụng của thuật toán cho việc xây dựng
một số bộ mã xyclic và xyclic cục bộ. Mã xyclic cục bộ được
GS.TSKH. Nguyễn Xuân Quỳnh, GS.TS. Nguyễn Bình đưa ra đầu tiên.
Những nghiên cứu từ trước cho thấy những ưu điểm nổi bật của mã
như: Tính đa dạng, tốc độ lập mã nhanh, mạch giải mã đơn giản.
Phương pháp luận của đề tài dựa vào các khái niệm đã có như:
- Lưu đồ thực hiện thuật toán nhân và bình phương đa thức có
lặp cho ngôn ngữ lập trình thông dụng để xây dựng lưu đồ thực
hiện thuật toán trên FPGA.
- Cách xây dựng các bộ mã xyclic và xyclic cục bộ từ các tài liệu
đã nghiên cứu trước đó để tự xây dựng phương pháp mã hóa,
giải mã tạo nên các bộ mã hoàn chỉnh trên FPGA.
Nội dung luận văn bao gồm 3 chương và phần phụ lục.
Chương I: Cơ sở đại số.
Trình bày những vấn đề cơ bản về lý thuyết đại số, vành đa thức,
từ đó nghiên cứu thuật toán nhân và bình phương đa thức có lặp.
Chương II: Các mã xyclic trên vành đa thức.
5
Trình bày các mã xyclic, phân hoạch và các mã xyclic cục
bộ, quan hệ giữa mã xyclic và xyclic cục bộ, một số kết quả nghiên cứu
về mã xyclic cục bộ.
Chương III: Thiết kế và mô phỏng trên FPGA.
Trình bày tổng quan về FPGA, xây dựng lưu đồ thực hiện thuật
toán nhân và bình phương đa thức có lặp trên FPGA, xây dựng bộ mã
xyclic (15, 5), xây dựng bộ mã xyclic cục bộ (27, 9) với các chương
trình thiết kế và mô phỏng minh họa cho từng nội dung.
Phụ lục: Các chương trình thiết kế và mô phỏng trên FPGA
Phụ lục được chia thành 3 phần: P1, P2 và P3. Đó là chương trình
nguồn của các thiết kế trên FPGA như thuật toán nhân và bình phương
đa thức có lặp, mã hóa và giải mã bộ mã xyclic (15,5) với phần tử sinh
(024), mã hóa và giải mã bộ mã xyclic cục bộ (27,9).
CHƯƠNG 1: CƠ SỞ ĐẠI SỐ
1.1. MỞ ĐẦU
Trong chương này nghiên cứu về thuật toán nhân và bình phương
đa thức có lặp. Cấu trúc của chương gồm ba phần: Lý thuyết đại số,
vành đa thức, thuật toán nhân và bình phương đa thức có lặp. Hai phần
đầu là cơ sở lý thuyết giúp cho việc tiếp cận và hiểu sâu về thuật toán,
phần thứ ba sẽ nghiên cứu lưu đồ thực hiện thuật toán trên Z
n
, F
p
m
và
một số ví dụ áp dụng, cuối chương đưa ra các đề xuất ứng dụng thuật
toán và hướng nghiên cứu cho các chương tiếp theo.
1.2. LÝ THUYẾT ĐẠI SỐ
1.2.1. Những vấn đề cơ bản về lý thuyết số
Định lý 1.1:
Với mỗi số nguyên n 2 ta luôn phân tích được dưới dạng tích
lũy thừa các số nguyên tố:
1 2 3
1 2 3
. .
k
e e e e
k
n p p p p
Trong đó: p
i
là các số nguyên tố khác nhau.
e
i
là các số nguyên dương.
Ví dụ 1.1:
2 2
36 2 .3
;
3
88 2 .11
;
3 2
600 2 .3.5
;
2 2 2
900 2 .3 .5
Định nghĩa 1.10:
6
Các số nguyên modulo n (ký hiệu Z
n
) là tập các lớp tương
đương của các số nguyên {0, 1, 2, , n-1}. Các phép tính trong
Z
n
được thực hiện theo modulo n.
1.2.2. Những vấn đề cơ bản về cấu trúc đại số
Các hệ thống đại số là những hệ thống tuân theo những quy luật
và quy tắc nhất định, thông thường đó là những quy luật dùng trong hệ
thống số. Những hệ thống số cụ thể như nhóm, vành, trường.
1.3. VÀNH ĐA THỨC
1.4. THUẬT TOÁN NHÂN VÀ BÌNH PHƯƠNG ĐA THỨC
1.4.1. Thuật toán nhân và bình phương lặp trong Z
n
INPUT: a
Z, và số nguyên 0
k < n có biểu diễn nhị phân:
0
2
t
i
i
i
k k
(hay
0 1 2 1
0 1 2 1
.2 .2 .2 .2 .2
t t
t t
k k k k k k
)
OUTPUT:
mod
k
a n
B1: Đặt b = 1; Nếu k = 0 thì return (b)
B2: Đặt A = a
B3: Nếu k
0
=1 thì gán b = a
B4: for (i = 1; i <= t; i++)
B41: Đặt A = A
2
mod n
B42: Nếu k
i
= 1 thì đặt b = A*b mod n
B5: return (b)
1.4.2. Thuật toán nhân và bình phương lặp cho đa thức trong F
p
m
INPUT:
m
p
g x F
, a
Z, và số nguyên
0 1
m
k p
có biểu diễn:
0
2
t
i
i
i
k k
hay
0 1 2 1
0 1 2 1
.2 .2 .2 .2 .2
t t
t t
k k k k k k
.
(Trường
/
m
p
p
F x f x
, trong đó
p
f x x
là một đa
thức tối giản bậc m trên
p
).
OUTPUT:
mod
k
g x f x
B1: Đặt s(x) = 1; Nếu k = 0 thì return (s(x))
B2: Đặt G(x) = g(x)
B3: Nếu k
0
= 1 thì gán s(x) = g(x)
B4: for (i = 1; i <= t; i++)
B41: Đặt G(x) =G(x)
2
mod f(x)
7
B42: N
ế
u k
i
= 1 thì
đ
ặ
t
s(x)
=
G(x)*s(x)
mod
f(x)
B5: return (s(x))
Ví dụ 1.15:
22
7 6 4 2 9 3
1 mod 1
x x x x x x x x
Ta có
7 6 4 2
1
g x x x x x x
,
9 3
1
f x x x x
, k =
22
10
= 10110 (t = 4). Kết quả tính toán theo thuật toán như sau:
i
k
i
G(x)
s(x)
0
0
7 6 4 2
1
g x x x x x x
1
1
1
5 3 2
1
x x x
5 3 2
1
x x x
2
1
6 2
1
x x x
8 7 5 2
x x x x
3
0
6 3 2
1
x x x
8 7 5 2
x x x x
4
1
3
1
x
7 5 4 3 2
x x x x x x
1.4.3. Các ứng dụng của thuật toán trên vành đa thức
Thuật toán có nhiều ứng dụng trong việc tìm kiếm phần dư của
phép chia lũy thừa cho một số, lũy thừa của một đa thức cho một đa
thức, ứng dụng xây dựng các bộ mã hóa, mật mã: mã xyclic; Mật mã
AES, hệ mật RSA, Chor-Rivest, Merkele-Hellman, Elgamal, Rabin,
Nội dung luận văn tập trung tìm hiểu phương pháp thực hiện
thuật toán nhân và bình phương đa thức ở dạng tổng quát trên FPGA, từ
đó xây dựng thuật toán tạo nhóm nhân cho các mã xyclic và xyclic cục
bộ trên vành x
n
+ 1, là thành phần quan trọng cho việc xây dựng các bộ
mã xyclic và xyclic cục bộ ứng dụng cho việc mã hóa dữ liệu.
1.5. KẾT LUẬN
Chương này đã trình bày những kiến thức cơ bản nhất về cơ sở lý
thuyết đại số, vành đa thức và thuật toán nhân và bình phương có lặp
trên Z
n
và F
p
m
. Từ đó tìm hiểu những ứng dụng của thuật toán này.
Trong nội dung nghiên cứu của luận văn sẽ tập trung vào nghiên cứu
ứng dụng FPGA để thực hiện thuật toán áp dụng cho việc xây dựng các
bộ mã xyclic trên vành đa thức phục vụ cho việc mã hóa dữ liệu.
8
CHƯƠNG 2:
CÁC MÃ XYCLIC TRÊN VÀNH ĐA THỨC
2.1. MỞ ĐẦU
Trong chương này, chúng ta sẽ đi tìm hiểu về các nhóm nhân trên
vành đa thức và phân hoạch tổng quát vành đa thức làm cơ sở lý thuyết
cho việc nghiên cứu mã xyclic và xyclic cục bộ trên vành đa thức, về
cách thức xây dựng bộ tạo mã và giải mã cho các mã này. Nội dung của
chương cũng đề cập đến mối quan hệ giữa mã xyclic và xyclic cục bộ,
cũng như các kết quả nghiên cứu về mã xyclic cục bộ và một số hướng
mở trong việc nghiên cứu về mã này.
Chương này giúp cho việc xây dựng và kiểm tra các bộ mã sẽ
được nghiên cứu, thực hiện thiết kế và mô phỏng trong chương 3.
2.2. MÃ XYCLIC TRUYỀN THỐNG
2.2.1. Vành đa thức
Định nghĩa 2.1: Nếu
R
là một vành giao hoán thì vành đa thức
[ ]
R x
là một vành được tạo bởi tập tất cả các đa thứ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 theo modulo
1
n
x
.
Trong trường nhị phân
(2)
GF
, vành đa thức ký hiệu
2
[ ]/ 1
n
x x
Z .
2.2.2. Ideal của vành đa thức
Định nghĩa 2.2: Ideal I của vành đa thức gồm tập các đa thức
( )
a x
là bội của một đa thức
( )
g x
thỏa mãn:
( )| 1
n
g x x
(
( )
g x
là ước của
1
n
x
).
deg ( ) mindeg ( )
g x r a x
với
( ) I, ( ) 0
a x a x
.
Ký hiệu Ideal trong vành đa là
I ( )
g x
.
2.2.3. Định nghĩa mã xyclic
Định nghĩa 2.5:
Mã xyclic (n,k) là Ideal I=
g(x)
của vành đa thức
2
[ ]/ 1
n
x x
¢ .
9
Định nghĩa 2.6:
Mã xyclic là một bộ mã tuyến tính có tính chất sau: Nếu a(x)là
một từ mã thì dịch vòng của a(x) cũng là một từ mã thuộc bộ mã này.
2.2.4. Ma trận sinh và ma trận kiểm tra của mã xyclic
Vì mã xyclic
( , )
n k
là một mã tuyến tính nên có thể mô tả nó
thông qua ma trận sinh G chứa k véc tơ hàng độc lập tuyến tính. Ma
trận G được viết như sau :
1
( )
. ( )
( )
k
g x
x g x
G
x g x
Vì
( )| 1
n
g x x
, nên
1 ( ). ( )
n
x g x h x
, hay:
1
( )
( )
n
x
h x
g x
Đa thức
( )
h x
được gọi là đa thức kiểm tra.
Vì
( ). ( ) 0 mod 1
n
g x h x x
nên các đa thức
( )
g x
và
( )
h x
được
gọi là các đa thức trực giao.
2.3. PHÂN HOẠCH VÀNH ĐA THỨC VÀ MÃ XYCLIC CỤC BỘ
2.3.1. Nhóm nhân xyclic trên vành đa thức
Định nghĩa 2.7:
Nhóm nhân xyclic (CMG-Cyclic Multiplicate Group) trong vành
đa thứ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 đa thứ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.
2 3
{ , , , }
m
A
Trong đó: A là nhóm nhân xyclic; α là phần tử sinh (đa thức
sinh); m là cấp của nhóm nhân, cũng chính là cấp của phần tử sinh
.
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
có cấp bằng 1.
10
Định nghĩa 2.8:
Trong vành đa thức
2
[ ]/ 1
n
x x
Z , nếu tồn tại một đa thức mà
bình phương của nó lại bằng chính nó thì được gọi là đa thức lũy
đẳng và ký hiệu là
( )
e x
:
2 2
( ) ( ) ( )
e x e x e x
.
Các lũy đẳng
( )
e x
xác định trên cơ sở phân tích chu trình
s
C
.
2.3.2. Các loại nhóm nhân
2.3.3. Phân hoạch vành đa thức
2.3.4. Mã xyclic cục bộ trên vành đa thức
2.3.4.1. Khái niệm về mã xyclic cục bộ
Định nghĩa 2.12: Mã xyclic cục bộ là một mã tuyến tính có 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
A
.
2.3.4.2. Cách biểu diễn mã XCB
a) Biểu diễn theo trưởng lớp kề
Định nghĩa 2.13: Lớp kề là một tập hợp có tối đa k phần tử mà giá
trị của chúng được xác định từ phần tử trưởng lớp kề theo một biểu
thức toán học (trưởng lớp kề là phần tử đứng đầu tiên trong một lớp
kề). Nếu gọi giá trị của trưởng lớp kề là
0
thì các phần tử khác
trong lớp kề được tính:
0
.2 mod ; 1, 1
i
i
p i k
b) Biểu diễn theo ma trận sinh
Đây là cách biểu diễn truyền thống, mã XCB
( , )
n k
là mã hệ
thống tuyến tính nên có thể mô tả theo ma trận sinh
,
G n k
có
k
hàng và
n
cột.
, ,
, .
k k k n k
G n k I P
Với
,
k k
I
là ma trận đơn vị cấp k,
,
k n k
P
là ma trận kiểm tra.
2.3.4.3. Phương pháp xây dựng mã xyclic cục bộ
Bước đầu tiên để xây dựng mã XCB là xác định tất cả nhóm nhân
xyclic có thể có trên một vành đa thức, các nhóm nhân này có cấp khác
nhau. Sau đó xác định nhóm nhân sinh để xây dựng các cấp số nhân.
[...]... và bình phương trên vành đa thức với những nội dung đã thực hiện được như sau: Tìm hiểu về cơ sở lý thuyết số, vành đa thức và thuật toán nhân và bình phương đa thức có lặp trên Zn, Fpm với các ví dụ minh họa cho thuật toán Tìm hiểu các mã xyclic trên vành đa thức, phương pháp phân hoạch vành theo các nhóm nhân xyclic Tìm hiểu phương pháp mã hóa và giải mã cho các mã xyclic Về mặt kỹ thuật việc... thực hiện bằng các bộ cộng modul 2 và bộ nhân đa thức, việc giải mã thì sử dụng phương pháp giải mã ngưỡng theo đa số chỉ bao gồm các bộ cộng modul 2 và bộ so sánh ngưỡng Nghiên cứu xây dựng lưu đồ thuật toán cho phép nhân và bình phương đa thức có lặp trên vành đa thức Xây dựng được lưu đồ thuật toán cho đa thức f(x) tổng quát và đa thức f(x) = xn + 1 Xây dựng mạch thực hiện và mô phỏng trên FPGA. .. nhóm nhân xyclic Xây dựng mạch thực hiện và mô phỏng trên FPGA cho các mã xyclic (15,5) trên vành đa thức x5 + 1; mã xyclic (27,9) trên vành đa thức x9 + 1 Hướng nghiên cứu tiếp theo: - Nghiên cứu xây dựng mạch thực hiện thuật toán cho các bộ mã trên các vành đa thức khác Nghiên cứu xây dựng mô hình mã hóa và giải mã dữ liệu dựa trên mã XCB và thực hiện trên FPGA - Tiếp tục nghiên cứu các ứng dụng. .. thức, thuật toán nhân và bình phương đa thức có lặp, các mã xyclic trên vành đa thức Nội dung chương này là tìm hiểu tổng quan về công nghệ FPGA, xây dựng các thuật toán nhân và bình phương đa thức có lặp trên FPGA (dạng tổng quát và trường hợp riêng), làm cơ sở cho việc tạo ra các nhóm nhân cho các bộ mã hóa xyclic và xyclic cục bộ Tiếp đó sẽ nghiên cứu xây dựng các bộ giải mã thực hiện trên FPGA dựa trên. .. trên FPGA Kết quả thuật toán ứng dụng để xây dựng các các nhóm nhân cho các bộ mã hóa xyclic và xyclic cục bộ Thực hiện giải mã theo phương pháp giải mã ngưỡng trên2 4FPGA Xây dựng được các bộ mã hóa và giải mã ngưỡng, giúp ta xây dựng được các bộ mã xyclic và xyclic cục bộ thực hiện trên FPGA với một số ví dụ như đã khảo sát KẾT LUẬN VÀ KIẾN NGHỊ Đề tài Ứng dụng FPGA thực hiện thuật toán nhân và bình. .. xây dựng thuật toán nhân và bình phương đa thức có lặp trên FPGA dạng tổng quát, thứ hai là xây dựng thuật toán cho trường hợp đa thức f(x) = xn + 1 3.3.1 Thuật toán áp dụng cho f(x) tổng quát Từ thuật toán được trình bày trong chương 1, ở đây ta tiến hành xây dựng lưu đồ thực hiện thuật toán trên FPGA như hình 3.3 Trong lưu đồ sử dụng các thuật ngữ và cách trình bày theo ngôn ngữ mô tả phần cứng VHDL... đồ thuật toán nhân và bình phương đa thức thực hiện trên FPGA Giải thích lưu đồ: Thuật toán được thực hiện theo hai phần chính - Phép nhân: Thực hiện theo phương pháp nhân hai số nhị phân thông thường, đầu ra là g_d . nhóm, vành, trường.
1.3. VÀNH ĐA THỨC
1.4. THUẬT TOÁN NHÂN VÀ BÌNH PHƯƠNG ĐA THỨC
1.4.1. Thuật toán nhân và bình phương lặp trong Z
n
INPUT: a
Z, và. về thuật toán nhân và bình phương
đa thức có lặp. Cấu trúc của chương gồm ba phần: Lý thuyết đại số,
vành đa thức, thuật toán nhân và bình phương đa thức
Ngày đăng: 17/02/2014, 09:46
Xem thêm: Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức, Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức