【密码学】一文读懂视觉加密(Visual Cryptography)

admin 2025年4月8日20:34:18评论6 views字数 1919阅读6分23秒阅读模式

【密码学】一文读懂视觉加密(Visual Cryptography)

【密码学】一文读懂视觉加密(Visual Cryptography)

近来,发现了一个比较有意思的加密体系,这个加密体系引起了我的童年的回忆,虽然这两个的原理不一样,本文,数学元素几乎没有,读者可以放心食用。

不知道,读者们是否看过《冒险小虎队》这一本书,每当书中扣人心弦的故事进入高潮的时候,书页便会留下一个悬念,“想知道接下来发生了什么?请取出解密卡”。

【密码学】一文读懂视觉加密(Visual Cryptography)
图片来自于百度百科[1]

这张解密卡,可谓是好多人的童年回忆了。这个解密卡的原理,实际上是一个物理现象,莫尔条纹现象(Moiré pattern)[2],利用密码学的手段,也可以实现相同的效果,那便是本文所描述的视觉密码体系[3]。

**视觉密码(Visual Cryptography)**一词是由Naor和Shamir在1994年欧密会上正式提出的,它将秘密共享和数字图像结合了起来。

我们先来看一个例子,

【密码学】一文读懂视觉加密(Visual Cryptography)

这是一个最基本的例子,通过加密函数,把原始的秘密图形加密成为两个加密之后的图形,从加密之后的图像之上,没有办法看到具体的信息,但是,把这两个图像叠加之后,便可以恢复出来原始的图像信息。

可视密码的定义

接下来,我们就来看一下,可视密码的详细定义。对于秘密图像中的每一个像素都需要单独的处理,这里通过n个人共享,每个共享由m个黑白子像素组成。首先构建一个的布尔矩阵,当表示第i个共享者的第j个子像素为黑,反之第i个共享者的第j个子像素为白。然后,如果我们叠加共享的图片的时候,相当于对于每一行做了一个或运算。

这里,可以发现,叠加之后的图像的灰度值与进行或运算之后的向量V的汉明重量成正比,因为人眼会自动的处理这种叠加的状态,因此,我们可以把原始的图像给还原出来。

我们来看一下,可以解密成功的条件[3],对于一个的可视密码体系,我们定义两个维度是的布尔矩阵簇,这里,我们所共享的消息有两种情况

  • 如果,我们需要共享一个白色像素,那么从之中随机取出一个矩阵
  • 反之,我们需要共享一个黑色像素,那么从之中随机取出一个矩阵

所选的矩阵定义了 n 个共享者中每一个子像素的颜色。如果下列条件满足则该方法有效

  • 对于中的任意一个矩阵S, n行中任意k行进行或运算之后的向量的汉明重量
  • 对于中的任意一个矩阵S, n行中任意k行进行或运算之后的向量的汉明重量
  • 对于中的任意一个子集中的每一个矩阵限制到行上,得到两个矩阵簇一同样的频率包含同样的矩阵,因此不可区分。

其中:

  • m是像素扩展度,m越大,生成的图片就越大,因此,m越小越好
  • 是相对差,简单理解,相对差越大,人眼识别图像越容易
  • 矩阵簇是基础矩阵进行随机列置换之后的所有矩阵的集合

看了上面的定义,似乎也不是特别好理解,这里,我们通过一个例子,来看一下这一段过程。

Naor和Shamir(2, 2)方案

【密码学】一文读懂视觉加密(Visual Cryptography)

如上图所示,当原始图像中的某个像素X为黑像素时,我们随机选择下方的黑色像素中的任意一个,两份像素重叠之后,是黑色像素,反之,原始图像中的某个像素X为白像素时,我们随机选择上方白像素的任意一个,叠加之后是一黑一白。因为这些都是随机选取的,所以对于单张的共享的图片,是不会泄漏任何信息的,因此可以保证安全,只有当两张图片对齐之后,才可以解析获取到原始的图片。

对应的构造矩阵,可以写成下面这个样子。

我们,依次处理完成所有的像素,就可以得到对应的两份共享图片。

案例演示

这里,我们用一个简单的例子,来看一下,这个程序的过程。

【密码学】一文读懂视觉加密(Visual Cryptography)

第一个像素是白色,这里,我们随机选择一个,得到结果如下。

【密码学】一文读懂视觉加密(Visual Cryptography)

然后,依次的进行处理,可以得到如下的结果。

【密码学】一文读懂视觉加密(Visual Cryptography)

之后,我们叠加共享图像1和共享图像2,可以得到。

【密码学】一文读懂视觉加密(Visual Cryptography)

好了,到这里,整个演示过程就演示完成了。

总结

本文呢,我们看了一个,在解密的过程不需要进行数学运算的密码体系,我们只需要叠加透明的胶片,便可以实现解密的效果,整体来看,还是非常有趣的,当然,视觉加密体系其实也在发展,等有机会,再来细聊,快乐的时光过的特别快,又到了说再见的时候了,咱们下次再见~~

参考资料

  1. https://baike.baidu.com/item/%E5%86%92%E9%99%A9%E5%B0%8F%E8%99%8E%E9%98%9F/5182065
  2. https://en.wikipedia.org/wiki/Moir%C3%A9_pattern
  3. Naor, Moni; Shamir, Adi (1995). "Visual cryptography".Advances in Cryptology – EUROCRYPT'94. Lecture Notes in Computer Science. Vol. 950. pp.1–12.

原文始发于微信公众号(Coder小Q):【密码学】一文读懂视觉加密(Visual Cryptography)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月8日20:34:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【密码学】一文读懂视觉加密(Visual Cryptography)https://cn-sec.com/archives/3928189.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息