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 sa
Trang 1BỘ 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
Trang 2LỜ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
Trang 3MỤ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
Trang 42 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
Trang 5MỞ ĐẦ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 đã
Trang 6giấ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:
Trang 7Chươ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 B k ={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ị B k 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
Trang 8Chươ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 q , q , r với 0 r<m1 2 ≤ sao cho
1
a=mq + và r b=mq2+ 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)
Trang 9iii.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=b (mod m)1 và a2=b (mod m)2 thì ta có:
a ±a = ±b b (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=b (mod m)1 và a2=b (mod m)2 thì ta có
1 2 1 2
a a =b b (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 an =b (mod m)n 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
a=b (mod m), 0<δ∈ , và |Z δ UCLN(a,b, m)=1 suy ra
= (mod )
Trang 10viii 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<δ∈ , và | m, >0Z δ δ 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
ia=b (mod m ), i=1, ,k ⇒ a=b (mod m) với
Đị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 Z∈ m 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−
Trang 11Vớ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ó:
Trang 12Phé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à 1 M ∈ 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à ϕ(1 ) = ϕ(1 )
Trang 131.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, , a n , a i ∈ 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, , a n ) (b1,
b2, , b m ) = (a1, a2, , a n , b1, b2, , b m ) để 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 a n
Có thể thấy A* = 1∪A∪A2∪ ∪A n ∪ , ở đó A0 = {1}, A1 = A và A n =A n –
1A 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 x n : n ≥ 0, x i ∈ L} Theo định nghĩa,
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}
Trang 14XY –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 a n là từ w~ = a n a2a1
Một chuỗi các từ (u1, u2, u n ), u i ∈ A*, n ≥ 0, gọi là một phân tích của từ
w nếu w = u1u2 u n
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 = y n 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 = (q i , a, q j ), ta nói f có nhãn a, a ∈ A, đi từ trạng thái q i đến trạng thái q j, và thường được ký hiệu : a
Trang 15Trạng thái q1 là điểm đầu và trạng thái q n+1 là điểm cuối của đường đi Ta thường sử dụng ký hiệu : 1 w 1
n
c q ⎯⎯→q +Đườ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à x 1 , , x n , y 1 , , y m ∈ X, từ đẳng thức
x 1 x n = y 1 y m suy ra m = n và x i = y i∀ i = 1 n
Trang 16Nó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 b n thuộc B* bằng từ mã β(b1)β(b2) β(b n) đượ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ã
Trang 17Mã 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
Trang 18Mộ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
Đị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 U n 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 U n 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
Trang 193 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∈X d ; ∀ 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 x d+1 ) thuộc X 1+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
Trang 20Vớ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 x n ∈ (X ∪X)+ thoả hai tính chất sau:
(1) ∀i ∈ {1, 2, , n}, Red A (x1 x2 x i) ∈ A+
(2) ∀i ∈ {1, 2, , n−1}, Red A (x1 x2 x i ) < Red A (x1 x2 x n)
Trang 21Đị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, Red A (x1 x2 x i) ≠ RedA (x1 x2 x j)
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
a ab
b 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 đó x i 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
Trang 22Đị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 x i , y = y1y2 y j , thuộc A * Tích trộn
x ш i y điều khiển bởi chuỗi bit i = b 1 b 2 b i+j được xác định như sau:
Nếu số lượng bit 0 trong i: |b1b2 b i+j |0 ≠ | x | (tương ứng |b1b2 b i+j |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)
Trang 23a a b a a
aabbbabaabb
babb
Hình 1.2 Tích trộn có điều khiển
Trang 24Chươ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:
Trang 25Hì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
Trang 26thủy vân không ảnh hưởng đáng kể đến cảm nhận sản phẩm và phải bền vững trước các tấn công,tồn tại lâu dài cùng sản phẩm
Xác thực thông tin (authentication): một thông tin được giấu trong đối tượng số để nhận biết xem đối tượng đó có bị thay đổi hay không Yêu cầu kĩ thuật là việc nhúng thủy vân không ảnh hưởng đáng kể đến cảm nhận đối tượng
và rất dễ bị phá hủy trước các tấn công Đây là ứng dụng của thủy vân dễ vỡ
2 Cấu trúc một số file ảnh
2.1 Cấu trúc ảnh bitmap
Ảnh BITMAP là định dạng ảnh do microsoft đề xuất , có phần mở rộng là BMP , loại ảnh này truyền tải , sử dụng rộng rãi trên máy tính , và các thiết bị điện tử khác Ảnh bitmap được chia thành ba dạng : ảnh nhị phân ( ảnh đen trăng ) , ảnh đa mức xám , ảnh màu
· Ảnh đen trắng : là ảnh mà mỗi điểm ảnh chỉ thể hiện một trong hai
trạng thái 0 và 1 để biểu diễn trạng thái điểm ảnh đen hay trắng
Hình 2.3: ví dụ về ảnh đen trắng
· Ảnh đa mức xám : là ảnh mà mỗi điểm ảnh được biểu diễn bởi một giá
trị và đó là cường độ sáng của điểm ảnh
Trang 27Hình 2.4: Ví dụ về ảnh đa cấp xám
· Ảnh màu : là ảnh mà mỗi điểm ảnh được biểu diễn bởi ba đại lượng R,
G, B Số lượng màu có thể của loại ảnh này lên tới 265^3 màu khác nhau.Nhưng số lượng màu trên thực tế của một ảnh nào đó thường khá nhỏ Để tiết kiệm bộ nhớ với các ảnh có số lượng màu nhỏ hơn 256 thì màu các điểm ảnh được lưu trữ dưới dạng bảng màu.Với ảnh có số màu lớn thì các điểm ảnh không
tổ chức dưới dạng bảng màu , khi đó giá trị của các điẻm ảnh chinh là giá trị của các thành phần màu R,G,B Với ảnh có số lượng màu lớn ,tùy theo chất lượng ảnh mà quyết định số bit để biểu diễn cho mỗi màu thường là 24 bit, hoặc 32 bit Với ảnh 24 bit mỗi thành phần màu được biểu diễn bởi một byte(8 bit)
Trang 28Hình 2.5: ví dụ về ảnh màu
Ảnh bitmap đựợc lưu trữ dưới dạng nhị phân, một tệp dạng bitmap được chia thành các phần cơ bản như :
-Phần tiêu để tệp (Bitmap header)
-Thông tin về ảnh (Bitmap Infor)
-Bảng màu (Palette Table)
-Vùng dữ liệu(Data)
Thứ tự được lưu trữ trong bộ nhớ như sau: Bitmap Header->Bitmap
Infor->Palette Table->Data
Trang 29Ý nghĩa của các phần trong tệp ảnh bitmap
-Bitmap Header: Mô tả thông tin chung về tệp định dạng bitmap, độ lớn của phần này cố định với mọi tệp bitmap
-Bitmap Infor: Mô tả thông tin về ảnh được lưu trữ, độ lớn của phần này
cố định
-Pallete Table: Bảng màu của ảnh bitmap, độ lớn của phần này có thể bằng không ( không có bảng màu) đối với ảnh đen trắng và ảnh màu có số lượng màu lớn hơn 256 màu
-Data: Thông tin về từng điểm ảnh , độ lớn của phần này phụ thuộc vào kich thước ảnh Phần Data lưu trữ ảnh theo hướng từ dưới lên trên và từ trái qua phải
Kích thước và giá trị các trường trong tệp ảnh
Trang 30Offset(byte) Giá Trị Ý nghĩa
1 ‘B’ Định dạng kiểu tệp
2 ‘M’ Định dạng kiểu tệp
3->6 Unsigned long Kích thước tệp
11->14 Unsigned long Địa chỉ phần dữ liệu
Bảng : Ý nghĩa từng trường trong vùng Bitmap Header
Trong phần Bitmap Header có mô tả thông tin về độ dài tệp , thông tin này thực sự cần thiết với mọi chương trình Tuy nhiên qua thực nghiệm thấy rằng với một số tệp thông tin này không chính xác Do đó trong báo cáo đưa cách tính kích thước tệp bitmap thông qua công thức:
Tệp_Size=Sizeof(Bitmap Header ) + Sizeof(Bitmap Infor) +