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

Tìm hiểu xây dựng thuật toán giấu tin mật và ứng dụng (Luận văn thạc sĩ)

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 (1.76 MB, 76 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VŨ THỊ TÂM

TÌM HIỂU XÂY DỰNG THUẬT TOÁN GIẤU
TIN MẬT VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN – 2018


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VŨ THỊ TÂM

TÌM HIỂU XÂY DỰNG THUẬT TOÁN GIẤU
TIN MẬT VÀ ỨNG DỤNG

Chuyên ngành: Khoa học máy tính
Mã số: 8 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS HỒ VĂN CANH

THÁI NGUYÊN - 2018


i



LỜI CAM ĐOAN
Trong quá trình làm luận văn tôi hoàn toàn sử dụng những kiến thức đã
tổng hợp được từ các nguồn tài liệu có xuất xứ rõ ràng và được trích dẫn hợp
pháp.
Tôi xin chịu trách nhiệm về những lời nói trên và nhận mọi hình thức
kỷ luật theo quy định nếu như làm sai.
Thái Nguyên, tháng 06 năm 2018

Vũ Thị Tâm


ii

LỜI CÁM ƠN
Để hoàn thành luận văn “Tìm hiểu xây dựng thuật toán giấu tin mật và
ứng dụng” em đã nhận được sự hướng dẫn và giúp đỡ nhiệt tình của nhiều
tập thể và cá nhân.
Trước hết, em xin bày tỏ lòng biết ơn chân thành đến ban lãnh đạo
cùng quý thầy cô trong khoa Công nghệ thông tin – Trường Đại học Công
nghệ và truyền thông, Đại học Thái Nguyên đã tận tình dạy dỗ, truyền đạt
kiến thức, kinh nghiệm và tạo điều kiện thuận lợi cho em trong suốt thời gian
học tập và thực hiện đề tài.
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng dẫn
TS. Hồ Văn Canh, người đã gợi cho em những ý tưởng về đề tài, đã tận tình
hướng dẫn và giúp đỡ để đề tài được thực hiện và hoàn thành.
Xin trân trọng gửi đến gia đình, bạn bè và người thân những tình cảm
tốt đẹp nhất đã giúp đỡ động viên trong suốt khóa học và hoàn thành luận
văn.
Thái Nguyên, tháng 06 năm 2018

Học viên

Vũ Thị Tâm


iii

DANH MỤC HÌNH

Hình 2. 1: Hai lĩnh vực chính của kỹ thuật giấu thông tin ............................. 19
Hình 2. 2: Lược đồ chung cho quá trình giấu tin ........................................... 20
Hình 2. 3: Lược đồ chung cho quá trình giải mã ........................................... 21
Hình 2. 4: Phân loại các kỹ thuật giấu tin ...................................................... 24
Hình 2 .5: Chi tiết khối bytes tiêu đề tập tin BMP. ......................................... 28
Hình 2. 6: Chi tiết khối bytes thông tin tập tin BMP ...................................... 29
Hình 2. 7: Sơ đồ giấu tín SES ......................................................................... 36
Hình 2.8: Minh họa giấu bit b = 0 vào khối nhị phân B ................................ 39
Hình 2. 9: Minh họa giấu dãy bit M = 110 vào 4 khối ảnh nhị phân ............. 44
Hình 3. 1: bảng mã 26 chữ cái latinh ............................................................ 47
Hình 3. 2: Giao diện chính của chương trình ................................................. 62
Hình 3. 3: Giao diện giấu tin .......................................................................... 62
Hình 3. 4: Giao diện giấu file dữ liệu ............................................................. 63
Hình 3. 5: Giao diện tách tin .......................................................................... 63


iv

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

1


BMP

Basic Metabolic Panel - Ảnh bipmap

2

GIF

Graphics Interchange Format - Ảnh có định dạng GIF

3

JPEG

Joint Photographic Experts Group - Ảnh nén JPEG

4

LSB

Least Significant Bit - Bit có ý nghĩa thấp nhất

5

PNG

Portable Network Graphics - Ảnh nén PNG

6


PoV

Pairs of Values - cặp giá trị điểm ảnh chẵn/lẻ

7

HVS

Human Vision System - Hệ thống thị giác của con người

8

RGB

Red – Green – Blue


v

MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
LỜI CÁM ƠN ................................................................................................... ii
DANH MỤC HÌNH ......................................................................................... iii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .................................. iv
MỤC LỤC ......................................................................................................... v
MỞ ĐẦU ........................................................................................................... 1
1. Đặt vấn đề .................................................................................................. 1
2. Đối tượng nghiên cứu ................................................................................ 1
3. Bố cục của luận văn ................................................................................... 1

CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ SỞ .................................................. 3
1.1 Đổi cơ số ................................................................................................. 3
1.2 Độ phức tạp của thuật toán ..................................................................... 5
1.3 Phép chia hết và thuật toán Euclidean ..................................................... 6
1.4 Phần tử nghịch đảo .................................................................................. 8
1.4.1 Định nghĩa ........................................................................................ 8
1.4.2 Thuật toán tìm nghịch đảo của a-1 mod m ........................................ 9
1.5 Đa thức nguyên thủy ............................................................................... 9
1.5.1.Bậc của một phần tử ......................................................................... 9
1.5.2 Hàm

– Euler ............................................................................... 10

1.5.3 Phần tử nguyên thủy ....................................................................... 11
1.5.4 Đa thức nguyên thủy....................................................................... 12
1.5.5 Mã Hamming ( The Hamming Codes). ......................................... 14


vi

1.5.6 Mật mã vòng tuyến tính. ................................................................ 15
1.5.7 Đa thức nguyên thủy trong trường hợp GF(2) có cấp từ 2 đến cấp 7
.................................................................................................................. 16
CHƯƠNG 2: TÌM HIỂU TỔNG QUAN VỀ GIẤU TIN VÀ MỘT SỐ
THUẬT TOÁN GIẤU TIN MẬT(STEGANOGRAPHY) ............................ 18
2.1 Tổng quan về giấu tin và phân loại ..................................................... 18
2.1.1 Định nghĩa ...................................................................................... 18
2.1.2 Mục đích của giấu tin mật. ............................................................. 19
2.1.3 Mô hình kỹ thuật giấu thông tin cơ bản.......................................... 20
2.1.4. Các đối tượng dùng để giấu tin..................................................... 21

2.2 Giấu tin trong ảnh. ................................................................................. 24
2.3 Tổng quan ảnh BITMAP (BMP). .......................................................... 26
2.3.1 Giới thiệu ảnh BITMAP (BMP). .................................................... 26
2.3.2 Cấu trúc ảnh BITMAP (.BMP). ..................................................... 27
2.4. Một số thuật toán giấu tin trong ảnh và chất lượng ............................ 32
2.4. 1 Kỹ thuật giấu tin LSB. ................................................................... 32
2.4.2 Kỹ thuật giấu tin SES. .................................................................... 34
2.4.3 Kỹ thuật giấu tin theo khối bit ........................................................ 38
2.4.4 Thuật toán Wu-Lee ........................................................................ 41
CHƯƠNG 3: TÌM HIỂU XÂY DỰNG MỘT THUẬT TOÁN GIẤU TIN
MẬT TRÊN ẢNH KỸ THUẬT SỐ .............................................................. 46
3.1 Xây dựng ma trận 4 bit. ......................................................................... 46
3.1.1 Chọn đa thức nguyên thủy trong trường GF(2). ............................. 46


vii

3.1.2 Xây dựng không gian các nghiệm của p(x). ................................... 46
3.1.3 Lập bảng mã 26 chữ cái latinh....................................................... 46
3.2 Xây dựng thuật toán nhúng ................................................................... 48
3.2.1 Xây dựng ma trận sinh G ................................................................ 48
3.2.2 Đổi thông điệp m = m1…..mn sang dãy nhị phân theo bảng A .. 48
3. 3 Trích chọn (extraction) ......................................................................... 50
3.4 Đánh giá độ an toàn của hệ thống ......................................................... 53
3.5 So sánh độ an toàn của 2 hệ thống ....................................................... 57
3.6 Nhận xét đánh giá................................................................................... 59
3.7. Chương trình thử nghiệm ..................................................................... 60
3.7.1 Môi trường cài đặt .......................................................................... 60
3.7.2 Mô hình hệ thống ............................................................................ 60
KẾT LUẬN ..................................................................................................... 63

TÀI LIỆU THAM KHẢO ............................................................................... 66


1

MỞ ĐẦU
1. Đặt vấn đề
Hiện nay có nhiều thuật toán giấu tin mật và thủy vân đã được
công bố [1]. Trong đó cũng có nhiều thuật toán giấu tin mật đã bị phát hiện
bằng các kỹ thuật thống kê toán học. Vì vậy một vấn đề đặt ra là: Đánh giá
mức độ an toàn của một thuật toán giấu tin như thế nào? Đặc biệt là hệ thống
giấu tin mật phục vụ an ninh quốc phòng. Ta biết rằng, lượng thông tin được
giấu vào trong một ảnh là rất quan trọng nhưng phải đảm bảo được mức độ an
toàn của hệ thống giấu. Đề tài tập trung tìm hiểu và xây dựng một thật toán
giấu tin mật vào ảnh kỹ thuật số sao cho lượng thông tin giấu được nhiều và
đồng thời có mức độ an toàn cao, tức là ảnh có chứa tin mật và ảnh gốc khác
nhau có thể chấp nhận được để ứng dụng được trong nhiều lĩnh vực khác
nhau. Đó là mục đích và ý nghĩa của đề tài luận văn: Tìm hiểu xây dựng một
thuật toán giấu tin mật và ứng dụng. Trong phạm vi đề tài luận văn có giới
thiệu một hệ thống steganography mới và đồng thời đưa ra so sánh về mức độ
an toàn giữa hệ thống được đề xuất và hệ thống đã được công bố.
2. Đối tượng nghiên cứu
Đề tài tập trung nghiên cứu các đối tượng sau đây:
- Tập trung tìm hiểu, đánh giá ưu nhược điểm của một số thuật toán
giấu tin mật trong ảnh kỹ thuật số.
- Xây dựng thuật toán giấu tin mật mới.
3. Bố cục của luận văn
Nội dung của luận văn gồm có: Phần mở đầu, ba chương chính, kết
luận, mục lục và tài liệu tham khảo. Nội dung cơ bản của luận văn được trình
bày như sau:



2

Phần mở đầu: Nêu lý do chọn đề tài, đối tượng nghiên cứu và bố
cục của luận văn
Chương 1: MỘT SỐ KIẾN THỨC CƠ SỞ
Chương này sẽ trình bày một số kiến thức toán học bổ trợ
Chương 2: TỔNG QUA VỀ GIẤU TIN VÀ MỘT SỐ THUẬT TOÁN
GIẤU TIN MẬT TRONG ẢNH KỸ THUẬT SỐ
Chương này sẽ phân tích, đánh giá một số thuật toán giấu tin mật đã
được công bố:Kỹ thuật LSB, Kỹ thuật SES, Kỹ thuật giấu tin theo khối bit,
thuật toán Wu-Lee.
Chương 3: TÌM HIỂU XÂY DỰNG MỘT SỐ THUẬT TOÁN GIẤU
TIN MẬT
Chương này sẽ trình bày thuật toán đề xuất và đánh giá độ an toàn của
từng thuật toán. Cài đặt thử nghiệm việc giấu tin dựa theo thuật toán đề xuất.


3

CHƯƠNG 1: MỘT SỐ KIẾN THỨC CƠ SỞ
1.1 Đổi cơ số
Số mà chúng ta sử dụng hàng ngày (0, 1, 2, 3, …, 7, 8, 9 ) là các số được
biểu diễn theo cơ số 10.
Ví dụ 1:

Tóm lại, một số n tổng quát viết theo cơ số 10 bao giờ cũng có thể được
biểu diễn một cách duy nhất dưới dạng:


trong đó,
với i = 0,1,2,..,k-1;

, nói cách khác ai є{0,1,2,…,9}
với ak ≠ 0.

Ứng với mỗi số n, biểu diễn ở (1) là duy nhất. Do đó, thay vì viết số n, ta
viết n dưới dạng:

, con số 10 biểu thị cơ số. Trong

thực tế ta cần số n biểu thị dưới dạng có số b tùy ý như sau:
hay viết ngắn gọn là:
, tức là :

Nếu b = 2, ta có số n biểu diễn dưới dạng cơ số 2. Khi đó:


4

Trường hợp

thì thay

là những con số mà người ta có

thể dùng các chữ cái Latinh.
Ví dụ 2:
Ví dụ 3: Khi b = 26, người ta sử dụng các chữ cái từ A đến Z thay cho
0,1,..,25.


Ví dụ 4: Hãy đổi các số

sang cơ số 26:

Ta có :
hay
Ví dụ 5 : Hãy đổi 106 sang cơ số lần lượt là 2, 7, và 26.
Ta có:
.
Để chứng minh rằng: các biểu diễn trên là duy nhất ứng với mỗi cơ số cụ thể,
ta có mệnh đề sau đây:
Mệnh đề: Xét không gian các đa thức V, cấp n tùy ý trên trường vô
hướng K nào đó. Ta xét một tập hợp S = { 1, x, x2, x3,..., xn } trong V . Khi
đó, S là một cơ sở trong V.
Chứng minh: Ta chỉ cần chứng minh rằng các vector trong S là độc lập
tuyến tính. Muốn vậy, cho α0, α1, α2,..., αn và xét tổ hợp tuyến tính :
α0 + α1x +... + αn = 0

(1)


5

Ta cần chứng minh rằng khi đó αi = 0, đối với mọi i = 0,1, 2,...,n.
Thật vậy, giả sử, n= 1, khi đó, lấy đạo hàm 2 vế của (1), ta có α1 = 0 và
do đó, α0 = 0. Giả thiết đẳng thức (1) đúng cho n = k -1, ta sẽ chứng minh
rằng đẳng thức (1) đúng cho cả n = k. Bằng cách lấy đạo hàm của đẳng thức
(1) n-lần , ta suy ra αn = 0. Nhưng theo quy nạp ta đã có α0, α1,..., αn-1 = 0,
vậy mệnh đề được chứng minh.

1.2 Độ phức tạp của thuật toán
Định nghĩa 1: Cho



là hai hàm nhiều

biến số xác định trong miền gồm tập hợp các bộ k số nguyên dương. Giả sử
có tồn tại hai hằng số B và C thỏa mãn
thì ta nói rằng f bị
chặn bởi g và viết là
Ví dụ 6:
a. Cho f(n) là một đa thức cấp d mà các hệ số của nó dương. Khi đó ta
có :

.
b. Cho ԑ là một số dương bé tùy ý ( no matter how small). Khi đó, chúng

ta có thể chứng minh được rằng:
c. Ký hiệu f(n) là số k thành phần (digits) nhị phân trong n ( ví dụ n =
10110 thì => f (n) = 5 ). Khi đó có thể dễ dàng thấy rằng f(n) = O(log n).
Chú ý nếu viết f(n) = O(1) thì có nghĩa là f(n) bị chặn bởi một hằng số nào
đó.
Bây giờ, chúng ta trở lại bài toán ước lượng thời gian của chúng ta đối với
phép nhân một số nguyên k_bit với một số nguyên khác l_bit.
Ta có: Thời gian (k_bit x l_bit) = O(k.l).


6


Một cách tổng quát có:
Thời gian(nxm) = O((log n)(log m)).
Ví dụ 7: Hãy ước lượng thời gian cần thiết để đổi một số nguyên k_bit
thành cơ số 10.
Giải: Cho n là một số nguyên được viết dưới dạng cơ số nhị phân k_bit.
Thuật tóan đổi như sau: Chia số n cho 10 = (1010)2 . Còn lại bằng một trong
các số nguyên 0, 1, 10, 11, 100, 101, 110, 111, 1000 hoặc 1001.
Thời gian chuyển số nhị phân n k_bit về một số nguyên cơ số 10 là: O(
log2n).
Định nghĩa 2: Một thuật toán để thực hiện giải trên máy tính các số
nguyên n1, n2, …, nr có k1, k2, …, kr bít tương ứng được gọi là thuật toán thời
gian đa thức nếu có tồn tại các số nguyên d1, d2, …, dr sao cho số các toán tử
bít đòi hỏi để biểu diễn thuật toán là
1.3 Phép chia hết và thuật toán Euclidean
Cho trước hai số nguyên a và b và một số nguyên dương ( m ≥ 1). Ta
nói rằng a chia hết cho b theo modulo m nếu a – b = k.m với k = 0, 1, 2 , ... và
ta viết a ≡ b mod m.
Giả sử p là một số nguyên tố, α là một số nguyên không âm. Khi đó,
chúng ta ký hiệu pα|| b để chỉ ra rằng pα là lũy thừa cao nhất α của p mà b chia
hết cho pα, tức là b chia hết cho pα và b không chia hết cho pα+1. Và trong
trường hợp đó, ta nói rằng pα là ước đúng của số b.
Nếu ab chia hết cho số nguyên tố p khi đó, hoặc a chia hết cho b (ta ký
hiệu p|a) hoặc b chia hết cho p( p|b).


7

Nếu m|a và n|a nếu m,n là số nguyên tố sao cho UCLN(m, n) = 1. Khi
đó m.n|a.
Chú ý! Ta dùng kí hiệu (a, b) để chỉ ước chung lớn nhất của a và b. Tức

là thay vì viết UCLN(a, b) ta viết (a, b).
 Thuật toán Euclidean và thuật toán Euclidean mở rộng.
Trước hết, ta trình bày bổ đề sau:
Bổ đề 1: Cho m,n là những số nguyên, ta giả sử m ≥ n. Ta chia m cho n và
nhân được kết quả:
khi đó
Bổ đề 2: (m, 0) = m với mọi m nguyên.
Từ bổ đề nêu trên, ta có thuật toán tìm (m, n) như sau:
Input: Cho trước m và n ( già sử m ≥ n) là hai số nguyên.
Output: Tìm (m, n).
Thuật toán:
Bước 1: Nếu n = 0, m là đáp số!
Bước 2:

và quay lại bước 1.

Mệnh đề 1: Số các phép toán trong thuật toán Euclide không vượt quá
2log2n.
Mệnh đề 2: Nếu (m, n) = d thì có tồn tại hai số nguyên x, y sao cho:
mx + ny = d.


8

Từ mệnh đề 2, ta có thuật toán Euclide mở rộng tìm 3 số x, y, d sao cho:
mx + ny = d sau đây:
Input: m, n ( giá trị m ≥ n)
Output: x, y, d: mx + ny = d.
Thuật toán:
Khởi tạo: Cho ( a1, a2, a3 ), ( b1, b2, b3), ( c1, c2, c3 ) là các vector.

Bước 1: ( a1, a2, a3 ) ← ( 0, 1, m ); ( b1, b2, b3) ← ( 0, 1, n );
Bước 2: Nếu b3 = 0 thì dừng và ( a1, a2, a3 ) là đáp số bài toán.
Bước 3: Đặt

; ( c1, c2, c3 ) ← ( a1, a2, a3 ) – q.( b1, b2, b3);

( a1, a2, a3 ) = ( b1, b2, b3); ( c1, c2, c3 ) = ( b1, b2, b3); và quay lại bước 2.
Đáp số: a1 = x, a2 = y, a3 = d;
1.4 Phần tử nghịch đảo
1.4.1 Định nghĩa
Cho m là một số nguyên dương và a là một số nguyên. Nếu tồn tại một
số nguyên b sao cho ab ≡ 1 mod n thì b được gọi là phần tử nghịch đảo của a
theo modulo m.
Ta thấy rằng, nếu b là phần tử nghịch đảo của a theo modulo m thì mọi
số nguyên có dạng b + km cũng là nghịch đảo của a, trong đó k = 0, ±1, ±2, ...
Tuy nhiên trong các số có dạng b + km, có tồn tại duy nhất một số nguyên
dương nằm giữa 0 và m và số đó được kí hiệu là a-1 mod m.


9

1.4.2 Thuật toán tìm nghịch đảo của a-1 mod m
Cho a, m > 0, ta kí hiệu d = ( a, m).
Khẳng định 1: Điều kiện cần và đủ để tồn tại nghịch đảo a-1 của số a là
d =1.
Chứng minh: Thật vậy,
Giả sử d > 1, khi đó ta có: a = a1.d, m = m1.d với a1, m1 nguyên
(dương ). Nếu tồn tại a-1 thì:

Vì a1, a-1, k, m1 nguyên nên


phải là số nguyên. Nhưng do

d> 1 nên hệ thức (1) không thể xảy ra. Nó chỉ xảy ra khi và chỉ khi d = 1. Đó
là điều ta cần chứng minh.
Chú ý! Sử dụng thuật toán Euclide mở rộng ta có thể tìm được a-1, nếu
d = 1 và khi đó giá trị a-1 nằm trong ô a2 của thuật toán.
1.5 Đa thức nguyên thủy
Trước khi trình bày khái niệm đa thức nguyên thủy, chúng ta sẽ giới thiệu
qua về phần tử nguyên thủy.
1.5.1 Bậc của một phần tử
Định nghĩa 1: Cho a và m là 2 số nguyên dương tùy ý. Khi đó, nếu tồn tại
một số nguyên dương bé nhất mà thỏa mãn điều kiện:
thì số h được gọi là bậc của phần tử a theo modulo m và viết là:


10

Chú ý! Không phải với mọi cặp số nguyên dương a, m đều tồn tại số h
thỏa mãn điều kiện (2). Cụ thể ta có mấy khẳng định sau đây:
Khẳng định 1: Cho hai số nguyên dương a và m. Để tồn tại số guyên
dương h có tính chất

, điều kiện cần và đủ là (a, m) = 1 { (a, m)

là kí hiệu ước số chung lớn nhất của a và m}.
Chứng minh: Thật vậy, giả sử trái lại, (a, m) = d ≥ 2 và có tồn tại h
nguyên dương mà ah ≡ 1 mod m. Nhưng do giả thiết phản chứng, ta có
a = d.a1 , m = d.m1 với a1, m1 nguyên.
Khi đó


hay tương đương :
(3)

Do h, d, a1, k, m1 nguyên nên biểu thức

phải là số nguyên

(có thể âm ). Do đó đẳng thức (3) là vô lí, vì d ≥ 2. Vậy khẳng định được
chứng minh.
Khẳng định 2: Giả sử h = ordm(a) . Khi đó:
+ a, a2, ..., ah là những số khác nhau thuộc Zm*.
+ Nếu ak ≡ 1 mod m thì h phải là ước số của k, đặc biệt h là ước của hàm
Φ(m).
1.5.2 Hàm

– Euler

Định nghĩa 2: Ta kí hiệu
nguyên dương nào đó. Khi đó hàm

với m là số
(m) – Euler được định nghĩa là:

(Lực lượng của tập hợp
chính là số phần tử

). Như vậy hàm

mà nguyên tố với m ( trừ x = 0).


(m) – Euler


11

Các tính chất của hàm
- Tính chất 1:

(m).

(1) = 0.

- Tính chất 2:

) với p là ước số nguyên tố của m.

