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盒用在分组密码算法中,是唯一的非线性结构)
加解密原理:
要加密