欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科普文章

BlowFish

科普小知识2022-12-14 21:24:43
...

BlowFish是一个小巧易用的文件加密工具,采用新型的Blowfish加密算法,可以用来保护你的一些重要文件和隐私文件。文件也可以快速加密和解码直接从Windows资源管理器使用右键上下文菜单进行快速加密保护。

软件名称:BlowFish

软件语言:简体中文

软件类别:加密工具

软件授权:免费软件

应用平台:Win2003,WinXP,Vista,Win7,Win8

1、软件简介


BlowFish

BlowFish加密解密器是一款运用BlowFish加密算法对各种文本数据进行加密的软件。你可以使用该软件对64Bit长度的字符串进行加密。同时,你也可以用软件对BlowFish密文进行解密。你只需要输入需要加密的文字或解密的密文,选择工作模式,即可实现明文加密、密文解密。

Blowfish软件支持的功能主要有加密(Encrypt)、解密(Decrypt)、消除数据(Wipe),在档案加密的同时可以设定开启密码,也能压缩数据,或者更改文件名,更改之后的档名通常以无意义的随机数文件名为主,若不更改文件名则加密之后会改以扩展名bfa来储存,因此不容易被人察觉,要解密时只要输入密码并且使用本软件选择相同的算法即可。

2、软件算法介绍

1、BlowFish算法用来加密64Bit长度的字符串。

2、BlowFish算法使用两个“盒”——ungignedlongpbox和unsignedlongsbox。

3、BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。

3、功能特色

1、支持CCB、CBC、CFB三种工作模式。

2、可以快速的清空明文、密文。

3、操作简单,可以快速加密,逆向解密。

4、加密算法

blowfish加密算法是一种分组对称加密算法,具有快速、安全、简单、紧凑等优点。

自从32位处理器诞生后,blowfish加密算法在加密速度上就超越了DES加密算法,引起了人们的关注。blowfish加密算法没有注册专利,不需要授权,可以免费使用。正是由于这些特点,它广泛应用于很多产品中。那么我们今天就来给大家介绍一下blowfish加密算法。

加密算法原理

blowfish加密算法是一种对称的分组加密算法,每次加密一个64位分组,使用32位~448位的可变长度密钥,应用于内部加密。加密过程分为两个阶段:密钥预处理和信息加密。

blowfish加密算法中使用两个盒key—pbox和key—sbox,以及一个核心的加密函数blowfish—encrypt()。这两个盒所占存储空间为(18×32+4×256×32)字节,即4186字节。加密函数blowfish—encrypt()输入64位明文,输出64位密文。

密钥预处理

blowfish加密算法的原密钥pbox和sbox是固定的,初始化方法是用π的小数部分,按每32位一次分配给pbox和sbox,即:

pbox一0x243f6a88;

pbox一0x85a308d3;

sbox一0x578fdfe3;

sbox一0x3ac372e6;

当加密一个信息时,需要自己选择一个key(64~448位),用这个key变换sbox和pbox,得到加密信息所用的key_pbox和key_sbox。

信息加密

信息加密采用加密函数blowfish—encrypt()。blowfish加密算法是一个16层的feistel网,加密一个64位分组需要16次的迭代,在迭代中使用key_pbox和key_sbox,最后得出64位的密文。由于计算中仅使用模232加、“异或”以及用key_sbox替代等操作,因此实现起来速度非常快。blowfish加密算法中有以下两个基本运算:

加法:字的模232相加,记为“+”。

按位“异或”:记为“⊕”。

信息解密

用blowfish加密算法解密,同样也需要两个过程:

1、密钥预处理,与加密时相同;

2、信息解密,把信息加密过程中的key_pbox逆序使用即可。

值得注意的是:与大多数分组密码不同,blowfish中解密顺序和加密顺序是相同的,而不能倒过来。

解密过程伪代码如下(i表示迭代次数):

对于i=1至16

xl=xl—p^[i]

xr=f(xl)^xr

交换xl和xr(最后一轮取消交换运算)

xr=xr^p

xl=xr^p

重新合并xl和xr,得到64位的明文。

算法性能分析

blowfish设计的基本原理既容易理解又实现简单。与其他算法不同,子密钥的生成都是由加密函数blowfish—encrypt()完成,每个子密钥都会受到密钥位的影响,这 使得密钥和数据完全混合在一起,对密钥的分析显得十分困难。其中的f函数给fesistel网络一个很好的雪崩效应。

blowfish加密算法的另一个特点是在每一轮中同时对两部分文件加密,增加了密码的强度。blowfish加密算法用c语言和汇编实现起来都很方便,每个操作均为xor、mov、add。schneier将该算法与其他算法的执行时间进行比较。到目前为止,blowfish加密算法法的安全性还未受到挑战。

上一篇:金寨县

下一篇:BabelMap

推荐阅读