融合量子密钥的即时通信加密策略选择模型

2020-09-08 08:17温婉琳郑小博
关键词:密钥加密量子

温婉琳,李 宁,郑小博

(北京信息科技大学 计算机学院,北京 100101)

0 引言

随着信息技术的进步,传统的加密方式逐渐不能保证即时通信中大量信息的内容安全,网络通信的安全问题日益突显[1]。近年来,量子信息技术在全球范围内加速发展,量子计算的优越性得到验证,量子密钥加密以其天然的安全性成为目前最可靠的加密方式之一,基于量子加密的应用未来可期[2]。

本文尝试将量子保密通信与即时通信结合,使即时通信达到尽可能高的安全性。针对两者结合面临的网络质量、密钥协商速率以及加密方法选择依据等问题,提出了一套动态的面向即时消息传输的密钥加密方法,用户可以根据各种条件参数,动态输出加密方式。

1 即时通信数据加密方式

即时通讯的加密主要可分为传统密钥和量子密钥2种方式。传统加密算法可以归类为对称加密和非对称加密2种类型。对称加密因密钥长度较短且受限,所以安全性低。以RSA 算法(Rivest-Shamir-Adleman)为代表的非对称加密不需要进行密钥协商分发,安全性大大提高,但其速度相对对称加密来说会慢上几倍甚至几百倍,比较消耗系统资源,在存在大量端到端交互的即时通信应用场景中,其效率通常是无法接受的。因此,在实际应用中,AES算法(advanced encryption standard)常与RSA共同完成数据加密[3]。由于RSA算法是基于大数分解,无法抵抗穷举攻击,未来量子计算的发展将会对其构成较大的威胁。因此需要一种不会被破解的安全的加密方式。

量子密钥分发技术被数学证明是无条件安全的,无论攻击者拥有多强大的计算资源,都无法将其破解。量子保密通信利用BB84协议协商密钥,运用“一次一密”[4]的加密方式,即将明文与一串随机的比特序列进行XOR运算且密钥只使用一次。量子密钥分发可以分为离散变量密钥分发和连续变量密钥分发。目前发展较为成熟且应用广泛的协议有BB84协议[5]和基于BB84 协议改造的诱骗态BB84协议[6]。虽然量子保密通信的应用近年来呈现加速发展的趋势,但目前为止,商用系统光纤中的密钥生成速率约为数十kbit/s量级,在很多应用场景中难以采用一次一密的加密方式。因此目前对于大型数据的加密,通常与传统对称加密算法相结合,由量子密钥分发为其提供对称加密密钥,整个加密的算法仍为AES等对称加密。

在即时通信中,考虑到更高的安全性,在数据量较小文件的加密传输过程中,尽可能地使用一次一密。对于数据量较大的文件,为保证消息的即时性,可使用量子密钥用于传统加密方法。相对于传统对称加密体系而言,能够带来通信安全性的提升:一方面,量子加密密钥在分发过程中的防窃听能力更强;另一方面,量子密钥分发能够提升对称加密体系中的密钥更新速率,从而降低密钥和加密数据被计算破解的风险。

2 动态加密策略选择模型

2.1 加密策略影响因素

即时通信加密的时间消耗主要与文件的大小和上传下载速率相关,另外还需要考虑密钥生成速率和加解密耗时等。本文提出的加密策略是:当一次一密实际耗时小于期望耗时或AES加密耗时时,使用一次一密加密;否则使用AES加密。加密方法的选择策略如图1所示。

为计算加解密耗时,本文通过2组模拟实验来分别获得一次一密以及AES加解密的单位耗时,即在加解密每兆字节文件时其耗时情况。实验环境为:Corei7-7700HQ、16G内存、64位Win10系统,代码采用Pycharm编写。实验使用2种加密方式,分别测试10组不同大小的文件的耗时。再通过最小二乘法对10组数据分别进行线性回归[7]处理,最终获得2种方式的单位耗时。本实验中加密耗时影响参数的数据来源如表1所示。

