基于短信息的业务从现有的娱乐应用已进入到商务应用、电子政务和社会服务等领域。然而在美好景象的背后,存在着不可小视的安全问题。虚假与不良短信息的传播;侵犯个人隐私;手机病毒的传播以及垃圾短信的泛滥等。这些都涉及到信息的加密与解密,通信双方身份的相互认证,信息的完整性鉴别等安全方面的问题。
数字签名是通信双方进行身份认证和防止抵赖必不可少的技术,现有的大多数数字签名方案都是基于离散对数问题,但这类签名方案中都普遍存在着“生日攻击”问题。由于短信息通信有着自己独特的特点,以及Tate配对的计算量要比Weil配对几乎少一半的性质,我们选择了利用椭圆曲线上的Tate配对构造了一种新的签名加密算法,将数字签名和加密技术融为一体,不仅能够识别发送信息者的身份和对短信息的保密,还能有效地抵抗“生日攻击”。在该加密算法中加入了时间标志,可以抵抗重发密文的攻击。
一、短信息协议及短信息的发送方式
手机所支持的短信息协议主要有SMS、EMS和MMS三种。
MMS是继SMS(文本短信服务)、EMS(增强型短信服务)之后的“第三代短信服务”。MMS大大扩展了可收发短信息的媒介类型,除了文本、简单图片和铃声均可传送外,还可以传送复杂的图片如照片、大型的图表以及音乐、视频等多媒体格式。
随着3G网络在中国的普及,MMS将是短信技术发展的终极,毕竟MMS有声有色的沟通相对于SMS有声无色的沟通更加吸引人。目前主要有三种发送短信息的方式:
1、网关方式:向当地的电信部门申请,不需要额外的设备,适用于大型的通信公司。
2、终端方式:借助像GSMMODEM之类的设置(支持AT指令的手机也行),通过数据线连接电脑来发送短信息,这种方法比较适用于小型公司及个人。
3、利用一些网站来实现:方式简单,但对网站依赖性太高,不适于进行项目开发。而我们今天提出的短信息加密方案可作为应用程序固化在手机的STK卡中来实现。
二、Tate配对的引入
1、Tate配对的性质
设p是一个大素数,q=pm,m是一个正整数,Fq是特征为p的有限域,E(Fq)是定义在有限域Fq上且满足Weierstrass方程y2=x3+1的一个超奇异椭圆曲线。对任意的正整数k可定义Fq的扩域FqFq上的椭圆曲线E(FqK),记G=E(FqK)。L是与P互素的素数,l1#E(Fq),G[l]是G中l阶元素生成的子群,g//Lg中的非单位元素的阶也是l,G1=G[L],G2=G//lG,G3=F*qK//(F*qK)l,Tate配对定义为映射T:G1×G2→G3,Tate配对T具有以下性质:
(1)双线性:若对任意的P∈G1,Q∈G2,R∈G2,有:τ(P,Q+R)=T(P,Q)!(P,R),T(P+Q,R)=T(P,R)T(Q,R)对任意的非负整数a,aP表示P自加a次,且T(aP,Q)=T(P,Q)a=T(P,aQ)。
(2)非退化性:存在P∈G1,Q∈G2,使得T(P,Q)不等于G3的单位元。
(3)可计算性:存在一个高效的算法计算T(P,Q),其中P∈G1,Q∈G2。
如何选取交换群和Tate配对及其它参数使得系统更加安全和高效。
2、双线性Diffie-Hellman问题(BDH)和椭圆曲线离散对数问题(ECDLP)
已知Q∈G1,R∈G2,求点S∈G1,使得等式!(S,P)=T(Q,R)成立。
点P∈E(Fq),G是E(Fq)上的一个基点,求整数x,使得P=xG。
三、短信息加密方案
1、系统参数的建立(由一个可信中心执行)
(1)选择p、q、k、m、l、G1、G2和G3,G2的一个生成元P以及Tate配对T。
(2)在E(Fq)上选择基点G=(xG,yG),点G的阶ord(G)=n,n是一个大素数,Zn*是一个是特征为n的有限域。随机选取s∈Zn*,Ppub=sP,s作为主密钥。
(3)选择H:{0,1}*×G2→F*qK为公开的哈希函数;L:{0,1}*→{0,1}160是一种安全Hash算法;强密码杂凑函数F:{0,1}*→G1将用户的身份映射到G1中的一个元素。
(4)选择对称加密算法AES和椭圆曲线加密体制ECC。可信中心把s作为系统的私钥保存,公开参数(G1,G2,G3,T,n,P,Ppub,H,L,F)。
2、用户密钥的生成
假设ID表示用户Alice的身份,可信中心对Alice进行物理鉴定以确信ID具有唯一性后,计算QID=F(ID),dID=sQID,通过安全信道将密钥dID发送给Alice,QID为公钥。
3、短信息加密
手机用户之间的短信息通信,通常以短信息业务服务商作为媒介。设手机用户A和短信息业务服务商B的密钥对是(dA,QA)和(dB,QB),A将短信息m发送给B,则手机用户A依次执行如下的加密算法:
(1)随机会话密钥K的生成:
①随机选取一个整数k1∈Zn*,计算y1=k1G;
②计算k1QB=(c1,c2),K=L(c1modn)。
(2)签名的生成:
①选取两个点P1,P2∈G1;
②计算r1=!(P1,P),r2=!(P2,P),v1=H(m,r1),v2=H(m,r2);
③计算S=(v1+v2)dA+v2P1+v1P2,则(r1,r2,S)是A对消息m的签名。
(3)加入时间标志:
设t为当前时间,计算T=H(m,S,t)。
(4)用CFB模式的AES和密钥K对明文m和(r1,r2,S,T)进行加密:
得到密文c=EK(m,r1,r2,S,T),发送(c,y1,t)给短信息业务服务商B。
4、短信息解密
短信业务服务商B收到(c,y1,t)后,执行如下的解密算法:计算△t=tb-t,tb是短信业务服务商B收到短信息的时间,如果△t大于规定的时间,则拒绝解密,否则进行如下处理:
(1)生成随机会话密钥K:
计算dBy1=(c1,c2),K=L(c1modn)。
(2)用CFB模式的AES和密钥K对密文进行解密:
DK(EK(m,r1,r2,S,T))。
(3)验证签名:
计算等式T(S,P)=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1是否成立。
(4)检验时间标志:
计算等式T=H(m,S,t)是否成立。当且仅当(3)和(4)两个等式同时成立时,接受m为手机用户A发送的有效短信息。
四、签名加密算法的安全性分析
1、双层加密
该方案采用双层加密模型,其安全性主要基于椭圆曲线加法群的离散对数问题。用椭圆曲线加密体制ECC生成对称密码体制AES的随机会话密钥K,再用AES加密明文m和(r1,r2,S,T)。选择128比特以上的AES和256比特的ECC;为了更好的掩盖明文m,使用AES的CFB模式来加密信息。如果攻击者选择攻击密文c,则在现有的技术条件下直接攻击128比特的AES是极其困难的;若选择攻击密钥K,则面临棘手的ECDLP数学难题;且密钥K是一次性的密钥,只使用一次此后不再有效,即使得到密钥K也没有多大的实用价值。Hash函数的多次使用,增强了加密解密的单向性,进一步提高了算法的安全性。
2、密钥交换
在该方案中,AES的随机会话密钥K只使用一次,以后不再使用。通信双方可以动态的交换密钥K,只有接收方B收到发送方A的y1后才能恢复出密钥K。
由于dBy1=dB(k1G)=k1(dBG)=k1QB=(c1,c2),所以K=L(c1modn)。
3、签名验证
该方案中数字签名算法的安全性主要基于有限域上椭圆曲线加法群的ECDLP问题和Tate配对的BDH问题。整个签名过程是不可伪造的,因为根据公钥Q求私钥d是非常困难的ECDLP问题;根据ri求随机数Pi(i=1,2)是难度很大的BDH问题。
定理1接收方B收到发送方A递交的(c,y1,t)后,若T(S,P)=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1,则(r1,r2,S)是A对消息m的签名。
证明:B对(c,y1,t)解密处理后得到(r1,r2,S),则v1=H(m,r1),v2=H(m,r2),T(S,P)=T((v1+v2)dA+v2P1+v1P2,P)=T((v1+v2)dA,P)T(v2P1,P)T(v1P2,P)=T(dA,P)(v1+v2)T(P1,P)v2T(P2,P)v1=T(sQA,P)(v1+v2)(r1)v2(r2)v1=T(QA,P)s(v1+v2)(r1)v2(r2)v1=T(QA,sP)(v1+v2)(r1)v2(r2)v1=T(QA,Ppub)(v1+v2)(r1)v2(r2)v1
即(r1,r2,S)是A对消息m的签名。
4、生日攻击
所谓“生日攻击”问题就是指,在23个人中出现两个人生日相同的概率会大于0.5[1]。若使用该方案的签名算法对消息m1,m2签名时,选取了相同的P1,P2∈G1,则:
r1=T(P1,P),r2=T(P2,P),v11=H(m1,r1),v12=H(m1,r2),v21=H(m2,r1),v22=H(m2,r2),S1=(v11+v12)dA+v12P1+v11P2,S2=(v21+v22)dA+v22P1+v21P
通过最后两个等式能解出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的引入,减少了两次签名选用相同随机数的概率,增加了生日攻击的难度,所以本方案可以有效的抵抗生日攻击。
5、重发密文攻击
如果攻击者获得一份以前的密文(c,y1,t0),攻击者可以将t0变成当前时间t1,但无法改掉密文c中的H(m,S,t0),因而可以有效的抵抗重发密文的攻击。
6、有效性分析
手机本身体积小、运算能力低、存储空间有限,因此本文选择ECC和AES加密算法。ECC在安全性保障和发展前景上比其他公钥系统更有优势,160位ECC与1024位RSA有相同的安全强度,被认为是经典RSA系统的最合适代替者。AES是新一代美国数据加密标准,在空间有限的环境(如手机)中使用时具有良好的性能。ECC主要用于AES算法的密钥生成和分发,AES算法加密系统的大部分数据。为了使明文有更好的嵌入,选择椭圆曲线:y2=x3-px,p≡3(mod4)。调用大数运算函数库MIRACLversion4.43进行编程,作一次256比特的ECC验证只需十几毫秒。文献[4]已给出了一个计算Tate配对的有效算法,对于k=6的椭圆曲线,若采用改进的Miller算法计算Tate配对时效率又能提高20%。
所以本文的手机短信息文件加密方案具有计算量较小,运算速度快的特点,易于在计算机的硬件和软件上实现。
小知识之信息加密
信息加密技术是利用数学或物理手段,对电子信息在传输过程中和存储体内进行保护,以防止泄漏的技术。