基于图像边缘的密码加密方法

一种基于图像边缘的图像密码加密方法

N. K. 斯里拉贾¹* 和 N. K. 斯里贾²
¹斯里克里希纳工程与技术学院,哥印拜陀,印度
²PSG理工学院,哥印拜陀,印度

摘要

认证在确保系统安全方面起着重要作用,仅允许授权用户访问。传统的基于文本的密码认证系统在可用性和安全性方面存在诸多缺陷。因此,提出了图形密码,通过在图片上进行点击或拖动操作来替代输入文本字符,以解决这一问题。然而,研究发现这些图形密码容易受到暴力破解和字典攻击方法的影响。为克服这一缺点,可以使用图像作为密码,取代字母数字密码和图形密码。挑战在于如何对图像密码进行加密并将其存储在数据库中。本文提出了一种基于图像边缘值的图像边缘密码加密(IEPE)算法,用于加密图像密码。实验结果表明,与现有的密码加密技术相比,使用IEPE算法加密的图像密码所需内部存储空间更少。同时表明,IEPE算法相较于现有的基于文本和图形密码的认证方法具有更好的可扩展性。此外,IEPE算法还能够抵御各种密码密码分析攻击。版权所有 © 2017 约翰·威利父子有限公司

关键词 认证;图像边缘;图像密码加密;图片密码;安全分析
*通讯作者 N. K. 斯里拉贾,印度哥印拜陀斯里克里希纳工程与技术学院。电子邮件:sreelajank@gmail.com

引言

安全计算机系统允许合法用户通过证明其身份来获得系统访问权限。用户使用诸如用户名和密码之类的凭证来证明其身份。认证通过验证用户身份并允许授权用户访问系统,在确保系统安全方面起着重要作用。

在多种认证方案中,最常用的是用户名和密码。目前实践中,字母数字密码是大多数在线应用中用于认证用户的最广泛机制。根据[1,2]中报道的研究,大多数人发现记住这些密码很困难。亚当斯等人[1]指出,所选择的短密码虽然易于记忆,但容易被猜出或破解。

然而,字母数字密码的使用面临密码破解的问题。破解文本密码的一种方法是冒充管理员给用户打电话,诱骗用户提供其密码。并要求用户提供登录凭证。此外,通过肩窥可以获取一个人的字母数字密码。另一种破解这些密码的方式是猜测用户密码。

图形认证方案已被提出作为传统字母数字密码技术的一种可能替代方案,这主要是因为人类对图片的记忆优于文本[3]。然而,这些方法也容易受到密码攻击。尽管生物特征密码被认为是认证中最安全的方法,但这些方法的缺点是耗时且成本较高[4]。部署此类系统用于在线应用可能非常复杂且不适用。

为了克服现有认证方法的缺点,有研究提出使用图像作为密码来替代文本密码。由于图像大小大于文本,因此图像密码的加密和存储成为挑战。文献中一些现有的用于密码加密的哈希算法包括MD5、SHA‐0、SHA‐1、SHA‐2和SHA‐3。

安全与通信网络 安全通信网络(2017) 在线发表于Wiley在线图书馆(wileyonlinelibrary.com)。DOI: 10.1002/sec.1732
版权所有 © 2017 约翰·威利父子有限公司

