一种快速生成防伪码的加密算法的制作方法

文档序号:7746849阅读:736来源:国知局
专利名称:一种快速生成防伪码的加密算法的制作方法
技术领域
本发明涉及一种生成防伪码的方法,特别是一种快速生成防伪码的加密算法,属 于防伪技术领域。
背景技术
假冒产品不但侵害了广大消费者的利益,扰乱了正常的市场秩序,而且给厂商带 来了巨大的经济损失。各生产企业为了保护自己的利益不受假冒产品侵害,大多会在产品 上印刷防伪码。消费者在验证产品真假时,只需要刮开防伪码的覆盖层,通过网站、电话、手 机短信等形式输入防伪码,经过查询即可得知该产品的真伪结果。目前,生成防伪码的加密 算法很多,但大多数加密算法的加密强度不是很理想,加密速度也较慢。

发明内容
本发明所要解决的技术问题在于提供一种加密强度大、加密速度快的快速生成防 伪码的加密算法,从而克服上述现有技术的不足。为解决上述技术问题,本发明采用如下的技术方案一种快速生成防伪码的加密 算法。该加密算法包括以下步骤(1)、定义一个η位定长的密钥keyl ;(2)、根据生成的防伪码位数W,定义一个q位定长的密钥key2 ;(3)、通过选定的一种加密方法A将keyl演变成m个定长的子密钥Di(l),k(m)];(4)、设定生成c个防伪码,选择一个顺序数空间[s(i),s(j)];(5)、将上述顺序数空间[S⑴,s(j)]内的顺序数s (i)到s(j)与一设定的固定质 数r相乘,然后与密钥key2通过和运算,得到被加密明文[L (i),L (j)],其计算公式为L =
s氺r+key2 ;(6)、随机选取k(l)到k(m)之间的一个密钥k(rd),通过选定的一种加密方法B将 明文[L(i),L(j)]加密后得到密文,再将随机密匙K = rd附加在密文的指定位上,即得到 c个防伪码。上述的快速生成防伪码的加密算法,步骤O)中密钥key2的位数q = w (k(m) 的位数),即密钥key2的位数q介于防伪码位数w与k(m)的位数之间。前述的快速生成防伪码的加密算法,在验证防伪码时,需要根据加密算法中定义 的keyl,key2和r,通过对防伪码的指定位数进行提取,得到加密时使用的随机密匙K,再将 其他位根据加密方法B进行逆运算,得到被加密明文L,然后按照公式s = (L-ke^/r经计 算得到s,验证s是否属于加密时选择的顺序数空间[s(i),s(j)]即可知道防伪码的真假。有益效果与现有技术相比,与现有技术相比,本发明每次对明文的加密都采用随 机的密钥,加密强度大,且保证了生成的防伪码稀疏程度有一定的保证。而且本发明的加密 速度很快,经测试,在intel酷睿i3的CPU下,生成1000万个防伪码所需时间最多不超过 2秒。本发明的算法本身的可变性很高,可以根据需要生成不同位数的防伪码,最重要的是虽然被加密的内容是由顺序数通过简单运算而来,但所生成的密文却是无规则的乱序数。下面结合具体实施方式
对本发明作进一步的说明。
具体实施例方式实施例1。本发明的加密算法包括以下步骤(1)、首先定义一个 η 位定长的密钥 keyl。假设 keyl ="012345678901234567890 123456789”。(2)、根据生成的防伪码位数W,定义一个q位定长的密钥key2。假设防伪码位数 w = 6,q = 6,key2 = 159357 ;(3)、通过选定的一种加密方法A将keyl演变成m个w位定长的子密钥R(I), k(m)]。假设选定的加密方法A为k(m) = CLng (Mid (keyl,u,w)),u彡n,其中函数CLng表 示将括号中所取字符数字转换成长整型整数,Mid(keyl,U,w)表示从keyl字符串中的第u 位起取出w个字符。取出的的字符位数不应大于明文位数,以保证在步骤(6)的异或运算 时生成的数据位数不会大于明文位数。加密方法A可以使用任意方法,其主要目的是密匙 重组,因此不应仅限于实例的方法。假设m = 1000,w = 6, u随机设定。根据加密方法A, 假设k(l) = CLng(Mid(keyl, 7,6)) = 678901k(2) = CLng (Mid (keyl, 13,6)) = 234567。。。K(IOOO) = CLng (Mid (keyl, 1,6)) = 0123450)、设定生成c个防伪码,选择一个顺序数空间[s(i),s(j)], j > i,j-i = c。 假设生成防伪码的个数c = 10000, s (i) = 101, s (j) = 10100。(5)、将上述顺序数空间[S⑴,s(j)]内的顺序数s (i)到s(j)与一设定的固定质 数r相乘,然后与密钥key2通过和运算,得到被加密明文[L (i),L (j)],其计算公式为L = s*r+key2。如果设定质数r = 5,则L(i) = s(i)*r+key2 = 101*5+159357 = 159862L(i+1) = s(i+l)*r+key2 = 102*5+159357 = 159867。。。L(j) = s(j)*r+key2 = 10100*5+159357 = 209857(6)、随机选取k(l)到k(m)之间的一个密钥k(rd),通过选定的加密方法B将明文 [L(i), L(J)]加密后得到密文,再将随机密钥K = rd附加在密文的指定位上,即得到c个 防伪码。假设选定的加密方法B 为=Format ((L(i) Xor k (rd)),“000000”),其中 Format ((L(i)Xor k(rd)),“000000”)表示将(L(i)Xor k(rd))定长 6 位整数,如果整 数不足6位,则前面加“0”。假设随机选取的密钥为k(2) = 234567,则明文L(i)经加密 方法 B 加密后得到的密文为Format((L(i)Xor k(2)), "000000") = Format (159862Xor 234567,“000000”)= 123953,再将随机密匙K = 2插入密文的第3位,即得到最终防伪码 为1223953。依此类推,即可得到c个防伪码。防伪码验证时,验证的keyl,key2,r必须与加密算法中的数据配套。首先通过对防伪码的指定位数进行提取,得到加密时使用的随机密匙K,再将其他位根据选定的加密方 法B进行逆运算,得到被加密明文L,然后根据公式s = (L-key2)/r得到s,验证s是否属 于加密时的[s(i),s (j)],即可知道防伪码的真假。本发明中的加密方法A和加密方法B可以是任意方法,实际应用中不局限于上例 列举的加密方法。本发明的实施方式不限于上述实施例,在不脱离本发明宗旨的前提下做出的各种 变化均属于本发明的保护范围之内。
权利要求
1.一种快速生成防伪码的加密算法,其特征在于包括以下步骤,(1)、定义一个η位定长的密钥keyl;(2)、根据生成的防伪码位数w,定义一个q位定长的密钥key2;(3)、通过选定的一种加密方法A将keyl演变成m个定长的子密钥R(l),k (m)];(4)、设定生成c个防伪码,选择一个顺序数空间[s(i),s (j)];(5)、将上述顺序数空间[s⑴,s(j)]内的顺序数s⑴到s (j)与一设定的固定 质数r相乘,然后与密钥key2通过和运算,得到被加密明文[L (i),L (j)],其计算公式 为 L=s氺r+key2 ;(6)、随机选取k(1)到k (m)之间的一个密钥k (rd),通过选定的一种加密方法B将 明文[L (i),L (j)]加密后得到密文,再将随机密匙K=rd附加在密文的指定位上,即得 到c个防伪码。
2.根据权利要求1所述的快速生成防伪码的加密算法,其特征在于所述的步骤(2)中 密钥key2的位数q=w (k(m)的位数)。
3.根据权利要求1所述的快速生成防伪码的加密算法,其特征在于验证防伪码时,根 据加密算法中定义的keyl,key2和r,通过对防伪码的指定位数进行提取,得到加密时使用 的随机密匙K,再将其他位根据加密方法B进行逆运算,得到被加密明文L,然后按照公式 S= (L-key2) A 经计算得到s,验证s是否属于加密时选择的顺序数空间[s (i),s (j)] 即可知道防伪码的真假。
全文摘要
本发明公开了一种快速生成防伪码的加密算法,该加密算法首先定义一个密钥key1和一个密钥key2,然后通过选定的一种加密方法将key1演变成m个子密钥,再根据生成的防伪码个数选择一个顺序数空间,并将该顺序数空间内的顺序数与一固定质数r相乘,然后与密钥key2通过和运算,得到被加密明文,最后从m个子密钥中随机选取一个密钥,通过选定的一种加密方法将明文加密,再将随机密匙附加在密文的指定位上,即得到防伪码。本发明具有加密强度大、加密速度快等特点,且保证了生成的防伪码稀疏程度有一定的保证,虽然被加密的内容是由顺序数通过简单运算而来,但所生成的密文却是无规则的乱序数。
文档编号H04L9/08GK102136906SQ20111011123
公开日2011年7月27日 申请日期2011年4月29日 优先权日2011年4月29日
发明者刘新桥 申请人:贵阳高新华美龙技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1