基于RSA和Hash的一对多可靠通信隐私保护研究

2017-09-30 22:20陈艾琳李斌勇
网络空间安全 2017年9期
关键词:可靠性

陈艾琳++李斌勇

摘 要:围绕一对多通信的隐私保护安全问题,针对通信过程中面临的恶意攻击风险,分析了拦截监听和中断信息两种主流攻击方式。结合两种方式的恶意攻击特点,在分析RSA算法的加解密原理基础上,结合Hash算法和通信消息的确认原理,提出了一种基于Hash算法的消息确认机制。通过对消息确认机制的安全性分析,表明该机制在一对多通信过程中能有效地保障消息传输的安全可靠性,从而达到通信隐私保护的目标。

关键词:一对多;RSA算法;Hash算法;消息确认机制;可靠性

中图分类号:TP393 文献标识码:A

1 引言

随着网络的发展,一对多通信逐渐演变为目前数据通信过程中广泛采用的信息交互方式。互联网的飞速发展使得通信更加便捷高效,但同时也使通信双方的数据隐私安全受到前所未有的挑战与威胁,尤其是一对多通信过程中的数据安全与隐私保护问题,已成为当前网络安全亟待解决的问题之一。基于此,论文将围绕如何实现一对多可靠通信隐私保护问题展开重点研究。

密码技术[1]是解决上述信息安全问题的核心手段之一,其主要由密码编码和密码分析两部分组成。上世纪70年代,Diffie和Hellman发表了题为“密码学的新方向”的非对称密码奠基性论文,首次建立了公钥密码的思想和概念。后来,Ron Rivest、Adi Shamir和Leonard Adleman等人共同提出并实现了Diffie和Hellman思想的一种算法,即如今广泛采用的RSA算法。RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

此外,Hash算法可以将任意长的消息m映射为较短的、固定长度的一个值,以消息的Hash值作为验证信息,可以得知消息是否被接收方收到,并且通过比较发送和接受的消息哈希值判断消息是否被篡改。由此,可起到消息可靠传输的作用。

2 普通一对多通信

一对多通信是指由一个发送方和多个接收方组成的通信系统,发送方可以对所有接收方发送相同或不同的一组信息,也可以仅向其中部分接收方发送信息。一对多通信适用范围很广,如学校通知学生的成绩、医院发送病人的病情信息、福利机构公布获奖名单等。不难看出,诸如上述通信内容均属于用户隐私部分,故应当防止第三方拦截攻击。

上述信息在未经任何处理的一对多通信中,由于一些恶意攻击者的存在,用户的隐私岌岌可危。恶意攻击者不仅可通过拦截监听的方式获取用户隐私,而且也可通过中断信息方式来阻止用户接受信息。上述两种攻击方式分别如图1和图2所示。

3 RSA加密信息

3.1 RSA算法

RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

在公开密钥密码体制[2]中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

算法简述如下[3]:

RSA的算法涉及三个参数,n、e、d。

其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。

e和d是一对相关的值,e可以任意取,但要求e与(p-1)*(q-1)互质;再选择d,要求(d*e)mod((p-1)*(q-1))=1。

(n,e),(n,d)就是密钥对。其中(n,e)为公钥,(n,d)为私钥。

RSA加解密的算法完全相同,设m为明文,s为密文,则:m≡sd mod n;s≡me mod n;在公钥加密体制中,通常采用公钥进行加密,私钥进行解密。

3.2 RSA加密用户信息

一对多信息传送密钥分配规则为:机构与n个用户分別有独立的n对密钥,其中机构保存n个公钥,n个用户各自保存自己的1个私钥。机构同时向多个用户发送信息时,就分别采用每个用户所对应的公钥加密,加密后的信息在公共信道进行传输。由于信息以密文形式进行传输,即使被攻击者拦截,也不能得到有效信息。若攻击者试图将密文解密,则需要知道私钥d,私钥d被用户秘密保存,且几乎不能通过公钥e计算出来,因而攻击者亦无法将拦截监听的信息解密得到有效信息。

这种隐私保护的方法基于RSA大数分解难题,在已知两个大素数乘积和其中一个大素数时,难以计算出另一个大素数,因此这样的加密方式在计算上是安全的。

4 消息确认

4.1 Hash算法概述

Hash函数[3]又称为哈希函数、杂凑函数和散列函数,在现代密码学中扮演者重要角色,Hash函数是一公开函数,通常记为H或h,Hash函数可以将任意长的消息m映射为较短的、固定长度的一个值,记为H(m)。

