可视加密算法的安卓系统实现
2017-10-13刘得源贝静静
◆刘得源 李 辉 贝静静 王 恒 颜 斌
可视加密算法的安卓系统实现
◆刘得源 李 辉 贝静静 王 恒 颜 斌
(山东科技大学电子通信与物理学院 山东 266590)
网络通信的快速发展和普及带来了数据安全问题,数据加密作为其中一个重要的研究领域越来越受到人们重视。传统的加密技术依赖于复杂的密码学知识和大量的数学计算,同时需要避免密钥丢失或被他人截获,这严重制约了数据加密的简洁性和可靠性。可视加密具有秘密信息安全、解密简单且不需计算机等优点近年来得到了很大发展。本文将传统的可视加密算法应用到了安卓系统中,使之能适用于手机等移动终端,让图像加密系统在便携设备上得到了实现,同时本系统具有秘密安全性和像素不扩展,解密图像清晰等优点。
可视加密;安卓系统;数据加密;图像加密
0 前言
可视密码[1]是一种秘密共享方案,由Naor和Adi Shamir提出。可视密码方案提供了一种将一个秘密图像分割成多个子图像的方案,我们不需要任何密码学的计算就可以通过这些子图像获得原来的秘密图像。为了使图像加密系统更加小型便携,本文设计了可视密码方案和其在Android系统上的实现。
1 秘密共享和可视加密算法
秘密共享是一种将秘密信息分割存储的密码技术,可有效防止秘密数据的丢失、毁坏,阻止秘密过于集中。在1994年,Moni Naor和Adi Shamir提出了对于图像秘密分享的可视加密技术。如其名称所示,可视加密与人的视觉系统相关。典型的加密问题为(,)秘密分享问题,给定一个图像,由此产生个透明胶片,任意个胶片叠放在一起就可以观察出原秘密图像,而少于个胶片叠放在一起则秘密图像继续隐藏。当任意个胶片叠合时,人眼就可以分辨出秘密图像,不需要有任何加密知识和复杂计算[2]。
2 安卓系统实现
近年来安卓系统得到了广泛的发展。为了使图像加密系统更加小型便携,本文设计了可视密码方案和其在Android系统上的实现。该加密系统主要分为加密模块,解密模块两部分。
2.1 加密模块
首先选取要加密的图像,裁剪以选择要加密的图像部分,接着对裁剪后的图像进行灰度化和半色调化处理,再进行压缩处理,以保证可视加密产生的分存图像不存在像素扩展,然后用可视加密算法产生两个分存图像,并将产生的分存图像保存到本地。加密模块的流程框图如图1所示。
(1)半色调技术
Naor和Shamir提出的传统可视密码方案仅适用于黑白二值图像的秘密分享。半色调技术03]是连续色调图像转化为二值图像的方法,这种方法可以较好的保持灰度图像的灰度级。本系统我们采用Bayer的有序抖动方法来实现灰度图像的半色调化[4]。
原始秘密图像,其灰度级为 256 级,二值图像是由根据 Bayer 矩阵生成,对的每个像素,做如下处理:
if(()/4)>(mod 8,mod 8)
then()= 0
else()= 1
也就是把秘密像素灰度值量化后与 Bayer 矩阵相应位置的值进行比较:如果灰度值量化后大于 Bayer 矩阵相应位置的值,()确定为白像素;如果灰度值量化后小于等于 Bayer 矩阵相应位置的值,()确定为黑像素。
(2)可视加密算法
本系统采用的可视加密算法如表1所示,黑色像素产生的两个分存图像对应像素叠加后为完全黑色,白色像素产生的两个分存图像对应像素叠加后为一黑一白两个像素,从而实现了黑白像素的区分。
表1 可视加密算法
2.2 解密模块
解密模块只要选取两个正确的分存图像,然后对他们进行简单的叠加就能恢复出秘密图像。流程图如图2所示。
图2 解密模块流程
3 实例测试
我们在安卓设备上对程序进行了仿真测试,测试结果如图3所示[5]。
图3 在安卓设备上的实现效果
4 结论
本文设计了基于安卓的可视加密系统,让传统的可视加密算法在安卓设备上得到了实现,算法具有秘密安全性,像素不扩展,解密图像清晰等优点。
[1]NAOR M,SHAMIR A.Visual cryptography[J]. Advances in Cryptography,Lecture Notes in Computer Science,Springer,1995.
[2]S. CIMATO,R. DE PRISCO,A. DE SANTIS. Probabilistic Visual Cryptography Schemes [J]. Computer Journal,2006.
[3]LAU D L,ARCE G R. Modern Digital Halftoning. Marcel Dekker Inc,2001.
[4]安韶君.一种新的基于Bayer矩阵抖动的灰度图象图视密码学的方法[J].系统仿真学报,2005.
[5]刘得源,颜斌,王恒,吕昊.基于安卓的可视加密软件系统[P].中国软件著作权.山东科技大学,2016.
山东省自然科学基金(ZR2014JL044)。