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

Lý thuyết một số lớp mã mới và ứng dụng

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 (2.04 MB, 61 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
––––––––––––– W



X –––––––––––––

Phạm Tiến Toàn

LÝ THUYẾT MỘT SỐ LỚP MÃ MỚI VÀ ỨNG DỤNG
Chuyên ngành: Đảm bảo toán học cho máy tính và các hệ thống tính toán

LUẬN VĂN THẠC SĨ KHOA HỌC
TOÁN TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TS. Phan Trung Huy

Hà Nội – 2011

1


LỜI CẢM ƠN

Lời đầu tiên, xin chân thành cám ơn tập thể cán bộ, giảng viên Trường
Đại Học Bách Khoa – Hà Nội những người đang ngày đêm không quản ngại
khó khăn tạo mọi điều kiện tốt nhất để chúng tôi học tập và trưởng thành. Cám
ơn thầy, cô trong khoa Toán - Tin Ứng dụng đã tạo điều kiện vật chất cũng như
tinh thần, đã chỉ bảo và dìu dắt tận tình trong suốt thời gian tôi học bắt đầu tham


gia khóa học tới khi học và làm luận văn Cao học. Tôi xin gửi lời cảm ơn chân
thành đến các thầy, cô trong và ngoài trường đã tham gia trực tiếp giảng dạy,
truyền đạt lại cho tôi những kiến thức thiết thực, bổ ích trong khóa học Cao học
này. Tôi xin cảm ơn tập thể cán bộ Viện Đào tạo sau đại học đã tạo điều kiện
thuận lợi cho tôi trong khóa học vừa qua.
Tôi xin bày tỏ lòng cảm ơn sâu sắc đến PGS.TSKH Phan Trung Huy –
người thầy đã trực tiếp hướng dẫn, chỉ bảo tận tình và tạo mọi điều kiện cho tôi
trong suốt quá trình nghiên cứu và thực hiện luận văn.
Tôi xin gửi lời cảm ơn đến tất cả các bạn trong lớp học Cao Học, Đảm
bảo Toán học cho máy tính và hệ thống tính toán khóa 2008 – 2010 những
người đã cùng tôi học tập, phấn đấu, chia sẻ kinh nghiệm, kiến thức, … và giúp
đỡ nhau trong khóa học vừa qua.
Cuối cùng, tôi xin gửi lời cảm ơn chân thành nhất tới gia đình, người thân
và bạn bè, những người đã luôn sát cánh, động viên, chia sẻ và giúp đỡ tôi trong
suốt những chặng đường đã qua.
Xin trân thành cảm ơn!
Tác giả
Phạm Tiến Toàn

2


MỤC LỤC
LỜI CẢM ƠN ..........................................................................................................1
MỞ ĐẦU...................................................................................................................3
Chương I – CƠ SỞ ĐẠI SỐ, NGÔN NGỮ HÌNH THỨC TRONG LÝ
THUYẾT MÃ ..........................................................................................................8
1 Một số khái niệm ...................................................................................................8
1.1 Lý thuyết đồng dư thức ............................................................................... 7
1.2 Phép toán và vị nhóm................................................................................ 10

1.3 Ngôn ngữ hình thức .................................................................................. 11
1.4 Otomat....................................................................................................... 13
2 Các tính chất cơ bản của mã ......................................................................... 14
2.1 Mã và đồng cấu mã ................................................................................... 14
2.2 Mã và vị nhóm .......................................................................................... 17
3 Tính nhập nhằng.................................................................................................19
3.1 Độ trễ giải mã ............................................................................................ 19
3.2 Phân tích zigzag ........................................................................................ 20
3.3 Tích trộn có điều khiển ............................................................................. 20
Chương II – GIỚI THIỆU VỀ GIẤU TIN TRONG ẢNH .............................22
1. Tổng quan về giấu tin trong ảnh.....................................................................22
1.1 Mô hình giấu tin ........................................................................................ 22
1.2 Các kĩ thuật giấu tin .................................................................................. 22
1.3 Các ứng dụng chính của giấu tin............................................................... 23
2 Cấu trúc một số file ảnh ....................................................................................24
2.1 Cấu trúc ảnh bitmap .................................................................................. 24
2.2 Thuật toán LSB ( Least Significant Bit) ................................................... 31
Chương III – THUẬT TOÁN CPT VÀ MỞ RỘNG CỦA NÓ ĐỂ GIẤU TIN
TRONG ẢNH ........................................................................................................33
1. Thuật toán CPT.................................................................................................33
1.1. Thuật toán CPT nhúng b trong F ............................................................. 34
1.2 Khôi phục dữ liệu...................................................................................... 35
3


2 Thuật toán CPTE ...............................................................................................36
2.1 Các tham số cho thuật toán CPTE ............................................................ 36
2.2 Sự đúng đắn của thuật toán ....................................................................... 37
3 Thuật toán MCPTE ...........................................................................................38
3.1 Hiệu chỉnh để kiểm soát chất lượng.......................................................... 38

3.2 Thuật toán hiệu chỉnh chất lượng.............................................................. 39
3.3 Thuật toán khôi phục dữ liệu .................................................................... 41
4 Kết quả chạy thực nghiệm ................................................................................44
4.1 Với thuật toán CPT áp dụng cho ảnh 256 màu ......................................... 44
4.2 Với thuật toán MCPTE áp dụng cho ảnh nhị phân ................................... 45
Chương IV – MÃ ĐÀN HỒI VÀ ỨNG DỤNG CỦA NÓ VÀO GIẤU TIN
TRONG ẢNH ........................................................................................................46
1 Đồ thị mã đàn hồi......................................................................................... 46
2 Mã đàn hồi – ánh xạ lập mã.............................................................................50
3 Ứng dụng vào giấu tin trong ảnh ................................................................. 53
KẾT LUẬN ............................................................................................................58
TÀI LIỆU THAM KHẢO....................................................................................60

4


MỞ ĐẦU

Lý thuyết mã bắt nguồn từ lý thuyết thông tin, được khởi nguồn bởi
Claude Shannon bằng việc đưa ra lý thuyết Entropy từ những năm 1950, làm
nền móng toán học cho lý thuyết thông tin hiện đại. Trong những năm sau đó, lý
thuyết mã phát triển theo nhiều hướng khác nhau xuất phát từ nhu cầu của thực
tiễn. Một hướng nghiên cứu liên quan đến mã độ dài cố định, điển hình là mã
sửa sai, ứng dụng để phát hiện và sửa lỗi xuất hiện trên các kênh truyền tin.
Hướng nghiên cứu quan trọng khác có liên quan đến mã độ dài biến đổi, được
nghiên cứu sâu sắc đầu tiên bởi Schüzenberger. Một cách đơn giản, mục tiêu của
lý thuyết mã là nghiên cứu các tính chất liên quan đến sự phân tích một từ thành
dãy các từ thuộc một tập cho trước. Các vấn đề được nghiên cứu và giải quyết,
lý thuyết mã có liên quan chặt chẽ với ngôn ngữ hình thức, tổ hợp trên từ, lý
thuyết otomat và lý thuyết nửa nhóm.

Mật mã ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực khoa học
kỹ thuật cũng như trong hoạt động cuộc sống và đã có những đóng góp đáng kể.
Vì vậy, hiện nay mật mã đang được quan tâm nghiên cứu nhằm xây dựng những
hệ mật mã với độ an toàn cao.
Ngày nay, công nghệ thộng tin ngày rất phát triển, điều đó đồng nghĩa với
việc càng ngày thông tin được biểu diễn dưới dạng kỹ thuật số càng nhiều,
chúng được biểu diễn và truyền tải trong môi trường thế giới số do đó vấn đề
bảo mật thông tin trong môi trường thế giới số ngày càng trở nên quan trọng. Đã
có rất nhiểu hệ mật ra đời , nhưng sự phát triển của công nghệ thông tin cũng
cho phép một số lượng lớn các phép tính được giải quyết rất nhanh điều này làm
giảm tính an toàn của các hệ mật.
Một hướng tiếp cận mới trong bảo mật là giấu tin (information hiding),tức
là những thông tin số cần bảo mật sẽ được giấu vào trong 1 đối tượng dữ liệu số
khác (gọi là môi trường giấu tin) sao cho sự biến đổi của môi trường sau khi
giấu tin là rất khó nhận biết, đồng thời có thể phục hồi lại được các thông tin đã
5


giấu khi cần. Một ưu điểm của hướng tiếp cận giấu tin là khi tiếp cận môi trường
giấu tin, đối phương khó xác định được là có thông tin giấu trong đó hay không.
Ngoài ra phương pháp giấu tin còn thể hiện được ưu thế rõ rệt trong nhiều ứng
dụng như phân phối tài liệu số,bảo vệ bản quyền….
Lý do chọn đề tài
Mã hóa và giấu tin là các khía cạnh quan trọng trong lĩnh vực bảo vệ an
toàn thông tin. Trước bối cảnh hội nhập toàn cầu, thế giới ngày càng “ phẳng”,
đặc biệt là sự bùng nổ phát triển công nghệ thông tin và truyền thông, trong đó
thông tin được biểu diễn dưới dạng kỹ thuật số là rất lớn. Nên việc truyền tải
thông tin có yêu cầu bảo mật rất lớn. Trong các hướng nghiên cứu về bảo mật,
thì giấu tin trong ảnh là một hướng tiếp cận mới, nó đã được ứng dụng rất nhiều
trong thực tế khi cần trao đổi thông tin mật, đặc biệt với sự bùng nổ phát triển

của Web thì việc truyền tin mật qua mạng bằng ảnh được giấu ngày càng phổ
biến.
Đó chính là lý do cá nhân tôi chọn đề tài: Lý thuyết một số lớp mã mới
và ứng dụng
Mục đích, đối tượng, phạm vi nghiên cứu của luận văn
- Mục đích nghiên cứu: Đề tài sẽ đi tìm hiểu một số lớp mã mới và
ứng dụng của nó trong truyền tin, khôi phục thông tin qua thông tin mã
hóa và thông tin được giấu.
- Đối tượng nghiên cứu: Giới thiệu một số lớp mã mới và ứng
dụng của nó vào giấu tin trong ảnh.
- Phạm vi nghiên cứu: Đề tài tập trung vào nghiên cứu vào các
thuật toán lớp CPT vào giấu tin trong ảnh. Ứng dụng phương pháp mã
đàn hồi vào giấu tin trong ảnh.
Cấu trúc luận văn
Ngoài các phần Mở đầu, Mục lục, Kết luận, Tài liệu tham khảo,... luận
văn được chia làm 4 chương:

6


Chương I – Cơ sở đại số, ngôn ngữ hình thức trong lý thuyết mã.
Chương này nhắc lại các khái niệm cơ sở cần thiết, qua đó cho thấy mối
liên hệ giữa lý thuyết mã với cơ sở đại số, vị nhóm tự do và lý thuyết otomat.
Phần tiếp theo của chương giới thiệu các tiếp cận nghiên cứu lý thuyết mã điển
hình cho xu hướng gần đây, sử dụng các yếu tố nhập nhằng, điều khiển như tích
zigzag, tích trộn có điều khiển.
Chương II – Giới thiệu về giấu tin trong ảnh
Chương này giới thiệu về mô hình giấu tin, một số kỹ thuật giấu tin và
các ứng dụng chính của giấu tin. Tiếp theo chương là giới thiệu về cấu trúc của
một số file ảnh, đây chính là cơ sở để phân tích ảnh và cái đặt các thuật toán

trong luận án trên các file cấu trúc được giới thiệu.
Chương III – Thuật toán CPT và mở rộng của nó để giấu tin trong
ảnh
Chương này trình bày về các ứng dụng thuật toán CPT và các mở rộng
của nó vào giấu tin trong ảnh. Đặc biệt là một mở rộng của thuật toán CPT là
thuật toán MCPTE, thuật toán này hiệu chỉnh ảnh trong quá trình giấu tin trong
ảnh, nó áp dụng hiệu quả khi ứng dụng trên ảnh nhị phân.
Chương IV – Mã đàn hồi và ứng dụng của nó vào giấu tin trong ảnh
Chương này giới thiệu một hình thức tích mới – tích đàn hồi, sử dụng đồ
thị De Bruijn với tập đỉnh Bk ={0,1}k . Độ dài tích có thể co hoặc giãn, miễn là
đảm bảo sự phân tích duy nhất. Với tích đàn hồi, tính đa trị là một đặc trưng. Từ
đó dẫn đến khái niệm mã tích đàn hồi (hay còn gọi là mã đàn hồi). Lớp mã xây
dựng trên đồ thị Bk. Tiếp cận dựa trên cơ sở đại số được đưa vào để mở rộng khả
năng tiếp cận nghiên cứu về mã đàn hồi. Cuối chương trình bày về một ứng
dụng của mã đàn hồi vào giấu tin trong ảnh.

7


Chương I – CƠ SỞ ĐẠI SỐ, NGÔN NGỮ HÌNH THỨC TRONG LÝ
THUYẾT MÃ

Chương thứ nhất trình bày các kiến thức cơ sở cần thiết, được sử dụng
trong luận văn. Ta nhắc lại một số khái niệm cơ sở liên quan và tính chất cơ bản
của mã, qua đó cho thấy mối quan hệ giữa lý thuyết mã với cơ sở đại số. Cuối
chương đề cập về một số hình thức mở rộng khái niệm tích, được áp dụng trong
thời gian gần đây như phân tích zigzag, tích trộn có điều khiển. Đó là những gợi
ý cho hướng nghiên cứu áp dụng yếu tố ngữ cảnh, nhập nhằng trong luận văn để
xây dựng một số hình thức tích mới.


1 Một số khái niệm
1.1 Lý thuyết đồng dư thức:
1.1.1 Quan hệ đông dư
Đinh nghĩa 1.1.1: Ký hiệu Z là tập các số nguyên
Cho m là một số nguyên dương, a và b là hai số nguyên. Ta nói a và b
đông dư với nhau theo môđun m nếu trong phép chia a và b cho m ta được cùng
một số dư, nghĩa là có các số nguyên q1 , q 2 , r với 0 ≤ r
a=mq1 + r và b=mq 2 + r
Khi a và b đồng dư với nhau theo môđun m, ta viết a=b (mod m) .
Nếu a không đồng dư với b theo môđun m, thì ta viết a ≠ b (mod m) .
Định lý 1.1.1: Các mệnh đề sau đây là tương đương

i. a và b đồng dư với nhau theo môđun m
ii. a-b chia hết cho m (ký hiệu m|(a-b))
iii. Tồn tại số nguyên t sao cho a=b+mt
Các tính chất của quan hệ đồng dư
a. Quan hệ đồng dư là một quan hệ tương đương trên tập Z

i.Với mọi a ∈ Z: a=a (mod m)
ii.Với mọi a, b ∈ Z: a=b (mod m) khi và chỉ khi b=a (mod m)
8


iii.Với mội a, b, c ∈ Z: a=b (mod m), b=c (mod m) suy ra a=c (mod
m)
b. Ta có thể cộng hoặc trừ từng vế của nhiều đồng dư thức theo cùng một
môđun.

Cụ thể là, nếu a1 = b1 (mod m) và a 2 = b 2 (mod m) thì ta có:


a1 ± a 2 = b1 ± b 2 (mod m)
c. Ta có thể nhân từng vế của nhiều đồng dư thức theo cùng một môđun.

Cụ thể là, nếu a1 = b1 (mod m) và a 2 = b 2 (mod m) thì ta có

a1a 2 = b1b 2 (mod m)
d. Hệ quả

i. a=b (mod m) khi và chỉ khi a ± c = b ± c (mod m)
ii. a+c=b (mod m) khi và chỉ khi a=b-c (mod m)
iii. a=b (mod m) khi và chỉ khi a ± km = b (mod m) với mọi k ∈ Z
iv. a=b (mod m) khi và chỉ khi ac = bc (mod m) với mọi c ∈ Z
v. a=b (mod m) suy ra a n = b n (mod m) với mọi n ∈ Z và n>0
vi. Giả sử f(x) là một đa thức với hệ số nguyên và α =β (mod m) .
Khi đó f (α )=f(β ) (mod m)
Đặc biệt, nếu f (α )=0 (mod m) thì f (α + km)=0 (mod m) với mọi

k∈Z
vi. Ta có thể chia hai vế của một đồng dư thức cho một ước chung
của chúng nguyên tố với môđun m
ac=bc (mod m) và UCLN(c, m)=1 suy ra a=b (mod m)
vii. Có thể chia hai vế và môđun của một đồng dư thức cho một
ước chung dương của chúng
a=b (mod m), 0<δ ∈ Z ,
a

=

b


δ δ

(mod

m

δ



)

9

δ | UCLN(a,b,

m)=1

suy

ra


viii. Nếu hai số đồng dư với nhau theo một môđun thì chúng cũng
đồng dư theo môđun là ước của môđun ấy
a=b (mod m), 0<δ ∈ Z , và δ | m, δ >0 suy ra a=b (mod m)

ix. Nếu hai số đồng dư với nhau teo nhiều môđun thì chúng đồng
dư với nhau theo môđun là bội chung nhỏ nhất của các môđun ấy

a=b (mod mi ), i=1,...,k ⇒ a=b (mod m)

với

m=BCNN(m1 ,m 2 ,...,m k )
x. Nếu hai số đồng dư với nhau theo một môđun thì chúng có cùng
UCLN với môđun ấy
a=b (mod m) thì UCLN (a,m) = UCLN (b,m)

1.1.2 Thặng dư
a. Tập các lớp thặng dư
Cho m là số nguyên dương. Theo tính chất của đồng dư thức, quan hệ
đồng dư là quan hệ tương đương trong tập trong tập số nguyên Z. Ta nói, các số
nguyên a và b cùng thuộc lớp tương đương A nếu chúng đồng dư với nhau.
Như vậy, Z có thể được phân thành các lớp theo quan hệ tương đương. Nói cách
khác, tồn tại tập thương Z trên quan hệ tương đương.

Định nghĩa 1.1.2
Tập thương của tập hợp số nguyên Z trên quan hệ đồng dư theo môđun m
được gọi là tập hợp các thặng dư môđun m, ký hiệu là Zm.
Mỗi phần tử A của Zm được gọi là một lớp thặng dư môđun m.
Từ định nghĩa, hai lớp thặng dư môđun m hoặc bằng nhau hoặc không
giao nhau và Zm là tập hợp của tất cả các lớp thặng dư môđun m rời nhau.
Giả sử A ∈ Zm và a ∈ A , khi ấy A= {x ∈ Z: x=a (mod m)}
Phần tử a được gọi là đại diện của lớp thặng dư A và cũng được gọi là
một thặng dư môđun m.


Nhiều khi ta cũng viết A= a = {x ∈ Z: x=a (mod m)} để thể hiện a là đại



diện cho lớp thặng dư A= a

10


b. Các tính chất của lớp thặng dư
Tính chất 1.1.1: tập Zm có m phần tử
Tính chất 1.1.2: mỗi phần tử của Zm là tập hợp của k phần tử phân biệt
của Zkm, với k>1

c. Tập các lớp thặng dư nguyên tố với môđun
Nhận xét:
Tất cả các thặng dư của cùng một lớp thặng dư có cùng ước chung lớn
nhất với môđun
Thật vậy, giả sử A ∈ Zm và a,b ∈ A . Khi ấy a=b (mod m) nên theo tính
chất I của đồng dư thức ta có UCLN(a,m)=UCLN(b,m). Từ đây ta có

Định nghĩa 1.1.3
Ước chung lớn nhất của một lớp với môđun m là ước chung lớn nhất của
một thặng dư tùy ý của lớp đó với môđun m.


Với A= a (mod m) , ta đặt UCLN (A,m)=d nếu UCLN(a,m)=d.
Khi d=1 ta nói lớp thặng dư A là lớp nguyên tố với môđun m.
Tập hợp các lớp Zm nguyên tố với môđun được ký hiệu là Z*m . Ta có:

Z*m = {A ∈ Zm | UCLN(A,m)=1} = {A ∈ Zm | UCLN(a,m)=1, a ∈ A}
Số các phần tử của tập Z*m được ký hiệu là ϕ (m)
______

⎧_ _

⎧_

Vì Zm = ⎨0,1,..., m − 1⎬ , nên Z*m = ⎨a ∈ Zm | 0 ≤ a ≤ m-1, UCLN(a,m)=1⎬





Vậy ϕ (m) chính là số các số tự nhiên không vượt quá m-1 và nguyên
1.2 Phép toán và vị nhóm

Giả sử X là một tập hợp các phần tử. Ta gọi phép toán hai ngôi trong M là
một hàm

φ: M 2 M

11


Phép toán hai ngôi φ trong M cho ứng với mỗi cặp thứ tự những phần tử
(a,b) của M một phần tử φ(a,b) của M, gọi là cái hợp thành của a và b. Phép toán
thường được gọi là phép nhân, ta có
φ(a,b)=ab
Giả sử cho một phép toàn hai ngôi trong tập hợp M. Một phần tử 1 của M
gọi là một đơn vị trái (của phép toán hai ngôi) nếu và chỉ nếu
1m=m
với mọi phần tử m thuộc M. Tương tự, một phần tử 1 của M gọi là một
đơn vị phải nếu và chỉ nếu

m1=m
với mọi phần tử m thuộc M
Trường hợp một phần tử 1 của M vừa là một đơn vị trái và vừa là một đơn
vị phải, nó gọi là một đơn vị, hoặc một phần tử trung hòa của phép toán hai
ngôi.
Phần tử trung hòa trong một phép toán hai ngôi trong một tập hợp M nếu
có thì nó chỉ có một mà thôi.
Vị nhóm M là tập hợp được trang bị phép toán kết hợp hai ngôi và phần tử
trung hòa. Phần tử trung hòa là duy nhất, thường được gọi là phần tử đơn vị, ký
hiệu 1.
Tập hợp S được gọi là nửa nhóm nếu được trang bị phép toán kết hợp hai
ngôi (không nhất thiết có phần tử trung hòa).
Với vị nhóm M bất kỳ, tập B(M) – tập các tập con của M cũng có cấu trúc
vị nhóm, bằng cách định nghĩa:
XY = {xy: x ∈ X, y ∈ Y} với X, Y ⊆ M. Phần tử trung hòa là tập {1}.
Vị nhóm con của M là tập con N, đóng đối với phép toán và chứa phần tử
trung hòa của M: NN ⊂ N và 1M ∈ N.
Tập con khác rỗng N của vị nhóm M gọi là nửa nhóm con nếu nó đóng
với phép nhân.
Đồng cấu từ vị nhóm M vào vị nhóm N là hàm ϕ thỏa:
∀m, m’∈M: ϕ(mm’) = ϕ(m)ϕ(m’) và ϕ(1M) = ϕ(1N).

12


1.3 Ngôn ngữ hình thức

Một bộ chữ cái là một tập hữu hạn không rỗng. Các phần tử của một bộ
chữ cái A được gọi là các chữ cái hay các ký hiệu. Một từ trên bộ chữ cái A là
một xâu hữu hạn gồm một số lớn hơn hay bằng không các chữ của A, trong đó

cùng một chữ có thể xuất hiện nhiều lần. Xâu không có chữ nào gọi là từ rỗng.
Cho tập các ký tự A, được gọi là bảng chữ cái, phần tử a ∈ A được gọi là
chữ cái. Trên bảng chữ A, mỗi từ w độ dài n, n > 0, là một chuỗi gồm n chữ cái:
w = a1, a2,.., an , ai ∈ A. Quy ước chuỗi rỗng (hay từ rỗng), ký hiệu 1 hoặc ε là từ
có độ dài bằng 0. Ký hiệu n = |w| là độ dài của từ w, và |w|a là số xuất hiện của
chữ cái a ∈ A trong từ w.
Tập hợp tất cả các từ trên bảng chữ A (bao gồm từ rỗng) được ký hiệu là
A* và được trang bị phép toán kết hợp là phép nối ghép chuỗi (a1, a2,.., an) (b1,
b2,.., bm) = (a1, a2,.., an, b1, b2,.., bm) để trở thành vị nhóm tự do sinh bởi A, với từ
rỗng là phần tử trung hòa. Vì phép toán là kết hợp nên ta có thể viết gọn w =
a1a2.. an.
Có thể thấy A* = 1∪A∪A2∪...∪An∪..., ở đó A0 = {1}, A1 = A và An =An –
1

A. Tập tất cả các từ không kể từ rỗng được ký hiệu là A+, A+ = A*– {1}.
Vị nhóm con M được gọi là tự do nếu có đẳng cấu ϕ: A*→M từ vị nhóm

tự do A* lên M.
Mỗi tập con L của A* được gọi là một ngôn ngữ trên A. Với ngôn ngữ L,
ký hiệu L* là vị nhóm sinh bởi L, L* = {x1x2..xn: n ≥ 0, xi ∈ L}. Theo định nghĩa,
mỗi từ w ∈ L* có ít nhất một phân tích w = x1x2..xn thành tích các từ xi ∈ L. Ta
cũng ký hiệu L+ = L*– 1.
Cho hai ngôn ngữ X và Y, ta định nghĩa tích của hai ngôn ngữ X và Y là
ngôn ngữ
XY = {xy: x∈ X, y ∈ Y}.
Thương trái (left quotient) và thương phải (right quotient) của X và Y
được cho tương ứng bởi:
X –1Y = {w∈ A*: ∃ x ∈ X, xw ∈ Y}
13



XY –1 = {w∈ A*: ∃ y ∈ Y, wy ∈ X}
Ký hiệu u –1X, Xu –1 được sử dụng khi tập Y = {u} chỉ có một phần tử.
Từ w ∈ A* gọi là khúc con (factor) của từ x ∈ A* nếu tồn tại các từ u, v ∈
A*: x = uwv. Từ w gọi là khúc con thực sự của x nếu w là khúc con của x và w ≠
x. Ta nói w là khúc đầu (prefix) của x nếu tồn tại u: x = wu. Ta ký hiệu w ≤ x nếu
w là khúc đầu của x, w < x nếu w ≤ x và w ≠ x. Tương tự ta có khái niệm khúc
đuôi (suffix).
Từ đảo của w = a1a2..an là từ w~ = an..a2a1.
Một chuỗi các từ (u1, u2,...un), ui ∈ A*, n ≥ 0, gọi là một phân tích của từ
w nếu w = u1u2..un .
Từ x ∈ A* được gọi là nguyên thủy nếu nó không là bội (mũ) của từ khác,
có nghĩa x là nguyên thủy khi và chỉ khi từ đẳng thức x = yn suy ra x = y.
1.4 Otomat

Cho bảng chữ cái hữu hạn A. Otomat hữu hạn không tất định trên A là bộ
A = (Q, A, F, i, T), được tạo thành từ tập hữu hạn các trạng thái Q, trạng thái
ban đầu i ∈ Q, tập con T ⊆ Q các trạng thái kết thúc và tập F ⊆ Q×A×Q gọi là
tập các cung, xác định hàm chuyển trạng thái của otomat.
Mô tả hoạt động của một Otomat hữu hạn đoán nhận một từ x trên A như
sau: Ban đầu nó được giả thiết ở trong trạng thái khởi đầu q0, với đầu đọc của nó
đang ở ký tự đầu tiên bên trái của chuỗi nhập. Mỗi lần di chuyển theo hàm
chuyển trạng thái, đầu đọc tiến về phía phải một ký tự. Khi gặp ký tự kết thúc
chuỗi, thì chuỗi là được chấp nhận nếu Otomat vào một trong những trạng thái
kết thúc của nó. Ngược lại thì có nghĩa là chuỗi bị từ chối.
Mỗi cung là một bộ f = (qi, a, qj), ta nói f có nhãn a, a ∈ A, đi từ trạng
a
→qj .
thái qi đến trạng thái qj, và thường được ký hiệu f : qi ⎯⎯


Một đường đi hữu hạn c trong otomat A là chuỗi hữu hạn các cung liên
tiếp (f1, f2, ..., fn+1): fi = (qi, ai, qi+1) trong đó n là độ dài của đường đi, từ w =
a1a2..an tạo thành bởi các nhãn ai trên các cung được gọi là nhãn của đường đi.
14


Trạng thái q1 là điểm đầu và trạng thái qn+1 là điểm cuối của đường đi. Ta
w
thường sử dụng ký hiệu c : q1 ⎯⎯
→ qn +1

Đường đi c: i→t với i ∈ I và t ∈ T được gọi là đường đi thành công. Tập
hợp tất cả các nhãn của các đường đi thành công của otomat A được ký hiệu là
L(A) và thường được gọi là ngôn ngữ chính quy đoán nhận bởi A. Một tập L ⊆
A* được gọi là tập đoán nhận được nếu có otomat A sao cho L = L(A) .
Otomat A = (Q, A, F, i, T) được gọi là tất định nếu với các cung (p, a, q),
(p’, b, q’) tuỳ ý thuộc F, từ p = p’ và a = b suy ra q = q’. Điều này có nghĩa là
với mỗi trạng thái p ∈ Q và chữ cái a ∈ A, có đúng một trạng thái q sao cho
a
p ⎯⎯
→ q . Khi A là tất định, ta định nghĩa một hàm f: Q×A → Q, xác định bởi

f(p, a) = q với (p, a, q) ∈ F, để đơn giản ta ký hiệu f(p, a) = p.a .
Hàm f: Q×A → Q được mở rộng thành hàm: Q×A* → Q, được gọi là hàm
chuyển mở rộng của otomat A xác định trên mỗi từ w∈A*, với định nghĩa quy
nạp theo độ dài của w: p.1 = p và p.wa = (p.w).a, để đơn giản ta cũng sẽ ký hiệu
là f và ta sẽ luôn sử dụng f theo nghĩa mở rộng.
2 Các tính chất cơ bản của mã

Một trong những bài toán cơ bản của lý thuyết mã là nghiên cứu về tính

chất liên quan đến sự phân tích xâu thành các từ. Bên cạnh phương pháp tổ hợp,
việc sử dụng các công cụ đại số để nghiên cứu cấu trúc và tính chất của lớp mã
là một tiếp cận được áp dụng rộng rãi. Một kỹ thuật khác cũng thường được sử
dụng để nghiên cứu là lý thuyết otomat. Trong mục này chúng ta nhắc lại một số
kết quả, qua đó thể hiện mối quan hệ chặt chẽ giữa mã với cơ sở đại số và lý
thuyết otomat.
2.1 Mã và đồng cấu mã
Định nghĩa 2.1.1 Giả sử A là bảng chữ cái. Tập con X của vị nhóm tự do

A* được gọi là mã nếu với mọi m, n ≥ 1 và x1 , ... , xn , y1 , ... , ym ∈ X, từ đẳng
thức
x1 ... xn = y1 ... ym suy ra m = n và xi = yi ∀ i = 1... n .
15


Nói cách khác, tập X là mã nếu mọi từ trong X+ đều chỉ có một phân tích
duy nhất thành các từ trong X. Do 1.1=1 nên mọi tập mã đều không thể chứa từ
rỗng. Dễ thấy mọi tập con của mã X cũng là mã.
Một đơn cấu β: B* → A* được gọi là đồng cấu mã hay một phép mã hoá.
Điều kiện cần và đủ về phép mã hoá, biểu diễn qua đơn cấu vị nhóm được
thể hiện qua Mệnh đề sau.
Mệnh đề 2.1.1 Nếu tập con X của A* là mã thì mọi đồng cấu β: B* → A*,

cảm sinh một song ánh từ bảng chữ cái B nào đó lên X, sẽ là đơn cấu. Ngược
lại, nếu tồn tại một đơn cấu β: B* → A* sao cho β(B) = X thì X là mã.
Với khái niệm trên, quá trình mã hoá có thể coi là việc thay thế mỗi từ
b1b2 ... bn thuộc B* bằng từ mã β(b1)β(b2)..β(bn) được xác định bởi đồng cấu mã

β. Sự kiện β là đơn ánh đảm bảo rằng từ mã có thể được giải mã duy nhất để thu
được từ hiện ban đầu.

Chú ý rằng tích của hai mã X, Y chưa chắc là mã.
Dựa trên đặc trưng về phân tích thừa số, ta có các tập prefix, suffix và
bifix.
Tập prefix: Cho tập X ⊂ A*. Khi đó X được gọi là tập prefix nếu không có
từ x nào trong X là khúc đầu thật sự của từ y khác trong X. Nói cách khác, tập X
là prefix nếu với mọi x, y ∈ X, từ hệ thức x ≤ y suy ra x = y; hoặc X là prefix nếu
X –1 X = ∅.
Ta có thể thấy rằng nếu X là tập prefix và chứa từ rỗng thì X = {1}.
Đối ngẫu với định nghĩa prefix ta có khái niệm suffix. Tập X được gọi là
suffix nếu không có từ x nào trong X là khúc đuôi thật sự của từ y khác trong X.
Tập X được gọi là bifix nếu nó vừa là prefix vừa là suffix.
Tập prefix thực sự của tập X bất kỳ được ký hiệu là Pref(X), tương tự ta có
tập Suff(X). Dễ thấy rằng Pref(X) = X(A+)−1, đôi khi ký hiệu là XA− ; Suff(X) =
(A+)−1X, đôi khi ký hiệu là A−X.
Từ định nghĩa mã và tập prefix, suffix, có thể thấy ngay rằng.
Mệnh đề 2.1.2 Mọi tập prefix (suffix, bifix) khác {1} đều là mã.

16


Mã X được gọi là mã prefix (hoặc suffix, bifix) nếu nó là tập prefix (hoặc
suffix, bifix tương ứng).
2.2 Mã và vị nhóm

Các công trình nền móng của Schüzenberger cho thấy mối liên quan chặt
chẽ của lý thuyết mã với cơ sở đại số tự do. Trong mục này, ta nhắc lại một số
kết quả đạt được bằng tiếp cận nghiên cứu qua liên hệ với vị nhóm con sinh bởi
tập mã và thủ tục Sardinas – Patterson kiểm tra tính chất mã.
Mệnh đề 2.2.1 Cho bảng chữ cái A. Mọi vị nhóm con M của A* có tập


sinh cực tiểu duy nhất X = (M−1) − (M−1)2.
Nếu bắt đầu từ tập mã và xem xét vị nhóm con sinh bởi mã đó, ta có mệnh
đề.
Mệnh đề 2.2.2 Nếu M là vị nhóm con tự do của A*, thì tập sinh nhỏ nhất

của M là mã. Ngược lại, nếu X ⊂ A* là mã thì khi đó vị nhóm con X* của A* là vị
nhóm con tự do với X chính là tập sinh nhỏ nhất.
Mã X, là tập sinh của vị nhóm con tự do M của A* được gọi là cơ sở của
M.
Kiểm tra tính chất mã

Cho tập các từ X trên bảng chữ A, bài toán kiểm tra tính chất mã của X là
một bài toán cơ bản khi nghiên cứu mã. Trong nhiều trường hợp, bài toán này là
không dễ dàng. Trong mục này ta đề cập đến thuật toán Sardinas – Patterson.
Thuật toán này không cần sử dụng các tính chất nâng cao của mã mà dựa trên
cách tổ chức thực hiện tính toán để kiểm tra tập cho trước có thỏa định nghĩa mã
hay không. Trong trường hợp X hữu hạn (tổng quát hơn là đoán nhận được) thì
số bước tính toán là hữu hạn.
Thuật toán cố gắng xây dựng từ có hai phân tích khác nhau trên X. Trong
mỗi bước, xác định phần dư – đoạn sai khác giữa hai cách phân tích. Thuật toán
dừng khi xuất hiện phần dư là từ rỗng, tương ứng với việc tìm được từ có hai
phân tích khác nhau.

17


Một cách hình thức, thuật toán có thể mô tả như sau. Để cho gọn, thay vì
X∪{u} ta viết X∪u.
Thủ tục Sardinas Patterson
Vào: tập X⊂A+ ;

Ra: kết luận X có là mã hay không;

B1

U0 = X –1X −1, n = 1

B2

Un = Un-1−1X ∪ X−1Un-1 .

B3
If 1 ∈ Un Then goto B5;
If Un = ∅ or Uk = Un ≠ ∅ (với k < n nào đó) Then goto B4
Else n = n +1, goto B2.
B4

X là mã. Kết thúc

B5

X không là mã. Kết thúc

Định lý và Mệnh đề sau đây khẳng định tính đúng đắn của thuật toán.
Định lý 2.2.1 X ⊂ A+ là mã khi và chỉ khi không có tập Un nào chứa từ

rỗng.
Mệnh đề 2.2.3 Nếu X ⊆ A+ là tập đoán nhận được, thì lớp các tập Un xác

định như trên là hữu hạn.
Dựa trên ý tưởng xây dựng từ có hai phân tích khác nhau, nhiều thuật toán

kiểm tra cho các lớp mã khác như mã zigzag, độ trễ giải mã đã được thiết lập.
Trong luận văn, một số thuật toán kiểm tra tính chất mã cũng được thiết lập dựa
trên ý tưởng này.

18


3 Tính nhập nhằng

Một trong những cách tiếp cận để nâng cao mức bảo mật của hệ mã hóa là
sử dụng các yếu tố nhập nhằng, đa trị. Độ trễ giải mã được nghiên cứu từ những
năm 1950 cũng có thể được xem là một cách sử dụng sự nhập nhằng khi phân
tích giải mã. Trong thời gian gần đây, xuất hiện xu hướng mở rộng khái niệm
tích bằng cách đưa vào các yếu tố nhập nhằng, điều khiển như phân tích zigzag,
tích trộn có điều khiển. Các ý tưởng đó đã gợi mở hướng xây dựng các tích mới
theo ngữ cảnh, được nghiên cứu trong luận văn.
3.1 Độ trễ giải mã

Khái niệm độ trễ giải mã xuất hiện từ năm 1959 theo Gilbert và Moore.
Đây là một hướng mở rộng mã prefix, trong đó mã prefix là lớp con có độ trễ 0.
Định lý cơ bản của mã có độ trễ hữu hạn được Schützenberger chứng minh đầy
đủ vào 1966, theo đó, mọi mã hữu hạn cực đại hoặc là mã prefix (có độ trễ 0)
hoặc có độ trễ giải mã vô hạn. Tương tự thuật toán Sardinas – Patterson, ta có
thể xây dựng thuật toán xác định độ trễ giải mã.
Định nghĩa 1.3.1 Giả sử X là tập con của A*. Khi đó ta nói X có độ trễ

giải mã hữu hạn nếu tồn tại số nguyên d ≥ 0 sao cho:
∀ x, x’∈X; ∀ y∈Xd ; ∀ u∈A*, xyu∈x’X* ⇒ x = x’.

Dễ thấy rằng nếu hệ thức trên thoả mãn với d nào đó thì nó cũng đúng với

mọi d’ ≥ d. Nếu X có độ trễ giải mã hữu hạn thì số nguyên nhỏ nhất thoả hệ thức
trên gọi là độ trễ giải mã của X.
Ta có thể hình dung như sau: giả sử từ w ∈ A* có hai thừa số bên trái
thuộc X* (w = xu = x’v), từ ngắn hơn (x = x1x2 ... xd+1) thuộc X1+d. Nếu có hệ thức
trên thì khi đó hai phân tích thừa số trên X bắt đầu bằng cùng một từ (x1) trong X
(x’ = x1x’2 x’3 ... x’m). Có nghĩa là độ trễ giữa thời điểm trong khi đọc chuỗi từ
trái sang phải phát hiện thấy một thừa số trong X phân tích với thời điểm xác
định được một cách chắc chắn, là hữu hạn.

19


Với định nghĩa như trên, nếu d = 0 thì X là mã prefix. Vì lý do đó, đôi khi
người ta còn gọi mã prefix là mã tức thời (với nghĩa là đọc từ trái sang nếu xuất
hiện từ trong X thì chắc chắn từ đó là thừa số trong phân tích). Theo nghĩa đó,
mã với độ trễ giải mã hữu hạn là tổng quát hoá của mã prefix.
Mệnh đề sau cho ta liên hệ giữa tập có độ trễ giải mã hữu hạn với tính
chất là mã.
Mệnh đề 1.3.1 Nếu tập con X ⊂ A* có độ trễ giải mã hữu hạn thì X cũng

là mã.
Ví dụ 1.3.1 Mã suffix X = {aa, ba, b} có độ trễ giải mã vô hạn. Thật vậy,

với mọi d ≥ 0, từ b(aa)d ∈ Xd+1 là thừa số trái của từ (ba)(aa)d và ba ≠ b.
3.2 Phân tích zigzag

Khái niệm tích zigzag được M. Anselmo đề xuất vào năm 1990 ([4]). Ý
tưởng của tích zigzag là trong sự khai triển tích có thể chứa các bước lùi khử từ
(do đó còn được gọi là phân tích hai chiều). Từ đó dẫn đến khái niệm phép toán
zigzag và khái niệm mã zigzag.

Cho bảng ký tự A, A là bảng mã song ánh với A. Với mọi ký tự a ∈
( A ∪ A ) , ta ký hiệu a là phần tử tương ứng với a.

Với từ u có dạng fαg trong đó α = xx hoặc α = xx , một rút gọn của nó là
từ v có dạng v = fg. Chẳng hạn với u = abaaacbab ta có một rút gọn là

v = abacbab . Gọi RedA(w) là hàm tương ứng mỗi từ w với từ rút gọn ngắn nhất,
duy nhất của nó (trong ( A ∪ A)* ).
Định nghĩa 1.3.2 Cho X là ngôn ngữ trong A*. Một hợp thành zigzag (Z –

hợp thành) trên X là từ w = x1x2..xn ∈ ( X ∪ X ) + thoả hai tính chất sau:
(1)

∀i ∈ {1, 2, ... , n}, RedA(x1 x2 ... xi) ∈ A+ .

(2)

∀i ∈ {1, 2, ... , n−1}, RedA(x1 x2 ... xi) < RedA(x1 x2 ... xn) .

20


Định nghĩa 1.3.3 Cho X là ngôn ngữ trên A*. Gọi z – phân tích là một z –

hợp thành thoả tính chất
(3)

∀ 1 ≤ i < j ≤ n, RedA(x1 x2 ... xi) ≠ RedA(x1 x2 ... xj) .

Ví dụ 1.3.2 Cho ngôn ngữ X = {a, ab, ba}, ta có

(a )(a)(ba)(a )(ab)(a )(ba )(a) là một Z – hợp thành của từ w = aabaa. Có

thể dễ dàng kiểm tra rằng các tính chất (1) và (2) được thoả. Tuy nhiên nó không
phải là Z – phân tích vì không thoả tính chất (3). Thật vậy, với i = 3 và j = 7 thì
RedA((a)(a)(ba)) = RedA((a)(a)(ba)( a )( ab )(a)(ba)).
Trong khi đó (a)(a)(ba) là một z – phân tích (hình 1.1).

a

a

b

a

ab

a

a

b

a

a

Hình 1.1 Phân tích zigzag

Theo định nghĩa trên, mọi Z – phân tích ƒ nào đó đều là Z – phân tích của

từ RedA(d) theo nghĩa của M. Anselmo, trong đó xi tương ứng với một bước – Z
(z – step). Từ đó ta dùng ƒw như là Z – phân tích của từ w.
Phát triển theo hướng này, đã có nhiều nghiên cứu các đặc trưng của mã
zigzag, như đồng cấu mã zigzag, vị nhóm liên quan đến mã zigzag, kiểm tra tính
chất là mã zigzag của ngôn ngữ.
3.3 Tích trộn có điều khiển

Đến cuối những năm 1990, xuất hiện một hướng mở rộng khái niệm tích
áp dụng các yếu tố điều khiển, được đề xuất bởi A. Salomaa. Trong đó tích của
hai từ x, y là sự trộn các chữ cái theo thứ tự được kiểm soát bởi từ điều khiển i.
Từ đó dẫn đến khái niệm mã theo tích trộn (T – codes).
Phép trộn ш được định nghĩa như sau.

21


Định nghĩa 1.3.4 Cho bảng chữ A, các chữ cái a, b ∈ A, các từ u, v ∈ A*.

Phép trộn ш là toán tử xác định bởi:
1 ш u = u ш 1 = {u};
au ш bv = a(u ш bv) ∪ b(au ш v).
Cho hai ngôn ngữ X, Y ⊆ A*, phép trộn của X, Y được định nghĩa bởi:
XшY = ∪ u∈X, v∈Y u ш v.
Ví dụ 1.3.3 Cho bảng chữ A={a, b}, hai từ x = aa, y = bb. Khi đó ta có:

x ш y = {aabb, abab, abba, baab, baba, bbaa}
Từ đó đi đến khái niệm tích trộn có điều khiển.
Định nghĩa 1.3.5 Cho hai từ x = x1x2..xi , y = y1y2..yj, thuộc A*. Tích trộn

x шi y điều khiển bởi chuỗi bit i = b1b2..bi+j được xác định như sau:

Nếu số lượng bit 0 trong i: |b1b2...bi+j |0 ≠ | x | (tương ứng |b1b2...bi+j |1 ≠ |
y |) thì x шi y = ∅
Nếu không thì x шi y = c1c2...ci+j, với |i1i2...ik –1|0 = k1 và |i1i2..ik –1|1 = k2 ,
chữ cái thứ k được xác định như sau:
ck=

xk1 +1; ik = 0
yk2 +1; ik = 1

Ví dụ 1.3.4 Cho bảng chữ A, các từ x = aabaa, y = bbabb, từ điều khiển i

= 0010111001. Khi đó tích trộn có điều khiển được xác định là
x шi y = aabbbabaab.
(Xem hình 1.2)

22


Y

i = 0010111001

aabbbabaab
b

1

b

1


a

1

b

1

b

1
X
0

0

0

0

0

a

a

b

a


a

Hình 1.2 Tích trộn có điều khiển

23


Chương II – GIỚI THIỆU VỀ GIẤU TIN TRONG ẢNH

1. Tổng quan về giấu tin trong ảnh
1.1 Mô hình giấu tin

Để thực hiện giấu tin cần xây dựng được các thủ tục giấu tin. Các thủ tục
này sẽ thực hiện nhúng thông tin cần giấu vào môi trường giấu tin. Các thủ tục
giấu tin thường được thực hiện với một khóa giống như trong các hệ mật mã để
tăng tính bảo mật. Sau khi giấu tin ta thu được chứa thông tin giấu và có thể
phân phối đối tượng đó trên kênh thông tin. Để giải mã thông tin cần nhận được
đối tượng có chứa thông tin đã giấu,sử dụng thủ tục giải mã cùng với khóa đã
dùng trong quá trình giấu để lấy lại thông tin.

Hình 2.1: Mô hình giấu tin và lấy tin
1.2 Các kĩ thuật giấu tin

Các kĩ thuật giấu tin mới được chú ý phát triển mạnh trong khoảng 10
năm trở lại đây,nên việc phân loại còn chưa được thống nhất. Sơ đồ phân loại
sau được đưa ra năm 1999 và được nhiều người chấp nhận:

24



Hình 2.2: Phân loại các mô hình giấu tin

Theo sơ đồ này, giấu tin được chia thành hai hướng chính là giấu tin mật
và thủy vân số.Giấu tin mật quan tâm chủ yếu đến lượng tin có thể giấu,còn thủy
vân số quan tâm đến tính bền vững của thông tin giấu. Trong từng hướng chính
lại được chia ra các hướng nhỏ hơn,chẳng hạn với thủy vân số thì có thủy vân
bền vững và thủy vân dễ vỡ. Thủy vân bền vững cần được bảo toàn được các
thông tin thủy vân trước các tấn công như dịch chuyển ,cắt xén,xoay đối với
ảnh. Ngược lại thủy vân dễ vỡ cần phải dễ bị phá hủy khi gặp các tấn công nói
trên.
1.3 Các ứng dụng chính của giấu tin

Giấu tin mật (Steganography): các thông tin cần bảo mật được giấu trong
các đối tượng vỏ và các đối tượng này có thể được truyền công khai tới người
nhận mà không gây bất cứ sự chú ý nào của đối phương. Người nhận sẽ sử dụng
thuật toán và khóa nào đó( đã thỏa thuận giữa 2 người) để khôi phục lại thông
tin mật. Yêu cầu kĩ thuật là tỉ lệ giấu tin cần lớn nhưng bằng các giác quan
không thể nhận thấy được sự khác biệt của đối tượng trước và sau khi giấu tin
vào.
Bảo vệ bản quyền (Copyright Protection): đây là ứng dụng phổ biến nhất
của thủy vân số. Một thông tin nào đó mang ý nghĩa quyền sở hữu tác giả(gọi là
thủy vân) được nhúng vào trong các sản phẩm số. Yêu cầu kĩ thuật là việc nhúng
25


×