CN108718235A - 一种流式加密和解密方法 - Google Patents

一种流式加密和解密方法 Download PDF

Info

Publication number
CN108718235A
CN108718235A CN201810399879.XA CN201810399879A CN108718235A CN 108718235 A CN108718235 A CN 108718235A CN 201810399879 A CN201810399879 A CN 201810399879A CN 108718235 A CN108718235 A CN 108718235A
Authority
CN
China
Prior art keywords
encryption
master key
comparisons
value
index
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.)
Pending
Application number
CN201810399879.XA
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201810399879.XA priority Critical patent/CN108718235A/zh
Publication of CN108718235A publication Critical patent/CN108718235A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3

Abstract

本发明公开了一种流式加密方法,包括如下步骤:获取由主密钥K1生成的加密对照表E;将需要加密的明文以单字节作为加密单元;针对每一个加密单元,将加密单元P值作为加密对照表E的索引B2,通过B2在加密对照表E中获取B2对应的值V2,将V2作为加密后的密文单元C值,将所有密文单元C值合并成一个完整的数据流或文件,形成密文。本发明还公开了一种流式解密方法。本发明提供流式加解密方法,写入文件或网络数据流时直接调用加密算法,加密时无需再另外消耗时间,写入文件或网络数据流的数据直接就是加密后的数据;从文件或网络数据流中读取到数据时实时进行解密,将解密后的数据直接传给应用,而不需修改原文件的内容,原文件始终处于加密状态。

Description