表1 耗时影响参数

2.2 模型参数确定

2.2.1 AES加解密单位耗时

为了确定AES加解密单位耗时,本文对10组不同大小的数据进行AES加解密,耗时如表2所示。

表2 AES加解密耗时

从表2可以看出,以上数据大致呈现线性关系,如图2所示。

以加解密数据大小为x1,加解密耗时为y1,对以上数据利用最小二乘拟合进行线性回归,结果为

y1=0.034 97x1+0.023 56

(1)

此时就可获得使用AES加解密时,文件大小和耗时之间的关系,即可以获得AES加解密的单位耗时T1。设x1=1,得出T1=y1=0.058 5,即使用AES加解密1M文件,耗时约为0.058 5 s。

2.2.2 一次一密单位耗时

为了确定一次一密加解密单位耗时,本文对10组不同大小的数据进行一次一密加解密耗时实测,结果如表3所示。

表3 一次一密加解密耗时

从表3可以看出,以上数据大致呈现线性关系,如图3所示。

以加解密数据大小为x2,加解密耗时为y2,对以上数据利用最小二乘拟合进行线性回归,结果为

y2=0.000 488 32x2-0.000 117 91

(2)

此时就可获得使用一次一密加解密时,文件大小和耗时之间的关系,即可以获得一次一密加解密的单位耗时T2。设x2=1,得出T2=y2=0.000 370 41,即使用一次一密加解密1M文件,耗时约为0.000 37 s。

2.2.3 实际耗时

实际耗时指的是从发送方加密数据并发送到接收方,接收方接收数据并解密的总时长,即一个完整会话的耗时。因此,总耗时为发送方上传耗时、收件方下载耗时以及加解密耗时之和。

通信双方都提前缓存有一定的量子密钥,发送方在确认发送数据时,优先判断密钥池中缓存的量子密钥是否能够满足对该大小文件进行一次一密,若满足,则加解密耗时为

(3)

当密钥池缓存的量子密钥不能满足发送方确认发送的数据大小时,一次一密的耗时除了要考虑上传下载时间以及加密时间之外,还需要考虑所需剩余量子密钥协商生成的时间,其耗时为

(4)

AES加密策略的耗时仅需考虑数据上传时间、下载时间以及AES加解密时间,其耗时为

(5)

2.3 模型实现

为了直观说明参数调节方法并展示加密方案,本模型设计了flash动画来实现动态调节,其界面简化如图4所示,图中展现了某一种状态的情况。该模型可以通过滑杆对6个影响即时通信时效的自定义参数进行调节,模型会根据采集到的数据,输出适合的加密方案。

为了动态说明模型的运行情况,表4列出了通过模型展现的其他12种状态。从表中可以看出,当一次一密的耗时小于AES加密耗时时,会选择一次一密方式;当一次一密耗时大于AES加密耗时和期望耗时时,采用AES加密。总之,模拟器会优先建议采用更加安全的一次一密的加密方式。

2.4 模型应用

为验证模型的可行性,本文设计了融合量子密钥的即时通信系统,并将加密策略选择模块应用在其中,系统架构如图5所示。

表4 不同参数下得到的加密方式

身份验证服务器用于通信双方在登录前验证身份,文件服务器用于密钥申请、读取数据传输相关信息以及数据加密、解密、发送和接收。量子密钥分发设备和量子信道组成了量子密钥分发网络,用于量子密钥的协商分发,量子密钥分发设备中还包括量子密钥管理服务器,对预先生成的量子密钥进行存储。加密策略选择模块将在发送方确认发送内容之后,选择加密方式。通信流程如图6所示。

2.4.1 密钥管理模块设计

本方案使用REDIS数据库来存储量子密钥,REDIS是一个基于内存的高性能KEY-VALUE数据库,并且使用多路复用技术,可以处理并发的连接,有利于密钥的高并发存取。