- Tính chất 3: Nếu

với p1, p2, ..., pk là các số nuyên tố

khác nhau còn e1, e2, ..., ek ≥ 0 là các số nguyên nào đó. Khi đó:
.
- Tính chất 4: Nếu m, n là những số tự nhiên sao cho (m, n) = 1, khi đó,
ϕ(m.n) = ϕ(m).ϕ(n) , đặc biệt nếu m là số nguyên tố m = p thì :
ϕ(m) = ϕ(p) = p– 1.
- Tính chất 5: Nếu m = p.q trong đó p, q là 2 số nguyên tố phân biệt thì :
ϕ(m)= ϕ(p.q) = (p – 1)(q – 1).
- Tính chất 6: Nếu n = pk với p là số nguyên tố còn k là số nguyên
dương, thế thì: ϕ(n) = pk-1(p – 1).

- Tính chất 7: Với mọi n ≥ 5, ta có:
- Tính chất 8 ( Định lý Euler) : Nếu (a, m) = 1 thì aϕ(m) ≡ 1 mod m với a,
m nguyên dương.
- Tính chất 9: Cho n = p.q , trong đó, p,q là hai số nguyên tố phân biệt.
Khi đó:

.

1.5.3 Phần tử nguyên thủy
Định nghĩa 3: Cho g là một số nguyên dương và m là một số nguyên
(m≥ 2) sao cho (g, m) = 1. Nếu ϕ(m) là bậc của g theo modulo m thì g được
gọi là phần tử nguyên thủy trong
Một số định lý quan trọng:

