生物特征启发的同态加密算法用于安全云计算
Abstract
Cloud computing widely uses resource sharing and computing framework over the Internet. Data security is the key objective while sharing data over untrusted environment. This paper presents a novel biometric inspired homomorphic encryption algorithm (BIHEA) for secured data/files transmission over hybrid cloud environment. The proposed algorithm encrypts the user data at run-time by providing the authorized user biometric-feature-based one time password. Every time a user is authenticated by a totally different one time password. The BIHEA provides a good solution to commonly identified theft seen in cloud environment like phishing, shoulder surfing.
Keywords : One Time Password · Homomorphic Encryption · Biometric · Cloud Computing
1 引言
云计算最近在组织和企业界引起了广泛关注。云计算提供了一个平台,能够高效地通过互联网共享资源 [1]。目前已经开发出多种云模型,我们可以将这些模型描述为“Z即服务”,其中Z可以代表硬件基础设施、应用软件或存储基础设施等。亚马逊、微软Azure和Salesforce.com是成功实施的云计算平台,其可用资源以低成本被广泛共享。云计算的实施在实时面临许多挑战。众所周知,任何企业组织最关心的是其信息和数据的安全与机密性。
在云计算快速发展的时代,组织将数据存放在云上,以获得云所提供的服务灵活性、多租户和可配置计算资源等优势,从而以最小的 effort、时间和成本扩展其业务。然而,隐私和数据安全仍然是组织在采用云时的主要关注点。由于数据掌握在第三方手中,研究人员提出了许多加密算法来保护存储数据的安全。Uma Somani 等人 [1] 实现了RSA加密与数字签名相结合的概念,从而增强了云计算中云的数据安全。Yu 等人 [2] 描述了一种密码学方法,可提高云服务器上优先级信息的安全性和机密性。Tirthani 和 Ganesan [3] 提出了使用椭圆曲线密码学的Diffie-Hellman 密钥交换算法,以实现加密数据的高效传输。本文中,作者使用了传统的单层认证,容易受到安全攻击。Arasu 等人 [4] 提出了一种将消息、哈希函数和密钥连接起来的方法,有助于确保认证消息传递。该方法实现了单层认证,因此不适合云环境。Rivest 等人 [5] 提出了同态加密的概念,使得可以在不使用密钥的情况下对加密数据进行计算。因此,它支持在不解密数据的情况下对加密数据执行操作。在同态加密出现之前,无法对加密数据执行操作,因此我们必须先在云服务器上解密数据,然后才能对其进行任何计算。因此,同态加密允许云服务提供商在不解密的情况下对加密数据执行操作。
本文中,我们针对这一开放性问题提出了一种双层生物启发式同态加密算法,可在不可靠的云计算环境中提供两层安全数据访问方案。我们提出的系统基于以下认知:在实时场景中,所有信息/消息均可通过定义密钥组件进行加密。相同的密钥在用户之间共享,仅当密钥与生成的密钥匹配时,用户才能解密加密数据。密钥是通过基于生物特征的算法生成的,在实时场景中创建多个依赖于用户生物特征的密钥。其中某一密钥会在某一时刻作为一次性密码传递给另一用户,用于身份验证以及解密云服务器上存储的数据 [6–10]。这种设计还实现了数据在云端访问时的机密性、安全性和授权管理。只有数据所有者才能授予数据访问权限,若无相应授权,用户将无法访问数据。
本文的其余部分组织如下。第2节讨论同态加密算法。第3节介绍所提出的BIHE算法。在第4节中,我们从安全特性和时间复杂度方面分析了所提出的系统。我们在第5节总结本文。
2 同态加密算法
同态加密是一种密码学技术,能够使多方在无需知晓明文的情况下协同合作生成密文。因此,同态加密可在密文上直接执行代数运算,而无需将其解密为明文。同态加密技术可表述如下。
考虑 $E(x)$ 为用于执行加密的函数,其中 $m_1$ 和 $m_2$ 为两个明文。$C_1$ 和 $C_2$ 为如公式1 和 2 所示的密文。
$$
c_1 = E(m_1) \tag{1}
$$
$$
c_2 = E(m_2) \tag{2}
$$
$$
c_1 \cdot c_2 = E(m_1 + m_2) \tag{3}
$$
公式 3 对 $C_1$ 和 $C_2$ 执行代数运算 3。此处 $+$ 也是应用于消息上的数学运算。本文选择同态加密作为加密方法,用于在云上加密用户数据。
3 生物特征启发式同态加密算法
本节介绍了一种BIHEA算法。BIHEA允许使用从注册用户的虹膜生成的一次性密码(OTP)作为密钥,在云上对数据进行加密,该密钥仅用于一次过程中的密文解密。
图1 描述了BIHEA算法的系统架构。第一步,将云用户的扫描视网膜图像作为BIHEA的输入。在所提出的算法中选择虹膜的原因是,特定云用户的视网膜血管具有独特特征,与其他用户相匹配的可能性最小。
随后,输入图像被调整为 505 × 598 大小,以确保数据池的选择足够强大,能够生成高度随机的数据。我们可以使用RGB图像或灰度图像,本研究中采用RGB图像。输入的RGB图像被转换为灰度图像。灰度图像用于提取视网膜图像的边缘(视网膜血管)。视网膜血管常用于身份认证。中央凹在视网膜图像中的位置是固定的,而视盘则可能发生移动。所有视网膜血管均与视盘相连。特征点是从视网膜图像的边缘提取过程中获取的。因此,同一人的视网膜图像所提取出的特征点也可能不同。这些不同的特征点可用于生成一次性密码。在本文提出的方法中,利用视网膜特征点生成可变长度的随机数。
这种可变长度的随机数被用作一次性密码。一次性密码仅在单个会话中有效。每次用户想要进入系统时,都会生成一个新的一次性密码。
数据的加密和解密均基于同态加密方法。BIHEA算法描述如下:
步骤1:生成一次性密码
在此过程中,我们以注册用户的扫描图像作为输入的第一部分。视网膜是一种强大的生物特征因素,可用于生成一次性密码(OTP)。然后根据需求调整图像大小,在本研究中,我们将图像调整为 505 × 598。由于我们采用的是RGB图像,因此先将其转换为灰度图像。转换为灰度图像的原因是RGB图像具有三个通道,而灰度图像仅有一个通道,这有助于简化欧几里得距离的计算。
下一步是提取灰度视网膜图像的边缘。此时,图像中每个点的强度值为0或1:具有边缘(血管)经过的点其强度值为1,其余图像点的强度值为0。我们将强度值(I)为1的点(x, y)保留用于后续处理。接着计算从(0, 0)到每一个点的距离。我们使用“Sobel”方法来提取视网膜图像的边缘。将这些距离值中能被7整除的(即D%7 == 0)存储于矩阵中,此步骤旨在增加系统安全性,使黑客无法知晓系统中具体使用了哪些数字来生成OTP。矩阵中可能存在重复数值,因此通过重复数字检查过程对D矩阵中的重复数值进行过滤,并将结果存入最终矩阵M。
随后从范围 4 ≤ N ≤ 7 中随机选择一个随机数(N)。再从最终矩阵M中随机选取N个数字,通过随机选取N以生成可变长度数字。最后对这N个数字进行排列,生成称为OTP的可变长度随机数。
步骤2:使用一次性密码作为密钥的基于生物特征启发的同态加密算法加密技术
输入云用户的数据,并将数据转换为其对应的ASCII值。在转换为ASCII值后,我们必须使两个用户的数据长度相等,以便对其进行数学运算。如果长度不同,则首先选择长度较短的数据,并在其末尾添加空格进行补齐。然后,将两个云用户的数据都转换为16位二进制数据格式。
为了执行加密操作,我们首先在1到100之间随机生成一个数,然后将上一步生成的一次性密码 (OTP) 乘以19得到的整数加到ASCII数据的每一位上。对云用户得到的结果数据执行算术+操作,并将结果存储在云服务器上。
步骤3:使用一次性密码作为密钥的基于生物特征启发的同态加密算法解密技术
在云环境中,当任意注册用户需要其他注册云用户的数据时,该用户会向云服务器发送请求以获取数据。随后,云服务器接受请求,并将存储的数据发送给请求方。接收到来自云的数据后,用户将使用相同的基于生物特征启发的一次性密码密钥对收到的数据进行解密。用户将其自身数据和解密后的数据均转换为16位二进制格式。然后对这两个16位二进制数据执行异或操作,将得到的结果转换为十进制值。最后,将该十进制值(即对应的ASCII值)转换为相应的ASCII字符。由此,获得其他注册云用户的数据。
4 结果与讨论
所提出的BIHEA方案旨在缓解诸如未经授权访问数据、共享过程中发生的信息泄露、在未经数据所有者许可和确认的情况下将一个用户的数据访问和共享给其他用户等安全攻击。
A. 数据访问泄露
第3节中介绍的所提出的BIHEA系统允许拥有一次性密码(OTP)的用户获得访问数据的权限。只有数据所有者有权生成和发放OTP。如果云存储提供商或用户没有一次性密码,则无法访问数据。即使云存储服务器不在数据所有者的控制范围内,或其为恶意且不可信的,由于对数据或信息的访问依赖于数据所有者生成的一次性密码,因此访问控制策略的实施仍能得到保障。数据访问泄露可能发生在以下两种情况中。
(1) 未授权用户或攻击者在未获得云存储提供商任何知识或帮助的情况下获取了用于解密数据的一次性密码。为了获取此类一次性密码,攻击者必须知道(a)虹膜的注册用户、(b) 生成的随机数,以及 (c) 随机选择的整数,例如“19”,该整数与用作密钥的一次性密码相乘。这三项秘密信息同时被知晓是不可能的。因此,攻击者在没有云存储提供商协助的情况下,几乎无法获取此类一次性密码。
(2) 另一种可能的情况是,未授权用户或攻击者通过云存储提供商的知情或协助获取了可用于解密数据的一次性密码(OTP)。为了获取此类OTP,攻击者必须知晓注册用户的虹膜信息或用于生成OTP的随机选择值。由于 OTP是以短消息服务(SMS)的形式发送给用户的,因此攻击者无法从 SMS中计算出OTP。短信由用户保密并私密保存,因此攻击者无法访问该密钥。简而言之,即使云存储提供商协助攻击者,攻击者也无法获取密钥。
B. 数据共享期间的泄露
在云环境中,无论数据是否被共享或对其执行任何计算,数据始终以其加密形式存在;然而,可能在不同阶段使用不同的密钥进行加密。因此,在将计算结果交付给有权访问数据的请求用户之前,数据在任何时刻都不会被解密。因此,这保证了整个共享过程不会向未授权用户泄露任何部分的信息。
在共享过程中,未授权用户若要访问解密后的信息,必须拥有注册用户的密钥或其虹膜模式知识,以及利用该模式和随机生成的数字生成一次性密码的方法。根据上述分析可知,未授权用户无法解密数据。攻击者若要解密消息,必须获得所使用的密钥。
C. 时间复杂度
最后,对BIHEA与现有RSA、DES和高级加密标准加密的时间复杂度进行了分析。从图2、3、4和5所示的柱状图中可以明显看出。
BIHEA与AES和DES加密算法相比耗时更少,但与RSA算法相比耗时更多。RSA算法执行时间最短,但更容易受到攻击。因此,研究人员提出了AES和 DES加密算法以减少攻击的影响,但另一方面,算法复杂度增加,因而执行时间更长。所提出的BIHEA兼具两者优点,即执行时间更短,并且由于其双层架构,对攻击具有更强的抵抗能力。
5 结论
在云计算中缺乏基础设施所有权导致用户对其有价值数据存储在云上的兴趣不足。因此,建立用户对云的信任以共享其数据于云环境中变得至关重要。
本文提出了一种生物特征启发的同态加密算法(BIHEA),并成功实现了该算法。所提出的加密系统采用双层机制,意味着用户数据使用基于用户虹膜生成的密钥进行加密,并生成密文,该密文可通过注册用户获取的一次性密码(OTP)形式的单一解密密钥进行解密。该系统允许通过更改加密密钥而无需解密数据来重新加密用户数据。因此,BIHEA为在云上安全共享用户数据提供了一个良好的系统。该系统可保护用户数据免受未授权访问,并允许执行数据所有者规定的共享策略。
我们对各种安全方案进行了深入的研究和分析,最终确定了所提出的系统,并证明该系统允许用户在不可信云服务器上安全地共享数据。所提出的 BIHEA系统的安全分析表明,与DES、高级加密标准和RSA算法方案相比,该系统能够防止多种安全攻击,并为在不可信云环境中共享用户数据提供强有力的可信环境。未来还可考虑在BIHEA中利用时间戳来防范重放攻击。此外,预计还将在现有的云服务器(如亚马逊、Salesforce.com、 Hadoop)上结合MATLAB工具进行分布式计算的实际测试。
1040

被折叠的 条评论
为什么被折叠?