一种流式加密和解密方法
技术领域
本发明涉及计算机信息保密技术领域,尤其涉及一种流式加密方法、解密方法。
背景技术
随着移动互联网的发展,个人数据量剧增,同时用户还习惯于通过移动互联网如微信、邮箱等发送大量以原文数据保存的个人数据资料,如图片、视频或者工作资料等。同时为了方便个人随时随地都可以读取到私人的文件,很多服务商还提供了云平台,如苹果公司的I Cold,这些文件很多也是以原文数据的形式保存。这些私人数据存在泄密的可能。
为了对数据进行保密,对数据进行加密必不可少。现有的数据加密方法主要包括有对称加密方法如DES、AES等,以及非对称加密方法如RSA等。
DES加密算法:DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为256。该方法密钥长度较短,加解密时需要对明文分组,然后对每个分组(64位,8个字节为一个分组)进行加解密。
AES加密算法:AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。AES加密算法被设计为支持128/192/256位(/32=nb)数据块大小(即分组长度);支持128/192/256位(/32=nk)密码长度,,在10进制里,对应34×1038、62×1057、1.1×1077个密钥。该方法密钥长度较短,加解密时需要对明文分组,然后对每个分组(128位,16个字节为一个分组)进行加解密。
RSA加密算法:RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。该方法加解密对系统开销较大,基本只用于密钥或短数据的加密。
由于个人的数据如视频、图片等存在内容多,文件大的特点,用现有技术提供的一些主要加密方法,如DES、AES或者RSA等进行加密的话,加密时间长,同时,在需要查看文件的时候还需要进行解密,解密的时间也会比较长,造成用户体验很差。同时,DES、AES和RSA都是分组加密方式,而计算机内读取文件的方式不一定是顺序读取的,在采用上述方式加解密时,就必需做分组对齐,这样对现有的应用软件要进行较大的改动。
发明内容
针对现有加密技术对个人大数据文件进行加密存在的问题,本发明实施例提供一种流式加密方法和流式解密方法,加密速度和解密速度非常快。
本发明实施例提供的流式加密方法,包括如下步骤:
获取由主密钥K1生成的加密对照表E;
将需要加密的明文以单字节作为加密单元;
针对每一个加密单元,将加密单元P值作为加密对照表E的索引B2,通过B2在加密对照表E中获取B2对应的值V2,将V2作为加密后的密文单元C值;
将所有密文单元C值合并成一个完整的数据流或文件,形成密文。
针对上述实施例提供的流式加密方法,本发明实施例还提供一种流式解密方法,包括以下步骤:
获取上述加密方法加密后的密文;
获取主密钥K1;
针对密文的每一个密文单元,获取密文单元C值;
在主密钥K1中,以C值为主密钥K1的索引B1,获取索引B1对应的值V1,所述V1即为加密单元P值;
将所有加密单元P值合并成一个完整的数据流或文件,形成解密后的明文。
本发明实施例提供的流式加密方法和流式解密方法,写入文件或网络数据流时直接调用加密算法,加密时无需再另外消耗时间,写入文件或网络数据流的数据直接就是加密后的数据;从文件或网络数据流中读取到数据时实时进行解密,将解密后的数据直接传给应用,而不需修改原文件的内容,原文件始终处于加密状态。同时通过将加密单元按字节作为加密单元,可以实现从任意位置开始加解密。本发明提供的流式加解密方法,使现有的应用软件几乎不需要做大的改动,就可以无缝地融合流式加密方法和流式解密方法。
优选地,在获取由主密钥K1生成的加密对照表之前,还包括生成主密钥K1步骤:
获取256个字节,按照从0至255的顺序依次填充256个字节,得到一个值从0至255的数组,对获得的数组的值采用随机方式打乱重排,得到一个无序数组,由所述无序数组构成主密钥K1。
优选地,在生成主密钥K1后,还包括生成加密对照表E步骤:
所述加密对照表E按以下规则根据主密钥K1生成:将加密对照表E的索引B2对应主密钥K1的值V1;将加密对照表E的索引B2所对应的值V2对应主密钥K1的值V1所对应的索引B1。
优选地,在生成主密钥K1后,还包括生成子密钥K2步骤:
将输入的指定值进行编码运算,得到子密钥K2;
在生成主密钥K1后,对所述主密钥K1通过以下方式加密:将主密钥K1中的每个索引B1对应的值V1,通过公式V1=D1(V1,K2,B1)加密,其中,D1为加密函数,主密钥K1中的值V1所对应的索引B1作为偏移量。
其中,指定值由用户自己定义,在实际运用中,用户一般会指定一个适合加解密双方使用的指定值,如加解密双方都知道的一串代码,一个账号等。
优选地,在生成加密对照表E后,对所述加密对照表E中的每个值V2通过以下公式加密:V2=D2(V2,K2,B2),其中,D2为加密函数,加密对照表E中的值V2所对应的索引B2作为偏移量。
优选地,在生成主密钥K1后还可以包括以下步骤:
将输入的PIN码进行编码运算,得到子密钥PIN;其中对主密钥K1中的每个值V1进行加密,通过公式V1=D1(V1,K2,PIN,B1)加密,主密钥K1中的值V1所对应的索引B1作为偏移量。
优选地,在生成主密钥K1后还包括以下步骤:
获取设备的硬件唯一码并进行编码运算,得到设备密钥BIND;其中对主密钥K1中的每个值V1进行加密,通过公式V1=D1(V1,K2,PIN,BIND,B1)加密,主密钥K1中的值V1所对应的索引B1作为偏移量。
其中,设备的硬件唯一码可以通过自动读取的方式获取,也可以通过用户输入的方式获取。通过自动读取的方式获取到的设备的硬件唯一码,并生成设备密钥BIND,则加密文件只能在加密的这台设备上解密。而通过用户输入的方式获取,则可以由用户通过输入设备的硬件唯一码的形式指定特定的设备才能解密相关的加密文件。
优选地,对所述加密对照表E中的每个值V2通过以下公式加密:V2=D2(V2,K2,PIN,B2),其中D2为加密函数,加密对照表E中的值V2所对应的索引B2作为偏移量。。
优选地,对所述加密对照表E中的每个值V2通过以下方式加密:V2=D2(V2,K2,PIN,BIND,B2),其中D2为加密函数,加密对照表E中的值V2所对应的索引B2作为偏移量。
优选地,所述针对每一个加密单元P进行加密,P作为加密对照表E的索引B2,具体为通过公式B1=U2(V2,K2,B2)获取正确的索引B1,其中U2为加密函数D2的逆运算函数,用值V2所对应的索引B2作为偏移量;通过公式C=D3(B1,K2,F)得到密文单元C值,其中D3为加密运算函数,F为加密单元P的偏移量。
针对上述加密方法加密的密文,针对密文的每一个密文单元C进行解密,具体包括通过公式B1=U3(C,K2,F)获取正确的索引B1,其中,U3为D3加密函数的逆运算函数,F为密文单元C的偏移量。并通过公式P=U1(V1,K2,B1)获得加密单元P值,V1是索引B1所对应的值,索引B1作为偏移量,其中,U1为D1加密函数的逆运算函数。
优选地,所述针对每一个加密单元P进行加密,P作为加密对照表E的索引B2,具体为通过公式B1=U2(V2,K2,PIN,BIND,B2)获取正确的索引B1,其中U2为加密函数D2的逆运算函数,V2是B2所对应的值,用索引B2作为偏移量;通过公式C=D3(B1,K2,PIN,BIND,F)得到密文单元C值,其中,D3为加密运算函数,F为加密单元P的偏移量。
优选地,针对密文的每一个密文单元C进行解密,具体包括通过公式B1=U3(C,K2,PIN,BIND,F)获取正确的索引B1,其中,U3为D3加密函数的逆运算函数,F为密文C的偏移量;并通过公式P=U1(V1,K2,PIN,BIND,B1)获得加密单元P值,其中,U1为D1加密函数的逆运算函数,V1是主密钥K1中的索引B1所对应的值,B1作为偏移量。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,在计算机程序运行时可实现如上述的流式加密方法或者流式解密方法。
附图说明
图1为本发明实施例1流式加密方法的流程示意图;
图2为本发明实施例1流式解密方法的流程示意图;
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
在对本发明的实施例做出详细的说明之前,需要明确以下定义:
明文:没有经过加密的数据,是用户希望传递的原始文件;
密文:经加密方式处理后的数据;
主密钥K1:是本发明提供的流式加密方法和流式解密算法的重要密钥,通过一定的规则生成的一组无序数组,包括索引B1以及和索引B1对应的值V1。
加密对照表E:加密对照表E是本发明引入的重要概念,是根据主密钥K1按一定的规则生成的快速定位密文的一个对应表,在对E进行加密处理后,可以作为非对称加密算法中的公钥,传递给加密方进行加密。
子密钥K2:由用户指定值输入编码器进行编码运算生成,包括但不局限于PIN子密钥、BIND子密钥、其它子密钥,表示一个或多个子密的任意组合,可以根据加密的需要生成多个。
用户子密钥PIN(Personal Identification Number,个人识别码):可由用户自己撑握的按任意字符组合后输入编码器进行编码运算生成,由用户自己保管,并且在需要加解密时实时输入生成,一般不会保存在本地或服务器上。如可以是用户名、帐号等作为代码来生成的子密钥。用户子密钥PIN,由用户自己保存,不要和主密钥K1保存在一起。一般由用户在解密前输入。在内存中保存时,一般采用不可逆方式加密后保存。
设备子密钥BIND:通过获取硬件设备的唯一标识码,并将该硬件设备的唯一标识码进行编码运算后获得的子密钥。如果加密的数据需要设置为只能在指定设备上才能解密,可以加入绑定设备子密钥BIND。该子密钥一般在加解密前根据当前设备的硬件描述信息,动态获取。
数据偏移量F:主密钥K1的长度为256个字节时,如果明文中出现两个相同的字符,在加密数据中就会呈现出一样的加密后的数据值,这样,每个密文的有效数据将只有8位,256种变化,使用穷举法,就会较容易的还原出主密钥。为了避免相同值的数据被加密后呈现出相同的数据值,在加解密中又引入了偏移量F,得到加密的数据值后,该数据值会和偏移量F进行运算,因为每个字节的偏移量都不相同,因此,即使两个相同的待加密的数据值,在加密后的值也可能是不同的,反而两个不相同的待加密的数据值,有可能加密后的数据值是相同的。明文数据和密文在完整数据流中的偏移量,只需要保证同一个字节的数据在加密和解密时的偏移量相同即可,其起始偏移量不一定是0。加入数据偏移量F后,即使明文中的两个相同的字节数据,在加密后的密文C也可能是不同的,而不相同的两个字节的数据,在加密后的密文C也可能是相同的。
实施例1:
在对本发明提供的流式加解密方法时,针对已经注册并生成有主密钥K1,子密钥K2、子密钥PIN、子密钥BIND,同时通过主密钥K1生成了加密对照表E的用户,可以直接使用该加密方法和解密方法对数据文件进行加密或者解密,只需要在需要用到相应的主密钥K1、子密钥K2或者其他子密钥如PIN、BIND、加密对照表E时调用并输入相关的密钥或者加密对照表。而对于初次注册并没有创建相应密钥和加密对照表的用户,在使用之前需要预先生成相应的密钥和加密对照表。
主密钥K1主要用于按一定的规则生成加密对照表E,同时在对通过加密对照表E加密的密文进行解密时,需要用到主密钥K1使用解密算法进行解密,以获得密文。主密钥K1的生成方法如下:获取256个字节,按照从0至255的顺序依次填充256个字节,得到一个值从0至255的数组,对获得的数组的值采用随机方式打乱重排,得到一个无序数组,由所述无序数组构成主密钥K1;生成的主密钥K1一共有256!次数种可能,可以提供足够的安全。
加密对照表E是根据主密钥K1按一定的规则生成的快速定位密文的一个对应表。加密时,通过将明文和加密对照表对应,生成密文。加密对照表E通过以下规则生成:E:B2=K1:V1,E:V2=K1:B1;即将加密对照表E的索引B2对应主密钥K1的值V1;将加密对照表E的索引B2所对应的值V2对应主密钥K1的值V1所对应的索引B1。
子密钥K2可以设置多个,通过用户输入明文进入编码器进行编码运算获取。用户输入的明文可以是任意的字符。子密钥K2用于代入加密函数中对主密钥K1和加密对照表E进行加密,以便将主密钥K1和加密对照表E通过网络进行传输或者保存到云平台时以密文的形式存在,即便被人截取到主密钥K1和加密对照表E,由于获得的是密文,没有子密钥K2解密的话,还是不能获得主密钥K1和加密对照表E,也就不能破译通过本流式加密方法加密的数据。子密钥K2需要用户自己保存好,并且不能和主密钥K1和加密对照表E一起保存。
私人密钥PIN本质上也是子密钥,是由用户自己撑握的一组字符的组合,通过私人密钥PIN加密的主密钥K1和加密对照表E,将只能是知道了PIN的用户才能打开。
设备子密钥BIND:通过获取硬件设备的唯一标识码并输入编码器进行运算获取的子密钥,通过设备子密钥BIND加密的主密钥K1和加密对照表E将只能在特定的设备上才能被解密,增加了破解密文的难度,更增加了流式加密方法的安全性。
如图1、图2所示,本发明实施例提供的流式加密方法和流式解密方法,包括如下步骤:
S100:获取由主密钥K1生成的加密对照表E;
S110:将需要加密的明文以单字节作为加密单元;
S120:针对每一个加密单元,将加密单元P值作为加密对照表E的索引B2,通过B2在加密对照表E中获取B2对应的值V2,将V2作为加密后的密文单元C值,
S130:将所有密文单元C值合并成一个完整的数据流或文件,形成密文。
针对上述实施例提供的流式加密方法,本发明实施例还提供一种流式解密方法,包括以下步骤:
S200:获取上述加密方法加密后的密文;
S210:获取主密钥K1;
S220:针对密文的每一个密文单元,获取密文单元C值;
S230:在主密钥K1中,以C值为主密钥K1的索引B1值,获取B1值对应的值V1,所述V1即为加密单元P值;
S240:将所有加密单元P值合并成一个完整的数据流或文件,形成解密后的明文。
本发明提供的流式加密方法和流式解密方法,通过将明文加密单元的P值和根据主密钥生成K1生成的加密对照表E对应,解密时通过将密文C值和主密钥K1对应,可以快速的完成加解密。而只要对主密钥K1和加密对照表E做好保密,就可以保证加密和解密过程的安全。
为了使主密钥K1和对照表E在存放和传输过程中做好保密,通过子密钥对主密钥K1和加密对照表E进行加密。用户只需要保存好子密钥就可以保证主密钥和对照表E的安全。同时通过多个子密钥对主密钥和加密对照表进行加密,更进一步提高了数据的安全。
对主密钥K1的加密方法:将主密钥K1中的每个索引B1对应的值V1,通过公式V1=D1(V1,K2,B1)加密,其中,D1为加密函数,主密钥K1的值V1所对应的索引B1作为偏移量。进一步的,在加入用户私密钥PIN时,对主密钥K1的加密方法:通过公式V1=D1(V1,K2,PIN,B1)加密。对应于特定设备的加密,其加密方法为:V2=D2(V2,K2,PIN,BIND,B2)。
对加密对照表E的加密方法通过以下公式加密:V2=D2(V2,K2,B2),其中,D2为加密函数,加密对照表E的值V2所对应的索引B2作为偏移量。进一步的,在加入用户私密钥PIN时,对加密对照表E的加密方法:V2=D2(V2,K2,PIN,B2)。对应于特定设备的加密,其加密方法为:V2=D2(V2,K2,PIN,BIND,B2)。
通过上述加密过程的主密钥K1和加密对照表E,将明文单元P作为加密对照表E的索引B2,可得到所对应的值V2,其V2值需要通过加密运算的逆运算函数来求取正确的索引B1,具体公式为B1=U2(V2,K2,PIN,BIND,B2)获取正确的索引B1,其中U2为加密函数D2的逆运算函数,用值V2所对应的索引B2作为偏移量;通过公式C=D3(B1,K2,PIN,BIND,F)得到密文单元C值,其中,D3为加密运算函数,F为明文单元P的偏移量。
在解密过程中,针对密文的每一个密文单元C进行解密,具体包括通过公式B1=U3(C,K2,PIN,BIND,F)获取正确的索引B1,其中U3为D3加密函数的逆运算函数,F为密文单元C的偏移量;并通过公式P=U1(V1,K2,PIN,BIND,B1)获得加密单元P值,其中,U1为D1加密函数的逆运算函数,V1是B1所对应的值,B1作为偏移量。
上述对主密钥K1和加密对照表E的加解密过程中使用的加解密公式,如D1、D2、D3和U1、U2、U3等,可以使用目前通用的加解密方法,如DED、AES和RSA等。
本发明提供的流式加解密方法应用领域非常广泛,几乎可以涵盖数字产品具有安全性要求的所有地方。在不同的应用领域,几乎都是对该方法的变形应用,下面举几个应用例子:
即时通讯2人聊天的非对称方式加密。将本发明中的加密对照表E,通过多个子密钥(可以使用聊天中对方的账号名称作为一个子密钥,或(和)基于本次会话的临时加密因子作为一个子密钥)对V2值进行加密后,将加密对照表E传递给通讯的另一方(加密对照表E只能加密和解密采用E加密的内容,无法还原成主密钥K1),当自己需要向对方发送聊天信息时,将聊天信息的P值作为加密对照表E的索引B2,通过B2可以得到V2值,无需对V2解密,直接通过加密函数D4对V2进行加密,C=D4(V2,T,F),其中T可以是一个临时的加密因子,只在当前通话有效;F是P的偏移量。对方接收到聊天内容后,通过逆运算函数U4实现解密,得到V2,再按照对V2加密的逆运算进行解密,即可以得到B1,然后按正常解密方式解密即可。V2=U4(C,T,F)。其加解密过程均在客户端完成,对服务器没有任何压力,除非服务器保存了每一个会话的E,否则是无法解密本次会话的内容的。
即时通讯应用中多人聊天的非对称方式加密。可以为聊天群申请一个公共的主密钥,其它可参照2人聊天方式的实现。
保存在手机、硬盘或网盘中的文件的对称方式加密。用户将要保存到网盘中的文件进行流式加密(可加入设备BIND子密钥)后,如果上传到网盘,即使网盘被破解,得到的也是加密后的文件,除非再得到主密钥和多个子密钥,否则无法解密。而所有的加密过程,均是在上传或写入文件时动态完成,用户根本感受不到。解密过程也是在文件被使用时在内存中动态解密,没有任何时延,用户感受不到解密的过程,和正常的操作一样。而文件在磁盘或网盘上保存时,始终处于加密的状态。
数字文件(音乐、视频、文档等)的授权分发的非对称方式加密。每一个数字文件分发应用的服务端都可以在用户请求下载文件时,通过从云平台获取到的该用户的加密对照表E对文件进行加密,加密时可选择绑定硬件设备,或者绑定用户账号名称作为子密钥参与到加密算法中,加密过程在文件传送到网络前实时进行,在网络中传送的数据已经是加过密的。用户下载到加密的文件后,只能通过该应用(或绑定硬件设备、或账号)和用户的主密钥才能解密,从而使该文件只能针对于该用户(或该设备、该账号)来使用。即使加密后的文件被拷贝给其他人,如果没有原始加密时的主密钥和多个子密钥(BIND、或账号),也无法完成解密。除非用户公开自己的主密钥和子密钥,但这样,也可以通过云平台找到具体的用户,对其进行惩罚。
数字游戏的保护,可采用非对称方式加密。可以将游戏中的某些数据文件进行全文加密,在读取前进行动态解密,这样分发的数字游戏文件,只能由指定用户使用,该方法和上述对数字文件的授权类似,但无需加密全部,可以加密需要的部分数据。
上述实施方式仅为发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

