python实现图像的混沌加密

导语

总想在公众号发点和信息安全相关的内容,但总觉得很多内容仿佛不适合在微信公众号里发,何况自己也没有那么专业,想来想去,感觉发个图像加密还是挺不错的~

让我们愉快地开始吧~

开发工具

Python版本:3.6.4

相关模块:

numpy模块;

pillow模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

已知Logistic函数系统方程:

当满足以下条件时:

Logistic函数工作于混沌状态,即通过系统方程产生的序列是无序不可预测的,具有较高的安全性。将其用于图像加密的方案有许多种,本人将实现其中一种较为简单的方案,即利用混沌序列对图像各点的像素值进行重排序,从而实现图像加密的效果。具体而言,即将混沌序列中的每个序列值与图像中的每个像素点一一对应。加密时,像素点的位置由其对应的序列值在整个序列中的相对大小决定;解密时,只要生成相同的混沌序列,然后根据混沌序列值将各像素点放回原位就好啦~

具体实现过程详见相关文件中的源代码。

使用方式

在cmd窗口运行的命令格式如下图所示:

其实-m代表选择加密/解密,-k代表密钥,-i则代表待处理的图像。

测试效果如下:

更多

代码截止2018-09-05测试无误。

建议使用PNG格式的图像进行测试,否则会存在图像解密后失真的现象。

Charles的皮卡丘

Pikachu~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180905B1X3W200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券