微信加密的探讨

时间:2022-10-09 09:22:32

基于微信息的业务从现有的娱乐应用已进入到商务应用、电子政务和社会服务等领域。然而在美好景象的背后,存在着不可小视的安全问题。虚假与不良微信息的传播;侵犯个人隐私;手机病毒的传播以及垃圾微信的泛滥等。这些都涉及到信息的加密与解密,通信双方身份的相互认证,信息的完整性鉴别等安全方面的问题。

数字签名是通信双方进行身份认证和防止抵赖必不可少的技术,现有的大多数数字签名方案都是基于离散对数问题,但这类签名方案中都普遍存在着“生日攻击”问题。由于微信息通信有着自己独特的特点,以及Tate配对的计算量要比Weil配对几乎少一半的性质,我们选择了利用椭圆曲线上的Tate配对构造了一种新的签名加密算法,将数字签名和加密技术融为一体,不仅能够识别发送信息者的身份和对微信息的保密,还能有效地抵抗“生日攻击”。在该加密算法中加入了时间标志,可以抵抗重发密文的攻击。

一、微信息加密方案

(一)系统参数的建立(由一个可信中心执行)

(二)用户密钥的生成

假设ID表示用户Alice的身份,可信中心对Alice进行物理鉴定以确信ID具有唯一性后,计算QID=F(ID),dID=sQID,通过安全信道将密钥dID发送给Alice,QID为公钥。

二、微信息加密

手机用户之间的微信息通信,通常以微信息业务服务商作为媒介。设手机用户A和微信息业务服务商B的密钥对是(dA,QA)和(dB,QB),A将微信息m发送给B,则手机用户A依次执行如下的加密算法:

三、微信息解密

微信业务服务商B收到(c,y1,t)后,执行如下的解密算法:计算t=tb-t,tb是微信业务服务商B收到微信息的时间,如果t大于规定的时间,则拒绝解密,否则进行如下处理:

计算等式T=H(m,S,t)是否成立。当且仅当(3)和(4)两个等式同时成立时,接受m为手机用户A发送的有效微信息。

四、签名加密算法的安全性分析

(一)双层加密

该方案采用双层加密模型,其安全性主要基于椭圆曲线加法群的离散对数问题。用椭圆曲线加密体制ECC生成对称密码体制AES的随机会话密钥K,再用AES加密明文m和(r1,r2,S,T)。选择128比特以上的AES和256比特的ECC;为了更好的掩盖明文m,使用AES的CFB模式来加密信息。如果攻击者选择攻击密文c,则在现有的技术条件下直接攻击128比特的AES是极其困难的;若选择攻击密钥K,则面临棘手的ECDLP数学难题;且密钥K是一次性的密钥,只使用一次此后不再有效,即使得到密钥K也没有多大的实用价值。Hash函数的多次使用,增强了加密解密的单向性,进一步提高了算法的安全性。

(二)密钥交换

在该方案中,AES的随机会话密钥K只使用一次,以后不再使用。通信双方可以动态的交换密钥K,只有接收方B收到发送方A的y1后才能恢复出密钥K。

由于dBy1=dB(k1G)=k1(dBG)=k1QB=(c1,c2),所以K=L(c1modn)。

(三)签名验证

该方案中数字签名算法的安全性主要基于有限域上椭圆曲线加法群的ECDLP问题和Tate配对的BDH问题。整个签名过程是不可伪造的,因为根据公钥Q求私钥d是非常困难的ECDLP问题;根据ri求随机数Pi(i=1,2)是难度很大的BDH问题。

(四)生日攻击

通过最后两个等式能解出dA+P1和dA+P2,两个式子中有三个变量dA,P1和P2,所以无法确定dA,P1和P2中的任何一个。如果使用该方案中的签名算法签名m次,则P1,P2重复出现的概率是p=[1-(Pqm//qm)]2,只有m大约等于q时,概率p才会大于0.5[1],而q是一个很大的素数,所以这种情况不可能能存在。两个随机数P1和P2的引入,减少了两次签名选用相同随机数的概率,增加了生日攻击的难度,所以本方案可以有效的抵抗生日攻击。

上一篇:网络心理咨询的实践及其存在的问题 下一篇:中国劳动“新常态”的几大特征