Claims (13)

1.一种流式加密方法,其特征在于,包括如下步骤:
获取由主密钥K1生成的加密对照表E;
将需要加密的明文以单字节作为加密单元;
针对每一个加密单元,将加密单元P值作为加密对照表E的索引B2,通过B2在加密对照表E中获取B2对应的值V2,将V2作为加密后的密文单元C值,
将所有密文单元C值合并成一个完整的数据流或文件,形成密文。
2.一种流式解密方法,其特征在于,包括如下步骤:
获取根据权1所述流式加密方法加密后形成的密文;
获取主密钥K1;
针对密文的每一个密文单元,获取密文单元C值;
在主密钥K1中,以C值为主密钥K1的索引B1,获取索引B1对应的值V1,所述V1即为加密单元P值;
将所有加密单元P值合并成一个完整的数据流或文件,形成解密后的明文。
3.如权利要求1或2所述的方法,其特征在于,在获取由主密钥K1生成的加密对照表之前,还包括生成主密钥K1步骤:
获取256个字节,按照从0至255的顺序依次填充256个字节,得到一个值从0至255的数组,对获得的数组的值采用随机方式打乱重排,得到一个无序数组,由所述无序数组构成主密钥K1。
4.如权利要求3所述的方法,其特征在于,在生成主密钥K1后,还包括生成加密对照表E步骤:
所述加密对照表E按以下规则根据主密钥K1生成:
将加密对照表E的索引B2对应主密钥K1的值V1;将加密对照表E的索引B2所对应的值V2对应主密钥K1的值V1所对应的索引B1。
5.如权利要求4所述的方法,其特征在于,在生成主密钥K1后,还包括生成子密钥K2步骤:
将输入的指定值进行编码运算,得到子密钥K2;
在生成主密钥K1后,对所述主密钥K1通过以下方式加密:将主密钥K1每个索引B1对应的值V1,通过公式V1=D1(V1,K2,B1)加密,其中,D1为加密函数,主密钥K1的索引B1作为偏移量,K2是一个或多个子密钥的组合。
6.如权利要求5所述的方法,其特征在于,在生成加密对照表E后,对所述加密对照表E中的每个值V2通过以下公式加密:V2=D2(V2,K2,B2),其中,D2为加密函数,加密对照表E的值V2所对应的索引B2作为偏移量。
7.如权利要求5所述的方法,其特征在于,在生成主密钥K1后还包括以下步骤:
将输入的PIN码进行编码运算,得到子密钥PIN;其中对主密钥K1中的每个值V1进行加密,通过公式V1=D1(V1,K2,PIN,B1)加密,主密钥K1的值V1所对应的索引B1作为偏移量。
8.如权利要求7所述的方法,其特征在于,在生成主密钥K1后还包括以下步骤:
获取设备的BIND码并进行编码运算,得到设备密钥BIND;其中对主密钥K1中的每个值V1进行加密,通过公式V1=D1(V1,K2,PIN,BIND,B1)加密,主密钥K1的值V1所对应的索引B1作为偏移量。
9.如权利要求7所述的方法,其特征在于,对所述加密对照表E中的每个值V2通过以下公式加密:V2=D2(V2,K2,PIN,B2),加密对照表E的值V2所对应的索引B2作为偏移量。
10.如权利要求8所述的方法,其特征在于,对所述加密对照表E中的每个值V2通过以下方式加密:V2=D2(V2,K2,PIN,BIND,B2),加密对照表E的值V2所对应的索引B2作为偏移量。
11.如权利要求5所述的方法,其特征在于,所述针对每一个加密单元P进行加密,P作为加密对照表E的索引B2,具体为通过公式B1=U2(V2,K2,,B2)获取正确的索引B1,其中U2为加密函数D2的逆运算函数,用值V2所对应的索引B2作为偏移量;通过公式C=D3(B1,K2,F)得到密文单元C值,其中,D3为加密运算函数,F为加密单元P的偏移量。
12.如权利要求11所述的方法,其特征在于,针对密文的每一个密文单元C进行解密,具体包括通过公式B1=U3(C,K2,F)获取正确的索引B1,其中,U3为D3加密函数的逆运算函数,F为密文单元C的偏移量,并通过公式P=U1(V1,K2,B1)获得加密单元P值,V1是索引B1所对应的值,索引B1作为偏移量,其中,U1为D1加密函数的逆运算函数。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序运行时可实现如权利要求1至13任意一项所述的流式加密方法或者流式解密方法。
CN201810399879.XA 2018-04-28 2018-04-28 一种流式加密和解密方法 Pending CN108718235A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810399879.XA CN108718235A (zh) 2018-04-28 2018-04-28 一种流式加密和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810399879.XA CN108718235A (zh) 2018-04-28 2018-04-28 一种流式加密和解密方法

