基于混沌图像的防伪技术
(2)在这样的(0,1)序列中已形成的一串字符S=s1,s2,...sr后,再加称之为Q的一个或一串字符Sr+1或者(Sr+1,Sr+2…Sr+k),得到SQ。令SQπ是一串字符SQ减去最后的一个字符,再看Q是否属于SQπ字符串中已有的“字句”。如果已经有过,那么把这个字符加在后面称之为“复制”。如果没有出现过,则称之为“插入”。“插入”时用一个“。”把前后分开。下一步则把“。”前面的所有字符看成S,再重复如上步骤。例如,序列0010的复杂度可以由下列步骤而得:
a)第一个符号永远是插入→0.
b)S=0,Q=0, SQ=00, SQπ=0,Q属于SQπ→0.0.
c)S=0,Q=01,SQ=001,SQπ=00,Q不属于SQπ→0.01.
d)S=001,Q=0,SQ=0010,SQπ=001,Q属于SQπ→0.01.0.这时c(n)=3。如符号列0000...应是最简单的,它的形式应是0.0000…,c(n)=2。符号列01010101…应是0.1.0101…,c(n)=3。
(3)如上所述,就得到用“。”分成段的字符串。分成了段的数目就定义为“复杂度”c(n)。
根据Lampel和Ziv的研究,对几乎所有的x属于[0,1]区间的c(n)都会趋向一个定值:
javascript:window.open(this.src);" style="cursor:pointer;"/>
其中,b(n)是随机序列的渐进行为,可以用它来使c(n)归一化,称为“相对复杂度”。
定义相对复杂度:
C(n)=c(n)/b(n)=[c(n)logn]/n (5)
通常就是用这个函数来表达时间序列的复杂性变化。从这种算法可以看出,完全随机的序列C(n)值趋向于1,而有规律的周期运动的C(n)值则趋向于0。
如果有一个随机序列,其中“1”的概率并非是0.5,那么它的复杂性就被认为是一个概率为P的随机序列的复杂性。由此可以表达为:
javascript:window.open(this.src);" style="cursor:pointer;"/>
h≤1,h称为源熵,其极大值在p=0.5的位置。h<1时,比较javascript:window.open(this.src);" style="cursor:pointer;"/>与1的偏差,当两者很接近时,认为符号串是复杂性较高的串,即为随机串;否则认为在符号串中存在着某种模式。
Kolmogorov复杂性也称为算法复杂性,它是一种随机性测度,反映了一个随机序列随其长度的增长出现新模式的速率,表现了序列接近随机的程度,在某种程度上反映了符号序列的结构特性,而不是动态系统的特性。
4 混沌防伪标记的应用
仅靠一个混沌防伪标记是无法达到防伪的目的,必须结合数字信息和混沌防伪标记来达到防伪的目的。具体说来,即可以直接将混沌图像的特征数据加密后,将加密后的数字信息以二维条码的形式打印在防伪标记旁边,组成一个完整的防伪标记(图3)。在真假鉴别过程中,用公开密钥解密混沌防伪标记上二维条码的数字信息,然后对照混沌防伪标记的特征数据。如果一样,则认为是真的防伪标记,否则则是假的防伪标记。javascript:window.open(this.src);" style="cursor:pointer;"/>
此外,也可以结合查询防伪技术,直接将混沌防伪特征数字保存在自己的服务器上。混沌防伪技术可以应用于各种证件、支票等,这里都不再详细介绍。
本文利用不可复制的混沌图像作为防伪标记,然后用复杂性算法提取特征数据,是一种全新的防伪技术,不同于激光防伪、生物防伪、条码防伪等技术。其制作过程是不依赖于任何技术保密,没有一个人能够造假出完全一样的防伪标记。由于混沌图像中包含大量的类似于美圆中微印刷所产生的微结构,有效地防止了造假者通过复印等手段来造假。
混沌轨道具有极为丰富的微结构,所以包含有大量的信息量。这为区分混沌图形创造了极为有效的条件,据报道指纹失误率可达到1/243,本项技术可容易地达到1/2100。而且需要时,达到1/2200也不成问题。任何能在纸上用物理和化学的方法产生不规则的图案都可以作为防伪图像标记。本文所描述的防伪技术已经申请了专利。