CN109245881A - 一种照片视频云端加密存储方法 - Google Patents

一种照片视频云端加密存储方法 Download PDF

Info

Publication number
CN109245881A
CN109245881A CN201811079446.2A CN201811079446A CN109245881A CN 109245881 A CN109245881 A CN 109245881A CN 201811079446 A CN201811079446 A CN 201811079446A CN 109245881 A CN109245881 A CN 109245881A
Authority
CN
China
Prior art keywords
data
box
encryption
blen
byte
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.)
Withdrawn
Application number
CN201811079446.2A
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.)
Hangzhou Tick Technology Co Ltd
Original Assignee
Hangzhou Tick Technology Co Ltd
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 Hangzhou Tick Technology Co Ltd filed Critical Hangzhou Tick Technology Co Ltd
Priority to CN201811079446.2A priority Critical patent/CN109245881A/zh
Publication of CN109245881A publication Critical patent/CN109245881A/zh
Withdrawn 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种照片视频云端加密存储方法,采用改进的AES加密算法,该改进的AES加密算法包括:一、密钥扩展;二、S盒置换和逆S盒置换;三、行移位变换与逆向行移位变换;四、列混合变换和逆列混合变换;五、轮密钥加。本发明基于文件的数据流加解密技术,将用户资源在客户端进行加密后再传输至云端,用户访问数据资源时,又在客户端进行解密。也就是说云端存储的是加密的数据文件,不存在传输过程中数据明文的泄露。通过数据加密,有效的保证了个人数据的安全,以及在通信线路上的内容不被泄露。同时***采用改进对称加密技术,对资源进行加密的同时,对数据库中的数据项也进行加密,双重加密更加保证了资源的安全性传输。

Description