从密码算法角度看,Hash函数也可以看作是一种单项密码体制,即它从一个明文到密文是不可逆映射,只有加密过程,不能解密。哈希值是消息中所有比特的函数,因此提供了一种错误检测能力,即改变消息中任何一个比特或几个比特都会使哈希值发生变化。

4.2 消息确认原理

消息确认[4]是收到信息的接收方发送确认信息给发送方,确认已收到的信息。消息确认的实现过程是数字签名和消息认证部分方法的结合。

与数字签名[5]实现过程不同之处在于消息确认只发送对消息m进行Hash变化的H(m)的签名s≡H(m)d mod n,而不是发送m||s,这样能有效防止攻击者劫持消息确认从而得到有效消息内容m。具体过程如下:

接收者将信息m输入Hash函数,得到H(m),然后将s≡H(m)d mod n发送给发送方。endprint

发送方收到确认信息后,将原信息输入Hash函数,若与接收到的s解密所得值相等,即信息传送成功,否则信息传送中途出现问题,需要重新传送信息。其消息确认过程如图3所示。

4.3 消息确认机制安全性分析

消息确认机制能抵抗拦截监听。

由于消息经过Hash函数处理,若传送消息途中有攻击者劫持,攻击者可以通过公钥e解密得到H(m),但由于Hash算法的单向性,攻击者也无法在已知H(m)的条件下推出m。因此,消息确认算法在传送至发送方的公共信道上是安全的。

消息确认机制能检查消息是否被篡改。

由于Hash算法能够抵抗弱碰撞[3],即给定消息m和H(m),找到另外一个m≠m?,使得H(m)=H(m?)是不可能的。而且,Hash算法能够抵抗强冲突[3],即可以有两个有意义的消息m和m?,使得H(m)=H(m?)几乎是不可能的。因此,若在消息传送过程中,当攻击者对消息进行了篡改,即m被改为m?,那么接收方并不能发现消息已被篡改,但当接收方发送对消息的确认时,由上述Hash算法的特殊性质可知,H(m?)≠H(m),故发送方可判断出消息被篡改,从而进行消息重传或者采用其他手段与接收方进行通信。

此外,若攻击者在消息发送或消息确认发送过程中进行消息中断,发送方事先设置的超时计时器到期后,就会因未收到确认而重新发送RSA加密消息,继续等待接收方发回对消息的确认。上述步骤将反复进行,直到发送方收到消息确认。如图4和图5所示。

綜上,上述确认机制能有效对抗攻击者进行拦截监听和中断攻击,并且能有效确保消息发送成功。

5 结束语

文中提出了利用RSA和Hash算法进行一对多可靠通信的方法,使消息的传送不再有隐私被窃取的隐患,并通过确认机制保证了消息能被接收方获取。可以此为理念设计一个软件,通过使用上述系列算法,实现一对多消息传送,并保证重要消息传送过程的安全性和可靠性。

基金项目:

1.四川省教育厅重点项目(17ZA0069);

2.成都信息工程大学科研基金资助项目(KYTZ201618)。

参考文献

[1] 韦茜,王晨,李星毅.基于RSA算法的快递信息隐私保护应用[J].信息安全,2014,(4):58-60.

[2] 石志坚,谭全权,段海龙.RSA算法实现数字签名的研究与应用[J].微型电脑应用,2008,(6):50-51.

[3] 张仕斌,万武南,张金全.应用密码学[M].陕西:西安电子科技大学出版社,2017.

[4] 曾晟珂,陈勇,夏梅宸.车载自组网的隐私保护问题[J].西华大学学报,2015,(4):1-15.

[5] 石志坚,谭全权,段海龙.RSA算法实现数字签名的研究与应用[J].微型电脑应用,2008,(6):50-51.endprint

猜你喜欢
可靠性
运用数据加密技术维护网络安全的可靠性研究
高密度存储服务器可靠性设计与实现①
高密度存储服务器可靠性设计与实现
基于大小交路套跑对地铁不均衡客流的可靠性分析
可靠性增长试验与相关概念的关系及作用研究
民用飞机供应商可靠性管理研究
多电飞机飞行控制系统可靠性分析
北京地铁房山线产品可靠性分析报告
J.D. Power发布2016年中国车辆可靠性研究SM(VDS)报告
试论机械工程的可靠性优化设计