Chủ Nhật, 9 tháng 2, 2014

Giấu tin trong mô hình sinh thơ lục bát

GIẤ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
ả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
Bứ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.
- Đố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.
4. 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à có
Lưu trữ
Bảo mật Bản quyền
Khả năng Lưu trữ
Khả năng không
bị phát hiện
Tính bền vững
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ế
Chí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
a. 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
+ 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ữ
Mộ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:
O B O T O B
O B O T O B O B
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).
Luậ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à G
LB
= (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.
STT Tên biến Ký hiệu
1 Thơ lục bát K
2 Câu 1 C1
3 Câu tiếp theo CT
4 Câu 2 C2
5 Câu lục 1 CL1
6 Câu lục 2 CL2
7 Câu bát 1 CB1
8 Câu bát 2 CB2
9 Nhịp bằng NB
10 Nhịp trắc NT
11 Nhịp sáu 1 NS1
12 Nhịp sáu 2 NS2
13 Nhịp tám 1 NT1
14 Nhịp tám 2 NT2
15 Nhịp tám 3 NT3
16 Tiếng sáu 1 TS1
17 Tiếng sáu 2 TS2
18 Tiếng tám 1 TT1
19 Tiếng tám 2 TT2
20 Tiếng tám 3 TT3
STT Tên biến Ký hiệu
21 Vần V0
22 Vần 1 V1
23 Vần 2 V2
24 Tiếng TG
25 Tiếng bằng TB
26 Tiếng trắc TT
27 Thanh bằng THB
28 Thanh trắc THT
29 Thanh tám 1 TH3
30 Thanh tám 2 TH4
31 Phép toán PT
32 Đảo thanh DT
33 Phụ âm PA
34 Phụ âm đầu PAD
35 Phụ âm cuối PAC
36 Nguyên âm NA
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>
11
<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}
34
<PT> →
{=}
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,
ai, 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(G
LB
)={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]

Không có nhận xét nào:

Đăng nhận xét