一种照片视频云端加密存储方法
技术领域
本发明涉及云端数据安全存储,特别是照片视频的加密技术,具体是一种照片视频云端加密存储方法。
背景技术
云存储是近年来工业界和学术界研究的热点,其中的安全问题受到了多方瞩目。云存储作为一种新兴的服务形式以其弹性配置、按需购买、易于维护等优点成为众多组织的存储选择。然而在云存储模式下,数据脱离了用户的控制范围,这引起了用户对服务器可靠性以及数据安全性的担忧。
当前大部分产品所提供的云存储服务,用户数据文件基本都是明文存储,数据在传输过程中随时都有被窃取的可能,这无疑是将用户的隐私暴露在外界,从而造成用户敏感信息的泄露。所以对文件进行安全加密显然已成为对文件安全保护最有效的技术手段。
发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种照片视频云端加密存储方法,采用改进的AES加密算法,该改进的AES加密算法包括:一、密钥扩展;二、S盒置换和逆S盒置换;三、行移位变换与逆向行移位变换;四、列混合变换和逆列混合变换;五、轮密钥加。
进一步的,所述密钥扩展包括:
按照列优先的方式将种子密钥排列成4*4矩阵,矩阵每一列称为一个32bit的字,将种子密钥从4个字节扩展成44个字,每一轮加密需要4个字;假设第一个字为w[0],第二个字为w[1]···依次类推,最后一个字为w[43];
前4个字用种子密钥初始化,然后,对数组w扩充40个新字;递归方式:
⑴若i不是4的倍数,那么w[i]=w[i-4]^w[i-1];
⑵若i是4的倍数,那么w[i]=w[i-4]^T(w[i-1]);其中T是一个函数。
函数T由3个部分组成:字循环、字节代换与轮常量异或;
⑶字循环:将一个字中的4个字节分别向左移动一个字节;即[x0,x1,x2,x3]变换为[x1,x2,x3,x0];
⑷字节代换:即S盒置换;
⑸轮常量异或:将前两步的结果与轮常量Rcon[j]进行异或。
进一步的,所述S盒置换和逆S盒置换具体如下:
正S盒(Sbox),逆S盒(InvSbox)提前计算存储在代码中,字节代换简化成一个简单的查表操作;通过下标取出对应的值来映射操作,S盒置换使用正S盒,逆S盒置换使用逆S盒。
进一步的,所述行移位变换与逆向行移位变换具体如下:
行移位将字节矩阵通过简单的左循环移位操作;当密钥长为128bit,状态矩阵的第i行左移i个字节;逆行移位是还原行移位,状态矩阵向右循环移位,状态矩阵的第i行右移i个字节。
进一步的,所述列混合变换和逆列混合变换具体如下:
列混合算法使用GF()域算术特性替代
根据矩阵的乘法可知,在列混淆过程中,每个字节对应的值只与该列的4个值有关系;此处的乘法和加法都定义在GF(28)有限域上:
⑴将某个字节的值乘2,即该值的二进制位左移一位,如果该值的最高位为1,则还需要将移位后的结果异或00011011;
⑵乘法对加法满足分配率;
⑶各个值在相加时使用的是模2加法;
逆列混合操作同样使用GF()域上算术特性替换。
进一步的,所述轮密钥加具体为:
将128位轮密钥与状态矩阵中的数据进行异或操作。
进一步的,当需要处理待处理数据不是分组数据的整数倍时,采取密文挪用的方法,设分组长度为blen;待加密/解密处理的数据为d,长度为dlen;待处理剩余的数据为rd,长度为rdlen,已经处理数据s;加密过程如下:
步骤(1)当rdlen>=blen,即剩余数据大于分组长度,转步骤(2);否则,转步骤(3);
步骤(2)从rd的头部取大小为blen的数据作加密操作,所得数据拼接到s尾部,转步骤(1);
步骤(3)若rdlen>0,即剩余数据不够一个分组。在已经加密的数据s末尾取出大小为blen-rdlen的数据与rd拼接构成一个长度为blen的分组数据块,对其加密并将结果拼接到已经加密数据后,转步骤(4);
步骤(4)若rdlen==0,所有数据加密完成,结束加密。
进一步的,解密过程如下:
Step1:当rdlen>2*blen,转Step 2;否则,转Step 3。
Step2:rd的头部取出blen长的数据作解密操作,结果拼接到s尾部,转Step1。
Step3:当rdlen=2*blen,转Step 4;否则,转Step 5。
Step4:取出rdlen数据解密。直到rdlen==0;结果拼接到s尾部,转Step 6。
Step5:取出剩余数据rd末尾blen大小的数据块并作解密操作,剩余的rd-blen大小数据块记作rd’,得到数据块data2;对剩余的待解密数据rd’与data2的头部blen-rd’len的数据进行拼接、解密,得到data3;顺序拼接s,data3,data2的末尾rd’len个位数据,得到完整解密数据,转Step 6;
Step6:所有密文均被解密成原文,结束解密。
进一步的,***主进程实现加密解密操作,读文件操作由文件读进程实现,写文件操作由文件写进程实现;待处理数据和待写入文件数据缓冲区使用循环队列实现,主进程直接在缓存区读取数据,并将数据存入写缓冲区。
10.如权利要求1所述的照片视频云端加密存储方法,其特征在于:还包括对数据库加密,采用基于字段的加密方式。
本发明基于文件的数据流加解密技术,将用户资源在客户端进行加密后再传输至云端,用户访问数据资源时,又在客户端进行解密。也就是说云端存储的是加密的数据文件,不存在传输过程中数据明文的泄露。通过数据加密,有效的保证了个人数据的安全,以及在通信线路上的内容不被泄露。同时***采用改进对称加密技术,对资源进行加密的同时,对数据库中的数据项也进行加密,双重加密更加保证了资源的安全性传输。
附图说明
图1是加密和解密原理图;
图2是AES加密算法加密流程图;
图3是字节代换示意图;
图4是行移位示意图;
图5是加密实现过程示意图;
图6是解密实现过程示意图;
图7是文件处理过程示意图;
图8是在协议层为高层协议提供基本的安全服务示意图;
图9是ES加解密流程图;
图10是S盒示意图;
图11是S-1示意图;
图12是正向行移位示意图;
图13是正向列混淆原理图;
图14是逆向列混淆原理图;
图15是种子密钥排列格式示意图;
图16是函数g的流程图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明对文件加密和解密,保证数据安全。信息或数据经过加密变换后,将明文变成密文形式,表面上无法识别,只有那些经过授权的合法用户,掌握独有的秘密密钥,才能通过解密算法将密文还原成明文;而未授权的用户则无法获得明文。本发明采用如下措施:1、对信息进行加密。采用加密算法对信息进行加密存储和传输,使非法用户难以破解,不至于泄露保密内容。2、对数据库进行加密。
分组密码技术:对于文件加密,加密算法是整个***的核心,其选择的依据一半根据***的安全性要求进行确定,在满足安全性要求的前提下,尽可能选用速度快的加密算法。加密算法经历了RSA、DES、3DES发展到美国国家标准技术局发布的高级加密标准AES。AES作为DES算法的替代者将成为未来数十年最重要的对称密码算法,是一个对称分组密码算法,分组长度和密钥长度均能分别被指定为128位、192位或256位。该算法具有以下特性:对所有已知的攻击具有免疫性;在各种平台上,其执行速度快而且代码紧凑。
在密码学中,需要通过加密加以保护而进行变换的原报文称为明文。明文经过变换成为一种不可直接辨读的隐蔽形式称为密文。
明文与密文的关系:
C=EK(M),
M=DK(C)。
其中:C是密文,M是明文,参数K叫做密钥。
E是加密或加密过程:完成明文到密文的变换过程。
D是解密或解密过程:是加密的逆过程,即由密文恢复出明文的过程。
对明文进行加密时所采用的映射函数或变换规则称作加密算法。
对密文进行解密时所采用的的(逆)映射函数或(逆)变换规则称作解密算法。加密和解密操作通常在密钥的控制下进行,在近代密码体系中加密密钥和解密密钥可以是不同的。其原理如图1所示。
对称加密技术,也称为分组密码技术,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来,而在大多数的对称算法中,加密密钥和解密密钥是相同的。
这种技术要求发送方用户和接收方用户在安全通信之前,商定一个密钥。这样发送方用户和接收方用户使用相同的密钥对信息进行加密和解密。
对称加密技术由于双方拥有相同的密钥具有易于实现和速度快的优点,所以广泛应用于通信和存储数据的加密和解密。另外,如何安全地将加密解密所使用的密钥传送给对方,也是一个必须考虑的问题。因此,对称加密技术的安全性依赖于密钥,泄露密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信安全至关重要。先阶段在电子商务中常用的对称加密算法有美国数据加密标准DES(Data EncryptionStandard)和高级加密标准AES(Adcanced Encryption Standard)。
分组密码体制具有简捷、快速的特点,并且容易标准化,使其成为软硬件加密标准的主流。本发明主要针对文件级的加解密,故鉴于上述优点采用分组加密技术的AES高级加密算法。
AES高级加密算法流程:
AES加密算法的处理单元是分组,分组的128bit数据(16字节)会按照顺序复制到4*4的状态矩阵(stat)中,所有变换都是基于状态矩阵完成的。AES变换是多轮迭代的轮变换实现的,迭代次数与密钥长度有关。轮变换包括4步变换,包括字节变换、行变换、列混合和密钥加。通过非线性变换、混合函数变换,将字节代换运算产生的非线性扩散,达到重复混合,使得加密完成后的分组扩散更均匀。轮密钥扩展将原始密码扩展成11组,每轮迭代使用不同的密钥。加密流程如图2所示。
算法实现:
①密钥扩展
按照列优先的方式将种子密钥排列成4*4矩阵,矩阵每一列就可以称为一个32bit的字。密钥扩展的目的就是将种子密钥有4个字节扩展成44个字,每一轮加密需要4个字。假设第一个字为w[0],第二个字为w[1]···依次类推,最后一个字为w[43]。
前4个字可以用种子密钥初始化,然后,对数组w扩充40个新字。递归方式:
⑴若i不是4的倍数,那么w[i]=w[i-4]^w[i-1]。
⑵若i是4的倍数,那么w[i]=w[i-4]^T(w[i-1]);其中T是一个函数。
函数T由3个部分组成:字循环、字节代换与轮常量异或。
⑶字循环:将一个字中的4个字节分别向左移动一个字节。即[x0,x1,x2,x3]变换为[x1,x2,x3,x0]
⑷字节代换:即S盒置换。
⑸轮常量异或:将前两步的结果与轮常量Rcon[j]进行异或。
②S盒置换和逆S盒置换
如图3所示,S盒置换又称字节代换。正S盒(Sbox),逆S盒(InvSbox)提前计算存储在代码中,字节代换可以简化成一个简单的查表操作。通过下标取出对应的值就是这个映射操作,如图所示。S盒置换使用正S盒,逆S盒置换使用逆S盒。
③行移位变换与逆向行移位变换如图4所示,行移位的功能是将字节矩阵通过简单的左循环移位操作。当密钥长为128bit,状态矩阵的第i行左移i个字节。逆行移位就是还原行移位,状态矩阵向右循环移位,状态矩阵的第i行右移i个字节。
④列混合变换和逆列混合变换列混合算法:使用GF()域算术特性替代
根据矩阵的乘法可知,在列混淆过程中,每个字节对应的值只与该列的4个值有关系。此处的乘法和加法都定义在GF(28)有限域上。需要注意如下几点:
⑴将某个字节的值乘2,即该值的二进制位左移一位,如果该值的最高位为1(即该数值不小于128),则还需要将移位后的结果异或00011011。
⑵乘法对加法满足分配率,例如:
⑶此处矩阵乘法与矩阵的乘法不同,各个值在相加时使用的是模2加法(相当于异或运算)。
逆列混合操作同样使用GF()域上算术特性替换,只是多项式c(x)不同。
⑤轮密钥加
将128位轮密钥与状态矩阵中的数据进行异或操作。因为异或操作的逆操作即是本身,所以解密轮密钥加也是本身。
优化设计:
①密文挪用
AES算法是分组加密算法,所以需要处理待处理数据不是分组数据的整数倍的问题。如果不处理这部分数据,那么加密解密以后得到的原始信息将在最后一个分组多出一部分错误信息,而没有被赋值的数据往往就是内存中的垃圾,从而影响正确信息的可读性。采取“密文挪用”的方法,设分组长度为blen;待处理(加密/解密)的数据为d,长度为dlen;待处理剩余的数据为rd,长度为rdlen。已经处理数据s。加密实现过程如图5所示。
步骤(1)当rdlen>=blen,即剩余数据大于分组长度,转步骤(2);否则,转步骤(3)。
步骤(2)从rd的头部取大小为blen的数据作加密操作,所得数据拼接到s尾部,转步骤(1)。
步骤(3)若rdlen>0,即剩余数据不够一个分组。在已经加密的数据s末尾取出大小为blen-rdlen的数据与rd拼接构成一个长度为blen的分组数据块,对其加密并将结果拼接到已经加密数据(除被取出的blen-rdlen的数据)后,转步骤(4)。
步骤(4)若rdlen==0,所有数据加密完成,结束加密。s为密文。
原文被分成n个组,第n个分组不足一个分组长度。前面n-2个分组直接加密即可,第n-1分组加密后要借给n分组然后对n分组加密。解密实现过程如图6所示。
Step1:当rdlen>2*blen,转Step 2;否则,转Step 3。
Step2:rd的头部取出blen长的数据作解密操作,结果拼接到s尾部,转Step1。
Step3:当rdlen=2*blen,转Step 4;否则,转Step 5。
Step4:取出rdlen数据解密。直到rdlen==0;结果拼接到s尾部,转Step 6。
Step5:取出剩余数据rd末尾blen大小的数据块(剩余的rd-blen大小数据块记作rd’)并作解密操作,得到数据块data2;对剩余的待解密数据rd’与data2的头部blen-rd’len的数据进行拼接、解密,得到data3。顺序拼接s,data3,data2,的末尾rd’len个位数据,得到完整解密数据,转Step 6。
Step6:所有密文均被解密成原文。结束解密。
说明:密文被分成n个分组,前n-2分组直接解密。结尾部分,先取出后面一个分组,然后n-1分组和解密完的前面部分组成一个分组解密,然后拼接起来。
②多线程I/O优化
文件读取和加解密处理的速度是不匹配的,如每次处理一个分组就读写文件一次显然会处于空等状态,而且多次打开关闭文件相当费时间,而待加密的文件也是可大可小的,可能是几K的文本,也有可能遇到几个G的图像视频等,全部读取到内存中也是不可能的。考虑到以上问题,设置缓冲区。
文件处理过程如图7所示,***主进程实现加密解密操作,读文件操作由文件读进程实现,写文件操作由文件写进程实现。待处理数据和待写入文件数据缓冲区使用循环队列实现,主进程直接在缓存区读取数据,并将数据存入写缓冲区。二、加密数据库技术。
数字经济时代,文件加密***最重要的资源不仅包括有价值的数据,还包括存贮这些关键数据的地方—数据库。数据库安全保护是指保护数据库中的数据,防止无关人员或非授权人员对数据库中数据的窃取、篡改和破坏。数据库的突出特点是数据的集中存放和共享,保护这些数据不被窃取、破坏是非常重要的。现有的数据库***已经采取了相关的安全措施,例如用户管理及口令控制、存储控制、视图机制、存储过程、触发器机制来保证数据的安全性和完整性。因此,在加密方式问题上,比较明智的做法是只对关键信息所在字段加密,即数据项加密,而对非关键性字段,则继续保留其原有的明文形式。本发明所涉及的数据库加密机制就是建立在这种基于字段的加密方式之上的。
一个字段唯一地被一个数据密钥进行加密解密,同样地,一个数据密钥也只能用来对一个字段的数据进行加密。这样的加密方式,就称之为基于字段的加密方式。对表中的某个字段中的数据进行加密之后,要想通过SQL Server服务器得到数据并浏览文件,必须通过密钥才能解密字段。
这样就形成了在内层,数据库方面,存储文件的字段被加密,万一文件泄露,外部人员在没有密钥的情况下也无法得到有价值的信息;在外层,所有文件全部经过高级加密算法作加密处理后在存入云端数据库,只有拥有解密密钥的合法用户能用与其相关的密钥成功解密密文数据得到有用的文件。
AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥长度不足时,会补齐)。
AES共有ECB、CBC、CFB、OFB、CTR五种模式。
1、AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度。
2、分组加密的几种方式
ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度。
CFB/OFB实际上是一种反馈模式,目的也是增强破解的难度。
ECB和CBC的加密结果是不一样的,两者的模式不同,而且CBC会在第一个密码块运算时加入一个初始化向量。
实施例
如图8所示,在协议层为高层协议提供基本的安全服务,SSL纪录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。纪录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作,双重保证了传输的安全性。
AES加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。图9给出了AES加解密的流程,从图中可以看出:1)解密算法的每一步分别对应加密算法的逆操作,2)加解密所有操作的顺序正好是相反的。正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性。加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到。算法中16字节的明文、密文和轮子密钥都以一个4x4的矩阵表示。
字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。。这里直接给出构造好的结果,图10为S盒,图11为S-1(S盒的逆)。S盒用于提供密码算法的混淆性。
S和S-1分别为16x16的矩阵,完成一个8比特输入到8比特输出的映射,输入的高4-bit对应的值作为行标,低4-bit对应的值作为列标。假设输入字节的值为a=a7a6a5a4a3a2a1a0,则输出值为S[a7a6a5a4][a3a2a1a0],S-1的变换也同理。
例如:字节00000000B替换后的值为(S[0][0]=)63H,再通过S-1即可得到替换前的值,(S-1[6][3]=)00H。
行移位是一个4x4的矩阵内部字节之间的置换,用于提供算法的扩散性。
1)正向行移位正向行移位用于加密,其原理如图12所示。其中:第一行保持不变,第二行循环左移8比特,第三行循环左移16比特,第四行循环左移24比特。
假设矩阵的名字为state,用公式表示如下:state’[i][j]=state[i][(j+i)%4];其中i、j属于[0,3]。
2)逆向行移位
逆向行移位即是相反的操作,即:第一行保持不变,第二行循环右移8比特,第三行循环右移16比特,第四行循环右移24比特。
用公式表示如下:state’[i][j]=state[i][(4+j-i)%4];其中i、j属于[0,3]。列混淆:利用GF(28)域上算术特性的一个代替,同样用于提供算法的扩散性。
1)正向列混淆正向列混淆的原理如图13所示:
根据矩阵的乘法可知,在列混淆的过程中,每个字节对应的值只与该列的4个值有关系。此处的乘法和加法都是定义在GF(28)上的,需要注意如下几点:
(1)将某个字节所对应的值乘以2,其结果就是将该值的二进制位左移一位,如果原始值的最高位为1,则还需要将移位后的结果异或00011011;[1];
(2)乘法对加法满足分配率,例如:07·S0,0=(01⊕02⊕04)·S0,0=S0,0⊕(02·S0,0)(04·S0,0);
(3)此处的矩阵乘法与一般意义上矩阵的乘法有所不同,各个值在相加时使用的是模28加法(异或运算)。
下面举一个例子,假设某一列的值如下所示:
运算过程如下:
其中:
01·46=01000110B
01·A6=10100110B
则:
在计算02与C9的乘积时,由于C9对应最左边的比特为1,因此需要将C9左移一位后的值与(00011011)求异或。同理可以求出另外几个值。
2)逆向列混淆逆向列混淆的原理如图14所示。
密钥扩展过程说明:1)将种子密钥按图15的格式排列,其中k0、k1、……、k15依次表示种子密钥的一个字节;排列后用4个32比特的字表示,分别记为w[0]、w[1]、w[2]、w[3];)
2)按照如下方式,依次求解w[j],其中j是整数并且属于[4,43];)
3)若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];)
函数g的流程如图16所示。
a)将w循环左移8比特;)
b)分别对每个字节做S盒置换;)
c)与32比特的常量(RC[j/4],0,0,0)进行异或,RC是一个一维数组,其值如下:
RC={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x1B,0x36})。
RC的值只需要有10个,而此处用了11个,实际上RC[0]在运算中没有用到,增加RC[0]是为了便于程序中用数组表示。由于j的最小取值是4,j/4的最小取值则是1,因此不会产生错误。

