文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.04.033
中文引用格式:温涛,陈够喜,李瑞林. 互动式《俄罗斯方块》游戏安全隐写[J].电子技术应用,2016,42(4):120-123.
英文引用格式:Wen Tao,Chen Gouxi,Li Ruilin. Security steganography in interactive Tetris game[J].Application of Electronic Technique,2016,42(4):120-123.
0 引言
信息隐藏是指通信双方在有第三方的监视下,将秘密信息以一种不可见的方式传输,常被应用于军事领域等一些重要场合。信息隐藏技术一直是信息安全领域的重要组成部分,在过去的20年内,信息隐藏技术得到极大的发展。首先是隐藏域的扩大,从刚开始的空域、频域,到近些年新提出的加密域[1]等,它们都是将载体做信号变换处理,然后将秘密信息嵌入到变换后的载体中,第三方无法轻易判断出载体是否携带秘密信息;其次是隐藏算法的增加,最开始提出的是图像空域LSB算法[2],该算法嵌入容量大且易实现,使用极为广泛,但是容易被卡方检验等统计分析方法判断出是否携带有秘密信息;DE算法[3]是最常见的可逆隐藏算法,但是由于嵌入容量较小,鲁棒性较差,受到压缩、变形等攻击后不能无损的恢复,实际情况中依旧不被广泛使用;最后是隐藏载体的增多,从被研究最早同时也是最彻底的图像载体[4]和音频载体,到PowerPoint文件[5]和TCP帧[6]等载体中都可以实现信息隐藏。
在游戏中隐藏信息以实现隐秘通信引起一些国内外学者的注意,他们利用游戏的各种特点,在不改变游戏规则的前提下,同样实现信息隐藏。吴军等[7]提出一种基于《七巧板》游戏的图像信息伪装算法,将机密数字图像和载体图像分成适当的小块,按一定的条件寻找匹配关系, 然后将描述匹配关系的参数经编码后隐藏在载体图像之中,到接收方提取出描述匹配关系的参数,然后利用这些匹配关系恢复出机密图像。Hernandez-Castro等[8]提出在游戏中实现信息隐藏的框架,并将其应用于《围棋》游戏中;Lee等[9]提出在《迷宫》游戏中的隐藏方法,将信息隐藏在解密该迷宫的路径中,只有知道这种方法的人才可以获取到秘密信息。但是,它们的嵌入容量都受到游戏自身大小的限制;Zhan-He[10]等在《俄罗斯方块》游戏中实现信息隐藏,将游戏中7种不同的板块抽象为数字0~6,采用了基于七进制而非广泛应用的二进制编码秘密信息。
本文同样提出一种基于《俄罗斯方块》游戏的信息隐藏方法,与文献[10]不同的是,本文的方案适用于二进制编码表示的信息,且在嵌入容量方面优于文献[10]。
1 关于《俄罗斯方块》游戏
《俄罗斯方块》是由俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。该游戏由4个小方块组成的不同形状的板块陆续从屏幕上方落下来,板块可以旋转和调整位置,使它们在屏幕底部拼出完整的一条或几条,这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。
2 本文方案
本文的核心思想是:在不改变游戏规则的前提下,将秘密信息加载到游戏中板块的下落过程中,从而实现信息隐藏。
2.1 隐写原理
《俄罗斯方块》游戏中共有7种不同的板块,分别用ti(i∈[0,6]∩Z)表示,如图1所示。
其中每个板块可以携带3 bit信息I={i0i1i2|i0,i1,i2∈{0,1}},ik(k=0,1,2)的取值分别如下:
(1)i0的取值:t0板块的落下不携带任何信息,其余6种板块ti(i=1,2,3,4,5,6)根据形态变化的数量分为两个板块组,其中,表示有两种形态变化的组为M0={t1,t2,t3},表示有4种形态变化的组为M1={t4,t5,t6}。如果本次落下的板块ti属于M0,i0=0;否则,如果本次落下的板块ti属于M1,则i0=1。
(2)i1的取值:不同的板块组有不同的形态变化,如图1所示,其中t0板块没有变化,M0中的板块有两种形态的变化,分别用a、b表示;M1中的板块有4种形态的变化,分别用a、b、c、d表示。每个板块ti的形态变化都是从a形态开始,顺时针旋转n×90°(n∈[0,3]∩Z)后得到。假设每个板块初始落下的形态用v=0表示,每经过一次旋转v+1(mod2),i1的值为该板块最终落到屏幕底部时的v值。例如,设某板块落下的初始形态为t4.b,最终形态为t4.a,期间需要顺时针旋转3×90°,其形态与v值如表1所示。
(3)i2的取值:每个板块都是从游戏区域的中间落下。d为板块最终落到屏幕底部的位置相对于初始位置的距离,如果d%2(%为取余运算)=1,则i2=1,否则如果d%2=0,i2=0。如图2、图3所示,板块最终落到屏幕底部的位置相对于初始位置的距离d=1,d%2=0,则此时i2=0。
综上所述,一个板块的从游戏区域的顶部落到区域底部可以携带3 bit秘密信息,规则如表2所示。
2.2 隐秘通信方案
一个完整的隐秘通信系统必须包括表示信息传输的开始及结束的标识,这部分将介绍它们,并就基于2.1的算法提供一个完整的方案。
该方案可以用元组表示:Ω={P,W,R,I,G}。P表示游戏双方,P={Sender,Receiver};W是第三方攻击者,Wendy,他有能力破解该通信系统;R表示规则的集合,包括传输信息的开始规则、板块下落携带信息规则以及信息传输的完成规则等;I是秘密信息,I的内容不能被W获取到;G表示该《俄罗斯方块》游戏。
该隐秘通信的方案如下:
(1)Sender和Receiver之间共享一对公钥和私钥,Sender通过RSA非对称加密算法,将随机种子Rs加密,Rs的作用是生成伪随机序列K(Ki∈{0,1}),i∈0,1,2,…,M),Sender利用该序列以按位异或的方式加密欲传输的秘密信息I(Ii∈{0,1}),i∈0,1,2,…,M),得到C,C是Sender在游戏中实际传输的信息。C=ci=Iiki(i=0,1,2,…,M)。
(2)Sender将加密后的Rs(长度为L,且Receiver已提前知悉)与M bit信息按如下方式组合:Rs+C,并将其分为(M+L)/3组,分别用T1,T1,…,Tk(k∈[1,(M+L)/3])表示。对于每组Tk,第一个比特的值决定该携带该组信息的板块ti∈M0还是ti∈M1,Sender重新编程实现《俄罗斯方块》游戏,特点如下:
①游戏G接收到Sender开始传输信息的信号之前,G中板块落下规则与普通游戏相同。
②G接收到Sender开始传输信息的信号后,根据选择下落板块ti∈M0或ti∈M1,并从它们中随机选择某个板块ti落下。
③G接收到Sender完成信息传输的信号之后,G将板块下落规则恢复成正常游戏的规则。Sender将重新编程后的游戏上传到在线游戏网站中。
(3)Sender邀请Receiver参与在线《俄罗斯方块》游戏,模式为双人竞赛模式。
(4)当Sender第一次消去完整的横条时,表示下一次落下的板块中携带有信息。
(5)Receiver收到Sender开始传输信息的信号后,开始记录Sender端每一个板块的下落、旋转和移动等相关信息。
(6)当Sender将某个板块快速地落到屏幕最底层,表示他已经完成Rs+C的传输。Receiver收到此信号后,停止记录板块的信息,并根据2.1所述原理,得到与Sender相同的种子Rs和加密后的信息C,生成与Sender相同的伪随机序列K,解密后得到秘密信息I:ciki=Iikiki=Ii(i=0,1,2,…,M)。
(7)如果信息传输完成时,Sender或Receiver还未完成游戏,则继续完成游戏即可,此后的游戏并不影响信息传输;若Sender的游戏已经结束,但信息还未完成传输,Sender要重新开始下一局游戏,重复步骤(3)~(6),直到所有的信息传输完成。
注意:为提高方案的安全性,在携带信息的板块中,每7个至少有一个t0板块。同时,要保证每局游戏的Rs均不同。
3 安全性分析
信息隐藏技术最重要的指标是其安全性。信息隐藏的安全性分为两类[11]:
第一类:信息隐藏技术是S1安全的,是指攻击者W没有合理的理由证明经过传输信息的通讯信息S中隐藏有秘密信息I。
第二类:信息隐藏技术是S2安全的,是指攻击者W无法破坏经过传输信道的通信信息S中隐藏的所有秘密信息I。
4 实验
从《俄罗斯方块》官方网站中选择3种不同种类的游戏,每种游戏落下的板块均总数超过10 000,分别记录7种板块出现的次数,并计算其频率。同时,选取不同大小的3组比特序列,分别用本文提到的算法和文献[10]的算法传输,记录3局游戏中每个板块出现的频率,如图4所示。
从图中可以看出,普通《俄罗斯方块》游戏的板块频率出现在[0.135,015]内,接近1/7(约为0.143),而本文提到的算法中板块的频率同样浮动在1/7上下,由此可证明该算法是S1安全的。
在上述实验的同时,同时记录下文献[10]的算法与本文提到的算法中的核心板块的数量,如表3所示。
由表中数据可知,本算法在嵌入容量方面高于文献[10]。
5 结论
本文提出了一种新颖的安全隐写方法,在《俄罗斯方块》游戏中隐藏信息,首先依据板块的变化数量,将板块分类,然后通过板块的移动、旋转等方式,在板块的落下过程中携带信息,每个板块都可以携带3 bit的信息。本文从理论和实验方面,分别证明了本算法可达到S1安全,同时分析证明了本方案在嵌入容量方面得到提升。由于本文的方案在嵌入容量方面依赖于游戏本身的大小,所以接下来的研究重点是改进该方案,增大嵌入容量以及在其他游戏载体中嵌入秘密信息,实现隐秘通信。
参考文献
[1] ZHANG X.Reversible data hiding in encrypted image[J].Signal Processing Letters,IEEE,2011,18(4):255-258.
[2] 刘粉林.数字图像隐写分析[M].北京:机械工业出版社,2010.
[3] TIAN J.Reversible data embedding using a difference expansion[J].IEEE Trans.Circuits Syst.Video Techn.,2003,13(8):890-896.
[4] 陈够喜,伍玉良,张鹏程,等.二值图像中的安全隐写[J].小型微型计算机系统,2012,33(7):1625-1628.
[5] YANG W C,CHEN L H.A steganographic method via various animations in PowerPoint files[J].Multimedia Tools and Applications,2013,74(3):1003-1019.
[6] WENDEZL S,ZANDER S,FECHNER B,et al.Pattern-based survey and categorization of network covert channel techniques[J].ACM Computing Surveys(CSUR),2015,47(3):50.
[7] 吴军,吴秋新.一种基于七巧板游戏的数字图像信息伪装方法[J].计算机应用,2004,24(6):125-128.
[8] HERNANDEZ-CASTRO J C,BLASCO-LOPEZ I,ESTEVEZ-TAPIADOR J M,et al.Steganography in games:A general methodology and its application to the game of Go[J].Computers & Security,2006,25(1):64-71.
[9] LEE H L,LEE C F,CHEN L H.A perfect maze based steganographic method[J].Journal of Systems and Software,2010,83(12):2528-2535.
[10] OU Z H,CHEN L H.A steganographic method based on tetris games[J].Information Sciences,2014,276:343-353.
[11] 林代茂,胡岚,郭云彪,等.广义信息隐藏技术的安全问题[J].中山大学学报:自然科学版,2005,43(A02):14-16.