CN116170185A - 数据的加密方法及装置、处理器和电子设备 - Google Patents
数据的加密方法及装置、处理器和电子设备 Download PDFInfo
- Publication number
- CN116170185A CN116170185A CN202211718750.3A CN202211718750A CN116170185A CN 116170185 A CN116170185 A CN 116170185A CN 202211718750 A CN202211718750 A CN 202211718750A CN 116170185 A CN116170185 A CN 116170185A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- original
- original data
- cloud
- 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
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据的加密方法及装置、处理器和电子设备。该方法包括:获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对原始密钥进行加密,得到加密后的原始密钥;将加密后的原始数据和加密后的原始密钥保存至云端中。通过本申请,解决了相关技术中对云端中的数据进行加密的效果较差的问题。
Description
技术领域
本申请涉及云计算技术领域,具体而言,涉及一种数据的加密方法及装置、处理器和电子设备。
背景技术
目前,确保云计算的安全性是云服务领域面临的最关键的挑战之一。在使用共享资源的云环境中处理数据,并提供可靠和安全的云服务时,需要一个健壮的加密方法,且不能消耗较多性能。因此,在云环境下,加密算法的运行速度关乎到用户体验,是至关重要的。
另外,云计算是一个位置无关的环境,它共享计算和资源以提供高性能服务。虽然云计算使生活变得更容易,但它也带来了新的安全挑战和网络攻击威胁,如利用身份验证等。随着资源和服务在网络之间和网络内部的开放环境中共享,安全问题在云计算中变得更加关键。此外,用户将数据远程存储在云存储服务上,其隐私性和安全性也至关重要。需要使用加密算法对用户的数据进行加密,以保护他们免受未经授权的访问,并保持数据的安全性和完整性。而且,在云计算的不同部署模型中使用了几种加密技术来保护数据:公共云、私有云和混合云,当云服务提供商为大量数据提供多个并发服务时,安全性就变得更加关键。因此,对传输的数据提供保障服务,特别是保护数据的完整性就成为了一项艰巨的任务。但是,相关技术中加密数据的效率较低,且仅对数据进行加密,难以保证数据的安全性,进而导致对数据进行加密的效果较差。
针对相关技术中对云端中的数据进行加密的效果较差的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种数据的加密方法及装置、处理器和电子设备,以解决相关技术中对云端中的数据进行加密的效果较差的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种数据的加密方法。该方法包括:获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对所述原始密钥进行加密,得到加密后的原始密钥;将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
进一步地,在通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据之前,所述方法还包括:确定所述原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法。
进一步地,改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法包括:将所述原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;将所述原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;对所述第一计算结果和所述第二计算结果进行异或操作,得到所述目标BlowFish算法。
进一步地,在将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中之后,所述方法还包括:接收目标对象发送的目标请求,其中,所述目标请求用于请求访问所述云端中加密后的原始数据;依据所述目标请求,获取所述原始数据对应的数字签名;基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果。
进一步地,在依据所述目标请求,获取所述加密后的原始密钥和所述原始数据对应的数字签名之前,所述方法还包括:获取所述原始数据;利用散列函数对所述原始数据进行处理,得到处理后的原始数据;将所述处理后的原始数据作为所述数字签名。
进一步地,基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果包括:基于所述原始数据对应的数字签名,确定所述目标对象的身份信息;依据所述目标对象的身份信息,判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限;若所述目标对象具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据成功;若所述目标对象不具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据失败。
进一步地,在判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限之后,所述方法还包括:若所述目标对象具有访问所述云端中加密后的原始数据的权限,则获取所述加密后的原始密钥,并对所述加密后的原始密钥进行解密,得到所述原始密钥;采用所述原始密钥对所述云端中加密后的原始数据进行解密,得到所述原始数据,并将所述原始数据返回至所述目标对象。
为了实现上述目的,根据本申请的另一方面,提供了一种数据的加密装置。该装置包括:第一获取单元,用于获取云端中待加密的原始数据;第一加密单元,用于通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;第二加密单元,用于对所述原始密钥进行加密,得到加密后的原始密钥;第一存储单元,用于将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
进一步地,所述装置还包括:第一确定单元,用于在通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据之前,确定所述原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;第一变更单元,用于改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法。
进一步地,所述第一变更单元包括:第一累加模块,用于将所述原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;第二累加模块,用于将所述原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;第一异或模块,用于对所述第一计算结果和所述第二计算结果进行异或操作,得到所述目标BlowFish算法。
进一步地,所述装置还包括:第一接收单元,用于在将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中之后,接收目标对象发送的目标请求,其中,所述目标请求用于请求访问所述云端中加密后的原始数据;第二获取单元,用于依据所述目标请求,获取所述原始数据对应的数字签名;第二确定单元,用于基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果。
进一步地,所述装置还包括:第三获取单元,用于在依据所述目标请求,获取所述加密后的原始密钥和所述原始数据对应的数字签名之前,获取所述原始数据;第一处理单元,用于利用散列函数对所述原始数据进行处理,得到处理后的原始数据;第三确定单元,用于将所述处理后的原始数据作为所述数字签名。
进一步地,所述第二确定单元包括:第二确定模块,用于基于所述原始数据对应的数字签名,确定所述目标对象的身份信息;第一判断模块,用于依据所述目标对象的身份信息,判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限;第三确定模块,用于若所述目标对象具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据成功;第四确定模块,用于若所述目标对象不具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据失败。
进一步地,所述装置还包括:第四获取单元,用于在判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限之后,若所述目标对象具有访问所述云端中加密后的原始数据的权限,则获取所述加密后的原始密钥,并对所述加密后的原始密钥进行解密,得到所述原始密钥;第二处理单元,用于采用所述原始密钥对所述云端中加密后的原始数据进行解密,得到所述原始数据,并将所述原始数据返回至所述目标对象。
为了实现上述目的,根据本申请的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的任意一项所述的数据的加密方法。
为了实现上述目的,根据本申请的另一方面,提供了一种电子设备,所述电子设备包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的任意一项所述的数据的加密方法。
通过本申请,采用以下步骤:获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对原始密钥进行加密,得到加密后的原始密钥;将加密后的原始数据和加密后的原始密钥保存至云端中,解决了相关技术中对云端中的数据进行加密的效果较差的问题。通过利用改进后的BlowFish算法和原始密钥对原始数据进行加密,可以提升对数据进行加密的效率,并且同时对原始密钥进行加密,并将加密后的原始数据和加密后的原始密钥保存至云端中,可以保证云计算的安全性,进而提升了对云端中的数据进行加密的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的数据的加密方法的流程图;
图2是本申请实施例中使用MD5函数生成Hash码作为数字签名的流程图;
图3是根据现有技术提供的一种标准BlowFish算法中F-Function模块计算过程的流程图;
图4是本申请实施例中改进后的BlowFish算法中F-Function模块计算过程的流程图;
图5是根据本申请实施例提供的可选的数据的加密方法的流程图;
图6是本申请实施例中50KB数据时算法执行时间的示意图;
图7是本申请实施例中50KB数据时算法吞吐量的示意图;
图8是本申请实施例中1024KB数据时算法执行时间的示意图;
图9是本申请实施例中1024KB数据时算法吞吐量的示意图;
图10是本申请实施例中50KB数据时算法内存消耗的示意图;
图11是根据本申请实施例提供的数据的加密装置的示意图;
图12是根据本申请实施例提供的电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
BlowFish算法:BlowFish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。
云计算:云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
椭圆曲线加密法:椭圆曲线加密法(ECC)是一种公钥加密技术,以椭圆曲线理论为基础,在创建密钥时可做到更快、更小,并且更有效。ECC利用椭圆曲线等式的性质来产生密钥,而不是采用传统的方法利用大质数的积来产生。
下面结合优选的实施步骤对本发明进行说明,图1是根据本申请实施例提供的数据的加密方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,获取云端中待加密的原始数据。
例如,获取原始数据,且该原始数据为云端中待加密的数据。
步骤S102,通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法。
例如,对原始的BlowFish算法进行改进,并利用改进后的BlowFish算法和用户密钥对原始数据进行加密。
步骤S103,对原始密钥进行加密,得到加密后的原始密钥。
例如,可以使用将使用椭圆曲线加密法(Elliptic Curve Cryptography,ECC),对用户密钥进行加密。另外,使用将使用椭圆曲线加密法(Elliptic Curve Cryptography,ECC),对用户密钥进行加密的步骤是异步进行的。
步骤S104,将加密后的原始数据和加密后的原始密钥保存至云端中。
例如,到加密后的密钥以及加密后的数据之后,将加密后的密钥及加密后的数据存储在云端中。
通过上述的步骤S101至S104,通过利用改进后的BlowFish算法和原始密钥对原始数据进行加密,可以提升对数据进行加密的效率,并且同时对原始密钥进行加密,并将加密后的原始数据和加密后的原始密钥保存至云端中,可以保证云计算的安全性,进而提升了对云端中的数据进行加密的效果。
为了快速准确的得到数字签名,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤得到数字签名:获取原始数据;利用散列函数对原始数据进行处理,得到处理后的原始数据;将处理后的原始数据作为数字签名。
例如,图2是本申请实施例中使用MD5函数生成Hash码作为数字签名的流程图,如图2所示,使用MD5函数生成原始数据的Hash码,作为用户数据传输的数字签名,用于验证数据的完整性,并且在后续所有信息交换过程都使用数字签名。
而且,由于初始数字签名模型容易受到网络攻击(即攻击者可以通过伪造数字签名验证访问数据),因此,首先对原始数据进行MD5操作得到Hash码,然后编码后的数据当做数字签名。且如果攻击者创建的假签名与Hash的结果不匹配,将无法访问数据。
通过上述的方案,使用该数字签名可以有效保护数据传输和访问的安全。
为了快速准确的得到目标BlowFish算法,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤得到目标BlowFish算法:确定原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;改变原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到目标BlowFish算法。
例如,可以对原始的BlowFish算法中的四个计算模块的计算方式进行改变,然后得到改进后的BlowFish算法。
综上所述,通过改变原始BlowFish算法中的计算模块可以快速准确的得到改进后的BlowFish算法。
为了快速准确的得到目标BlowFish算法,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤得到目标BlowFish算法:将原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;将原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;对第一计算结果和第二计算结果进行异或操作,得到目标BlowFish算法。
例如,本申请实施例提供的方法旨在提出一种低执行时间、高吞吐量的安全加密算法,并在数据加密的核心部分采用改进的BlowFish算法。该算法使用32到448位不等的可变密钥长度,并使用多个子密钥。在对数据进行加密和解密之前,可以预先计算子密钥,使得该算法的速度比其他算法快得多,所需内存也更少。BlowFish算法使用4个256位的S-BOX(计算模块),总共包含1024个32位实体。第一个32位的第一个字节将用于在第一个S-BOX中查找实体,第二个字节用于在第二个S-BOX中查找实体,其他所有实体都是如此。解密过程为反向加密操作,将密文作为输入,只不过子密钥将以相反的方式使用。
BlowFish算法的F函数(BlowFish算法中的一种函数)是加密过程中最耗时也是最核心的部分,因为在BlowFish算法的所有操作过程中,F函数以模块化的格式进行主要计算,包括加法器和反转。在本申请实施例提供的方法中,可以通过改进F函数的模块来减少BlowFish的执行时间。而且,图3是根据现有技术提供的一种标准BlowFish算法中F-Function模块计算过程的流程图,故图3展示了标准BlowFish算法中F-Function模块(F函数,BlowFish算法中的一种函数)的整体流程。
S-box为替换盒,接收n个bits的输入,然后将其转换成m个bits输出,n和m可以不等。F函数的输入是32bits,首先将32bits分成4份,也就是4个8bits。S-box的作用就是将8bits转换成为32bits。为异或(XOR)操作,/>为累加后mod 232操作。
改进算法,降低执行时间的复杂度。式(1)计算的是标准BlowFish算法的F函数值。
F(XL)=((((S1,a+S2,b)mod 232)XOR S3,c)+S4,d)mod 232 (1)
在不降低BlowFish算法安全性的情况下,将F函数模块改为式(2)。
F′(XL)=((S1,a+S2,b)mod 232)XOR((S3,c+S4,d)mod 232) (2)
改进后,可以并行地执行((S1,a+S2,b)mod 232)和((S3,c+S4,d)mod 232)操作。由于改进模块后把两个操作所需的时间减少到一个操作,这种并行操作利用多线程,将减少算法总体的执行时间。由于BlowFish的F-Function需要进行16轮循环操作,因此改进后会将每次加密和解密的执行时间提高16倍。此外,由于BlowFish的安全性与它的密钥有关,因此改进后的模块不会对算法的安全性产生负面影响。而且,图4是本申请实施例中改进后的BlowFish算法中F-Function模块计算过程的流程图,故图4显示了改进后的F-Function。
基于改进F函数的BlowFish算法由16轮的Feistel网络(BlowFish算法中的网络)组成,输入是一个64位的数据元素X。
首先,将64位分成两个左(L)和右(R)32位。下一步是对第一个32位块(L)进行异或运算,在第三步中,计算出的32位数据将被传输到F函数中,与另一个32位块(R)异或,然后L和R交换,在接下来的BlowFish回合中使用。
解密与加密是相反操作。加密的时候是从1开始遍历16轮然后依次对XL、XR进行操作。解密时循环从第16轮开始然后迭代16轮,对左右两侧做操作。最后16轮循环完毕,得到原始数据。
通过上述的方案,可以快速准确的得到改进后的BlowFish算法,并利用改进后的BlowFish算法对数据进行加密,可以提升数据的加密效率。
为了快速准确的确定目标对象访问云端中加密后的原始数据的访问结果,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤确定目标对象访问云端中加密后的原始数据的访问结果:接收目标对象发送的目标请求,其中,目标请求用于请求访问云端中加密后的原始数据;依据目标请求,获取原始数据对应的数字签名;基于原始数据对应的数字签名,确定目标对象访问云端中加密后的原始数据的访问结果。
例如,先接收到用户发送的访问云端中加密后的数据的请求,然后再根据该请求,获取该数据对应的数字签名,再利用获取到的数字签名得到用户访问加密数据的结果。也即,通过验证数字签名,可以确定该用户是否可以访问云端中的加密数据。
综上所述,通过验证数字签名,可以保证云端中加密数据的安全性。
为了快速准确的确定目标对象访问云端中加密后的原始数据的访问结果,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤确定目标对象访问云端中加密后的原始数据的访问结果:基于原始数据对应的数字签名,确定目标对象的身份信息;依据目标对象的身份信息,判断目标对象是否具有访问云端中加密后的原始数据的权限;若目标对象具有访问云端中加密后的原始数据的权限,则确定目标对象访问云端中加密后的原始数据成功;若目标对象不具有访问云端中加密后的原始数据的权限,则确定目标对象访问云端中加密后的原始数据失败。
例如,利用获取到的数字签名,可以得到用户的身份,并根据用户的身份可以确定该用户是否具有访问云端中加密数据的权限,如果该用户具有访问云端中加密数据的权限,则用户可以成功访问云端中的加密数据;如果该用户不具有访问云端中加密数据的权限,则用户在访问云端中的加密数据时,会显示失败,并提示错误信息。
通过上述的方案,根据数字签名,可以快速准确的确定用户是否具有访问云端中的加密数据的权限。
为了快速准确的对云端中加密后的原始数据进行解密,在本申请实施例提供的数据的加密方法中,还可以通过以下步骤对云端中加密后的原始数据进行解密:若目标对象具有访问云端中加密后的原始数据的权限,则获取加密后的原始密钥,并对加密后的原始密钥进行解密,得到原始密钥;采用原始密钥对云端中加密后的原始数据进行解密,得到原始数据,并将原始数据返回至目标对象。
例如,可以使用椭圆曲线加密算法对原始密钥进行加密,且椭圆曲线加密算法(Elliptic Curve Cryptography,ECC),是基于椭圆曲线数学理论实现的一种非对称加密算法。相比RSA(一种加密算法),ECC优势是可以使用更短的密钥,来实现与RSA相当或更高的安全性,RSA加密算法也是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。并且,160位ECC加密安全性相当于1024位的RSA加密,210位ECC加密安全性相当于2048位RSA加密。
基于对称密钥的算法,如BlowFish,需要传输用户的密钥,存在一定的风险。因此,本申请实施例提供的方法可以使用一种基于椭圆曲线的非对称加密算法来保护必要的安全。在这种方法中,使用一个164位的密钥来提供比其他方法更高的性能。基于椭圆曲线的密码算法具有较高的安全性,对内存和带宽的要求较低,适合在云平台环境对密钥进行加密。椭圆曲线基本公式为式(3):
y2=x3+ax+b (3)
其中a为椭圆曲线切线与x轴的夹角,b表示一个常数,且为了让椭圆曲线没有奇异点,即处处光滑可导,需要满足其判别式不为零,即Δ=4a3+27b2≠0。随机取椭圆曲线上两点P和Q,经过这两点的直线与椭圆曲线相交于第三点R,满足:P+Q+R=0。
在椭圆曲线加密算法中,将椭圆曲线上的两个不同的点相加需要进行6次加法、1次平方、2次乘法和1次逆运算。此外,椭圆曲线上的点翻番需要进行8次加法、2次平方、2次乘法和1次逆运算。
使用椭圆曲线的加密算法,首先在属于域的范围内选择一个随机的k数作为私钥。P是椭圆曲线上的一点,计算公钥Q=k·P。因此从P点和Q点想计算出私钥k具有很大的计算复杂度,难以破解,这是椭圆曲线密码体制的主要优点之一。
例如,在使用椭圆曲线加密算法对原始密钥进行加密之后,再对加密后的原始密钥进行解密,然后采用解密后的原始密钥对云端中加密后的原始数据进行解密,最后可以将解密后的原始数据发送给用户。
通过上述的方案,可以快速准确的将解密后的原始数据发送给用户。
例如,图5是根据本申请实施例提供的可选的数据的加密方法的流程图,如图5所示,可选的数据的加密方法包括如下步骤:
步骤1:在加密之前,会对原始数据使用MD5函数,生成Hash码,用于提高数字签名和数据完整性验证的效率。
步骤2:将生成的Hash码作为用户数据传输的数字签名,用于验证数据的完整性,并且在后续的信息交换过程中,都需要使用到此数字签名。
步骤3:将原始数据通过改进F函数模块的对称密码算法(BlowFish)加密。
步骤4:改进BlowFish加密算法的密钥,通过椭圆曲线加密算法进行加密。
步骤5:得到加密后的数据和加密后的密钥。
步骤6:接收方可以使用反向过程和私钥对接收到的数据解密。数据通过BlowFish的密钥进行解密,验证过程使用数字签名。
例如,本申请实施例提供的方法采用对称和非对称加密算法,并结合使用MD5哈希函数改进数字签名,以确保数据的完整性。并且考虑算法的加密速度,以及其与加密时间之间的平衡。通常情况下,非对称加密算法的密钥比对称加密算法的密钥需要更多的生成时间,生成速度较慢。从文献调查来看,BlowFish算法是比较适合云计算数据安全的算法。因此,在提出的方法中使用改进的对称密钥生成算法BlowFish来加密数据。
首先,使用MD5函数生成原始数据的哈希编码,作为用户数据传输的数字签名,用于验证数据的完整性,并且在后续的信息交换过程中,都需要使用到此数字签名。
第二步,使用本申请实施例提供的方法改进的BlowFish算法,结合用户密钥和数字签名,对原始数据进行加密。在云平台环境下,BlowFish算法是一种加密和解密时间较短的对称算法。
第三步,将使用椭圆曲线加密法(Elliptic Curve Cryptography,ECC),对用户密钥进行加密,确保密钥的安全,这一步是异步进行的。在云环境的数据传输的过程中,密钥需要具有较高的安全性和较短长度来保证数据传输的效率,所以ECC使用较短长度密钥加密的执行时间较少。
最后,得到加密后的密钥以及加密后的数据。
另外,为了验证本申请实施例提供的方法的有效性,通过与目前主流的加密算法AES、3DES、DES和RSA算法比较,对比算法执行的不同参数,如内存使用、吞吐量和执行时间。首先使用较小的数据量(50KB)评估加密算法,分析数据较小时算法的性能,然后再使用大数据量(1024KB)评估加密算法。
(1)吞吐量和执行时间
首先,基于50KB大小的数据进行评估。且图6是本申请实施例中50KB数据时算法执行时间的示意图,图6显示了与RSA、AES、DES和3DES算法在50KB大小的数据下,算法执行时间的对比。
从算法执行时间结果可以看出,所提出的技术混合加密算法的执行时间减少了800、550、300和400毫秒。因此,本申请实施例提供的方法使用改进了F函数模块的BlowFish算法,加密过程所需的时间更短。此外,本申请实施例提供的方法使用ECC只用于对密钥进行加密,对算法整体的执行时间没有影响。
而且,图7是本申请实施例中50KB数据时算法吞吐量的示意图,图7显示了在50KB数据下,不同算法的吞吐量。
实验结果表明,由于BlowFish算法在云环境下,运行效率较高,所提出方法的算法在云环境下的吞吐量,远高于其他算法。
因为数据量的大小会影响到算法的执行时间,所以还需要对比数据量大时,算法的运行效率。图8是本申请实施例中1024KB数据时算法执行时间的示意图,图8显示了在1024KB大小的数据下,评估所提出方法和对比其他算法的执行效率。
如图8所示,在1024KB大小的数据下,所提出方法比其他算法的执行时间更少。该算法与其他对称加密算法(DES、3DES和AES)相比减少了230、230、130毫秒,与非对称加密算法(RSA)相比减少了731毫秒。这表明所提出方法的运行效率更高。
另外,图9是本申请实施例中1024KB数据时算法吞吐量的示意图,图9显示了1024KB数据下所提出算法和其他算法的吞吐量对比。
且如图9所示,所提出的方法对比其他算法,在1024KB数据下,每秒的吞吐量更高。所提出方法的吞吐量平均比其他对称加密算法(AES、3DES和DES)高16%,比非对称加密算法(RSA)高50%。
此外,在所提出的方法中,数据加密和密钥加密是分离的,因此并行使用BlowFish算法和椭圆曲线加密密钥,并不影响算法整体的执行时间和吞吐量。由此可以看出,当原始数据的大小更大时,采用改进的BlowFish算法加密,速度更快,性能更好。由于采用ECC同时对密钥进行了加密,所以所提出方法的安全性更高。
(2)内存消耗
内存消耗是评估加密算法的重要指标之一。图10是本申请实施例中50KB数据时算法内存消耗的示意图,且图10显示了所提出方法和其他算法所使用的内存消耗对比。
从实验结果可以看出,与其他算法相比,所提出的方法占用的内存更小。影响内存消耗的主要因素是算法操作的数量和密钥的大小,因此使用50KB大小的数据就可以测试算法的内存消耗。由于使用了改进的BlowFish算法作为核心的加密算法,使得内存占用较低。
因此,本申请实施例提供的方法提出了一种改进的加密算法,可以提供高效、高性能、安全加密算法,并应用于云环境下。由于所提出算法那的核心基于改进的BlowFish加密算法,减少了加密所需的时间,提升了加密运行效率以及吞吐量。此外,采用ECC对数据加密所使用的密钥进行加密,减少了对称密钥交换算法的安全性问题。
除上述外,提出的算法还使用基于MD5的数字签名来提供数据完整性,验证用户与云平台之间的信息通讯。
实验评估结果显示,与AES、DES、3DES和RSA算法相比,所提出的算法在吞吐量、内存使用和执行时间方面,都优于其他加密算法。
综上,本申请实施例提供的数据的加密方法,通过获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对原始密钥进行加密,得到加密后的原始密钥;将加密后的原始数据和加密后的原始密钥保存至云端中,解决了相关技术中对云端中的数据进行加密的效果较差的问题。通过利用改进后的BlowFish算法和原始密钥对原始数据进行加密,可以提升对数据进行加密的效率,并且同时对原始密钥进行加密,并将加密后的原始数据和加密后的原始密钥保存至云端中,可以保证云计算的安全性,进而提升了对云端中的数据进行加密的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种数据的加密装置,需要说明的是,本申请实施例的数据的加密装置可以用于执行本申请实施例所提供的用于数据的加密方法。以下对本申请实施例提供的数据的加密装置进行介绍。
图11是根据本申请实施例的数据的加密装置的示意图。如图11所示,该装置包括:第一获取单元1101、第一加密单元1102、第二加密单元1103和第一存储单元1104。
具体地,第一获取单元1101,用于获取云端中待加密的原始数据;
第一加密单元1102,用于通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法;
第二加密单元1103,用于对原始密钥进行加密,得到加密后的原始密钥;
第一存储单元1104,用于将加密后的原始数据和加密后的原始密钥保存至云端中。
综上,本申请实施例提供的数据的加密装置,通过第一获取单元1101获取云端中待加密的原始数据;第一加密单元1102通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据,其中,目标BlowFish算法是对原始BlowFish算法进行改进后的算法;第二加密单元1103对原始密钥进行加密,得到加密后的原始密钥;第一存储单元1104将加密后的原始数据和加密后的原始密钥保存至云端中,解决了相关技术中对云端中的数据进行加密的效果较差的问题。通过利用改进后的BlowFish算法和原始密钥对原始数据进行加密,可以提升对数据进行加密的效率,并且同时对原始密钥进行加密,并将加密后的原始数据和加密后的原始密钥保存至云端中,可以保证云计算的安全性,进而提升了对云端中的数据进行加密的效果。
可选地,在本申请实施例提供的数据的加密装置中,该装置还包括:第一确定单元,用于在通过目标BlowFish算法和原始密钥对原始数据进行加密,得到加密后的原始数据之前,确定原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;第一变更单元,用于改变原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到目标BlowFish算法。
可选地,在本申请实施例提供的数据的加密装置中,第一变更单元包括:第一累加模块,用于将原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;第二累加模块,用于将原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;第一异或模块,用于对第一计算结果和第二计算结果进行异或操作,得到目标BlowFish算法。
可选地,在本申请实施例提供的数据的加密装置中,该装置还包括:第一接收单元,用于在将加密后的原始数据和加密后的原始密钥保存至云端中之后,接收目标对象发送的目标请求,其中,目标请求用于请求访问云端中加密后的原始数据;第二获取单元,用于依据目标请求,获取原始数据对应的数字签名;第二确定单元,用于基于原始数据对应的数字签名,确定目标对象访问云端中加密后的原始数据的访问结果。
可选地,在本申请实施例提供的数据的加密装置中,该装置还包括:第三获取单元,用于在依据目标请求,获取加密后的原始密钥和原始数据对应的数字签名之前,获取原始数据;第一处理单元,用于利用散列函数对原始数据进行处理,得到处理后的原始数据;第三确定单元,用于将处理后的原始数据作为数字签名。
可选地,在本申请实施例提供的数据的加密装置中,第二确定单元包括:第二确定模块,用于基于原始数据对应的数字签名,确定目标对象的身份信息;第一判断模块,用于依据目标对象的身份信息,判断目标对象是否具有访问云端中加密后的原始数据的权限;第三确定模块,用于若目标对象具有访问云端中加密后的原始数据的权限,则确定目标对象访问云端中加密后的原始数据成功;第四确定模块,用于若目标对象不具有访问云端中加密后的原始数据的权限,则确定目标对象访问云端中加密后的原始数据失败。
可选地,在本申请实施例提供的数据的加密装置中,该装置还包括:第四获取单元,用于在判断目标对象是否具有访问云端中加密后的原始数据的权限之后,若目标对象具有访问云端中加密后的原始数据的权限,则获取加密后的原始密钥,并对加密后的原始密钥进行解密,得到原始密钥;第二处理单元,用于采用原始密钥对云端中加密后的原始数据进行解密,得到原始数据,并将原始数据返回至目标对象。
数据的加密装置包括处理器和存储器,上述第一获取单元1101、第一加密单元1102、第二加密单元1103和第一存储单元1104等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提升了对云端中的数据进行加密的效果。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述数据的加密方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据的加密方法。
如图12所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对所述原始密钥进行加密,得到加密后的原始密钥;将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
处理器执行程序时还实现以下步骤:在通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据之前,所述方法还包括:确定所述原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法。
处理器执行程序时还实现以下步骤:改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法包括:将所述原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;将所述原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;对所述第一计算结果和所述第二计算结果进行异或操作,得到所述目标BlowFish算法。
处理器执行程序时还实现以下步骤:在将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中之后,所述方法还包括:接收目标对象发送的目标请求,其中,所述目标请求用于请求访问所述云端中加密后的原始数据;依据所述目标请求,获取所述原始数据对应的数字签名;基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果。
处理器执行程序时还实现以下步骤:在依据所述目标请求,获取所述加密后的原始密钥和所述原始数据对应的数字签名之前,所述方法还包括:获取所述原始数据;利用散列函数对所述原始数据进行处理,得到处理后的原始数据;将所述处理后的原始数据作为所述数字签名。
处理器执行程序时还实现以下步骤:基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果包括:基于所述原始数据对应的数字签名,确定所述目标对象的身份信息;依据所述目标对象的身份信息,判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限;若所述目标对象具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据成功;若所述目标对象不具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据失败。
处理器执行程序时还实现以下步骤:在判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限之后,所述方法还包括:若所述目标对象具有访问所述云端中加密后的原始数据的权限,则获取所述加密后的原始密钥,并对所述加密后的原始密钥进行解密,得到所述原始密钥;采用所述原始密钥对所述云端中加密后的原始数据进行解密,得到所述原始数据,并将所述原始数据返回至所述目标对象。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取云端中待加密的原始数据;通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;对所述原始密钥进行加密,得到加密后的原始密钥;将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据之前,所述方法还包括:确定所述原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法包括:将所述原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;将所述原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;对所述第一计算结果和所述第二计算结果进行异或操作,得到所述目标BlowFish算法。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中之后,所述方法还包括:接收目标对象发送的目标请求,其中,所述目标请求用于请求访问所述云端中加密后的原始数据;依据所述目标请求,获取所述原始数据对应的数字签名;基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在依据所述目标请求,获取所述加密后的原始密钥和所述原始数据对应的数字签名之前,所述方法还包括:获取所述原始数据;利用散列函数对所述原始数据进行处理,得到处理后的原始数据;将所述处理后的原始数据作为所述数字签名。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果包括:基于所述原始数据对应的数字签名,确定所述目标对象的身份信息;依据所述目标对象的身份信息,判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限;若所述目标对象具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据成功;若所述目标对象不具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据失败。
当在数据处理设备上执行时,还适于执行初始化有如下方法步骤的程序:在判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限之后,所述方法还包括:若所述目标对象具有访问所述云端中加密后的原始数据的权限,则获取所述加密后的原始密钥,并对所述加密后的原始密钥进行解密,得到所述原始密钥;采用所述原始密钥对所述云端中加密后的原始数据进行解密,得到所述原始数据,并将所述原始数据返回至所述目标对象。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据的加密方法,其特征在于,包括:
获取云端中待加密的原始数据;
通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;
对所述原始密钥进行加密,得到加密后的原始密钥;
将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
2.根据权利要求1所述的方法,其特征在于,在通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据之前,所述方法还包括:
确定所述原始BlowFish算法中的第一计算模块、第二计算模块、第三计算模块和第四计算模块;
改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法。
3.根据权利要求2所述的方法,其特征在于,改变所述原始BlowFish算法中第一计算模块、第二计算模块、第三计算模块和第四计算模块的计算方式,得到所述目标BlowFish算法包括:
将所述原始BlowFish算法中的第一计算模块和第二计算模块进行累加操作,得到第一计算结果;
将所述原始BlowFish算法中的第三计算模块和第四计算模块进行累加操作,得到第二计算结果;
对所述第一计算结果和所述第二计算结果进行异或操作,得到所述目标BlowFish算法。
4.根据权利要求1所述的方法,其特征在于,在将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中之后,所述方法还包括:
接收目标对象发送的目标请求,其中,所述目标请求用于请求访问所述云端中加密后的原始数据;
依据所述目标请求,获取所述原始数据对应的数字签名;
基于所述原始数据对应的数字签名,确定所述目标对象访问所述云端中加密后的原始数据的访问结果。
5.根据权利要求4所述的方法,其特征在于,在依据所述目标请求,获取所述加密后的原始密钥和所述原始数据对应的数字签名之前,所述方法还包括:
获取所述原始数据;
利用散列函数对所述原始数据进行处理,得到处理后的原始数据;
将所述处理后的原始数据作为所述数字签名。
6.根据权利要求4所述的方法,其特征在于,基于所述原始数据对应的数字签名,
确定所述目标对象访问所述云端中加密后的原始数据的访问结果包括:
基于所述原始数据对应的数字签名,确定所述目标对象的身份信息;
依据所述目标对象的身份信息,判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限;
若所述目标对象具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据成功;
若所述目标对象不具有访问所述云端中加密后的原始数据的权限,则确定所述目标对象访问所述云端中加密后的原始数据失败。
7.根据权利要求6所述的方法,其特征在于,在判断所述目标对象是否具有访问所述云端中加密后的原始数据的权限之后,所述方法还包括:
若所述目标对象具有访问所述云端中加密后的原始数据的权限,则获取所述加密后的原始密钥,并对所述加密后的原始密钥进行解密,得到所述原始密钥;
采用所述原始密钥对所述云端中加密后的原始数据进行解密,得到所述原始数据,并将所述原始数据返回至所述目标对象。
8.一种数据的加密装置,其特征在于,包括:
第一获取单元,用于获取云端中待加密的原始数据;
第一加密单元,用于通过目标BlowFish算法和原始密钥对所述原始数据进行加密,得到加密后的原始数据,其中,所述目标BlowFish算法是对原始BlowFish算法进行改进后的算法;
第二加密单元,用于对所述原始密钥进行加密,得到加密后的原始密钥;
第一存储单元,用于将所述加密后的原始数据和所述加密后的原始密钥保存至所述云端中。
9.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的数据的加密方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的数据的加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718750.3A CN116170185A (zh) | 2022-12-29 | 2022-12-29 | 数据的加密方法及装置、处理器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211718750.3A CN116170185A (zh) | 2022-12-29 | 2022-12-29 | 数据的加密方法及装置、处理器和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116170185A true CN116170185A (zh) | 2023-05-26 |
Family
ID=86415702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211718750.3A Pending CN116170185A (zh) | 2022-12-29 | 2022-12-29 | 数据的加密方法及装置、处理器和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170185A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134904A (zh) * | 2023-09-01 | 2023-11-28 | 嘉兴嘉赛信息技术有限公司 | 一种基于身份识别与动态加解密通信的方法 |
-
2022
- 2022-12-29 CN CN202211718750.3A patent/CN116170185A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134904A (zh) * | 2023-09-01 | 2023-11-28 | 嘉兴嘉赛信息技术有限公司 | 一种基于身份识别与动态加解密通信的方法 |
CN117134904B (zh) * | 2023-09-01 | 2024-06-28 | 嘉兴嘉赛信息技术有限公司 | 一种基于身份识别与动态加解密通信的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3940988B1 (en) | Multi-party threshold authenticated encryption | |
Abroshan | A hybrid encryption solution to improve cloud computing security using symmetric and asymmetric cryptography algorithms | |
CN109728914B (zh) | 数字签名验证方法、系统、装置及计算机可读存储介质 | |
US11463242B2 (en) | Padding oracle elimination in RSA encryption | |
Orobosade et al. | Cloud application security using hybrid encryption | |
JP2023531241A (ja) | ポスト量子暗号アルゴリズムのtls統合 | |
Patel et al. | Integrated ECC and Blowfish for smartphone security | |
Panda et al. | Plain text encryption using AES, DES and SALSA20 by java based bouncy castle API on Windows and Linux | |
US20230299942A1 (en) | System and method of multi-party computation based multi-factor authentication | |
Mohammad et al. | A comparative study between modern encryption algorithms based on cloud computing environment | |
CN116170185A (zh) | 数据的加密方法及装置、处理器和电子设备 | |
Fanfara et al. | Usage of asymmetric encryption algorithms to enhance the security of sensitive data in secure communication | |
CN115336224A (zh) | 自适应抗攻击分布式对称加密 | |
Grover et al. | A framework for cloud data security | |
Tyagi et al. | Analysis and Implementation of AES and RSA for cloud | |
Shirole et al. | Review paper on data security in cloud computing environment | |
Kumar et al. | A novel framework for secure file transmission using modified AES and MD5 algorithms | |
Rajalakshmi et al. | Comparative Study of Cryptographic Algorithms in cloud storage data security | |
Balasubramaniam et al. | A survey on data encryption tecniques in cloud computing | |
Pilla et al. | A new authentication protocol for hardware-based authentication systems in an iot environment | |
Olaleye et al. | Secure use of cloud storage of data on smartphones using atomic AES on ARM architectures | |
Chelladurai et al. | Intelligent Digital Envelope for Distributed Cloud-Based Big Data Security. | |
Njuki et al. | Enhancing user data and vm security using the efficient hybrid of encrypting techniques | |
Ul Haq et al. | A novel data classification-based scheme for cloud data security using various cryptographic algorithms | |
CN109617876A (zh) | 基于Http协议的数据加密、解密方法及系统 |
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 |