.


12

- Định lý 1: Xét vành

, m ≥ 2. Khi đó, trong

có ít nhất một phần

tử nguyên thủy khi và chỉ khi m = 2, 4, pk hoặc m = 2qk. Trong đó p là số
nguyên tố và q là số nguyên tố lẻ và k ≥ 1 là một số nguyên.
- Định lý 2: Cho g và p, trong đó p là số nguyên tố. Khi đó, g là một
phần tử nguyên thủy trong


đối với mọi q

nếu và chỉ nếu

là ước số nguyên tố của p – 1.
Một cách tổng quát, ta có một số định lý sau:
- Định lý 3: Cho

với p1, p2, ..., pk là những số

nguyên tố phân biệt, còn ei ≥ 1 là những số nguyên, i = 1, 2, ..., k. Khi đó
là một phần tử nguyên thủy khi và chỉ khi

với mọi i

= 1, 2, ..., k.
- Định lý 4: Cho p là một số nguyên tố, α là một phần tử nguyên thủy
trong

. Khi đó mọi phần tử

đều tồn tại một j ( 0 ≤ j ≤ p – 2) sao cho

, và β là phần tử nguyên thủy khi và chỉ khi (j, p – 1) = 1.
- Định lý 5: Số các phần tử nguyên thủy có thể có trong