Publications (1)

Publication Number Publication Date
CN108718235A true CN108718235A (zh) 2018-10-30

Family

ID=63899397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810399879.XA Pending CN108718235A (zh) 2018-04-28 2018-04-28 一种流式加密和解密方法

Country Status (1)

Country Link
CN (1) CN108718235A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829322A (zh) * 2019-01-28 2019-05-31 北京交通大学 基于授权信息的数媒文件实时加解密方法与系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
CN1578457A (zh) * 2003-07-17 2005-02-09 汤姆森许可贸易公司 个人视频加密系统和方法
CN101247520A (zh) * 2008-02-27 2008-08-20 北京航空航天大学 一种视频数据加密/解密方法
JP2010246055A (ja) * 2009-04-10 2010-10-28 Hiroyuki Watanabe 暗号化・復号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法、およびプログラム
CN102279908A (zh) * 2010-06-08 2011-12-14 安凯(广州)微电子技术有限公司 一种数字内容的保护方法及系统
CN103366132A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于加密数据的设备和方法
CN104200156A (zh) * 2014-08-27 2014-12-10 山东超越数控电子有限公司 一种基于龙芯处理器的可信加密系统
CN104966525A (zh) * 2015-01-14 2015-10-07 腾讯科技(深圳)有限公司 文件加密、解密方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997012459A1 (en) * 1995-09-26 1997-04-03 Xian Kan Lin A method for encryption of file
CN1578457A (zh) * 2003-07-17 2005-02-09 汤姆森许可贸易公司 个人视频加密系统和方法
CN101247520A (zh) * 2008-02-27 2008-08-20 北京航空航天大学 一种视频数据加密/解密方法
JP2010246055A (ja) * 2009-04-10 2010-10-28 Hiroyuki Watanabe 暗号化・復号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法、およびプログラム
CN102279908A (zh) * 2010-06-08 2011-12-14 安凯(广州)微电子技术有限公司 一种数字内容的保护方法及系统
CN103366132A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于加密数据的设备和方法
CN104200156A (zh) * 2014-08-27 2014-12-10 山东超越数控电子有限公司 一种基于龙芯处理器的可信加密系统
CN104966525A (zh) * 2015-01-14 2015-10-07 腾讯科技(深圳)有限公司 文件加密、解密方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘学红等: "《计算机文化基础教程 Windows 2000》", pages: 353 - 354 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829322A (zh) * 2019-01-28 2019-05-31 北京交通大学 基于授权信息的数媒文件实时加解密方法与系统

