鸣人出场集数:关于模式和初始化向量IV
来源:百度文库 编辑:九乡新闻网 时间:2024/10/05 22:39:33
以下内容摘自其他资料。 分组密码每次加密一个数据分组,这个分组的位数可以是随意的,一般选择64或者128位。另一方面,流加密程序每次可以加密或解密一个字节的数据,这就使它比流加密的应用程序更为有用。 ECB(Electronic Code Book:电码本) ECB是最简单的模式,同样的明文分组总是加密成相同的密文分组。这对于发送单一的块数据来说是非常好的,如密钥。但对执行一个加密的信息流来说不是很好,因为如果相同的明文多次发送以后,同样的密文也会被多次发送。 ECB最大的弱点是对每一个块用相同的方式进行加密。如果我们的密钥或者数据不断发生变化,ECB是完全安全的。但是如果类似的块经过同样的密钥加密发出以后,攻击者可能获得一些我们并不想让别人知道的信息。
CBC(Cipher Block Chaining:密码分组链接)
CBC模式改变了加密方式,同样的明文分组不一定加密或解密同样的密文块,因此解决了ECB存在的主要问题。CBC使用前一分组的信息加密当前分组。因此和ECB模式大不相同。这个方法依然存在问题,那就是相同的信息仍然加密成相同的密文,因为所有的分组是同时变成密文分组的。为了解决这个问题,我们引入一个Initialization Vector(初始化向量),也就是前不久有人问到的IV问题。IV仅仅是一个初始化加密程序的随机数。它无需秘密保存,但队每一个信息来说它都是不同的,通过这个方式,即使有两条相同的信息,只要他们有不同的IV,那么他们加密后的密文也是不同的。从这个意义上来说,初始化向量无疑就和口令加密过程中使用的掩值是一样的。
CBC很适合文本传输,但它每一次都需要传送一个完整的数据块,一般选8个字符。 CFB(Cipher FeedBack:密码反馈)
CFB的工作方式与CBC类似,但它可以执行更小的数据块,典型的有8位,这非常适合加密像聊天对话这样的信息,因为每次可以发送单一的字节数据块。
和CBC一样,CFB也需要一个IV,且相同及钥发送的每条信息的IV都必须是唯一的。 OFB(Output FeedBack:输出反馈)
OFB除了在传输中能给数据提供更好的保护,防止数据丢失外,其他和CFB类似。密文中一位出错,也只造成明文中的一位出错,其他的方式会造成整个块丢失。
和CBC以及CFB一样,OFB也需要一个IV。 IV的产生方法: java---> SecureRandom random = new SecureRandom(); byte[] iv = new byte[8]; random.nextBytes(iv); c#---> RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); //Random Numeric Generator
byte[] randBytes= new byte[8]; rand.GetBytes(randBytes);
IV:初始化向量
MSDN:基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个未使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流内有重复的块,那么在密文流内也会有重复的块。如果未经授权的用户知道有关明文块的结构的所有信息,就可以使用该信息解密已知的密文块并有可能获得您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。
优点:1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的 标准。缺点:1.不利于并行计算;2.误差传递;3.需要初始化向量IV
CBC(Cipher Block Chaining:密码分组链接)
CBC模式改变了加密方式,同样的明文分组不一定加密或解密同样的密文块,因此解决了ECB存在的主要问题。CBC使用前一分组的信息加密当前分组。因此和ECB模式大不相同。这个方法依然存在问题,那就是相同的信息仍然加密成相同的密文,因为所有的分组是同时变成密文分组的。为了解决这个问题,我们引入一个Initialization Vector(初始化向量),也就是前不久有人问到的IV问题。IV仅仅是一个初始化加密程序的随机数。它无需秘密保存,但队每一个信息来说它都是不同的,通过这个方式,即使有两条相同的信息,只要他们有不同的IV,那么他们加密后的密文也是不同的。从这个意义上来说,初始化向量无疑就和口令加密过程中使用的掩值是一样的。
CBC很适合文本传输,但它每一次都需要传送一个完整的数据块,一般选8个字符。 CFB(Cipher FeedBack:密码反馈)
CFB的工作方式与CBC类似,但它可以执行更小的数据块,典型的有8位,这非常适合加密像聊天对话这样的信息,因为每次可以发送单一的字节数据块。
和CBC一样,CFB也需要一个IV,且相同及钥发送的每条信息的IV都必须是唯一的。 OFB(Output FeedBack:输出反馈)
OFB除了在传输中能给数据提供更好的保护,防止数据丢失外,其他和CFB类似。密文中一位出错,也只造成明文中的一位出错,其他的方式会造成整个块丢失。
和CBC以及CFB一样,OFB也需要一个IV。 IV的产生方法: java---> SecureRandom random = new SecureRandom(); byte[] iv = new byte[8]; random.nextBytes(iv); c#---> RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); //Random Numeric Generator
byte[] randBytes= new byte[8]; rand.GetBytes(randBytes);
IV:初始化向量
MSDN:基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个未使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流内有重复的块,那么在密文流内也会有重复的块。如果未经授权的用户知道有关明文块的结构的所有信息,就可以使用该信息解密已知的密文块并有可能获得您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。
优点:1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的 标准。缺点:1.不利于并行计算;2.误差传递;3.需要初始化向量IV
关于模式和初始化向量IV
关于gcc全局变量初始化
解析Java类和对象的初始化过程
自己初始化307车窗、钥匙和节气门 - Qzone日志
天籁防盗系统 (NATS)钥匙的初始化和注册
平面向量
向量风采.
关于word修订模式
word初始化
关于模式与非模式对话框-new
第五项修炼中关于自我超越,心智模式和共同愿景的解释 k
ARM的固件和bootloader,STANDSTONE固件程序,OS初始化
08款 欧蓝德发动机的怠速学习程序、初始化方法和节气门控制伺服
关于模式的其他说法
Vector向量知识
支持向量机
[转载]向量的旋转
海尔理念和模式
实模式和保护模式2
极速模式和兼容模式
奇门遁甲(古本) Iv
《刑事侦缉档案IV 》
关于计算命令中的“相加”和“减去”模式以及在精确选择颜色选区上的应用
关于模式与非模式对话框--致深见解