( với m thỏa

mãn điều kiện của Định lý 1 của mục này) là ϕ(ϕ(m)). Trường hợp đặc biệt,
. Khi đó, số


nếu m = p là số nguyên tố thì
các phần tử nguyên tử nguyên thủy trong

sẽ là ϕ(p – 1).

Ví dụ: Cho p = 7. Thế thì số các phần tử nguyên thủy trong

là:

1.5.4 Đa thức nguyên thủy
Trong phạm vi tìm hiểu này, ta chỉ xét các đa thức trong trường GF(2).


13

Định nghĩa 1: Đa thức P(x) cấp m ≥ 1 trong trường GF(2) được gọi là
đa thức bất khả quy nếu P(x) không thể phân tích thành tích các đa thức có
bậc nhỏ hơn m trong trường GF(2).
Định nghĩa 2: Một đa thức bất khả quy P(x) có cấp m trong trường
GF(2) được gọi là đa thức nguyên thủy( primitive polynomid) nếu số nguyên
dương nhỏ nhất n sao cho xn – 1 chia hết cho P(x) là n = 2m – 1.
Ví dụ: P(x) = x3 + x + 1 là đa thức nguyên thủy trong trường GF(2),
hoặc P(x) ϵ GF(2)[x], vì n = 7 = 23 – 1 là số nguyên dương nhỏ nhất mà x7 – 1
chia hết cho x3+x + 1.
x7 – 1 = (x3 + x + 1)(x4 + x2 + x + 1) và