通过QKD协商的密钥将同时存入发送方和接收方的密钥管理服务器中,REDIS数据库与量子密钥分发设备相连,用于存放协商的密钥。为了方便管理,密钥号通过对密钥进行哈希计算获得,可将任意长度的数据映射成定长的数据。密钥存储方案如图7所示。

量子密钥的处理过程如下:①协商得到量子密钥;②使用哈希函数将密钥映射为16位的HASH字符串;③将得到的16进制字符串转换为二进制,作为密钥号SEQ存储,二进制密钥作为KEY存储,长度为64bit。另外,虽然哈希出现碰撞的概率极小,一旦出现重复的SEQ,密钥号使用(SEQ+1)存储。

在实际使用中,为了数据的高效传输,通信双方提前协商一段密钥存储在缓冲池中,如图8所示,动态加密策略选择模型将根据当前缓存密钥以及数据大小等因素,输出加密方式。如果采用一次一密,且密钥池的缓存数量小于数据大小,则继续进行密钥的协商。

2.4.2 文件管理模块及通信流程设计

文件服务器的功能如图9所示。

发件方确认发送后,数据交给文件服务器处理,步骤如下:①根据加密选择模块给出的加密方式向量子分发设备索取密钥,一次一密需要索取与文件等长密钥,AES加密需要索取512位密钥,密钥存放在密钥管理服务器中;②使用密钥对用户数据进行加密,使之变为密文数据;③对密文进行哈希处理,输出的16位16进制字符串转为二进制用于完整性检测,长度为64 bit;④完整性检测值、密钥号、加密方式以及数据格式分别存放在数据库中,完整性检测值作为字段INTACT存储,加密方式的字段为MODE,MODE=1表示一次一密,MODE=0表示AES,数据种类的字段为TYPE,TYPE=1表示文件,TYPE=0表示对话文本;⑤将表中所存的4个参数依次存入密文数据头部,用于完成消息记录和数据加解密功能,完整性检测值、密钥号长度均为26bit,加密方式占1 bit,数据格式占1 bit;⑥将数据包交由应用层发出。

数据通过TCP进行传输,经由接收方的传输层交付接收方的应用层,密文交由接收方的文件服务器处理。处理过程如下:①接收方将密文数据前26bit的数据取出作为完整性检测值,存入数据库中INTACT字段;②将(26+1)至27bit数据作为密钥号存入SEQ字段;③将第(27+1)bit数据作为加密方式存入MODE字段;④将第(27+2)bit数据作为加密方式存入TYPE字段;⑤对(27+2)bit之外的数据进行哈希处理,转为二进制后与INTACT字段对比,若一致进行下面的步骤,不一致说明数据不完整,这时接收方的文件服务器向发送方前端返回“数据传输错误”提示,发送方重新发送;⑥接收方使用SEQ在密钥管理服务器的数据库中取出密钥,根据加密方式以及数据格式对密文解密。

3 结束语

针对即时通信中加密方式的选择问题,本文提出了融合量子密钥的即时通信加密策略动态选择模型,旨在根据不同的传输条件选择安全性较高的加密方法;通过加密策略选择模拟器直观地展现出控制的效果,并通过构建实际的即时消息通信系统,验证了算法的可行性和正确性。

本文模型将量子加密应用于即时通信,提高了通信的可靠性,并能够适应于多种硬件条件和网络环境,与传统单一的加密策略相比较,具有更高的安全性和适应性。

本文目前给出的加密方案是二选一的模式,在今后的研究中,会将两种加密方式进行融合使用,即在密钥量不足的情况下,将现有密钥用于文本数据的一次一密,对于多媒体数据采用一次一密与AES加密交替进行,更进一步提高即时通信的安全性。

猜你喜欢
密钥加密量子
《量子电子学报》征稿简则
《量子电子学报》征稿简则
幻中邂逅之金色密钥
幻中邂逅之金色密钥
保护数据按需创建多种加密磁盘
电力安全防护加密装置
新量子通信线路保障网络安全
Android密钥库简析
加密与解密
威力强大的量子“矛”和“盾”