本文档由 funstory.ai 的开源 PDF 翻译库 BabelDOC v0.5.10 (http://yadt.io) 翻译,本仓库正在积极的建设当中,欢迎 star 和关注。

算法。MD5、SHA‐0和SHA‐1算法的缺点是容易受到碰撞攻击[5]。研究表明,SHA‐2和SHA‐3算法需要更高的内部存储空间。为了克服现有密码加密方法中的这些缺点并减少内部存储需求,提出了一种称为图像边缘密码加密(IEPE)算法的新颖算法来加密图像密码。

IEPE算法的设计非常重视抗原像攻击、抗碰撞性以及抵抗暴力破解攻击的能力。该方法的优点在于用户无需费力记忆密码,因为用户可以将图像密码存储在外部安全存储设备(如USB或智能卡)中,并在认证时上传使用。同时表明,IEPE算法克服了现有密码加密技术的缺点,并且与现有的用于密码加密的哈希算法相比,所需的内部存储空间更少。

本文结构如下:第2节介绍相关工作;第3节解释系统模型;第4节介绍图像编码;第5节解释IEPE算法;第6节描述一个案例研究;第7节讨论计算复杂度;第8节讨论实验结果;第9节将所提出的方法与现有方法进行比较;第10节讨论安全分析;第11节给出结论。

2. 相关工作

Wiedenbeck 等人 [6]进行了一项用户研究,其中一组参与者被要求使用字母数字密码,而另一组参与者则被要求使用图形密码。结果表明,与字母数字密码相比,图形密码使用户尝试登录的次数更少。然而,使用图形密码的用户在记忆密码方面存在更多困难,并且输入密码所花费的时间也比使用字母数字密码的用户更长。在存储和通信方面,图形密码比基于文本的密码需要更多的存储空间。中央数据库可能需要维护数以万计的图片。网络传输延迟也是图形密码的一个问题,特别是对于基于识别的技术,在每轮验证过程中可能需要显示大量图片 [3]。

Soumyadeb 等人 [7]提出了一种使用多图像密码进行认证的技术。然而,他们的研究中指出,用户通过屏幕截图或文字描述来记录密码。因此,如果记录的笔记被泄露,密码就可能被破解。由于需要向用户显示图像,该方法需要更多的存储空间来存储图像。

Hong 等人 [8]提出了一种称为 Pict‐O‐Lock 的方案,旨在提高图片记忆性。该方法的缺点是过程非常耗时且繁琐。此外,密码虽然不能被轻易猜测,但可以通过暴力破解方法攻破,而且用户必须记住图像对象及其对应的代码,其记忆难度高于基于文本的密码。Jermyn 等人 [9]提出了一种名为“Draw‐A‐Secret (DAS)”的方案。DAS 方法的缺点是密码可能被猜测。

索布拉多和伯杰特 [4]开发了一种应对肩窥问题的图形密码技术。这些算法的主要缺点是登录过程可能较慢。该密码可能受到暴力搜索方法的攻击。

Passface[10]是由真实用户公司开发的一种技术 [10]。该方法可能面临的密码攻击包括字典攻击、暴力搜索、密码猜测和肩窥攻击。苏克里等人[11]提出了一种系统,该系统通过用户使用鼠标绘制签名来进行认证。该方法可能面临的密码攻击包括字典攻击、密码猜测和肩窥攻击。

用于密码加密的哈希算法(如SHA‐3算法[12])采用海绵结构,其中消息块与状态的初始位进行异或操作,然后对状态进行可逆置换。在SHA‐3所使用的版本中,状态数组最多包含 5 × 5个64位字的数组,总共1600位。该算法能够抵抗密码分析攻击。另一种用于密码加密的哈希算法是SHA‐2算法[13]。在此方法中,状态数组最多包含 8 × 1个64位字的数组,总共512位。该算法也能够抵抗密码分析攻击。然而,这些算法的内部存储空间较大。

诸如SHA‐0[14]和SHA‐1[15]加密算法之类的哈希算法也被用于密码加密。在这种方法中,内部状态大小为160,块大小为512。然而,SHA‐0和SHA‐1算法的缺点是这两种加密算法都容易受到碰撞攻击[5]。

3. 系统架构

图像密码加密的过程分为两个阶段进行说明。第一阶段解释用户图像密码的注册,第二阶段解释使用图像密码对用户进行认证。

3.1. 注册

在注册阶段,用户输入图像密码。为了加密图像密码,需获取图像密码的图像边缘。图像的图像边缘传递给IEPE算法。在加密过程中,为用户生成一个盐值,并将其提供给IEPE算法以加密图像密码。加密后的图像密码值以及用户的盐值将存储在数据库中。图1显示了注册系统的模型。

3.2. 认证

在认证阶段,用户输入用户名和图像密码。获取图像密码的边缘值并传递给IEPE算法。检索对应于该用户的盐值并传递给IEPE算法。对用户的图像密码进行加密,并检查其是否与存储的用户图像密码值匹配。如果匹配成功,则用户通过认证并获得访问权限。图2显示了认证系统的模型。

4. 将图像转换为边缘点

使用Sobel算子获取图像的边缘点,并以二进制矩阵的形式表示。该二进制矩阵取值为“0”和“1”,其中边缘点用值1表示。图3展示了图像的边缘点作为二进制矩阵的表示形式。

5. 使用IEPE算法加密图像密码

提出了一种称为IEPE算法的新颖算法,用于加密图像密码。根据该方法,图像的边缘如第4节所述获取,并传递给IEPE算法。考虑以二进制矩阵M形式表示的图像边缘,如公式(1)所示,其中Mij表示二进制矩阵的值,1<i<m,1<j<n。m表示矩阵M的行数,n表示矩阵M的列数。行数和列数表示图像大小。

$$
M =
\begin{bmatrix}
M_{11} & M_{12} & M_{13} & \cdots & M_{1n} \
M_{21} & M_{22} & M_{23} & \cdots & M_{2n} \
M_{31} & M_{32} & M_{33} & \cdots & M_{3n} \
\vdots & \vdots & \vdots & \ddots & \vdots \
M_{m1} & M_{m2} & M_{m3} & \cdots & M_{mn}
\end{bmatrix}
\quad (1)
$$

矩阵中的元素Mij取值为“0”或“1”。二进制矩阵中值为“1”的元素表示一个边缘点。遍历该二进制矩阵,并对边缘点进行编码。为了编码边缘点,将边缘点的行位置和列位置连接起来,表示为编码值,如公式(2)所示。

示意图0

$$
\text{If } M_{ij} = 1, \text{ encoded value } M_{ij} = i\&j \quad (2)
$$

每一行中边缘点的编码值被连接起来,表示为行编码值,如公式(3)所示。

$$
\text{Rowencval} i = \text{编码值}(M {i1})\&\text{编码值}(M_{i2})\&\cdots\&\text{encoded value}(M_{in}) \quad (3)
$$

其中 i = 1, 2, …, m。

二进制矩阵中所有行的行编码值被连接起来,表示图像编码值。最后,将二进制矩阵的行数和列数连接到图像编码值的末尾,表示编码图像,如公式(4)所示。

$$
\text{编码图像} = \text{Rowencval}_1\&\text{Rowencval}_2\&\cdots\&\text{Rowencval}_m\&m\&n \quad (4)
$$

图4 显示了对图像进行编码的伪代码。

根据随机选择的分组值将编码图像分割成块,对编码图像进行加密。块的数量如公式(5)所示。

$$
\text{No: of blocks} = \frac{\text{len(encodedimg)}}{\text{grouping value}} \quad (5)
$$

加密密钥的选择方法如下。首先找到最小行编码值,然后选择两个随机数并将其分别加到二进制矩阵的行数和列数上。新生成的行数(NRn)和列数(NCn)被连接到最小行编码值的末尾,作为第一个块的加密密钥。对于每个后续块,前一个块的行数和列数分别加上选定的随机数,并将结果连接到最小编码值的末尾,形成每个块的加密密钥。

$$
NRn(1) = m + Rnd1, \quad NCn(1) = n + Rnd2 \quad (6)
$$

$$
NRn(k) = NRn(k - 1) + Rnd1, \quad NCn(k) = NCn(k - 1) + Rnd2 \quad (7)
$$

$$
\text{Key Block}(k) = \text{min(Rowencval)}\&NRn(k)\&NCn(k) \quad (8)
$$

其中 k = 1, 2, 3, …, 块的数量。

示意图1

示意图2

在每个块中,对编码图像的数字与加密密钥执行异或操作,如方程(9)所示。

$$
V_k = \text{块k编码图像} \oplus \text{密钥块}(k); \quad \text{其中 } k = 1, 2, 3, \ldots, \text{块数} \quad (9)
$$

Blockk(encodedimg) 表示编码图像中每个块内的数字。

在每个块中,将盐值添加到异或值VK以形成新值(xk),如方程(10)所示。

$$
x_k = V_k + \text{salt value} \quad (10)
$$

该值随后被传递给一个单向函数 f(x) = x² + x。每个块生成的值进行连接,表示加密的图像密码,如方程(11)所示。

$$
\text{Enc Block}(k) = x_k^2 + x_k \quad (11)
$$

$$
\text{加密图像密码} = \text{Enc Block}(1)\&\text{Enc Block}(2)\&\cdots\&\text{Enc Block(No: of Blocks)} \quad (12)
$$

图5显示了IEPE算法的伪代码。

6. 案例研究

本节介绍图像密码的加密过程。考虑用户选择的图像密码,如图6所示。

调用IEPE算法对图像密码进行加密。如第4节所述,获取图像边缘并传递给IEPE算法。图6中图像的边缘值以0和1组成的二进制矩阵形式表示,如表I所示。在该二进制矩阵中,值为“1”的位置表示边缘点。将用户的盐值传入IEPE算法。根据IEPE算法,每个图像中的边缘点通过将其对应的行位置和列位置连接起来进行编码。从表I可以看出,该二进制矩阵在第六行第六列处的值为“1”,该边缘点的编码值为66。类似地,遍历整个矩阵,并对每一行中的边缘点进行编码。该图像的行数和列数分别为21和15。通过将每一行的编码值与图像的行数和列数连接,得到编码图像。因此,该图像密码的最终编码图像为 668889810811813979131051152115。

编码图像中的值根据分组值被划分为若干块。分组值选择为4。块的数量通过将编码图像长度除以分组值得到。在此情况下,编码图像长度为30,编码图像的块数为8。

加密密钥的获取方法如下。找到图像密码的行编码值中的最小值。此处,最小编码值为66。选择两个随机数3和2,分别加到图像的行数和列数上。因此,新生成的行号和列号分别为24和17。将新生成的行号和列号连接到最小编码值后,形成第一个块的加密密钥662417。为了生成后续块的加密密钥,将前一个块中新生成的行号和列号分别加上选定的随机数,并与最小编码值连接,如表II所示。在编码图像每个块中的各位数字与对应块的加密密钥之间执行异或操作。将用户的盐值添加到每个块的异或值中。每个块中得到的值XK in被传递给单向函数f(x) = x² + x。每个块中得到的f(x)值连接起来形成加密的图像密码值。表II显示了图6所示图像密码的加密过程。

表I. 图像密码中的编码边缘点值。

图像密码的边缘点值 编码值
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 66
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 8889810811813
0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 97913
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 105
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 115
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

表 II. 图像密码解密。

Encoded image (A) Encryption key (B) A XOR B (VK) Salt value (D) XK = VK + D XK² + XK Encrypted image password
66 88 66 24 17 65 57 93 1234 657027 431685135756
89 81 66 27 19 67 16 58 1234 672892 452784316556
08 11 66 30 21 66 32 38 1234 664472 441523703256
81 39 66 33 23 65 55 68 1234 656802 431389524006
79 13 66 36 25 67 13 92 1234 672626 452426408502
10 51 66 39 27 66 49 40 1234 666174 443788464450
15 21 66 42 29 66 54 28 1234 666662 444438888906
15 66 45 31 66 45 40 1234 665774 443255684850
431685135756 452784316556 441523703256 431389524006 452426408502 443788464450 444438888906 443255684850

7. 计算复杂度

表示图像密码边缘点的二进制矩阵被遍历以在图像中编码边缘点。考虑一个大小为 m * n 的图像密码。因此,比较的总次数为 O(mn)。加密密钥通过选择最小编码值得到。因此,需要进行的比较次数为 O(m)。将编码图像与加密密钥的异或值加上盐值后,输入到一个单向函数中,以获得加密后的图像密码。该单向函数对每个块涉及一次乘法和一次加法操作。因此,系统的计算复杂度表示为 O(mn) + O(m) + (2 * 块的数量)。

8. 实验结果

实验针对不同尺寸的多个图像密码进行了加密。图7显示了不同的图像密码以及使用IEPE算法在不同分组值下生成的加密后的图像密码。结果表明,即使图像有微小变化,也会导致生成不同的加密后的图像密码。从图7可以看出,“Image1”和“Image2”仅有一位不同,便产生了不同的加密后的图像密码。

图8显示了图像密码加密的耗时。从图8可以看出,加密较大图像密码的耗时极少。

9. 与密码加密技术的比较

IEPE算法与现有的密码学哈希算法以及图形密码技术进行了比较。

9.1. 与抗攻击密码学哈希算法的比较

对IEPE算法与SHA‐3和SHA‐2算法进行了比较。

9.1.1. IEPE算法与SHA‐3算法的比较

根据SHA‐3算法[12],它采用海绵结构,其中消息块被异或操作到状态的初始位,然后进行可逆置换。在SHA‐3使用的版本中,状态数组最多包含 5 × 5个64位字的数组,总共1600位。该算法能够抵抗密码分析攻击。

在IEPE算法中,存储了四个值,即一个分组值、两个用于增加行数和列的随机数以及盐值。因此,用于存储这些值的数组的最大大小为4 * 1。假设每个存储值的最大大小为数组的每个元素为15位数字,最多可存储480位,与 SHA‐3算法的内部存储相比相对较少。此外,IEPE算法能够抵抗密码分析攻击。

9.1.2. IEPE算法与SHA‐2算法的比较

根据SHA‐2算法[13],状态数组由最多 8 × 1个64位字组成的数组构成,总共512位。该算法能够抵抗密码分析攻击。

在IEPE算法中,存储了四个值,即一个分组值、两个用于增加行数和列数的随机数以及一个盐值。因此,用于存储值的数组最大大小为4 * 1。假设数组中每个元素存储的值的最大大小为15位数字,则需存储的最大位数为480位,与SHA‐2算法中的内部存储相比相对较小。此外,IEPE算法能够抵抗密码分析攻击。

9.2. 与易受攻击的密码学哈希算法的比较

将IEPE算法与SHA‐0和SHA‐1算法进行了比较。

9.2.1. IEPE算法与SHA‐0和SHA‐1算法的比较

根据SHA‐0[14]和SHA‐1[15]加密算法,其内部状态大小为160,块大小为512。然而,这两种加密算法都容易受到碰撞攻击[5]。

在IEPE算法中,需要存储的最大位数为480,与 SHA‐0和SHA‐1算法的内部存储相比相对较少。此外,如第10节所述,IEPE算法能够抵抗密码分析攻击。

9.3. IEPE算法与图形密码技术的比较

IEPE算法与图形密码技术进行了比较。

9.3.1. IEPE算法与Pict‐O‐Lock方法的比较

Hong 等人. [8]提出了一种称为 Pict‐O‐Lock 的方案,旨在提高图片记忆性。Hong 等人 [8]允许用户为每个通行对象变体选择与其关联的词语。然而,这显著延长了密码注册过程。为了系统地排列图片,Hong 等人 [8]采用了基于网格的图片排列方式,每次登录过程开始时,程序会随机生成屏幕上显示的图像。为防范暴力破解攻击,Hong 等人 [8]在其方案中使用了大量诱饵图像。为防止肩窥攻击,该方案需要进行多次验证过程。显然,这一过程耗时且繁琐,因此可能不被用户所接受。在 Pict‐O‐Lock 图形密码方法中,这是一种识别技术,密码无法被猜测,但可通过暴力破解方法被破解。此外,用户必须同时记住图片对象及其代码,其难度高于基于文本的密码。

与Pict‐O‐Lock方法不同,IEPE算法并不耗时,因为图像密码被上传,从而减少了服务器端图形数据库存储的需求,且无需通过网络传输图像,降低了流量负载。此外,在IEPE技术中,图像无法被猜测或通过暴力破解攻击破解,如第10.4节所示。

9.3.2. IEPE算法与Draw‐A‐Secret方法的比较

耶尔迈因等人. [9]提出了一种称为“DAS”的方案。该方案基于二维网格,用户需要绘制内容来表示其密码。所绘图片中每个网格坐标将按绘制顺序进行存储。为了进行认证,用户需要重新绘制该图片。如果绘制的线条位于相同的网格坐标并具有正确的顺序,则用户通过认证。使用网格作为绘图背景具有一些优势:首先,用户可以随意绘制任意长度的密码;其次,基于网格的技术还减少了服务器端图形数据库存储的需求,并在不通过网络传输图像的情况下降低了流量负载。此外,基于网格方案的完整密码空间远优于传统文本密码。

然而,在DAS图形化密码方法(一种回忆型技术)中,密码无法通过暴力破解方法破解,但可能被猜测。

在IEPE算法中,图像密码在登录过程中上传,且无法像DAS图形密码方法那样被猜测。此外,该方法减少了服务器端对基于图形的存储需求,并通过不通过网络传输图像从而降低了流量负载。

9.3.3. IEPE算法与图形密码技术的比较

文献中现有的图形密码方案包括基于识别的技术和基于回忆的技术。在基于识别的技术中,登录时会显示图片密码,用户必须按顺序选择图片。在基于回忆的技术中,用户登录系统时会呈现单张图像,用户需要点击图像中的特定位置,这些位置即被设为密码。用户可能认为此过程冗长且繁琐。由于大多数用户对图形密码不熟悉,他们通常觉得图形密码不如基于文本的密码方便[10]。基于回忆的方法主要设计问题是用户输入识别的可靠性和准确性。在此类方法中,必须谨慎设置误差容限;容限过高可能导致大量误报,而容限过低则可能导致大量漏报。此外,程序的误差容忍度越高,其遭受攻击的脆弱性也越大[10]。文献中存在多种图形密码技术,例如Triagle、可移动框架、交集、Blonder[2], VisKeySFR[3], Passlogix[16–18],以及Passpoints[19]。然而,研究表明,所有这些方案都容易受到暴力破解、猜测和肩窥攻击[3]。

索布拉多和伯杰特 [4]提出了一种应对肩窥问题的图形密码技术。在第一种方案中,系统会在许多其他对象中显示若干个用户预先选定的通过对象。为了完成认证,用户需要识别出这些通过对象,并点击所有通过对象所形成的凸包内部区域。为了使密码难以猜测,索布拉多和伯杰特[4]建议使用1000个对象,但这会导致显示非常拥挤,对象几乎无法区分;而使用较少的对象可能导致密码空间变小,因为生成的凸包可能较大。在他们的第二种算法中,用户移动一个框架(以及框架内的对象),直到框架上的一个通过对象与另外两个通过对象对齐。作者还建议重复此过程几次,以尽量减少随机点击或旋转实现登录的可能性。这些算法的主要缺点是登录过程可能较慢,且当涉及大量对象时,记忆起来也比较困难。该方法可能面临的密码攻击方式包括暴力搜索和猜测。

在IEPE算法中,图像密码在登录过程中上传,且无法通过暴力破解方法被猜测或破解。由于无需选择图片,该方案不易受到肩窥攻击。此外,该方法减少了在服务器端存储图像的需求,并且无需通过网络传输图像,从而降低了网络流量。

9.3.4. IEPE算法与Passface技术的比较

Passface [10]是由真实用户公司[10]开发的一种技术。根据该方法,用户识别并选择预先注册的图片。这种认证方式比基于文本的密码耗时更长。可能的密码攻击包括字典攻击、暴力搜索、密码猜测和肩窥攻击。

在IEPE算法中,图像密码既无法被猜测,也无法通过暴力破解方法破解。此外,由于未选择图片,该方案也不易受到肩窥和字典攻击的影响。

9.3.5. IEPE算法与签名技术的比较

苏克里等人. [11]提出了一种系统,该系统通过用户使用鼠标绘制签名来进行身份验证,此方法需要一个可靠的签名识别程序。针对该方法可能的密码攻击包括字典攻击、密码猜测和肩窥攻击。

在IEPE算法中,由于图像密码是图像,因此无法被猜测。此外,由于未选择图片,该方案不易受到肩窥攻击和字典攻击。

9.3.6. IEPE算法与基于图像、物体和伪词识别的认证方案的比较

温希尔和柯克帕特里克 [20] 提出了几种认证方案,例如图像识别、物体识别和伪词识别,并开展了一系列用户研究。在图像识别研究中,用户被训练识别从包含20000张图像的数据库中选出的一组大量图片(100至200张)。经过1到3个月后,其研究中的用户能够识别训练集中超过90%的图像。该研究表明,在测试的三种方案中,图片是最有效的。伪代码也可使用,但需要适当的设置和训练。

IEPE算法减少了服务器端对基于图形的存储的需求,并且在不通过网络传输图像的情况下降低了流量负载。

10. 安全分析

研究了IEPE算法,以表明其能够抵抗各种密码密码分析攻击。

10.1. 抗原像攻击

抗原像攻击是指,对于所有预先指定的输出,计算上不可能找到任何哈希到该输出的输入。也就是说,在给定任意 y 的情况下,无法找到任何预像 x₀,使得 h(x₀) = y,其中 y 对应的输入是未知的。

考虑表示图9中所示图像密码的边缘值的二进制矩阵。调用IEPE算法对图像密码进行加密。分组值选择为3。表III展示了该图像密码的加密过程。

表III. 图像密码的加密。

分组值 3
随机数 3, 2
编码图像(A) 132 132 33
加密密钥(B) 1365 1397 13129
A 异或 B (VK) 1489 1521 13160
盐值 (D) 130 130 130
XK = VK + D 1619 1651 13290
加密的图像密码 (y) 262278027274521766373900

为了证明IEPE算法具有抗原像攻击的能力,我们假设有人试图找到任意一个原像x₀,使得h(x₀) = y。在此情况下,y表示加密后的图像密码。因此,y= 262278027 274521766373900。

为了从y构造出图像x,黑客必须对加密图像密码中每个块的值进行分组。如果找到了每个块的加密的图像密码值,则必须找出XK的值。由于加密的图像密码值是通过单向函数得到的,因此无法求得该函数的逆函数。因此,黑客很难找到XK的值。

为了找到加密密钥,必须找到图像密码的最小编码行值。此外,还必须找到用于添加到行数和列数以生成加密密钥的随机数。因此,结果表明,无法从已知的加密后的图像密码 y 构造出输入图像未知的图像。因此,抗原像攻击是不可能实现的,因为很难从加密后的密码中精确重构出与输入图像密码相同的图像。

同时,在第10.2节中也解释了,即使图像发生微小变化,也会导致生成不同的加密密码。

10.2. 抗二次原像攻击

根据第二原像抗性,给定一个输入m₁,很难找到另一个输入m₂,使得m₁ ≠ m₂且hash(m₁) = hash(m₂)。该性质有时被称为弱抗碰撞性,缺乏此性质的函数容易受到第二原像攻击。

考虑表示输入图像密码m₁的边缘点的二进制矩阵,如图10所示。加密后的图像密码为 192793212915118601 2423665982,如表IV所示。

结果表明,IEPE 不易受到第二原像攻击,因为通过在编码图像末尾连接行数和列数,无法构造出具有相同加密密码值的两个不同图像。此外,行数和列数也被连接到表示加密密钥的最小行编码值的末尾。考虑图11所示的图像密码的边缘点值。

从图10和图11可以看出,两幅图像的边缘值位置相同。然而,图10和图11所示图像的加密密码值分别为1927932129151186012423665982和 192793212915186011019015812(表IV和表V)。由于行数和列数被连接在编码图像的末尾,因此每幅图像的编码值都不同,不可能出现两幅不同的图像具有相同的加密密码值的情况。因此,表明IEPE算法具有抗第二原像攻击的能力。

10.3. 抗碰撞性

根据该方法,应该很难找到两个不同的消息m₁和m₂,使得hash(m₁) = hash(m₂)。这样的消息对称为密码学哈希碰撞。此性质有时被称为强抗碰撞性。该性质适用于IEPE算法。第10.2节已证明,不可能找到两个不同的图像密码具有相同的加密值。图12显示了一个图像密码其边缘点与图10和图11中的图像密码相似。由于行数和列数不同,图12中的图像与图10和图11中的图像的加密图像值也不同(表IV–VI)。

图13和图11所示的图像密码具有相同的加密密钥。然而,可以看出这两个图像密码是不同的,并且没有相同的加密值,如表VII和表V中分别所示。

图像密码使用IEPE算法以加密形式存储在密码表中。第10.1节表明,攻击者无法从加密的密码中还原出原始图像。此外,由于图像的微小变化就会产生完全不同的密码(如图7所示),因此也无法进行暴力破解攻击。

10.4. 字典攻击

字典攻击只能针对字母数字密码进行。由于IEPE算法使用图像作为密码而非字母数字字符,因此不会受到字典攻击的影响。

10.5. 肩窥攻击

根据IEPE算法,肩窥攻击方法无法使用,因为攻击者无法窥探用户的操作动作来获取密码,因为用户并未在键盘上按键。此外,由于用户通过上传图像来输入图像密码,攻击者也无法通过监听按键次数来猜测密码。

10.6. 键盘记录器

键盘记录器是安装在系统中的软件程序,用于记录用户按下的键并将这些信息存储在日志文件中,然后发送给攻击者。键盘记录器会记录计算机上的所有键盘敲击行为。它捕获键盘上按下的每一个键,并将其存储在文件或内存中,供监控者实时查看或日后查阅。一些应用程序提供图形键盘,用户可以通过鼠标点击所需字符进行输入,这对于输入数字个人识别号码特别有用。然而,这类方式仍然容易受到某些键盘记录器的攻击,例如在数据输入时截取屏幕截图。该风险可通过使用多因素验证设备来缓解,例如使用智能卡输入密码。

由于IEPE使用图像密码,键盘记录器攻击在此系统中失效,因为文本并未在系统中输入。

11. 结论

提出了一种IEPE算法来加密图像密码。该方法提高了密码的可用性,因为用户不难记住图像密码。研究表明,加密后的图像密码所需的存储空间更少,因为它以文本形式存在格式。与图片密码技术相比,该方法表现更优。同时,与用于密码加密的哈希算法相比,其内部存储更少。此外,研究表明,该方法能够抵抗密码分析攻击,如原像攻击、第二原像攻击和碰撞攻击。它还能够抵抗暴力破解和字典攻击。同时证明,即使图像发生细微变化,加密后的图像密码也会有很大差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值