Claims (10)

1.一种照片视频云端加密存储方法,采用改进的AES加密算法,其特征在于:该改进的AES加密算法包括:一、密钥扩展;二、S盒置换和逆S盒置换;三、行移位变换与逆向行移位变换;四、列混合变换和逆列混合变换;五、轮密钥加。
2.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
所述密钥扩展包括:
按照列优先的方式将种子密钥排列成4*4矩阵,矩阵每一列称为一个32bit的字,将种子密钥从4个字节扩展成44个字,每一轮加密需要4个字;假设第一个字为w[0],第二个字为w[1]···依次类推,最后一个字为w[43];
前4个字用种子密钥初始化,然后,对数组w扩充40个新字;递归方式:
⑴若i不是4的倍数,那么w[i]=w[i-4]^w[i-1];
⑵若i是4的倍数,那么w[i]=w[i-4]^T(w[i-1]);其中T是一个函数。
函数T由3个部分组成:字循环、字节代换与轮常量异或;
⑶字循环:将一个字中的4个字节分别向左移动一个字节;即[x0,x1,x2,x3]变换为[x1,x2,x3,x0];
⑷字节代换:即S盒置换;
⑸轮常量异或:将前两步的结果与轮常量Rcon[j]进行异或。
3.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
所述S盒置换和逆S盒置换具体如下:
正S盒(Sbox),逆S盒(InvSbox)提前计算存储在代码中,字节代换简化成一个简单的查表操作;通过下标取出对应的值来映射操作,S盒置换使用正S盒,逆S盒置换使用逆S盒。
4.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
所述行移位变换与逆向行移位变换具体如下:
行移位将字节矩阵通过简单的左循环移位操作;当密钥长为128bit,状态矩阵的第i行左移i个字节;逆行移位是还原行移位,状态矩阵向右循环移位,状态矩阵的第i行右移i个字节。
5.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
所述列混合变换和逆列混合变换具体如下:
列混合算法使用GF()域算术特性替代
根据矩阵的乘法可知,在列混淆过程中,每个字节对应的值只与该列的4个值有关系;此处的乘法和加法都定义在GF(28)有限域上:
⑴将某个字节的值乘2,即该值的二进制位左移一位,如果该值的最高位为1,则还需要将移位后的结果异或00011011;
⑵乘法对加法满足分配率;
⑶各个值在相加时使用的是模2加法;
逆列混合操作同样使用GF()域上算术特性替换。
6.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
所述轮密钥加具体为:
将128位轮密钥与状态矩阵中的数据进行异或操作。
7.如权利要求1所述的照片视频云端加密存储方法,其特征在于:当需要处理待处理数据不是分组数据的整数倍时,采取密文挪用的方法,设分组长度为blen;待加密/解密处理的数据为d,长度为dlen;待处理剩余的数据为rd,长度为rdlen,已经处理数据s;加密过程如下:
步骤(1)当rdlen>=blen,即剩余数据大于分组长度,转步骤(2);否则,转步骤(3);
步骤(2)从rd的头部取大小为blen的数据作加密操作,所得数据拼接到s尾部,转步骤(1);
步骤(3)若rdlen>0,即剩余数据不够一个分组。在已经加密的数据s末尾取出大小为blen-rdlen的数据与rd拼接构成一个长度为blen的分组数据块,对其加密并将结果拼接到已经加密数据后,转步骤(4);
步骤(4)若rdlen==0,所有数据加密完成,结束加密。
8.如权利要求7所述的照片视频云端加密存储方法,其特征在于:解密过程如下:
Step1:当rdlen>2*blen,转Step 2;否则,转Step 3。
Step2:rd的头部取出blen长的数据作解密操作,结果拼接到s尾部,转Step 1。
Step3:当rdlen=2*blen,转Step 4;否则,转Step 5。
Step4:取出rdlen数据解密。直到rdlen==0;结果拼接到s尾部,转Step 6。
Step5:取出剩余数据rd末尾blen大小的数据块并作解密操作,剩余的rd-blen大小数据块记作rd’,得到数据块data2;对剩余的待解密数据rd’与data2的头部blen-rd’len的数据进行拼接、解密,得到data3;顺序拼接s,data3,data2的末尾rd’len个位数据,得到完整解密数据,转Step 6;
Step6:所有密文均被解密成原文,结束解密。
9.如权利要求1所述的照片视频云端加密存储方法,其特征在于:
***主进程实现加密解密操作,读文件操作由文件读进程实现,写文件操作由文件写进程实现;待处理数据和待写入文件数据缓冲区使用循环队列实现,主进程直接在缓存区读取数据,并将数据存入写缓冲区。
10.如权利要求1所述的照片视频云端加密存储方法,其特征在于:还包括对数据库加密,采用基于字段的加密方式。
CN201811079446.2A 2018-09-14 2018-09-14 一种照片视频云端加密存储方法 Withdrawn CN109245881A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811079446.2A CN109245881A (zh) 2018-09-14 2018-09-14 一种照片视频云端加密存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811079446.2A CN109245881A (zh) 2018-09-14 2018-09-14 一种照片视频云端加密存储方法

