MT THUT TOÁN MI GIU TIN TRONG NH
NH PHÂN S DNG TÍNH CHN L CA CÁC KHI BIT
ThS. NGUYN HIU CƯỜNG
B môn Công ngh phn mm
Khoa Công ngh thông tin
Trường Đại hc Giao thông Vn ti
Tóm tt: Báo cáo trình bày mt thut toán mi để giu tin trong nh nh phân s dng
tính chn l ca các khi bit. Thut toán có th giu được mt bit vào mi khi nh bng cách
thay đổi nhiu nht mt phn t ca khi đó, trong khi tính bo mt và cht lượng nh sau khi
giu tin ca thut toán này khá cao.
Summary: The paper presents a new algorithm for hiding data in binary images using
parity blocks. The algorithm can hide one bit in each image block by changing at most one bit
in the block. It has also good quality in security and stego-images.
I. ĐẶT VN ĐỀ
Giu tin là k thut nhm giu nhng thông tin s cn bo mt vào trong mt đối tượng d
liu s khác (gi là môi trường giu tin) sao cho s biến đổi ca môi trường sau khi đã giu tin
là rt khó nhn biết, do vy đối phương s không th biết được trong mt đối tượng nào đó có
giu thông tin mt hay không. Giu tin là gii pháp hiu qu cho nhiu vn đề trong bo mt
thông tin hin nay, như truyn tin bí mt, bo v bn quyn, xác thc thông tin,… Môi trường
giu tin có th là bt k đối tượng d liu đa phương tin nào nhưng ph biến nht là nh s.
CB-
CNTT
Các thut toán giu tin trong nh thường s dng nh màu hoc nh đa mc xám làm môi
trường giu tin, do chúng có môi trường “dày” và vì thế lượng tin có th giu được ln và tính
che giu cao. Giu tin trong nh nh phân là mt thách thc ln hơn, vì không như các loi nh
trên, môi trường giu tin trong nh nh phân rt “thưa”, mi đim nh ca nó ch được th hin
bi mt bit nên s rt d b phát hin khi có bt k s biến đổi nào [2, 3, 4].
Trong thi gian gn đây nhóm tác gi Venkatesan trường Đại hc k thut Rangasamy đã
đề xut mt thut toán giu tin trong nh nh phân [1]. Thut toán này s dng k thut giu tin
da trên tính chn l ca các khi bit 3×3, mi khi giu được mt bit bng cách thay đổi ti đa
mt phn t trong khi đó. Thut toán s dng mt k thut chn bit để thay đổi sao cho nh
sau khi giu tin ít b nh hưởng nht. Tuy nhiên thut toán trong [1] có độ bo mt thp, tc là
trong trường hp đối phương biết mt bc nh có giu tin bng thut toán này thì s d dàng
trích rút được thông tin đã giu.
Trong báo cáo này s trình bày mt thut toán mi, ci tiến t thut toán trong [1], cũng
da trên tính chn l ca các khi bit, nhưng có s dng thêm mt ma trn khóa để tăng cường
tính bo mt cho thut toán giu tin. Khi nhn được nh có tin giu, người nhn cn phi có
thêm ma trn khóa mi có th trích rút được thông tin. Khi bit được s dng không ch c định
là 3×3 mà có th là m×n bt k. Các tham s m và n cũng là nhng yếu t để tăng thêm tính bo
mt, đồng thi có th la chn linh hot các giá tr ca chúng để tăng cht lượng nh sau khi
giu tin. Nếu lượng tin cn giu nh so vi nh gc thì có th điu chnh tăng giá tr m và n lên
sao cho tin giu được tri đều trên toàn nh, thay vì ch tp trung vào mt phn nh phía trên
nh, do đó mt độ các bit phi thay đổi s thp, nên tính che giu ca nh s cao hơn. Ngoài ra
cht lượng nh sau khi giu còn được nâng cao hơn do trong thut toán mi này, nhng khi
toàn màu đen hoc toàn màu trng s không được s dng để giu tin.
II. MT S ĐỊNH NGHĨA
Định nghĩa 1. Phép toán ^ là phép AND tng phn t ca hai ma trn cùng cp.
Vi A, B là các ma trn cùng cp m×n, ta có C = A^B cũng là ma trn cp m×n trong đó
C[j,k] = A[j,k] AND B[j,k], vi j = 1, 2, …, m, k = 1, 2, …, n.
Định nghĩa 2. Phép toán SUM(F) tính tng các phn t ca ma trn F.
Định nghĩa 3. Phn t láng ging ca phn t F[j,k] là phn t F[u,v] tha mãn các điu
kin:
<
<
+
2kv
2ju
2kvju1
Định nghĩa 4. Ma trn láng ging ca ma trn F cp m×n là ma trn N cp m×n trong đó
N[j,k] là s phn t láng ging thuc khi F ca F[j,k] mà có giá tr khác vi F[j,k]. CB-CNTT
Ví d:
Nếu F = thì N =
100
100
111
220
252
122
III. NI DUNG THUT TOÁN
D liu vào:
+ F: nh nh phân được dùng để giu tin
+ m và n: Kích thước ca khi con Fi ca F
+ K: Ma trn nh phân cp m×n vi các giá tr được la chn ngu nhiên
+ B: Dãy bit cn giu vào F
F là mt ma trn nh phân và được phân hoch thành các khi Fi cp m×n. Mi khi Fi s
được s dng để giu mt bit b ca B bng cách thay đổi nhiu nht mt phn t trong Fi.
Ma trn K là khoá bí mt, được tha thun gia người gi và người nhn. Người gi s
dng K trong quá trình giu tin và người nhn sau khi có nh F’ cha tin giu cn phi có thêm
K để có th khôi phc li thông tin đã giu.
D liu ra:
+ F’: nh nh phân cha dãy bit B, trong đó mi khi F’i cp m×n là mt phân hoch ca
F’ giu mt bit b ca B và F’i khác Fi nhiu nht là mt bit.
Thut toán thc hin giu tng bit b ca B tun t vào mi khi Fi ca F theo các bước sau:
Bước 1:
+ Tính SUM(Fi)
+ Nếu SUM(Fi) = 0 hoc SUM(Fi) = mn thì b qua không giu tin vào khi Fi này, chuyn
sang xét khi Fi tiếp theo.
+ Nếu 0 < SUM(Fi) < mn thì chuyn sang bước 2 để giu tin. Vic giu tin vào Fi thc cht
là biến đổi Fi thành F’i sao cho tha mãn mt bt biến nào đó. Bt biến này cũng chính là du
hiu để có th khôi phc li thông tin đã giu. Trong thut toán này bt biến cn đạt được là
SUM(F’i ^ K) = b (mod 2), nói cách khác b phi có cùng tính chn l vi SUM(F’i ^ K).
Bước 2:
+ Tính S = SUM(Fi ^ K)
+ Nếu S = b (mod 2) thì đã đạt bt biến, do đó trường hp này giu được mt bit vào Fi mà
không cn phi biến đổi Fi.
+ Nếu S b (mod 2) thì cn phi biến đổi Fi sao cho đạt được bt biến. Để làm vic này
ch cn thay đổi mt bit trong Fi sao cho tính chn l ca S thay đổi là được. Đây là trường hp
giu mt bit vào Fi bng cách thay đổi mt phn t trong Fi.
CB-
CNTT
Tuy nhiên qua th nghim thy rng vi k thut thay đổi bit ngu nhiên, tc là s dng
mi khi Fi để giu tin và trong trường hp cn thay đổi mt phn t trong Fi li thay đổi mt
phn t bt k min sao đạt được bt biến thì cht lượng nh sau khi giu s không được tt,
xut hin khá nhiu đim bt thường. Do đó mt vn đề được đặt ra là cn mt k thut thay đổi
bit có chn lc: xác định đúng các khi Fi để giu tin và v trí phn t cn thay đổi trong Fi sao
cho nh ít b nh hưởng nht.
Trong bước 1, để tránh giu vào các khi toàn màu đen hoc toàn màu trng, ta đã đưa ra
điu kin ch giu vào các khi Fi tha mãn 0 < SUM(Fi) < mn. Trong bước 2 này, trường
hp giu bit b mà cn phi thay đổi mt phn t ca khi Fi thì ta không thay đổi ngay mt
phn t bt k mà chuyn sang bước 3 để xác định phn t thích hp nht.
Bước 3:
+ Xây dng ma trn láng ging Ni ca ma trn Fi
+ Xác định phn t Ni[j,k] có giá tr ln nht trong ma trn Ni mà có K[j,k] = 1
+ Thay đổi phn t Fi[j,k]
Vi tính cht ca ma trn láng ging thì rõ ràng nếu Ni[j,k] có giá tr ln nht và K[j,k] = 1
thì sau khi thay đổi Fi[j,k] ta s nhn được F’i tha mãn bt biến và F’i[j,k] có nhiu phn t
láng ging ging nó nht, do đó s hn chế các đim bt thường và nâng cao được cht lượng
nh sau khi giu tin.
Ví d:
Nếu Fi = Thì Ni = Chn K =
100
100
111
220
252
122
001
110
011
Gi s bit cn giu vào Fi là bit 0.
Vì SUM(Fi) = 5 tha mãn 0 < SUM(Fi) < 9 nên có th s dng Fi để giu tin.
SUM(Fi ^ K) = 3 khác tính chn l vi 0 nên để giu được bit 0 vào Fi cn phi thay đổi mt
phn t trong Fi. Do Ni[2,2] có giá tr ln nht và K[2,2] = 1 nên phn t được chn để thay đổi
là Fi[2,2].
Kết qu sau khi giu bit 0 vào Fi, có F’i = .
100
110
111
Nhn xét: Vic la chn khóa K là hoàn toàn ngu nhiên, do đó s kh năng la chn có
th lên đến 2mn. Khi K càng có nhiu bit 0 thì xác sut để các phn t Ni[j,k] có giá tr ln nht
trong ma trn láng ging mà có K[j,k] = 1 càng nh, vì thế s hn chế kh năng la chn phn t
tt nht để thay đổi. Tt nhiên, nếu K gm toàn bit 0 thì ta không th s dng nó trong thut
toán này để giu tin được.
Để khôi phc li tin giu: CB-CNTT
Thut toán này có th khôi phc li thông tin đã giu mà không cn có nh gc. Để khôi
phc thông tin cn: nh nh phân F’ có cha tin giu và ma trn khóa K cp m×n. Qui trình khôi
phc tin được thc hin ngược vi qui trình giu tin, theo các bước:
+ Phân hoch F’ thành các khi F’i cp m×n, sau đó thc hin tun t trên các khi F’i các
công vic sau:
+ Tính SUM(F’i)
+ Nếu SUM(F’i) = 0 hoc SUM(F’i) = mn thì chuyn sang khi F’i tiếp theo vì trong khi
F’i này không có tin giu.
+ Nếu 0 < SUM(F’i) < mn thì chng t trong khi F’i này có tin giu, và ta cn khôi phc
li bit thông tin này.
Tính giá tr b = SUM(F’i ^ K) mod 2, và b chính là bit đã được giu trong F’i.
IV. TH NGHIM
Chương trình th nghim giu mt nh nh phân logo.bmp (hình 1) có kích thước 54×54
vào trong mt nh nh phân cachep.bmp (hình 2) kích thước 210×210, vi kích c các phân
hoch trên nh gc là 3×3. Kết qu th nghim giu tin được th hin trong các hình 3, 4 và 5.
logo.bmp
cachep.bmp
cachep_ngaunhien.bmp
Hình 1. nh cn giuHình Hình 2. nh gc trước khi giu tin Hình 3. nh sau khi giu logo.bmp
bng k thut thay đổi bit ngu nhiên
cachep_chonloc1.bmp
cachep_chonloc.bmp
Hình 4. nh sau khi giu logo.bmp bng k thut
chn khi để giu – nhng khi toàn màu đen hoc
toàn màu trng không được s dng để giu tin
Hình 5. nh sau khi giu logo.bmp bng k thut chn
khi để giu và chn bit thích hp trong khi để thay
đổi vi vic s dng ma trn láng ging ca khi
CB-
CNTT
V. KT LUN
Báo cáo trình bày mt thut toán mi để giu tin trong nh nh phân. Thut toán có th giu
mt bit vào mi khi nh m×n bng cách thay đổi nhiu nht mt phn t trong khi đó. Thut
toán s dng tính chn l ca các khi bit để xây dng bt biến, s dng mt ma trn khóa để tăng
tính bo mt và dùng k thut thay đổi bit có chn lc để nâng cao cht lượng nh sau khi giu.
Tài liu tham kho
[1]. M. Venkatesan, P. Meenakshi Devi, K. Duraiswamy, K. Thiagarajah. A New Data Hiding Scheme
with Quality Control for Binary Images Using Block Parity. 3rd International Symposium on Information
Assurance and Security, IEEE, 2007.
[2]. M. Wu, J. Lee. A Novel Data Embedding Method for Two-Color Fascimile Images. In Proceedings of
International Symposium on Multimedia Information Processing. Chung-Li, Taiwan, R.O.C, 1998.
[3]. C. Chan, C. Chang. A Survey of Information Hiding Schemes for Digital Images. IJCSES
International Journal of Computer Sciences and Engineering Systems, Vol.1, No.3, July 2007.
[4]. Phm Văn t, Nguyn Hiếu Cường, Đỗ Văn Tun. Giu tin trong nh nh phân và ng dng. Tp chí
Khoa hc Giao thông vn ti, s 19, tháng 9 năm 2007