Blowfish加密算法

Blowfish加密算法概述

Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。32位处理器诞生后,Blowfish算法因其在加密速度上超越了DES而引起人们的关注。Blowfish算法具有加密速度快、紧凑、密钥长度可变、可免费使用等特点,已被广泛使用于众多加密软件。

百度百科链接:https://baike.baidu.com/item/Blowfish算法/2685972?fr=aladdin(狗头保命)

听我bb

Blowfish是一种对称加密算法同时也是分组加密算法,算法基于Feistel网络

算法有俩部分组成:密钥扩展部和数据加密

算法核心在于子密钥生成,算法中使用了大量的子密钥,而子密钥又依赖于用户密钥。

密钥扩展部分将最长最长为448位的密钥转化成共4168字节长度的子密钥数组

原理

子密钥扩展
子密钥在算法加密后产生,…等等。。。(请勿当真)

子密钥在算法加密前就被计算出来了,子密钥是什么东西呢?

好吃的.。。。。肯定不是

子密钥即p数组和s盒

例如:P1、P2、P3直到P18

4个1024个32bit的s盒

(S盒的作用是淆密钥与密文之间的关系,其直接决定了密码算法的好坏。S盒用在分组密码算法中,是唯一的非线性结构)

加解密原理:

要加密一个信息,想要自己选择一个key,用这个key对pbox和sbox做负距离接触(变换),得下一步到key-box及key-sbox

简单说是用P1和密钥的前32位进行与运算,P2和后32位进行与运算,依此类推直到密钥的所有位

解密也是差不多,在解密方使用key后生成一队key-box及key-sbox后对同一条密文进行解密。

其他链接

哔哩哔哩
会同步该博客发一些自制视频

微博
用的比较少

Github
一些源代码

知乎
不懂的我一般会在上面提问

简书
同步该博客内容相同

CSDN
同步该博客内容相同
博客首页

个人联系方式

QQ:2446264712

微信:X15019749137

邮箱:[email protected]

有意添加请备注 啊啊啊啊

发布了20 篇原创文章 · 获赞 13 · 访问量 343

猜你喜欢

转载自blog.csdn.net/Cloud_ink/article/details/105083428