CN117251864A - 基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 - Google Patents
基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 Download PDFInfo
- Publication number
- CN117251864A CN117251864A CN202311196702.7A CN202311196702A CN117251864A CN 117251864 A CN117251864 A CN 117251864A CN 202311196702 A CN202311196702 A CN 202311196702A CN 117251864 A CN117251864 A CN 117251864A
- Authority
- CN
- China
- Prior art keywords
- encryption
- data
- ciphertext
- key
- decryption
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 239000012634 fragment Substances 0.000 claims abstract description 192
- 230000008569 process Effects 0.000 claims abstract description 70
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000003860 storage Methods 0.000 claims description 31
- 238000005516 engineering process Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 16
- 241000209507 Camellia Species 0.000 claims description 14
- 235000018597 common camellia Nutrition 0.000 claims description 14
- 238000011084 recovery Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于云阶虚拟化平台的Camellia‑XTS加解密方法和系统,涉及云硬盘加密技术领域,包括加密处理和解密处理;加密处理包括:原始数据分割成多个明文数据块;生成第一密钥和第二密钥;调用Camellia‑XTS加密算法,对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;将加密结果返回;解密处理包括:调用Camellia‑XTS加密算法,对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;对解密后的数据分片和冗余数据块进行还原,得到多个明文数据块,将多个明文数据块组合并返回;本申请能够提高读写速度和密钥的安全性,以及在密钥被泄露或丢失时,不影响数据的解密。
Description
技术领域
本发明属于云硬盘加密技术领域,具体涉及一种基于云阶虚拟化平台的Camellia-XTS加解密方法和系统。
背景技术
随着云计算技术的不断发展和普及,越来越多的企业和个人用户将数据存储在云端,但是,随之而来的数据安全问题也愈发突出,在云存储环境中,数据的传输和存储存在着许多潜在的安全威胁,例如黑客攻击、数据泄露、隐私侵犯等,因此,加强云存储安全的措施和技术已成为云计算领域的重要议题。
云硬盘加密技术作为一种重要的云存储安全技术,具有以下特点:首先,它可以保证在数据传输和存储过程中,数据得到加密保护,防止被未经授权的人员访问和窃取;其次,云硬盘加密技术采用密钥管理机制来保证密钥的安全性,同时还能够灵活地管理和更新密钥;最后,它可以与云计算平台进行无缝集成,用户无需额外的安装和配置,即可实现对云存储数据的加密保护。
但是,云硬盘加密技术还存在以下不足:加密和解密过程对系统性能有一定的影响,可能会导致读写速度变慢;加密密钥的管理和保护存在一定的风险,如密钥被泄露或丢失会导致数据无法解密或被盗取;另外,由于加密技术只是保证数据的机密性,未对数据的完整性和可用性进行保护,因此在一些特定情况下,仍存在一定的安全风险。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于云阶虚拟化平台的Camellia-XTS加解密方法和系统,能够提高读写速度、系统性能和密钥的安全性,以及在密钥被泄露或丢失时,不影响数据的解密。
本发明提供了如下的技术方案:
第一方面,提供一种基于云阶虚拟化平台的Camellia-XTS加解密方法,包括加密处理和解密处理;
所述加密处理包括:
对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块;
使用可信平台模块生成第一密钥和第二密钥,并储存在可信平台模块中;
在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;
将所有明文数据块对应的多个密文数据分片和密文冗余数据块,返回至应用程序或存储在受信任的存储介质中;
所述解密处理包括:
在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;
对解密后的数据分片和冗余数据块进行还原,得到多个明文数据块;
将多个明文数据块组合,并返回至应用程序或存储在受信任的存储介质中。
优选地,所述第一密钥和第二密钥生成后,将第一密钥分割成多个第一密钥片段,将第二密钥分割成多个第二密钥片段,并将第一密钥片段和第二密钥片段分布式储存在可信平台模块的多个节点上;在解密过程中,收集收集大于或者等于设定个数的第一密钥片段和第二密钥片段,以重构第一密钥和第二密钥;使用硬件加速器执行Camellia-XTS加密算法的加密或者解密操作。
优选地,执行加密操作包括:
使用纠删码技术对明文数据块进行编码,生成多个明文数据分片和明文冗余数据块;
使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值;
对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值;
使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文;
将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块。
优选地,所述密文数据分片C_i的加密公式为:
C_i=(E_K1(M_i⊕E_K2(Pi)))⊕E_K2(Pi)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,M_i为第i个数据分片,E_K2(Pi)为第i个数据分片对应的扇区位置加密值;
所述密文冗余数据块C_r为:
C_r=(E_K1(R_j⊕E_K2(Pj)))⊕E_K2(Pj)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,R_j为第j个冗余数据块,E_K2(Pj)为第j个冗余数据块对应的扇区位置加密值。
优选地,执行解密操作包括:
获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥;
使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值;
对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值;
使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块;
对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块;
使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块。
优选地,所述数据分片M_i为:
M_i=(D_K1(C_i⊕E_K2(Pn)))⊕E_K2(Pn)
其中,C_i为第i个密文数据分片,E_K2(Pn)为第i个密文数据分片对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥;
所述密文冗余数据块R_j为:
R_j=(D_K1(C_r⊕E_K2(Pr)))⊕E_K2(Pr)
其中,C_r为第r个密文冗余数据块,E_K2(Pr)为第r个密文冗余数据块对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥。
优选地,在加密之前对原始数据进行备份,并将备份数据储存在可靠的存储介质上;加密后,通过容错技术,将密文冗余数据块、密文数据分片和校验码一起储存;解密时,若部分数据分片丢失或者损坏,通过备份数据或者密文冗余数据块进行数据恢复。
优选地,使用硬件加速器并行执行多个明文数据块的加密或者解密操作;Camellia-XTS加密算法包括密钥扩展和轮函数,轮函数的S-box操作通过查找表在硬件加速器中实现。
第二方面,提供一种基于云阶虚拟化平台的Camellia-XTS加解密系统,包括:
可信平台模块,用于生成和储存第一密钥和第二密钥;
硬件加速器,用于在可信执行环境中调用Camellia-XTS加密算法,在加密过程中,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;在解密过程中,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;
返回模块,用于将加密结果或者解密结果返回至应用程序或存储在受信任的存储介质中;所述加密结果包括所有明文数据块对应的多个密文数据分片和密文冗余数据块;所述解密结果包括多个明文数据块的组合后的原始数据;
所述硬件加速器包括数据处理单元:用于在加密过程中,对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块,或者在解密过程中,对多个明文数据块进行组合,获得原始数据。
优选地,所述硬件加速器包括:
纠删码处理单元:用于在加密过程中,使用纠删码技术对明文数据块进行编码,生成多个明文数据分片和明文冗余数据块;在解密过程中,使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块;
密钥获取单元:在加密过程中,获取第一密钥和第二密钥;在解密过程中,获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥;
扇区位置加密单元:用于在加密过程中,使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值;在解密过程中,使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值;
第一操作单元:用于在加密过程中,对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值;在解密过程中,对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值;
第二操作单元:用于在加密过程中,使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文;在解密过程中,使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块;
第三操作单元:用于在加密过程中,将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块;在解密过程中,对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块。
与现有技术相比,本发明的有益效果是:
(1)使用硬件加速器并行执行多个明文数据块的加密或者解密操作,能够提高读写速度和系统性能,以及减少加密过程对系统的影响;在加密和解密的过程中,提供了扇区级别的数据加密,并且结合了分布式加密、秘密共享方案和纠删码技术,通过对数据进行分片、加密和纠删码处理,使得在部分数据丢失或损坏的情况下仍能恢复原始数据,安全高效稳定的保护云平台的数据。
(2)密钥被分割成多个片段,解密时,只有获取到超过设定个数的密钥片段,才能重构密钥,此种秘密共享方案保证了密钥的安全性,使得攻击者需要同时攻击多个节点才能获得完整的密钥,保证了密钥的安全性,从而极大提高了系统的安全性。
附图说明
图1是本发明的整体流程示意图;
图2是本发明的加密操作流程示意图;
图3是本发明的解密操作流程示意图;
图4是本发明的整体系统的结构框图;
图5是本发明的硬件加速器的结构框图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一、
如图1所示,提供了一种基于云阶虚拟化平台的Camellia-XTS加解密方法,包括加密处理和解密处理。
如图2所示,所述加密处理包括:
S100:对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块。
S200:使用可信平台模块生成第一密钥和第二密钥,并储存在可信平台模块中;可信平台模块(Trusted Platform Module,TPM)用于存储和处理密钥的安全硬件组件,具备防篡改和防泄露等特性。它通过加密技术和硬件级的安全保护措施,确保密钥在存储和使用过程中的安全性。
具体地,第一密钥和第二密钥采用128位或256位密钥,将密钥片段分散存储在多个地方,防止因单点失效导致密钥丢失的问题,同时保证了密钥的安全性和可靠性,这种分布式结构的加密算法可以应用于云计算环境中的云硬盘数据的安全存储和管理,保证数据的隐私性和机密性,是一种高效、安全、可靠的云硬盘加密算法。
S300:在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;可信执行环境(Trusted Execution Environment,TEE)来执行Camellia-XTS加密解密操作,提供了安全的执行环境,防止恶意软件和攻击者对加密操作进行篡改或窃取密钥。
S400:将所有明文数据块对应的多个密文数据分片和密文冗余数据块,返回至应用程序或存储在受信任的存储介质中:
如图3所示,所述解密处理包括:
D100:在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;
D200:对解密后的数据分片和冗余数据块进行还原,得到多个明文数据块,
D300:将多个明文数据块组合,并返回至应用程序或存储在受信任的存储介质中。
具体地,所述第一密钥和第二密钥生成后,将第一密钥分割成多个第一密钥片段,将第二密钥分割成多个第二密钥片段,并将第一密钥片段和第二密钥片段分布式储存在可信平台模块的多个节点上;在解密过程中,收集收集大于或者等于设定个数的第一密钥片段和第二密钥片段,重构第一密钥和第二密钥;使用硬件加速器执行Camellia-XTS加密算法的加密或者解密操作。
在一些其他的实施例中,在加密之前对原始数据进行备份,并将备份数据储存在可靠的存储介质上;加密后,通过容错技术,将密文冗余数据块、密文数据分片和校验码一起储存;解密时,若部分数据分片丢失或者损坏,通过备份数据或者密文冗余数据块进行数据恢复,从而提高数据的完整性和可用性,具体地,可以使用冗余磁盘阵列(RAID)技术,在多个磁盘上存储冗余数据,并使用校验码来验证数据的正确性。当发生磁盘故障或数据损坏时,可以通过冗余数据进行数据恢复,确保数据的完整性和可用性;当然也可以使用数字签名技术。数字签名是一种可以验证数据完整性和来源的技术,它使用私钥对数据进行签名,然后使用公钥进行验证。在我们的系统中,我们可以在数据被加密后立即对其进行签名,然后将签名和加密后的数据一起存储。在解密数据时,我们首先使用公钥验证签名,如果验证通过,说明数据在传输和存储过程中没有被篡改,然后再进行解密。
可选地,使用硬件加速器并行执行多个明文数据块的加密或者解密操作;Camellia-XTS加密算法包括密钥扩展和轮函数,轮函数的S-box操作通过查找表在硬件加速器中实现,采用硬件加速器执行加密或者解密操作,通过利用硬件加速器的高速处理能力和并行性,可以实现更快速、高效的加密和解密过程,提高系统性能并缓解加密对系统性能的影响。
可选地,云虚拟化平台可以配备专用的加密卡,该卡集成了高性能的加密处理器和硬件加速器,当虚拟机需要进行磁盘加密时,硬件加速器可以接管加密和解密操作,将其从CPU中解脱出来。
具体地,假设云虚拟化平台配备了一款硬件加速器,其具备以下参数:
硬件加速器型号:HAX-500
加密处理器:集成了专用的Camellia-XTS加密硬件模块
并行处理能力:支持同时处理4个加密/解密操作
加密算法优化:硬件加速器采用查找表实现S-box操作,加快加密速度
加密速度:每秒可处理1GB的数据加密/解密操作
密钥管理:硬件加速器支持硬件级的密钥保护和存储,确保密钥的安全性
虚拟机数量:云环境中同时运行20个虚拟机
当虚拟机需要访问磁盘数据时,数据可以通过硬件加速器进行加密,然后传输给虚拟机,硬件加速器可以同时处理4个虚拟机的加密操作,以高速度完成加密过程。当虚拟机需要读取加密的磁盘数据时,硬件加速器可以快速解密数据,使其能够在虚拟机中进行正常的操作,通过硬件加速器加密或者解密,每个虚拟机可以获得更高的加密和解密速度,加快数据的处理过程,并降低加密对系统性能的影响,同时,由于硬件加速器的并行处理能力,虚拟机可以同时进行其他计算任务,提高系统的并发性和响应能力。
具体地,执行加密操作包括:
S201:使用纠删码技术对明文数据块M进行编码,生成多个明文数据分片和明文冗余数据块。
具体地,{M_1,M_2,...,M_S,R_1,R_2,...,R_r}=EC(M)
EC为编码函数,M_S为第S个明文数据分片,R_r为第r个明文冗余数据块。
S202:使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值。
S203:对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值。
所述数据分片的加密中间值M1'_i为:
M1'_i=M_i⊕E_K2(Pi)
其中,⊕为按位异或操作,M_i为第i个数据分片,E_K2(Pi)为第i个数据分片对应的扇区位置加密值,K2为第二密钥;
所述冗余数据块的加密中间值R1'_j为:
R1'_j=Rj⊕E_K2(Pj)
其中,⊕为按位异或操作,Rj为第j个冗余数据块,E_K2(Pj)为第j个冗余数据块对应的扇区位置加密值,K2为第二密钥。
S204:使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文。
所述数据分片第一密文C1'_i
C1'_i=E_K1(M1'_i)
其中,E为加密算法,K1为第一密钥,M1'_i为数据分片的加密中间值;
所述冗余数据块第一密文C1"_j为:
C1"_j=E_K1(R1'_j)
其中,E为加密算法,K1为第一密钥,R1'_j为冗余数据块的加密中间值。
S205:将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块。
所述密文数据分片C_i的加密公式为:
C_i=(E_K1(M_i⊕E_K2(Pi)))⊕E_K2(Pi)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,M_i为第i个数据分片,E_K2(Pi)为第i个数据分片对应的扇区位置加密值;
所述密文冗余数据块C_r为:
C_r=(E_K1(R_j⊕E_K2(Pj)))⊕E_K2(Pj)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,R_j为第j个冗余数据块,E_K2(Pj)为第j个冗余数据块对应的扇区位置加密值。
具体地,执行解密操作包括:
D101:获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥。
D102:使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值。
D103:对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值。
所述密文数据分片的解密中间值C2'_i为:
C2'_i=C_i⊕E_K2(Pn)
其中,C_i为第i个密文数据分片,E_K2(Pn)为第n个密文数据分片对应的扇区位置加密值,K2为第二密钥;
所述密文冗余数据块的解密中间值C2"_r为:
C2"_r=C_r⊕E_K2(Pr)
其中,C_r为第r个密文冗余数据块,E_K2(Pr)为第r个密文冗余数据块对应的扇区位置加密值,K2为第二密钥。
D104:使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块。
所述第一解密数据分片M2'_i为:
M2'_i=D_K1(C2'_i)
其中,D为解密操作,K1为第一密钥,C2'_i为密文数据分片的解密中间值。
所述第一解密冗余数据块R2'_j为:
R2'_j=D_K1(C2"_r)
其中,D为解密操作,K1为第一密钥,C2"_r为密文冗余数据块的解密中间值。
D105:对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块。
所述数据分片M_i为:
M_i=(D_K1(C_i⊕E_K2(Pn)))⊕E_K2(Pn)
其中,C_i为第i个密文数据分片,E_K2(Pn)为第i个密文数据分片对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥。
所述密文冗余数据块R_j为:
R_j=(D_K1(C_r⊕E_K2(Pr)))⊕E_K2(Pr)
其中,C_r为第r个密文冗余数据块,E_K2(Pr)为第r个密文冗余数据块对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥。
D106:使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块。
所述明文数据块M为:
M=DC({M_1,M_2,...,M_S,R_1,R_2,...,R_r})
其中,DC为解码函数。
提供一种Camellia-XTS算法的C++过程:
/>
生成了一个随机的256位密钥和一个随机的128位初始化向量(IV),然后我们创建了一个Camellia的XTS模式的加密器,并用它来加密一段明文,加密后的密文被保存在cipher字符串中,然后我们创建了一个Camellia的XTS模式的解密器,并用它来解密之前加密的密文,解密后的明文被保存在recovered字符串中,并被打印到标准输出。
实施例二
如图4所示,提供了一种基于云阶虚拟化平台的Camellia-XTS加解密系统,包括:
可信平台模块,用于生成和储存第一密钥和第二密钥。
硬件加速器,用于在可信执行环境中调用Camellia-XTS加密算法,在加密过程中,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;在解密过程中,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块。
返回模块,用于将加密结果或者解密结果返回至应用程序或存储在受信任的存储介质中;所述加密结果包括所有明文数据块对应的多个密文数据分片和密文冗余数据块;所述解密结果包括多个明文数据块的组合后的原始数据。
加密和解密后的数据块可以返回至应用程序或存储在受信任的存储介质中,这一过程必须遵循一系列安全准则和最佳实践,以确保数据的安全完整性,加密后的数据块应该存储在一个安全和受信任的存储介质中,确保只有授权用户或应用程序才能访问它。如果加密数据需要返回至应用程序进行进一步的操作,那么应确保数据传输的安全性。例如,使用安全的传输层(如HTTPS)或使用额外的加密手段来保护数据。解密通常应在一个安全环境中进行,以避免数据泄漏,解密后的数据块如果需要返回至应用程序或存储在某个介质中,同样应确保这个环境或介质是受信任和安全的。解密后的数据应仅用于预定的目的,并应当在使用完毕后从应用程序的内存中安全地移除。无论数据是加密还是解密状态,都应有严格的访问控制策略,确保只有授权用户或系统能够访问。
一般情况下优先考虑安全本地存储,云端存储可以作为一个受信任的存储介质,需要采取额外的预防措施来确保数据的安全性,一般情况下需要满足SSL/TLS加密,对存储的数据需要单独加密,云端存储一般具备内建加密功能的能力。身份秘钥是访问时必须具备的,类似于钥匙和门锁。如果存储数据涉及法律,需要单独进行资质审查,定期备份数据,以及跨Region的跨地域数据隔离,并且保证终端的绝对安全基础上,可以采用云端作为授信介质。
具体地,如图5所示,所述硬件加速器包括数据处理单元10:用于在加密过程中,对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块,或者在解密过程中,对多个明文数据块进行组合,获得原始数据。
所述硬件加速器还包括:
纠删码处理单元20:用于在加密过程中,使用纠删码技术对明文数据块进行编码,生成多个明文数据分片和明文冗余数据块;在解密过程中,使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块;
密钥获取单元30:在加密过程中,获取第一密钥和第二密钥;在解密过程中,获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥;
扇区位置加密单元40:用于在加密过程中,使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值;在解密过程中,使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值;
第一操作单元50:用于在加密过程中,对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值;在解密过程中,对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值;
第二操作单元60:用于在加密过程中,使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文;在解密过程中,使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块;
第三操作单元70:用于在加密过程中,将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块;在解密过程中,对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的;应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (10)
1.一种基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,包括加密处理和解密处理;
所述加密处理包括:
对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块;
使用可信平台模块生成第一密钥和第二密钥,并储存在可信平台模块中;
在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;
将所有明文数据块对应的多个密文数据分片和密文冗余数据块,返回至应用程序或存储在受信任的存储介质中;
所述解密处理包括:
在可行执行环境中调用Camellia-XTS加密算法,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;
对解密后的数据分片和冗余数据块进行还原,得到多个明文数据块;
将多个明文数据块组合,并返回至应用程序或存储在受信任的存储介质中。
2.根据权利要求1所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,所述第一密钥和第二密钥生成后,将第一密钥分割成多个第一密钥片段,将第二密钥分割成多个第二密钥片段,并将第一密钥片段和第二密钥片段分布式储存在可信平台模块的多个节点上;在解密过程中,收集大于或者等于设定个数的第一密钥片段和第二密钥片段,以重构第一密钥和第二密钥;使用硬件加速器执行Camellia-XTS加密算法的加密或者解密操作。
3.根据权利要求1所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,执行加密操作包括:
使用纠删码技术对明文数据块进行编码,生成多个明文数据分片和明文冗余数据块;
使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值;
对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值;
使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文;
将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块。
4.根据权利要求3所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,
所述密文数据分片C_i的加密公式为:
C_i=(E_K1(M_i⊕E_K2(Pi)))⊕E_K2(Pi)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,M_i为第i个数据分片,E_K2(Pi)为第i个数据分片对应的扇区位置加密值;
所述密文冗余数据块C_r为:
C_r=(E_K1(R_j⊕E_K2(Pj)))⊕E_K2(Pj)
其中,E为加密算法,K1为第一密钥,⊕为按位异或操作,R_j为第j个冗余数据块,E_K2(Pj)为第j个冗余数据块对应的扇区位置加密值。
5.根据权利要求1所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,执行解密操作包括:
获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥;
使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值;
对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值;
使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块;
对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块;
使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块。
6.根据权利要求5所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,所述数据分片M_i为:
M_i=(D_K1(C_i⊕E_K2(Pn)))⊕E_K2(Pn)
其中,C_i为第i个密文数据分片,E_K2(Pn)为第i个密文数据分片对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥;
所述密文冗余数据块R_j为:
R_j=(D_K1(C_r⊕E_K2(Pr)))⊕E_K2(Pr)
其中,C_r为第r个密文冗余数据块,E_K2(Pr)为第r个密文冗余数据块对应的扇区位置加密值,K2为第二密钥;D为解密算法,K1为第一密钥。
7.根据权利要求1所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,在加密之前对原始数据进行备份,并将备份数据储存在可靠的存储介质上;加密后,通过容错技术,将密文冗余数据块、密文数据分片和校验码一起储存;解密时,若部分数据分片丢失或者损坏,通过备份数据或者密文冗余数据块进行数据恢复。
8.根据权利要求1所述的基于云阶虚拟化平台的Camellia-XTS加解密方法,其特征在于,使用硬件加速器并行执行多个明文数据块的加密或者解密操作;Camellia-XTS加密算法包括密钥扩展和轮函数,轮函数的S-box操作通过查找表在硬件加速器中实现。
9.一种基于云阶虚拟化平台的Camellia-XTS加解密系统,其特征在于,包括:
可信平台模块,用于生成和储存第一密钥和第二密钥;
硬件加速器,用于在可信执行环境中调用Camellia-XTS加密算法,在加密过程中,利用第一密钥和第二密钥对每一个明文数据块单独执行加密操作,得到密文数据分片和密文冗余数据块;在解密过程中,利用第一密钥和第二密钥对每一个密文数据分片和密文冗余数据块执行解密操作,得到解密后的数据分片和冗余数据块;
返回模块,用于将加密结果或者解密结果返回至应用程序或存储在受信任的存储介质中;所述加密结果包括所有明文数据块对应的多个密文数据分片和密文冗余数据块;所述解密结果包括多个明文数据块的组合后的原始数据;
所述硬件加速器包括数据处理单元:用于在加密过程中,对云阶虚拟化平台的原始数据进行分割,分割成多个明文数据块,或者在解密过程中,对多个明文数据块进行组合,获得原始数据。
10.根据权利要求9所述的基于云阶虚拟化平台的Camellia-XTS加解密系统,其特征在于,所述硬件加速器包括:
纠删码处理单元:用于在加密过程中,使用纠删码技术对明文数据块进行编码,生成多个明文数据分片和明文冗余数据块;在解密过程中,使用纠删码技术的解码函数,对解密后的数据分片和解密后的冗余数据块进行还原,确定明文数据块;
密钥获取单元:在加密过程中,获取第一密钥和第二密钥;在解密过程中,获取超过或者等于设定个数的第一密钥片段,以及超过或者等于设定个数的第二密钥片段,重构得到第一密钥和第二密钥;
扇区位置加密单元:用于在加密过程中,使用第二密钥,对每个明文数据分片和明文冗余数据块的扇区位置信息分别进行加密,并确定明文数据分片的扇区位置加密值和明文冗余数据块的扇区位置加密值;在解密过程中,使用第二密钥,对每个密文数据分片和密文冗余数据块的扇区位置信息分别进行加密,并确定每个密文数据分片和密文冗余数据块的扇区位置加密值;
第一操作单元:用于在加密过程中,对每个所述明文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文数据分片的加密中间值;对每个所述明文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个明文冗余数据块的加密中间值;在解密过程中,对每个密文数据分片和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文数据分片的解密中间值;对每个密文冗余数据块和其对应的扇区位置加密值,进行第一次按位异或操作,确定每个密文冗余数据块的解密中间值;
第二操作单元:用于在加密过程中,使用第一密钥,对每个所述明文数据分片的加密中间值和明文冗余数据块的加密中间值应用Camellia加密算法进行加密,得到数据分片第一密文和冗余数据块第一密文;在解密过程中,使用第一密钥,对密文数据分片的解密中间值和密文冗余数据块的解密中间值应用Camellia解密算法进行解密,得到第一解密数据分片和第一解密冗余数据块;
第三操作单元:用于在加密过程中,将每个所述数据分片第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文数据分片;将每个冗余数据块第一密文和其对应的扇区位置加密值,进行第二次按位异或操作,确定每一个密文冗余数据块;在解密过程中,对第一解密数据分片与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的数据分片;对第一解密冗余数据块与其对应的扇区位置加密值,进行第二次按位异或操作,确定解密后的冗余数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311196702.7A CN117251864A (zh) | 2023-09-15 | 2023-09-15 | 基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311196702.7A CN117251864A (zh) | 2023-09-15 | 2023-09-15 | 基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117251864A true CN117251864A (zh) | 2023-12-19 |
Family
ID=89127367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311196702.7A Pending CN117251864A (zh) | 2023-09-15 | 2023-09-15 | 基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251864A (zh) |
-
2023
- 2023-09-15 CN CN202311196702.7A patent/CN117251864A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330868B (zh) | 一种高速网络加密存贮密钥管理系统及方法 | |
US9811478B2 (en) | Self-encrypting flash drive | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US9240883B2 (en) | Multi-key cryptography for encrypting file system acceleration | |
US20160364583A1 (en) | Physically unclonable function assisted memory encryption device techniques | |
CN107908574B (zh) | 固态盘数据存储的安全保护方法 | |
CN103118089A (zh) | 一种基于多个云存储系统的安全存储方法及其系统 | |
CN101441601B (zh) | 一种硬盘ata指令的加密传输的方法及系统 | |
US20080016127A1 (en) | Utilizing software for backing up and recovering data | |
US11113408B2 (en) | Providing a secure object store using a hierarchical key system | |
US8200964B2 (en) | Method and apparatus for accessing an encrypted file system using non-local keys | |
CN105468940B (zh) | 软件保护方法及装置 | |
CN104618096A (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
Subedi et al. | RDS3: Ransomware defense strategy by using stealthily spare space | |
CN105678173A (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN107092836A (zh) | 一种基于系统加密的数据保护方法与装置 | |
CN103973698A (zh) | 一种云存储环境中的用户访问权限回收方法 | |
CN102480353A (zh) | 口令认证和密钥保护的方法 | |
CN111539042B (zh) | 一种基于核心数据文件可信存储的安全操作方法 | |
Anitha et al. | Secure virtual machine migration in virtualized environment | |
CN110855429A (zh) | 一种基于tpm的软件密钥保护方法 | |
CN103577771A (zh) | 一种基于磁盘加密的虚拟桌面数据防泄漏保护技术 | |
CN117251864A (zh) | 基于云阶虚拟化平台的Camellia-XTS加解密方法和系统 | |
US10992453B2 (en) | System architecture for encrypting external memory | |
TWI790745B (zh) | 數據的備援載體及包含該數據的備援載體的備援系統 |
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 |