Publications (1)

Publication Number Publication Date
CN109245881A true CN109245881A (zh) 2019-01-18

Family

ID=65059475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811079446.2A Withdrawn CN109245881A (zh) 2018-09-14 2018-09-14 一种照片视频云端加密存储方法

Country Status (1)

Country Link
CN (1) CN109245881A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162989A (zh) * 2019-05-28 2019-08-23 上海海洋大学 基于cbc模式的多类型文件加密共享与访问控制方法
CN111064562A (zh) * 2019-12-12 2020-04-24 北京计算机技术及应用研究所 一种fpga上的aes算法的实现方法
CN112100698A (zh) * 2020-09-23 2020-12-18 北京万协通信息技术有限公司 一种实现NorFlash安全访问的***及方法
CN113591117A (zh) * 2021-08-04 2021-11-02 中国人民大学 社交平台日常对话加密方法、***、存储介质及计算设备
CN114143576A (zh) * 2021-11-26 2022-03-04 广东爱视文化发展有限公司 一种音视频加密保护点播方法、装置及电子设备
CN114286129A (zh) * 2021-12-02 2022-04-05 赛轮集团股份有限公司 一种音视频数据加密、解密方法及装置
CN114374817A (zh) * 2021-12-31 2022-04-19 北京视通科技有限公司 一种基于多方的多媒体会议应急指挥***
CN115208626A (zh) * 2022-06-02 2022-10-18 北京交大微联科技有限公司 铁路信号***中基于安全通信密文传输的通信方法及装置
CN115242548A (zh) * 2022-09-20 2022-10-25 广州万协通信息技术有限公司 一种隐私数据定向加密方法、装置、电子设备及存储介质
CN115801321A (zh) * 2022-10-20 2023-03-14 北京海泰方圆科技股份有限公司 一种数据组合加密方法及装置
CN116506560A (zh) * 2023-06-27 2023-07-28 天津开发区中环***电子工程股份有限公司 一种视频图像实时采集***及采集方法
CN116523722A (zh) * 2023-06-30 2023-08-01 江西云绿科技有限公司 一种具备机器学习能力的环境监测分析***
CN117407906A (zh) * 2023-12-15 2024-01-16 莱芜职业技术学院 一种基于des算法的软件开发数据安全加密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
US20170033921A1 (en) * 2015-07-30 2017-02-02 Nxp, B.V. Encoding Values by Pseudo-Random Mask

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801693A (zh) * 2005-06-28 2006-07-12 华为技术有限公司 分组加密算法中对短分组的处理方法
US20170033921A1 (en) * 2015-07-30 2017-02-02 Nxp, B.V. Encoding Values by Pseudo-Random Mask

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张文锦,周荣,高燕,汪金虎: "基于AES算法的文件加密", 《张文锦,周荣,高燕,汪金虎》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162989A (zh) * 2019-05-28 2019-08-23 上海海洋大学 基于cbc模式的多类型文件加密共享与访问控制方法
CN111064562A (zh) * 2019-12-12 2020-04-24 北京计算机技术及应用研究所 一种fpga上的aes算法的实现方法
CN112100698B (zh) * 2020-09-23 2023-10-31 北京万协通信息技术有限公司 一种实现NorFlash安全访问的***及方法
CN112100698A (zh) * 2020-09-23 2020-12-18 北京万协通信息技术有限公司 一种实现NorFlash安全访问的***及方法
CN113591117A (zh) * 2021-08-04 2021-11-02 中国人民大学 社交平台日常对话加密方法、***、存储介质及计算设备
CN114143576A (zh) * 2021-11-26 2022-03-04 广东爱视文化发展有限公司 一种音视频加密保护点播方法、装置及电子设备
CN114143576B (zh) * 2021-11-26 2024-04-09 广东爱视文化发展有限公司 一种音视频加密保护点播方法、装置及电子设备
CN114286129A (zh) * 2021-12-02 2022-04-05 赛轮集团股份有限公司 一种音视频数据加密、解密方法及装置
CN114286129B (zh) * 2021-12-02 2023-07-25 赛轮集团股份有限公司 一种音视频数据加密、解密方法及装置
CN114374817A (zh) * 2021-12-31 2022-04-19 北京视通科技有限公司 一种基于多方的多媒体会议应急指挥***
CN115208626B (zh) * 2022-06-02 2023-12-01 北京交大微联科技有限公司 铁路信号***中基于安全通信密文传输的通信方法及装置
CN115208626A (zh) * 2022-06-02 2022-10-18 北京交大微联科技有限公司 铁路信号***中基于安全通信密文传输的通信方法及装置
CN115242548A (zh) * 2022-09-20 2022-10-25 广州万协通信息技术有限公司 一种隐私数据定向加密方法、装置、电子设备及存储介质
CN115242548B (zh) * 2022-09-20 2022-12-20 广州万协通信息技术有限公司 一种隐私数据定向加密方法、装置、电子设备及存储介质
CN115801321A (zh) * 2022-10-20 2023-03-14 北京海泰方圆科技股份有限公司 一种数据组合加密方法及装置
CN115801321B (zh) * 2022-10-20 2023-11-14 北京海泰方圆科技股份有限公司 一种数据组合加密方法及装置
CN116506560A (zh) * 2023-06-27 2023-07-28 天津开发区中环***电子工程股份有限公司 一种视频图像实时采集***及采集方法
CN116506560B (zh) * 2023-06-27 2023-09-29 天津开发区中环***电子工程股份有限公司 一种视频图像实时采集***及采集方法
CN116523722A (zh) * 2023-06-30 2023-08-01 江西云绿科技有限公司 一种具备机器学习能力的环境监测分析***
CN117407906A (zh) * 2023-12-15 2024-01-16 莱芜职业技术学院 一种基于des算法的软件开发数据安全加密方法
CN117407906B (zh) * 2023-12-15 2024-03-12 莱芜职业技术学院 一种基于des算法的软件开发数据安全加密方法

