使用随机数产生的初始化向量才能达到语义安全(散列函数与消息验证码也有相同要求),并让攻击者难以对同一把密钥的密文进行破解

初始化向量的值依密码算法而不同。最基本的要求是“唯一性”,也就是说同一把密钥不重复使用同一个初始化向量。这个特性无论在区块加密或流加密中都非常重要。

示例: 对明文P做流加密,转换成密文C。所使用的是流密钥K,它来自密钥与初始化向量。我们可以得到等式:C = P xor K。假如攻击者得知密文C1与C2来自同一把密钥与初使向量。那么攻击者就能通过底下公式得到明文P1与P2:

C1 xor C2 = (P1 xor K) xor (P2 xor K) = P1 xor P2.

加密算法IV的作用的更多相关文章

  1. DES的几种填补方式

    DES的几种填补方式 DES是对64位数据的加密算法,如数据位数不足64位的倍数,需要填充,补充到64位的倍数.   NoPadding    API或算法本身不对数据进行处理,加密数据由加密双方约定 ...

  2. 前端aes解密实战小结

    很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...

  3. openssl详解

    openssl详解 摘自:https://blog.csdn.net/liguangxianbin/article/details/79665100 目录 目录 第一章 前言 第二章 证书 第三章 加 ...

  4. 阿里Android开发手册正式版一览

    新年伊始,春意盎然之际,阿里巴巴在2月28日再度为工程师们送上了一份重磅开春好礼:<阿里巴巴Android开发手册>. 该手册长达66页,是阿里巴巴集团各大 Android 开发团队的集体 ...

  5. des 加密解密工具类

    最近在做des的双对称加密解密,特此记录一下. des对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码 ...

  6. 如何用Java进行3DES加密解

    原文地址: http://weavesky.com/2008/01/05/java-3des/ 最近一个合作商提出使用3DES交换数据,本来他们有现成的代码,可惜只有.net版本,我们的服务器都是Li ...

  7. des和Rijndael加密

    ------------IV的作用: 为了保证数据的安全,.NET基类库中提供的私钥算法类使用称作密码块链(CBC,Cipher Block Chaining)的链模式,算法使用一个密钥和一个初始化向 ...

  8. ecshop的aes加密(封装)

    从一家做shopex,ecstore的公司到一家做b2b的ecshop的公司...来了就要实战,其他的不说了,先来了解什么是php的aes加密吧? aes(高级加密标准),AES的区块长度固定为128 ...

  9. Python内置模块:random,os,sys,和加密模块hashlib

    random import random    # 导入模块 随机数 import random # 内置的 print(random.random()) #0-1 之间随机小数(18位有效数字) p ...

随机推荐

  1. CSAPP阅读笔记-变长栈帧,缓冲区溢出攻击-来自第三章3.10的笔记-P192-P204

    一.几个关于指针的小知识点: 1.  malloc是在堆上动态分配内存,返回的是void *,使用时会配合显式/隐式类型转换,用完后需要用free手动释放. alloca是标准库函数,可以在栈上分配任 ...

  2. 2019.04.19 读书笔记 比较File.OpenRead()和File.ReadAllBytes()的差异

    最近涉及到流的获取与转化,终于要还流的债了. 百度了一下,看到这样的两条回复,于是好奇心,决定看看两种写法的源码差异. 先来看看OpenRead() public static FileStream ...

  3. webpack+vue解决前端跨域问题

    webpack 跨域,在这里整理了一下逻辑首先不是为了axios库来进行跨域的,而是直接通过node的webpack设置代理来完成跨域的. 先贴一条自己请求的连接 1.设置自定义域: 在config目 ...

  4. Vector bit-select and part-select addressing verilog片选写法

    大端 m m[ a +: b ] == m[ (a+b-1) : a ] m[ a -: b ] == m[ a : (a-b+1) ] 小端 n n[ a +: b ] == n[ a : (a+b ...

  5. 【ExtJS】 布局Layout

    布局用于定义容器如何组织内部子元素和控制子元素的大小. ExtJS中有两种类型的布局:Container容器类布局与Component组件类布局. Containter容器类布局:负责容器内容Extj ...

  6. a 标签的跳转属性

     a 标签中调用js的几种方法   我们常用的在a标签中有点击事件:1. a href="JavaScript:js_method();" 这是我们平台上常用的方法,但是这种方法在 ...

  7. git 检查是否有commit到本地但还没push的代码

    使用 git status 命令可以得到以下结果 $ git status On branch dev_getTicketCnt Your branch is ahead of 'origin/mas ...

  8. Firebird DatabaseAccess WireCrypt DB2Provider

    目前最新的Firebird版本是:3.0.3 使用过程的一些必经问题,嵌入式的模式就不再说了. 在使用标准Server版时,第一个要考虑的就是数据库文件的存放位置,默认配置放在windows/syst ...

  9. linux免密登录ssh验证配置方法及常见错误解决

    目标:从服务器A免密登录服务器B [配置方法] 1.在服务器A生成密钥文件,直接使用以下命令: ssh-keygen 中间遇到输入内容一路回车即可,完成后会在 ~/.ssh 目录下生成两个文件:id_ ...

  10. Filter---javaweb的过滤器

    1.Filter是什么? Filter的基本功能是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理的前后实现一些特殊的功能. 在Servlet API中定义了三个 ...