Similar Documents

Publication Publication Date Title
CN107086915B (zh) 一种数据传输方法、数据发送端及数据接收端
US20110145576A1 (en) Secure method of data transmission and encryption and decryption system allowing such transmission
KR100259179B1 (ko) 암호화 통신 처리
CN108090370A (zh) 基于索引的即时通信加密方法和系统
CN107483505A (zh) 一种对视频聊天中的用户隐私进行保护的方法及系统
Es-Sabry et al. A novel text encryption algorithm based on the two-square Cipher and Caesar Cipher
Kaur et al. A random selective block encryption technique for secure image cryptography using blowfish algorithm
Reshma et al. Pairing-free CP-ABE based cryptography combined with steganography for multimedia applications
JP2001211154A (ja) 秘密鍵生成方法,暗号化方法及び暗号通信方法
Kuppuswamy et al. New Innovation of Arabic language Encryption Technique using New symmetric key algorithm
CN113591117A (zh) 社交平台日常对话加密方法、系统、存储介质及计算设备
CN108718235A (zh) 一种流式加密和解密方法
CA2368307C (en) Voice and data encryption method using a cryptographic key split combiner
Bastanta et al. Image data encryption using DES method
Mahmoud et al. Encryption based on multilevel security for relational database EBMSR
CN104243291A (zh) 一种可保障用户通讯内容安全的即时通讯方法及其系统
JP2017527225A (ja) 暗号システムの再現可能なランダムシーケンス
CN103634313A (zh) 一种通讯录的处理方法、装置及移动终端
Santhi et al. Study of symmetric-key cryptosystems and implementing a secure cryptosystem with des
Acharya et al. Encryption and decryption of informative image by key image using modified Hill cipher technique based on non-invertible matrices
Taka Secure Communication by combined Diffe-Hellman key exchange Based AES Encryption and Arabic Text Steganography.
Pranav et al. An involution function-based symmetric stream cipher
Peranginangin Application of Number Theory in Cryptography
JP2003304237A (ja) 共通鍵生成方法、その共通鍵を用いる暗号方法および共通鍵管理方法並びに端末の固体番号による固体認証方法、並びにそれらの方法を実行するプログラム、及びそのプログラムを含む応用ソフトウェア
Aruljothi et al. Symmetric key cryptosystem based on randomized block cipher

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