Similar Documents

Publication Publication Date Title
CN109245881A (zh) 一种照片视频云端加密存储方法
US8127130B2 (en) Method and system for securing data utilizing reconfigurable logic
US8416947B2 (en) Block cipher using multiplication over a finite field of even characteristic
CN101447870B (zh) 一种基于分布式口令技术的私钥安全存储方法
US20090220083A1 (en) Stream cipher using multiplication over a finite field of even characteristic
Debnath et al. Brief review on journey of secured hash algorithms
US20170346622A1 (en) System And Method For Secure Communications And Data Storage Using Multidimensional Encryption
Chaitra et al. A survey on various lightweight cryptographic algorithms on FPGA
Joshy et al. Text to image encryption technique using RGB substitution and AES
Widiasari Combining advanced encryption standard (AES) and one time pad (OTP) encryption for data security
Rawal Advanced encryption standard (AES) and it’s working
Mattsson Format controlling encryption using datatype preserving encryption
Gaur et al. Comparative Study on Different Encryption and Decryption Algorithm
Pethe et al. A survey on different secret key cryptographic algorithms
Sachdeva et al. Implementation of AES-128 using multiple cipher keys
Tarawneh Cryptography: Recent Advances and Research Perspectives
CN107317667A (zh) 一种身份证件丢失的预警方法及预警装置
Chaloop et al. Enhancing Hybrid Security Approach Using AES And RSA Algorithms
CN113408013A (zh) 多种算法规则混合的加解密芯片构架
Al-Kareem et al. A review of the most effective cryptography techniques based on conventional block cipher and lightweight
Haryono Comparison encryption of how to work caesar cipher, hill cipher, blowfish and twofish
Cherukupalli et al. STUDY AND ANALYSIS OF AN EFFICIENT AES ALGORITHM FOR IOT-BASED APPLICATIONS
Bhowmika et al. A Symmetric Key-Based Cryptographic Transaction on Cryptocurrency Data
Tarawneh Perspective Chapter: Cryptography–Recent Advances and Research Perspectives
Alenezi et al. On the performance of AES algorithm variants

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20190118