thì xm – 1 không chia hết

cho P(x) = x3 + x + 1.

Định lý 1: Có đúng

đa thức nguyên thủy cấp n trong trường

GF(2).
Định lý 2: Mọi nghiệm của đa thức nguyên thủy cấp m: P(x) ϵ GF(2)[x]
đều có cấp 2m – 1.
Chứng minh: Thật vậy, giả sử α là một nghiệm tùy ý của đa thức P(x) ϵ
GF(2)[x]. Từ đó suy ra rằng α cũng là nghiệm của biểu thức

,

( Theo định nghĩa 2 ở trên) do đó suy ra ord(α) | 2m – 1.



Nếu 2m – 1 không chia hết cho ord(α), khi đó 2m – 1 = k[ord(α)] + r với 0
< r < ord(α)
. Điều này mâu thuẫn với định

Suy ra:

nghĩa. Vậy, ta suy ra rằng mọi nghiệm của
của

hay

=0 đều là nghiệm

. Vì tất cả nghiệm của đa thức



14

bất khả quy có cùng cấp nên suy ra

chia hết cho P(x). Cuối cùng

ord(α) = 2m – 1( theo định nghĩa). Đó là điều cần chứng minh.
1.5.5 Mã Hamming ( The Hamming Codes).
Bộ mã tuyến tính C trong trường hợp GF(2) được gọi là bộ mã Hamming.
Các tham số đặc trưng đối với bộ mã Hamming( nhị phân) là (m > 2):
- Độ dài từ mã là: n = 2m – 1.
- Số các bit mang thông tin là: k = 2m – m – 1.
- Số các bit sửa sai là: n – k = m.
- Khả năng sửa sai là: t = 1.
- Cho một số bộ mã Hamming C = (n, k), k < n. Bộ mã này được đặc
trưng bởi ma trận kiểm tra chẵn lẻ H và ma trận sinh G. Đối với bộ mã
Hamming có độ dài từ mã n = 2m – 1 việc xây dựng ma trận kiểm tra chẵn lẻ
rất đơn giản.
Đó là ma trận H = (hij)n – k, n hijϵ {0, 1}, i = 1, 2, ..., n – k; j = 1, 2, ..., n.
Trong đó các cột của H là các vector khác không nhị phân m thành phần. Còn
ma trận sinh G = (gij)k.n, gijϵ {0, 1}, i = 1, 2, ..., k; j = 1, 2, ..., n. Quan hệ giữa
H và G được thể hiện như sau
Ma trận kiểm tra H có dạng như sau:







 10......0  P00  P10 ,...  Pk  1,0



 0100..0 ...

