CN109951378B - 一种即时通信中的文件加密传输与共享方法 - Google Patents

一种即时通信中的文件加密传输与共享方法 Download PDF

Info

Publication number
CN109951378B
CN109951378B CN201910222083.1A CN201910222083A CN109951378B CN 109951378 B CN109951378 B CN 109951378B CN 201910222083 A CN201910222083 A CN 201910222083A CN 109951378 B CN109951378 B CN 109951378B
Authority
CN
China
Prior art keywords
file
session key
ciphertext
group
sender
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910222083.1A
Other languages
English (en)
Other versions
CN109951378A (zh
Inventor
李金库
朱栽绍
马建峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Shutuxing Information Technology Co ltd
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201910222083.1A priority Critical patent/CN109951378B/zh
Publication of CN109951378A publication Critical patent/CN109951378A/zh
Application granted granted Critical
Publication of CN109951378B publication Critical patent/CN109951378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种即时通信中的文件加密传输与共享方法,本发明通过将密文文件和密文会话密钥进行分离,使得发送方只需要对该文件的密文会话密钥进行处理,从而生成新的密文会话密钥,让接收方可以解密,大大减少了发送方转发文件所需要处理的数据和步骤,尤其是在处理大文件时,效果更加显著,本发明提升了文件服务器上密文文件的利用率,将密文文件和密文会话密钥进行分离,将密文文件存储在文件服务器上,而将密文会话密钥通过即时通信软件进行消息传递完成文件的收发,使得获得该文件会话密钥的所有用户或者群聊用户组都能下载和解密该密文文件,大大提升了服务器上密文文件的利用率。

Description

一种即时通信中的文件加密传输与共享方法
技术领域
本发明属于网络安全技术领域,具体涉及一种即时通信中的文件加密传输与共享方法,可用于保护用户数据的安全。
背景技术
近年来,即时通信业务发展迅速,即时通信应用软件的功能也日益丰富。它不再是一个单纯的聊天工具,而是已经逐步发展成为集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务等为一体的综合化信息平台。
随着互联网带宽的增加和信号处理技术的提高,即时通信应用软件普遍支持语音、视频和文件传输等业务。为了提高用户数据的安全性,很多即时通信应用软件,例如密信,采用加密通信技术,防止数据在传输过程中被偷听或恶意窃取。发送方在发送数据之前对数据执行加密操作,生成密文进行传输;接收方收到密文后执行相应的解密操作,获得初始的明文信息。
即时通信应用软件一般同时支持单聊和群聊功能。在进行文件加密传输时,单聊和群聊使用的加密方案往往会有些不同。一般而言,在发送文件时,文件发送方首先随机生成一个会话密钥(又称为对称密钥),并且使用该会话密钥对文件内容进行对称加密生成密文文件;然后对多个会话密钥进行分别处理生成密文会话密钥。在单聊通讯中,发送方使用接收方的公钥对会话密钥进行非对称加密生成密文会话密钥;而在群聊通讯中,发送方则使用群会话密钥对文件进行对称加密生成密文会话密钥。之后,发送方相应的将密文文件和密文会话密钥合并,上传至文件服务器,并将文件路径信息以即时消息的方式发送给接收方用户或目标用户群。
即时通信应用软件通常使用数字信封技术来合并密文文件和密文会话密钥,来保证文件的安全性。但现存技术具有固有的局限性,当某个文件被转发时,通常需要考虑两种情况:(1)如果被转发文件的数字信封文件在本地仍然存在,则对数字信封头部中的密文会话密钥进行解密和重加密,合并密文文件和新的密文会话密钥,然后将重加密后的文件重新上传到服务器,最后将新的路径信息发给目标地址;(2)如果被转发文件的数字信封文件在本地不存在,但接收该文件的即时消息仍然存在,则在进行实际的文件转发之前,需要将对应的数字信封文件从文件服务器下载到本地,对数字信封头部中的密文会话密钥进行解密和重加密,合并密文文件和新的密文会话密钥,然后将重加密后的文件重新上传到服务器,最后将新的路径信息发给目标地址。上述无论哪种情况,都需要将整个文件在发送方和文件服务器之间进行重新传输(一次或两次),而未能高效利用已经在文件服务器上存在的数字信封文件副本。由此,会造成客户端和服务器的资源浪费,文件服务器上的文件利用率低等问题。
发明内容
本发明的目的在于提供一种即时通信中的文件加密传输与共享方法,以克服现有技术的不足。
为达到上述目的,本发明采用如下技术方案:
一种即时通信中的文件加密传输与共享方法,包括以下步骤:
a、文件发送:发送方确认待发送文件的目标地址信息,发送方随机生成文件会话密钥对待发送文件进行对称加密生成密文文件,将生成的密文文件上传至服务器得到密文文件路径信息,再使用接收方的公钥或者群聊的会话密钥对随机生成的文件会话密钥执行非对称或对称加密算法生成密文文件会话密钥,将密文文件会话密钥和密文文件路径信息封装生成数据文本发送给即时通信服务器,由即时通信服务器转发给目标地址;
b、文件接收:接收方从即时通信服务器接收文件类型的数据文本,并获得该文件的来源地址信息,接着对数据文本解析得到密文文件会话密钥和密文文件路径信息,接收方根据密文文件路径信息从文件服务器下载相应的密文文件,接收方使用自己的私钥或者文件来源群的群会话密钥对密文文件会话密钥执行非对称或者对称解密算法,生成明文文件会话密钥,再利用得到的密文文件会话密钥对下载的密文文件执行对称解密算法生成相应的明文文件,文件接收步骤结束;
c、文件转发:发送方选中需要转发的文件,并获得该文件对应的数据文本以及文件来源地址信息,确认文件的转发目标地址,同时对数据文本进行解析得到密文文件会话密钥和密文文件路径信息,发送方使用自己的私钥或者文件来源群的群会话密钥对解析得到的密文文件会话密钥执行非对称或对称解密算法得到文文件会话密钥,发送方使用转发单聊用户的公钥或者转发群聊的群会话密钥对文件会话密钥执行非对称或对称加密算法,得到新的密文文件会话密钥,同时将新的密文文件会话密钥和解析得到的密文文件路径信息封装生成数据文本,发送给即时通信服务器,由即时通信服务器转发给转发目标地址。
进一步的,文件发送具体包括以下步骤:
1.1、发送方选中要发送的文件,并确认文件的目标地址TAddress;
1.2、发送方生成一个随机数作为文件会话密钥Key,并使用该文件会话密钥Key对要发送的文件执行对称加密算法,获得相应的密文文件;
1.3、发送方将步骤1.2生成的密文文件上传至文件服务器,并得到该文件在文件服务器的路径信息FilePath;
1.4、发送方判断目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤1.5;如果是群聊用户组,跳转到步骤1.7;
1.5、发送方获得单聊目标用户的公钥,使用公钥对步骤1.2中生成的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey1;
1.6、发送方将密文文件会话密钥SKey1和步骤1.3中获得的文件路径信息FilePath封装生成数据文本,跳转至步骤1.9;
1.7 、发送方获得群聊组的群会话密钥,使用该群会话密钥对步骤1.2中生成的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey2;
1.8 、发送方将密文文件会话密钥SKey2和步骤1.3中获得的文件路径信息FilePath封装生成数据文本;
1.9 、发送方将生成的数据文本发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress。
进一步的,发送方调用createRandomKey方法生成固定位数的随机数,并将生成固定位数的随机数作为加密文件的文件会话密钥Key,调用encryptFile方法并传入参数文件会话密钥Key,对原始文件执行对称加密算法,生成相应的密文文件。
进一步的,发送方调用uploadFile方法上传密文文件至文件服务器,若上传成功则返回该文件在文件服务器上的路径信息FilePath。
进一步的,发送方通过getPublicKeyByUser方法获取单聊目标用户的公钥,公钥从本地获取,本地若不存在,则从服务器获取单聊目标用户的公钥。
进一步的,发送方通过getKeyByConference方法获取群聊目标的会话密钥,群聊目标的会话密钥从本地获取,若本地不存在群聊目标的会话密钥则从服务器获取。
进一步的,创建一个Map对象map,调用put方法将密文会话密钥SKey1和文件路径信息FilePath添加到map中,调用XML工具包中的XMLUtil.map2xml方法将map转换成XML格式的字符串数据,发送方调用即时通信的sendMessage方法将字符串XMLStr发送给即时通信服务器,即时通信服务器对接收的文本进行解析、路由和处理,之后发送给指定的用户。
进一步的,文件接收具体包括以下步骤:
2.1 接收方从即时通信服务器接收到文件消息类型的数据文本,并得到文件来源地址信息FAddress;
2.2 接收方对数据文本进行解析,得到密文文件会话密钥SKey和文件路径信息FilePath;
2.3 接收方根据步骤2.2得到的密文文件路径信息FilePath,从文件服务器下载相应的密文文件;
2.4 接收方根据步骤2.1得到的文件来源地址信息FAddress,判断文件的来源用户是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤2.5;如果是群聊用户组,跳转到步骤2.7;
2.5 接收方使用自己的私钥对步骤2.2中得到的密文文件会话密钥SKey执行非对称解密算法,得到文件会话密钥Key1;
2.6 接收方使用文件会话密钥Key1对步骤2.3中下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束;
2.7 接收方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤2.2中得到的密文文件会话密钥SKey执行对称解密算法,得到文件会话密钥Key2;
2.8 接收方使用文件会话密钥Key2对步骤2.3下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束。
进一步的,接收方调用decryptFile方法,并传入参数文件会话密钥Key1,对密文文件执行对称解密算法,生成相应的明文文件。
进一步的,文件转发具体包括以下步骤:
3.1 发送方选中已发送或者已接收的文件,获得选中文件对应的数据文本XMLStr1以及文件来源地址FAddress,并确认该文件的转发目标地址TAddress;
3.2 发送方对数据文本XMLStr1进行解析,可得到密文会话密钥SKey1和文件路径信息FilePath;
3.3 发送方判断文件来源地址信息FAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.4;如果是群聊用户组,则跳转到步骤3.5;
3.4 发送方使用自己的私钥对步骤3.2中得到的文件密文会话密钥SKey1执行非对称解密算法,得到文件会话密钥Key,跳转至步骤3.6;
3.5 发送方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤3.2中得到的密文文件会话密钥SKey1执行对称解密算法,得到文件会话密钥Key;
3.6 发送方判断文件的转发目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.7;如果是群聊用户组,则跳转到步骤3.9;
3.7 发送方获得单聊目标用户的公钥,使用该公钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey2;
3.8 发送方将密文文件会话密钥SKey2和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2,跳转至步骤3.11;
3.9 发送方获得转发目标群聊用户组的群会话密钥,使用该群会话密钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey3;
3.10 发送方将密文文件会话密钥SKey3和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2;
3.11 发送方将XMLStr2发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress。
与现有技术相比,本发明具有以下有益的技术效果:
本发明一种即时通信中的文件加密传输与共享方法,在发送文件时,发送方首先使用随机生成的会话密钥对文件进行对称加密生成密文文件,再使用接收方的公钥或者群聊的会话密钥对文件会话密钥进行对称或非对称加密生成密文会话密钥,将密文文件与密文会话密钥进行分离,密文文件被上传至文件服务器,而密文会话密钥与密文文件的路径信息则通过即时通信传递给目标用户或用户群,由此,在进行文件转发时,转发者只需要对密文会话密钥与密文文件的路径信息进行简要的处理即可,通过在即时通信应用软件进行密文文件转发时可以有效提升发送方的发送效率,降低资源消耗,降低对原始文件加解密的操作频率,现有的即时通信应用软件在转发文件时,往往需要重新执行完整的文件发送流程,而本发明通过将密文文件和密文会话密钥进行分离,使得发送方只需要对该文件的密文会话密钥进行处理,从而生成新的密文会话密钥,让接收方可以解密,本发明大大减少了发送方转发文件所需要处理的数据和步骤,尤其是在处理大文件时,效果更加显著。
本发明将密文文件和密文会话密钥进行分离,将密文文件存储在文件服务器上,而将密文会话密钥通过即时通信软件进行消息传递完成文件的收发,使得获得该文件会话密钥的所有用户或者群聊用户组都能下载和解密该密文文件,大大提升了服务器上密文文件的利用率。
进一步的,对密文会话密钥SKey1进行解密,可以得到会话密钥Key,该会话密钥可以在之后的步骤中再次被认定为文件会话密钥,而得到重复使用;文件服务器上对应的密文文件则无需进行操作,仍可以通过路径信息FilePath进行下载,并可以使用会话密钥Key进行解密。
附图说明
图1是本发明的整体结构图;
图2是文件发送的流程图;
图3是文件接收的流程图;
图4是文件转发的流程图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
如图1至图4所示,本发明一种即时通信中的文件加密传输与共享方法,本发明在发送文件时,发送方首先使用随机生成的文件会话密钥对待发送原始文件进行对称加密生成密文文件,再使用接收方的公钥或者群聊的会话密钥对文件会话密钥进行对称或非对称加密生成密文文件会话密钥,然后,将密文文件与密文文件会话密钥进行分离,密文文件被上传至文件服务器,而密文文件会话密钥与密文文件的路径信息则通过即时通信传递给目标用户或用户群,由此,在进行文件转发时,转发者只需要对密文文件会话密钥与密文文件的路径信息进行简要的处理即可,在保证安全性的同时,本发明可以有效的降低客户端和服务器的资源消耗,提升密文文件的利用率,并进一步减少相关的文件操作。
步骤一、文件发送步骤:
参考图2,文件发送的具体步骤实现如下:
1.1发送方选中要发送的文件,并确认文件的目标地址TAddress;
1.2发送方生成一个随机数作为文件会话密钥Key,并使用该文件会话密钥Key对要发送的原始文件执行对称加密算法,获得相应的密文文件;
发送方调用createRandomKey方法生成固定位数的随机数,并将生成固定位数的随机数作为加密文件的会话密钥Key,调用encryptFile方法,并传入参数会话密钥Key,对原始文件执行对称加密算法,生成相应的密文文件;
1.3发送方将步骤1.2生成的密文文件上传至文件服务器,并得到该文件在文件服务器的路径信息FilePath;
发送方调用uploadFile方法上传密文文件至文件服务器,若上传成功则返回该文件在文件服务器上的路径信息FilePath;接收方通过downloadFile方法,传入参数路径信息FilePath,下载指定密文文件;
1.4发送方判断原始文件的目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤1.5;如果是群聊用户组,跳转到步骤1.7;
单聊用户形如xxxx@myweb/Android,而群聊则形如xxxx@conference.myweb/Android,发送方根据TAddress是否带有conference来判断目标地址,若TAddress带有conference,则为群聊用户组,跳转到步骤1.7,否则,为单聊用户,跳转到步骤1.5;
1.5发送方获得单聊目标用户的公钥,使用公钥对步骤1.2中生成的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey1;
发送方通过getPublicKeyByUser方法获取单聊目标用户的公钥,而公钥可以从本地获取,若无则向服务器获取;用户的公私钥对在用户注册时生成,私钥则在本地保存,而公钥需要经CA服务器进行签名生成数字证书,并在服务器上进行备份;通过asyEncryptString方法,使用公钥对文件会话密钥Key执行非对称加密,并返回密文文件会话密钥。
1.6发送方将密文文件会话密钥SKey1和步骤1.3中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr,跳转至步骤1.9;
创建一个Map对象map,调用put方法将密文文件会话密钥SKey1和步骤1.3中获得的文件路径信息FilePath添加到map中,调用XML工具包中的XMLUtil.map2xml方法将map转换成XML格式的字符串数据;
1.7 发送方获得群聊组的群会话密钥,使用该会话密钥对步骤1.2中生成的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey2;
发送方通过getKeyByConference方法获取群聊目标的会话密钥,而该会话密钥可以从本地获取,若本地不存在群聊目标的会话密钥则向服务器获取。当用户在创建群聊时,即时通信服务器会随机生成一个固定长度的字符串来作为群会话密钥。用户在加入该群聊时,会获取该群会话密钥,并在本地存储。通过encryptString方法,使用群会话密钥对文件会话密钥Key执行对称加密,并返回密文文件会话密钥。
1.8 发送方将密文文件会话密钥SKey2和步骤1.3中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr;
1.9 发送方将生成的数据文本发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress。
发送方调用即时通信的sendMessage方法将字符串XMLStr发送给即时通信服务器,即时通信服务器对接收的文本进行解析、路由和处理,之后发送给指定的用户;
步骤二、文件接收步骤:
参考图3,文件接收的具体步骤实现如下:
2.1 接收方从即时通信服务器接收到XML格式的文件消息类型的数据文本XMLStr并获取文件来源地址信息FAddress;
用户在运行软件并成功登陆之后,客户端会创建FileMessageListener对象listener,用于监听即时通信服务器发给客户端的文件消息;当接收方接收到该消息后,并对此进行处理。文件来源地址信息FAddress就是发送方的地址信息。
2.2 接收方对文本数据XMLStr进行解析,得到密文文件会话密钥SKey和文件路径信息FilePath;
调用XML工具包中的XMLUtil.xml2map方法将XML格式的字符串数据转换成Map对象map,并利用get方法来获取密文文件会话密钥SKey和文件路径信息FilePath。
2.3 接收方根据步骤2.2得到的密文文件路径信息FilePath,从文件服务器下载相应的密文文件;
接收方可以通过downloadFile方法,传入参数路径信息FilePath,可以下载该路径信息对应的密文文件。
2.4 接收方根据步骤2.1得到的文件来源地址信息FAddress,判断文件的目标用户是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤2.5;如果是群聊用户组,跳转到步骤2.7;
2.5 接收方使用自己的私钥对步骤2.2中得到的密文文件会话密钥SKey执行非对称解密算法,得到文件会话密钥Key1;
接收方通过getPrivateKey方法获取接收方的私钥,而私钥从本地获取。用户的公私钥对在用户注册时生成,私钥则在本地保存,并不会对外公布。通过asyDecryptString方法,使用私钥对密文文件会话密钥SKey执行非对称解密,并返回文件会话密钥Key1。
2.6 接收方使用文件会话密钥Key1对步骤2.3中下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束;
接收方调用decryptFile方法,并传入参数文件会话密钥Key1,对密文文件执行对称解密算法,生成相应的明文文件。
2.7 接收方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤2.2中得到的密文文件会话密钥SKey执行对称解密算法,得到文件会话密钥Key2;
接收方通过getKeyByConference方法获取群聊目标的会话密钥。通过decryptString方法,使用群会话密钥对密文文件会话密钥SKey执行对称解密,并返回文件会话密钥Key2。
2.8 接收方使用文件会话密钥Key2对步骤2.3下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束。
步骤三、文件转发步骤:
参考图4,文件转发的具体步骤实现如下:
3.1 发送方选中已发送或者已接收的文件并获取文件来源地址信息FAddress,获得选中文件对应的数据文本XMLStr1,并确认该文件的转发目标地址TAddress;
3.2 发送方对数据文本XMLStr1进行解析,可得到密文会话密钥SKey1和文件路径信息FilePath;
3.3 发送方判断文件来源地址信息FAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.4;如果是群聊用户组,则跳转到步骤3.5;
3.4 发送方使用自己的私钥对步骤3.2中得到的密文文件会话密钥SKey1执行非对称解密算法,得到文件会话密钥Key,跳转至步骤3.6;
3.5 发送方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤3.2中得到的密文文件会话密钥SKey1执行对称解密算法,得到文件会话密钥Key;
在步骤3.4和步骤3.5中,对之前的密文文件会话密钥SKey1进行解密,可以得到文件会话密钥Key,该会话密钥可以在之后的步骤中再次被认定为文件会话密钥,而得到重复使用;文件服务器上对应的密文文件则无需进行操作,仍可以通过路径信息FilePath进行下载,并可以使用文件会话密钥Key进行解密。
3.6 发送方判断文件的转发目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.7;如果是群聊用户组,则跳转到步骤3.9;
3.7 发送方获得单聊目标用户的公钥,使用该公钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey2;
3.8 发送方将密文文件会话密钥SKey2和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2,跳转至步骤3.11;
3.9 发送方获得转发目标群聊用户组的群会话密钥,使用该群会话密钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey3;
3.10 发送方将密文文件会话密钥SKey3和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2;
3.11 发送方将XMLStr2发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress。
发放方在转发文件时,无需直接操作密文文件,仍可以直接利用文件服务器上的密文文件,提升文件的利用率,发送方只需对文件会话密钥进行操作,从来源地址的密文文件会话密钥开始,通过一系列的步骤,生成与目标地址相对应的密文文件会话密钥,再将其与其他信息通过及时通信服务器转发给目标地址。这一操作使得发送方转发文件时,可以进一步提升发送方的发送效率,降低资源消耗,降低对文件加解密的操作频率。

Claims (8)

1.一种即时通信中的文件加密传输与共享方法,其特征在于,包括以下步骤:
a、文件发送:发送方确认待发送文件的目标地址信息,发送方随机生成文件会话密钥对待发送文件进行对称加密生成密文文件,将生成的密文文件上传至服务器得到密文文件路径信息,再使用接收方的公钥或者群聊的会话密钥对随机生成的文件会话密钥执行非对称或对称加密算法生成密文文件会话密钥,将密文文件会话密钥和密文文件路径信息封装生成数据文本发送给即时通信服务器,由即时通信服务器转发给目标地址;具体包括以下步骤:
1.1、发送方选中要发送的文件,并确认文件的目标地址TAddress;
1.2、发送方生成一个随机数作为文件会话密钥Key,并使用该文件会话密钥Key对要发送的文件执行对称加密算法,获得相应的密文文件;
1.3、发送方将步骤1.2生成的密文文件上传至文件服务器,并得到该文件在文件服务器的路径信息FilePath;
1.4、发送方判断目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤1.5;如果是群聊用户组,跳转到步骤1.7;
1.5、发送方获得单聊目标用户的公钥,使用公钥对步骤1.2中生成的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey1;
1.6、发送方将密文文件会话密钥SKey1和步骤1.3中获得的文件路径信息FilePath封装生成数据文本,跳转至步骤1.9;
1.7 、发送方获得群聊组的群会话密钥,使用该群会话密钥对步骤1.2中生成的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey2;
1.8 、发送方将密文文件会话密钥SKey2和步骤1.3中获得的文件路径信息FilePath封装生成数据文本;
1.9 、发送方将生成的数据文本发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress;发送方调用createRandomKey方法生成固定位数的随机数,并将生成固定位数的随机数作为加密文件的文件会话密钥Key,调用encryptFile方法并传入参数文件会话密钥Key,对原始文件执行对称加密算法,生成相应的密文文件;
b、文件接收:接收方从即时通信服务器接收文件类型的数据文本,并获得该文件的来源地址信息,接着对数据文本解析得到密文文件会话密钥和密文文件路径信息,接收方根据密文文件路径信息从文件服务器下载相应的密文文件,接收方使用自己的私钥或者文件来源群的群会话密钥对密文文件会话密钥执行非对称或者对称解密算法,生成明文文件会话密钥,再利用得到的密文文件会话密钥对下载的密文文件执行对称解密算法生成相应的明文文件,文件接收步骤结束;
c、文件转发:发送方选中需要转发的文件,并获得该文件对应的数据文本以及文件来源地址信息,确认文件的转发目标地址,同时对数据文本进行解析得到密文文件会话密钥和密文文件路径信息,发送方使用自己的私钥或者文件来源群的群会话密钥对解析得到的密文文件会话密钥执行非对称或对称解密算法得到密文文件会话密钥,发送方使用转发单聊用户的公钥或者转发群聊的群会话密钥对文件会话密钥执行非对称或对称加密算法,得到新的密文文件会话密钥,同时将新的密文文件会话密钥和解析得到的密文文件路径信息封装生成数据文本,发送给即时通信服务器,由即时通信服务器转发给转发目标地址。
2.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,发送方调用uploadFile方法上传密文文件至文件服务器,若上传成功则返回该文件在文件服务器上的路径信息FilePath。
3.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,发送方通过getPublicKeyByUser方法获取单聊目标用户的公钥,公钥从本地获取,本地若不存在,则从服务器获取单聊目标用户的公钥。
4.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,发送方通过getKeyByConference方法获取群聊目标的会话密钥,群聊目标的会话密钥从本地获取,若本地不存在群聊目标的会话密钥则从服务器获取。
5.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,创建一个Map对象map,调用put方法将密文文件会话密钥SKey1和文件路径信息FilePath添加到map中,调用XML工具包中的XMLUtil.map2xml方法将map转换成XML格式的字符串数据,发送方调用即时通信的sendMessage方法将字符串XMLStr发送给即时通信服务器,即时通信服务器对接收的文本进行解析、路由和处理,之后发送给指定的用户。
6.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,文件接收具体包括以下步骤:
2.1 接收方从即时通信服务器接收到文件消息类型的数据文本,并得到文件来源地址信息FAddress;
2.2 接收方对数据文本进行解析,得到密文文件会话密钥SKey和文件路径信息FilePath;
2.3 接收方根据步骤2.2得到的密文文件路径信息FilePath,从文件服务器下载相应的密文文件;
2.4 接收方根据步骤2.1得到的文件来源地址信息FAddress,判断文件的来源用户是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤2.5;如果是群聊用户组,跳转到步骤2.7;
2.5 接收方使用自己的私钥对步骤2.2中得到的密文文件会话密钥SKey执行非对称解密算法,得到文件会话密钥Key1;
2.6 接收方使用文件会话密钥Key1对步骤2.3中下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束;
2.7 接收方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤2.2中得到的密文文件会话密钥SKey执行对称解密算法,得到文件会话密钥Key2;
2.8 接收方使用文件会话密钥Key2对步骤2.3下载的密文文件执行对称解密算法,生成相应的明文文件,文件接收步骤结束。
7.根据权利要求6所述的一种即时通信中的文件加密传输与共享方法,其特征在于,接收方调用decryptFile方法,并传入参数文件会话密钥Key1,对密文文件执行对称解密算法,生成相应的明文文件。
8.根据权利要求1所述的一种即时通信中的文件加密传输与共享方法,其特征在于,文件转发具体包括以下步骤:
3.1 发送方选中已发送或者已接收的文件,获得选中文件对应的数据文本XMLStr1以及文件来源地址FAddress,并确认该文件的转发目标地址TAddress;
3.2 发送方对数据文本XMLStr1进行解析,可得到密文文件会话密钥SKey1和文件路径信息FilePath;
3.3 发送方判断文件来源地址信息FAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.4;如果是群聊用户组,则跳转到步骤3.5;
3.4 发送方使用自己的私钥对步骤3.2中得到的密文文件会话密钥SKey1执行非对称解密算法,得到文件会话密钥Key,跳转至步骤3.6;
3.5 发送方获取文件来源群聊用户组的群会话密钥,使用该群会话密钥对步骤3.2中得到的密文文件会话密钥SKey1执行对称解密算法,得到文件会话密钥Key;
3.6 发送方判断文件的转发目标地址TAddress是单聊用户还是群聊用户组,如果是单聊用户,跳转到步骤3.7;如果是群聊用户组,则跳转到步骤3.9;
3.7 发送方获得单聊目标用户的公钥,使用该公钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行非对称加密算法,生成密文文件会话密钥SKey2;
3.8 发送方将密文文件会话密钥SKey2和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2,跳转至步骤3.11;
3.9 发送方获得转发目标群聊用户组的群会话密钥,使用该群会话密钥对步骤3.4或者步骤3.5中得到的文件会话密钥Key执行对称加密算法,生成密文文件会话密钥SKey3;
3.10 发送方将密文文件会话密钥SKey3和步骤3.2中获得的文件路径信息FilePath封装生成XML格式的数据文本XMLStr2;
3.11 发送方将XMLStr2发送给即时通信服务器,由即时通信服务器转发给目标地址TAddress。
CN201910222083.1A 2019-03-22 2019-03-22 一种即时通信中的文件加密传输与共享方法 Active CN109951378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910222083.1A CN109951378B (zh) 2019-03-22 2019-03-22 一种即时通信中的文件加密传输与共享方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910222083.1A CN109951378B (zh) 2019-03-22 2019-03-22 一种即时通信中的文件加密传输与共享方法

Publications (2)

Publication Number Publication Date
CN109951378A CN109951378A (zh) 2019-06-28
CN109951378B true CN109951378B (zh) 2021-08-24

Family

ID=67010650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910222083.1A Active CN109951378B (zh) 2019-03-22 2019-03-22 一种即时通信中的文件加密传输与共享方法

Country Status (1)

Country Link
CN (1) CN109951378B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193659B (zh) * 2019-12-30 2022-07-26 广东盈世计算机科技有限公司 一种基于即时聊天工具的文件处理方法及装置
CN112702332B (zh) * 2020-12-21 2022-09-16 张华� 一种连锁密钥交换方法、客户端、服务器及系统
CN115580474B (zh) * 2022-10-17 2023-10-31 南京网藤科技有限公司 一种密钥跟随的文件加密的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061448A (en) * 1997-04-01 2000-05-09 Tumbleweed Communications Corp. Method and system for dynamic server document encryption
CN1688176A (zh) * 2005-05-16 2005-10-26 航天科工信息技术研究院 基于gsm网络实现无线身份认证和数据安全传输的方法
WO2014084711A1 (en) * 2012-11-27 2014-06-05 Mimos Berhad A system and method for duty-shared authenticated group key transport
CN105610789A (zh) * 2015-12-18 2016-05-25 成都三零瑞通移动通信有限公司 一种适用于多人群聊即时通信的数据加密方法
CN106790037A (zh) * 2016-12-16 2017-05-31 中国科学院软件研究所 一种用户态加密的即时通讯方法与系统
CN106850522A (zh) * 2016-05-24 2017-06-13 中国科学院信息工程研究所 一种即时通信中群组文件加密传输的实现方法
CN108718302A (zh) * 2018-05-09 2018-10-30 北京邦邦共赢网络科技有限公司 一种消息记录的同步方法、装置以及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322432C (zh) * 2002-10-25 2007-06-20 国际商业机器公司 用于媒体内容数据文件网络发布的安全系统及方法
WO2011127440A2 (en) * 2010-04-08 2011-10-13 University Of Washington Through Its Center For Commercialization Systems and methods for file access auditing
CN104065680B (zh) * 2013-03-21 2017-03-08 华为终端有限公司 信息处理方法、检索方法、装置、用户终端及服务器
DE102013225021A1 (de) * 2013-12-05 2015-06-11 Bundesdruckerei Gmbh Verfahren zum Zugriff auf einen Datenspeicher eines Cloud-Computersystems
CN105610847B (zh) * 2016-01-08 2018-07-24 成都卫士通信息产业股份有限公司 一种支持多交换节点电子公文安全传输交换的方法
CN107040520B (zh) * 2017-03-13 2020-06-05 华北理工大学 一种云计算数据共享系统及方法
CN107342977A (zh) * 2017-05-26 2017-11-10 芯盾网安(北京)科技发展有限公司 适用于点对点即时通信的信息保密方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061448A (en) * 1997-04-01 2000-05-09 Tumbleweed Communications Corp. Method and system for dynamic server document encryption
CN1688176A (zh) * 2005-05-16 2005-10-26 航天科工信息技术研究院 基于gsm网络实现无线身份认证和数据安全传输的方法
WO2014084711A1 (en) * 2012-11-27 2014-06-05 Mimos Berhad A system and method for duty-shared authenticated group key transport
CN105610789A (zh) * 2015-12-18 2016-05-25 成都三零瑞通移动通信有限公司 一种适用于多人群聊即时通信的数据加密方法
CN106850522A (zh) * 2016-05-24 2017-06-13 中国科学院信息工程研究所 一种即时通信中群组文件加密传输的实现方法
CN106790037A (zh) * 2016-12-16 2017-05-31 中国科学院软件研究所 一种用户态加密的即时通讯方法与系统
CN108718302A (zh) * 2018-05-09 2018-10-30 北京邦邦共赢网络科技有限公司 一种消息记录的同步方法、装置以及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Enhanced Instant Message Security and Privacy Protection Scheme for Mobile Social Network Systems》;Zhen Wang,Zhaofeng Ma,Shoushan Luo,Hongmin Gao;《IEEE》;20180312;13706-13764 *
《一种云存储数据隐私保护架构的设计与实现》;刘达;《中国优秀硕士学位论文全文数据库》;20170531;11-52 *

Also Published As

Publication number Publication date
CN109951378A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
US8064599B2 (en) Secure message transport using message segmentation
US5812671A (en) Cryptographic communication system
JP4570626B2 (ja) 再生可能なセッションキーを生成するためのシステムおよび方法
US8249255B2 (en) System and method for securing communications between devices
CN105376261B (zh) 一种用于即时通讯消息的加密方法及系统
CN109951378B (zh) 一种即时通信中的文件加密传输与共享方法
CN111884802B (zh) 媒体流加密传输方法、系统、终端和电子设备
CN111262694A (zh) 一种基于tee的安全代理重加密方法
CN117098123B (zh) 一种基于量子密钥的北斗短报文加密通信系统
CN112637230B (zh) 一种即时通信方法及系统
WO2017197968A1 (zh) 一种数据传输方法及装置
CN111835688B (zh) 一种基于ssl/tls协议的流量快速转发方法及系统
US11265298B2 (en) Method for end-to-end transmission of a piece of encrypted digital information, application of this method and object implementing this method
CN113642022B (zh) 一种电子邮件处理方法、装置、系统及存储介质
CN115150076A (zh) 一种基于量子随机数的加密系统及方法
EP2453616A1 (en) Cross-component message encryption
CN114765546A (zh) 端到端硬加密方法、系统、加密设备、密钥管理服务器
CN111654854A (zh) 基于云计算系统的远程数据优化传输方法及系统
CN110890968B (zh) 一种即时通信方法、装置、设备及计算机可读存储介质
Sukhodolskiy et al. Analysis of Secure Protocols аnd Authentication Methods for Messaging
CN111130796B (zh) 即时通信中安全在线云存储方法
WO2017114156A1 (zh) 一种数据加密传输方法、基站及pdt终端
WO2023042618A1 (ja) 無線通信端末装置、認証及び鍵共有方法、プログラム、認証及び鍵共有システム
CN112333204B (zh) 基于tcp ip协议乱序特征码的5g网络传输保密装置
Abdelgader et al. Design of a secure file transfer system using hybrid encryption techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220823

Address after: 29th Floor, Building 1, China Railway Xi'an Center, No. 10 Zhangba 1st Road, High-tech Zone, Xi'an City, Shaanxi Province 710065

Patentee after: Shaanxi shutuxing Information Technology Co.,Ltd.

Address before: 710071 No.2, Taibai South Road, Beilin District, Xi'an City, Shaanxi Province

Patentee before: XIDIAN University