Tài liệu tham khảo công nghệ thông tin Giấu tin trong mô hình sinh thơ lục bát
Trang 1GIẤU TIN TRONG MÔ HÌNH SINH THƠ LỤC BÁT
Nguyễn Vũ Linh, Nguyễn Xuân Hoài, Nguyễn Văn Xuất Nhóm nghiên cứu NC (Natural Computation Group), Khoa CNTT – Học viện Kỹ Thuật Quân Sự.
E-mail: vnvulinh@gmail.com , hoainx@lqdtu.edu.vn , CITD102@gmail.com
Tóm tắt
Bài báo này trình bày một nghiên cứu của nhóm tác giả về các phương pháp giấu tin bằng mô hình sinh ngôn ngữ và thể hiện cụ thể trong việc sinh một dạng văn bản đặc biệt, dạng thơ lục bát cổ truyền Kết quả nghiên cứu cho thấy giấu tin trong mô hình sinh thơ lục bát là một kỹ thuật giấu tin hứa hẹn mang đặc trưng ngôn ngữ và văn hoá Việt nam, đồng thời nghiên cứu cũng chỉ ra một số cách tấn công và chống tấn công vào các file chứa thơ
I Đặt vấn đề
Giấu tin là để thông tin được truyền đi một cách bí mật, tránh việc ăn cắp thông tin hay xuyên tạc nó Người ta đã sử dụng nhiều kỹ thuật để giấu thông tin cần truyền vào nhiều nơi như giấu vào file ảnh, file văn bản, file âm thanh … Thông điệp mật thường được chèn vào file chứa, ghi đè lên một phần file chứa (thay thế) hoặc file chứa được sinh ra có chứa thông điệp Ta gọi là các phương pháp chèn, thay thế và sinh Trên thực tế người ta chủ yếu dùng phương pháp chèn và thay thế, phương pháp sinh cũng đã được nghiên cứu trong [1] nhưng rất hạn chế và khó áp dụng vào thực tế Dùng phương pháp chèn thì sẽ làm tăng kích thước file chứa, phương pháp thay thế thì sẽ làm giảm chất lượng file chứa, đây là những điều không thể tránh khỏi Với phương pháp sinh, vì file chứa là được sinh ra mới hoàn toàn nên không sợ có sự thay đổi về kích thước hay chất lượng file nhưng nội dung file chứa thường khó giống thật ( ví dụ như sinh file
Trang 2ảnh thì ảnh đó phải là ảnh gì đó hoặc file văn bản thì nội dung không được ngô nghê quá) Và điều này có thể hạn chế được
Vậy ta chọn mô hình sinh để giấu tin, nhưng vấn đề đặt ra là sinh cái gì? Thực tế xảy ra chiến tranh, khi điều kiện truyền đa phương tiện số không thực hiện được, thông tin chỉ có thể truyền qua sóng radio hay những tài liệu viết tay như các bài phát thanh, bình luận, báo in, thư tay Giấu tin vào những đoạn văn bản đó là một ý tưởng rất hay Như vậy ta sẽ chọn mô hình sinh ngôn ngữ để nghiên cứu, cụ thể là mô hình sinh thơ lục bát, một thể thơ cổ truyền đặc sắc và rất Việt Nam
II Giấu tin
1 Định nghĩa
Giấu tin là thao tác nhúng thông tin vào trong các dạng dữ liệu số hóa như tập tin ảnh, tập tin âm thanh, tập tin văn bản … Thao tác này được tiến hành theo nhiều cách khác nhau tùy theo từng phương pháp và mục đích Nhìn chung bài toán giấu tin gồm hai quá trình :
- Nhúng tin ( hay còn gọi là mã hóa )
- Trích rút tin ( giải mã )
Ví dụ :
- Trên ảnh :
Mã hóa thông điệp và nhúng các bít của thông điệp vào trong ảnh
Trang 3Bức ảnh dưới đã được nhúng thông tin.
- Trên văn bản :
Giả sử đối tượng chứa là đoạn văn bản có nội dung sau
“Apparently neutral’s protect is thoroughly discounted and ignored
Isman hard hit Blockade issue affects for pretext embargo on by-products,
ejecting suets and vegetable oils”
Và thông điệp cần chuyển tải là : “Pershing sails for YN June 1”
Đoạn văn bản trên chính là đoạn thông điệp mật mà gián điệp Đức đã sử dụng trong chiến tranh thế giới lần II
2 Đối tượng của bài toán giấu tin
Trong bài toán giấu tin có 4 đối tượng chính là:
- Thông tin mật : Là thông tin nhúng vào đối tượng chứa và là thông tin cần được bảo vệ Tùy theo từng phương pháp cụ thể thông tin này được bảo vệ với các mức độ khác nhau
Trang 4- Đối tượng chứa : Là đối tượng dùng để chứa thông điệp mật Đối tượng này còn được gọi là Cover - <Data Type>, tùy thuộc vào loại dữ liệu mà nó mang tên khác nhau : Cover – Image, Cover – Audio, Cover – Text …
- Đối tượng đã nhúng: Là đối tượng chứa sau khi nhúng thông tin mật, còn được gọi là Stego - <Data Type>, với Data Type tương ứng với kiểu dữ liệu của đối tượng chứa Ví dụ nếu đối tượng chứa là ảnh thì đối tượng đã nhúng là Stego – Image Một số tài liệu đã gọi đối tượng đã nhúng là đối tượng đã đánh dấu
- Khóa mật: Là khóa tham gia vào quá trình nhúng, tùy theo từng thuật toán mà khóa này có tham gia hay không Đối tượng này còn có tên Stego – Key
3 Yêu cầu trong một bài toán giấu tin
- Tính bền vững : Thể hiện khả năng ít bị thay đổi trước những tấn công từ bên ngoài như thay đổi định dạng, nội dung Hiện nay chưa có phương pháp nào đảm bảo biện pháp này một cách tuyệt đối Với từng ứng dụng cụ thể thì yêu cầu này cũng thể hiện khác nhau
- Khả năng không bị phát hiện: thể hiện ở việc khó xác định được đối tượng có chứa thông tin mật hay không Hầu hết các phương pháp giấu tin dựa trên đặc điểm của hai hệ tri giác người: thị giác và thính giác Khả năng này còn gọi là khả năng giả dạng
- Khả năng lưu trữ: Khả năng này thể hiện ở lượng thông tin của thông điệp mật có thể nhúng trong đối tượng chứa Do tính bảo mật nên khả năng lưu trữ luôn bị hạn chế Do đó trong trường hợp muốn ẩn một thông tin có kích thước tương đối lớn ta thường chia nhỏ ra nhiều thành phần và thực hiện nhúng từng phần
Trang 54 Steganography
Steganography là một trong hai kỹ thuật ( Steganography và Watermarking ) của lĩnh vực giấu tin Kỹ thuật sử dụng trong bài báo này là Steganogaphy Ta có thể hiểu kỹ thuật này như sau:
Giấu thông tin (Steganography) là một kỹ thuật nhúng thông tin (embeding) vào trong một nguồn đa phương tiện gọi là phương tiện chứa (host data) mà không gây ra sự nhận biết về sự tồn tại của thông tin giấu (invisible).
Sự khác biệt chủ yếu giữa mã hóa thông tin và giấu thông tin là phương pháp mã hóa làm cho các thông tin hiện rõ là nó có được mã hóa hay không còn đối với phương pháp giấu tin thì người ta sẽ khó mà biết được là có thông tin giấu bên trong do tính chất ẩn của thông tin được giấu
Còn với Watermarking thì Steganography quan tâm đến ứng dụng che giấu các bản tin đòi hỏi có độ bí mật và dung lượng càng lớn càng tốt (thường
là truyền thông tin) Thông tin được giấu sao cho người khác không biết được là
Lưu trữ
Khả năng Lưu trữ
Khả năng không
Trang 6có thông tin giấu trong đối tượng chứa Còn Watermarking quan tâm nhiều đến giấu những mẩu tin ngắn nhưng đòi hỏi độ bền vững cao (thường là chữ ký số).
Bảo mật cho chính đối tượng chứa (host data)
5 Phân loại
Nếu xem xét các phương pháp giấu tin qua việc xem thông điệp được ẩn như thế nào và nơi thông điệp sẽ được ẩn người ta chia Steganography thành 3 loại: Giấu tin bằng phương pháp chèn, giấu tin bằng phương pháp thay thế, giấu tin bằng phương pháp sinh
a Giấu tin dựa vào phương pháp chèn
Kỹ thuật chèn này có sự khác biệt là ở chỗ nó tìm một vị trí trong file mà ứng dụng bỏ qua khi đọc file Về cơ bản, bạn chèn dữ liệu vào một file, việc này làm tăng kích thước của file lên nhưng không làm ảnh hưởng đến sự thể hiện (tái hiện, nghe nhìn) của dữ liệu
Ví dụ với một vài file có gọi cờ EOF Cờ này báo hiệu cho ứng dụng rằng đang đọc file đến tận cuối file và vì thế có thể dừng việc xử lý file Bạn có thể ẩn dữ liệu vào sau vạch EOF và ứng dụng sẽ bỏ qua nó mặc dù dữ liệu ẩn vẫn có ở trong file
Thuộc tính chính của kỹ thuật này là ta chỉ thêm dữ liệu vào file, không sửa hay thay đổi một chút nào nội dung đang có của file
Cái tốt hơn ở đây là với sự chèn vào ta có thể ẩn về mặt lý thuyết khá nhiều thông tin bạn muốn mà không làm giảm chất lượng file chứa
Và tệ ở chỗ là một vài điểm trong file sẽ lớn hơn bình thường
b Giấu tin dựa vào phương pháp thay thế
Trang 7Chính là chèn dữ liệu trên file, thường là ghi đè Phương pháp này đơn giản nhưng nên cẩn thận Thủ thuật là tìm thông tin không quan trọng trong file, thông tin có thể ghi đè lên mà không gây tác động gì đến file, hoặc không ảnh hưởng gì nhiều
Ví dụ trong file Word thì một vài dữ liệu giữa dấu Begin-text và End-text
có ảnh hưởng nhỏ tới văn bản và có thể ghi đè lên Khác với cách chèn thì ghi đè làm cho kích thước file không thay đổi
Nhưng hạn chế là ở chỗ lượng dữ liệu ẩn phụ thuộc vào file chứa vì số lượng dữ liệu không quan trọng trong file là hạn chế
c Giấu tin bằng phương pháp sinh
Cả hai kỹ thuật trên đều đòi hỏi phải có cách ẩn và file chứa Với kỹ thuật sinh việc giấu tin được dùng để tạo file chứa
Một ví dụ khá phổ biến của kỹ thuật giấu tin này là khi ta dùng file chứa
để tạo một ảnh Fractal Một ảnh Fractal có thuộc tính giới hạn toán học, nhưng về cơ bản nó là tập hợp của những mẫu và đường trong những màu khác nhau
Ta có thể dùng thông điệp ẩn của bạn để xác định góc, độ dài và mầu của mỗi đường
Trong các mô hình sinh, thông tin được chứa trong chính mô hình sinh file chứa (mô hình này thường được giữ kín), do đó việc phát hiện, hay tác động lên tin mật trên đường truyền sẽ khó khăn hơn (do thông tin mật không chứa đựng trong file chứa truyền đi)
III Giấu tin bằng mô hình sinh thơ lục bát
1 Giấu tin bằng mô hình sinh
Trang 8a Yêu cầu của bài toán
Yêu cầu đặt ra ở đây là giấu thông tin bằng một mô hình sinh nào đó Ở đây ta sử dụng mô hình sinh ngôn ngữ Như vậy, khi đưa vào một thông điệp thì
mô hình sẽ sinh ra một file văn bản mà nội dung file ẩn giấu (chứ không chứa) thông điệp cần nhúng Xuất phát từ đặc trưng của Steganography với mong muốn che giấu đi sự tồn tại của tin được nhúng, đòi hỏi file được sinh ra ở trên phải giả dạng được một dạng văn bản nào đó nhằm tránh đi sự nghi ngờ có thông tin ẩn trong quá trình truyền file
Ngược lại, khi nhận được file giấu, sử dụng mô hình đã dùng để sinh ta phải lấy lại được thông điệp đã giấu
Ngoài ra, đoạn văn bản giấu thông tin có thể bị tấn công trong quá trình truyền vì vậy vấn đề cần giải quyết là làm thế nào hạn chế được sự tấn công đó
b Phương pháp giấu tin bằng mô hình sinh ngôn ngữ
Đúng như tên của phương pháp, vấn đề cần nghiên cứu là sự kết hợp của hai kỹ thuật: giấu tin và sinh ngôn ngữ bằng văn phạm Đây cũng là hai kỹ thuật khó đạt được giải pháp tối ưu và hiện còn rất nhiều vấn đề cần bàn đến
Thực chất, phương pháp được xây dựng dựa trên sự đan xen các bước của hai kỹ thuật trên và chia làm 2 quá trình:
+ Quá trình giấu:
- Xây dựng văn phạm sinh ngôn ngữ
- Mã hóa văn phạm
- Mã hóa thông điệp cần truyền
- Sinh ngôn ngữ theo văn phạm và theo mã của thông điệp
Trang 9+ Quá trình trích rút
- Lấy nội dung file chứa
- Dùng văn phạm để giải mã
- Giải mã thông điệp
2 Chọn loại văn bản cần sinh
a Chọn thể thơ lục bát
Theo yêu cầu đặt ra, điều đáng quan tâm là tăng cường khả năng giả dạng của file chứa thông điệp Vì vậy ta cần xây dựng một văn phạm sản sinh ra ngôn ngữ một cách tự nhiên nhất Sinh ngôn ngữ tự nhiên bằng văn phạm đã rất khó được tự nhiên, thêm sự ràng buộc của thông điệp giấu làm cho độ tự nhiên lại càng giảm đi Vậy nên ta sẽ không quá phức tạp khâu mã hóa văn phạm và thông điệp cần giấu
Giải pháp cho vấn đề trên như sau:
Ta chọn xây dựng văn phạm sinh thơ lục bát Lục bát là thể thơ truyền thống của Việt Nam, một bài thơ lục bát là tập hợp của nhiều câu lục bát, mỗi câu thường ngắt nhịp theo 2 tiếng, độ dài của bài thơ là không giới hạn Điều này thuận lợi cho việc xây dựng văn phạm, mã hóa văn phạm, có khả năng chống tấn công, đặc điểm thể loại thơ (mức độ trừu tượng của ngữ nghĩa, tính chất vần điệu chặt chẽ) còn hạn chế được sự nghi ngờ do vẫn còn sự ngô nghê của câu chữ
b Về thể thơ lục bát
- Về số câu chữ
Trang 10Một bài thơ lục bát là tập hợp của các câu thơ lục bát, một câu lục bát gồm câu lục (6 tiếng) và câu bát (8 tiếng) Trong câu thơ nhịp thường được ngắt theo
2 tiếng (nhịp chẵn) Cũng có trường hợp ngoại lệ mỗi nhịp là 3 tiếng ( với câu 6)
và 4 tiếng (với câu 8)
- Gieo vần phối điệu
Thể thơ lục bát có cước vận và yêu vận, tức là vừa gieo vần chấn, vừa gieo vần lưng Tiếng cuối của câu lục gieo vần xuống tiếng 6 của câu bát, tiếng cuối của câu bát lại gieo vần xuống tiếng 6 của câu lục tiếp theo
Về phối điệu thơ lục bát có các luật “Nhất tam ngũ bất luận, nhị tứ lục phân minh” tức là các tiếng lẻ thì gì cũng được nhưng với các tiếng chẵn phải tuân theo đúng niêm luật
Luật phối điệu như sau:
Trong đó:
B : Thanh bằng
T : Thanh trắc
O : Thanh tự do ( bằng hoặc trắc)
Ngoài ra còn có luật trầm bổng, tức là tiếng thứ 6 và tiếng thứ 8 của câu bát mặc dù đều là thanh bằng nhưng có sự chuyển đổi từ âm trầm (huyền) sang
âm bổng (không)
Trang 11Luật gieo vần và phối điệu trên làm cho bài thơ lục bát nhịp nhàng chặt chẽ
c Văn phạm sinh thơ lục bát
Văn phạm được xây dựng có dạng văn phạm phi ngữ cảnh
Giả sử gọi văn phạm là GLB = (N,T,P,k) thì :
k: ký tự bắt đầu là thể thơ lục bát
N tập các biến:
Ta thấy một bài thơ lục bát là một chuỗi các câu lục bát, mỗi câu lục bát lại gồm 1 câu lục và 1 câu bát
Trang 12STT Tên biến Ký hiệu
T là tập các ký tự kết thúc: tập thanh âm (không, huyền, ngã ,hỏi, sắc, nặng), tập các vần, nguyên âm, phụ âm …
P : tập luật
1 <k> <C1> <CT>
2 <CT> <C2> <C2> <CT>
3 <C1> <CL1> <CB1>
4 <C2> <CL2> <CB2>
5 <CB2> <NB> <NT> <NT3> <NT2>
6 <NT3> <TG> <TT3>
7 <TT3> <V0> <TH3> <PA> <V0> <TH3>
8 <CL2> <NB> <NT> <NS2>
9 <NS2> <TG> <TS2>
10 <TS2> <V2> <THB> <PA> <V2> <THB>
Trang 1311 <CB1> <NB> <NT> <NT1> <NT2>
12 <NT1> <TG> <TT1>
13 <TT1> <V1> <TH3> <PA> <V1> <TH3>
14 <TH3> <PT> <THB>
15 <NT2> <TG> <TT2>
16 <TT2> <V2> <TH4> <PA> <V2> <TH4>
17 <V2> <PT> <V0>
18 <TH4> <PT> <DT(TH3)>
19 <CL1> <NB > <NT> <NS1>
20 <NS1> <TG> <TS1>
21 <TS1> <V1> <THB> <PA> <V1> <THB>
22 <V1> <PT> <V0>
23 <NB> <TG> <TB>
24 <NT> <TG> <TT>
25 <TB> <V0> <THB> <PA> <V0> <THB>
26 <TT> <V0> <THT> <PA> <V0> <THT>
27 <TG> <TB> <TT>
28 <V0> <NA> <NA> <PAC>
29 <PA> <PAD> <PAC>
30 <THB> {Huyền, Không}
32 <THT> {Sắc, Hỏi, Ngã, Nặng}
33 <DT> {Huyền} <PT> {Không} {Không} <PT>
{Huyền}
35 < NA> {Tập nguyên âm}
36 <PAD> {Tập phụ âm đầu}
37 <PAC> {Tập phụ âm cuối}
Tập nguyên âm : {a, ă, â, e, ê, i, o, ô, ơ, u, ư, y,
Trang 14ai, ao, au, ay, âu, ây, eo, êu, ia, iê, iu, oa, oi, oe, oă,
oo, ôi, ơi, ua, uâ, uă, uê, uô, ui, uy, ưa, ưi, ươ, ưu, yê, iêu, oai, oao, oay, oeo, uôi, uây, uyê, ươi, ươu, uya, uyu, yêu }
Tập phụ âm đầu : {b, d, đ, g, h, k, l, r, s, v, x, gh, gi, kh, ph, qu, th, tr, ngh} Tập phụ âm cuối: {c, p, t, m, n, ch, ng, nh}
Như vậy thơ lục bát (k) là tập dẫn xuất của các câu lục bát liên tiếp Ngôn ngữ sinh bởi văn phạm này chính là tập các bài thơ lục bát dẫn xuất từ k
L(GLB)={w | w T và k * w}
4 Giấu tin bằng thơ lục bát
Ta đã có được văn phạm sinh thơ, bây giờ sẽ tìm cách giấu thông tin vào thơ qua quá trình sinh đó Dưới đây là một số phương pháp giấu tin vào thơ, các phương pháp chủ yếu dựa vào tập T và sự khác nhau của các phương pháp này cũng bởi các cách xây dựng tập T khác nhau
a Phương pháp 1
Trong phương pháp này ta sẽ lấy từ để xây dựng thơ theo tập luật P
Khi xem xét tiếng Việt dưới góc độ Công nghệ thông tin ta thấy mọi từ trong tiếng Việt có cấu trúc như sau:
[<Phụ âm>] & <Nguyên âm>
Trong đó thành phần <phụ âm> có thể có hoặc không, thành phần
<Nguyên âm> bắt buộc phải có [7]