T
H  ( I nk  P ) 
 ...

...


P
...  P
 000..01




0,
n

k 
1k

1,
n
1


k
I

 n  k

 PT
n

k,
k




15

và ma trận sinh:



 P0,0 P0,1.................P0,nk 1 1000...0 


0100...0
 .........................................

G  ( P I K ) 

....

...


P
..... ...Pnk 1,k 1 0000...1 
n

k

1
,
0



 


IK

Pk ,nk



1.5.6 Mật mã vòng tuyến tính.
Định nghĩa: Một bộ mã tuyến tính C = (n, k) được gọi là mật mã vòng
tuyến

tính


nếu

với

mọi

từ



thì

cũng thuộc C.
Như vậy cấu trúc của mật mã vòng dựa trên cấu trúc của đa thức:
sẽ tương ứng 1- 1 với một từ mã
. Nếu C = (n, k) là một bô mã trên GF(q). Khi đó tập
các từ mã trên C tạo thành một không gian vector con K_chiều trong không
gian vector n_chiều. Điều đó chứng tỏ rằng các đa thức ứng với các từ mã của
C cũng tạo nên một không gian vector con trong GF(q)[x]/(xn – 1). Như vậy,
nếu từ mã c’ là kết quả của sự dịch chuyển vòng sang phải một nhịp của từ
mã cϵC thì: c’(x) = x.c(x) mod(xn – 1) ϵ C.
Thật vậy, ta có:

Định lý 1: Cho bộ mã dịch vòng tuyến tính C = (n, k) trên trường GF(q).
Khi đó:


16

1. Tập hợp các đa thức trong C có tồn tại một đa thức g(x) monic duy nhất

có cấp cực tiểu r < n. Khi đó g(x) được gọi là đa thức sinh của C.
2. Với mỗi đa thức từ mã c(x) trong C, có thể biểu diễn một cách duy nhất
dưới dạng c(x) = m(x).g(x), trong đó g(x) là đa thức sinh của C và m(x) là
một đa thức có cấp nhỏ hơn n – r trong GF(q)[x].
3. Đa thức sinh g(x) của C là một nhân tử của xn – 1 trong GF(2)[x].
- Định lý 2( về nhân tử hóa xn – 1 trên trường GF(q)[x]). Tập hợp tất cả
các phần tử khác không trong trường GF(q) tạo nên một tập hợp đầy đủ các
nghiệm của phương trình:
1.5.7 Đa thức nguyên thủy trong trường hợp GF(2) có cấp từ 2 đến cấp 7
Cấp

Kí hiệu

Cấp

111
2

3

101001

Cấp

1011

100101
5

Kí hiệu


6

Kí hiệu
10011

4
1101

11001

1000011

10000011

1011011

7

10001001

101111

1100001

10001111

110111

1100111


10010001

111011

1101101

10011101

111101

1110011

10100111
10101011
10111001


×