分组密码与流密码

密码算法可以分为分组密码和流密码两种。

分组密码(block cipher是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组(block)。此外,一个分组的比特数就称为分组长度(block length)。

例如,DES和三重DES的分组长度都是64比特。这些密码算法一次只能加密64比特的明文,并生成64比特的密文。AES的分组长度可以从128比特、192比特和256比特中进行选择。当选择128比特的分组长度时,AES一次可加密128比特的明文,并生成128比特的密文。

流密码(stream cipher是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特或32比特等为单位进行加密和解密。

分组密码处理完一个分组就结束了,因此不需要通过内部状态来记录加密的进度;相对地,流密码是对一串数据流进行连续处理,因此需要保存内部状态。

时间: 2024-10-12 08:02:54

分组密码与流密码的相关文章

分组密码的工作模式

分组密码工作模式的应用背景:多次使用相同的密钥对多个分组加密,会引发许多安全问题.为了应对不同场合,因而需要开发出不同的工作模式来增强密码算法的安全性. 1.ECB(Electronic Code Book) 特别适合数据较少的情况,对于很长的信息或者具有特定结构的信息,其大量重复的信息或固定的字符开头将给密码分析者提供大量的已知明密文对.若明文不是完整的分组,ECB需要进行填充. 2.CBC(Cipher Block Chaining) 由于加密算法的每次输入和本明文组没有固定的关系,因此就算

密码学基础知识(四)分组密码

首先再说说密码体制那点事,密码体制按密钥分为两派,对称和公钥,不过也可以分为分组密码和流密码(序列密码).刚才看了一眼,发现忘把图片传上来了,下次有功夫的. 说句废话,分组密码主要采用混淆原则和扩散原则来抵抗攻击者对该密码体制的统计分析. 那分组密码是什么东西呢? 通俗讲就是将明文分块,然后分块加密. 分组密码设计的准则: ①分组长度 分组长度越长意味着安全性越高,但是会影响加密解密的速度.1977年之后,由于计算速度和分析技术的提高,建议使用分组长度128位. ②密钥长度 密钥越长同样意味着安

数据安全基础知识总结

1.数据安全 01 数据安全的原则 1)在网络上"不允许"传输用户隐私数据的"明文" 2.)在本地"不允许"保存用户隐私数据的"明文" 1.png 2.Base64 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字符:A~Z a~z 0~9 + / = 对文件进行base64编

分组加密的工作模式

分组加密算法把数据分成固定长度的分组处理,算法的输入长度为一个分组的长度.为了改善安全性,适应不同的应用环境,分组加密有多种不同的工作模式.最常见的四种工作模式是:ECB,CBC,CFB,OFB. ECB模式, ECB模式是最简单的基本模式.在密钥的控制下,把一个分组长度的输入,转换为一个分组长度的输出.一个分组算法设计出来就是ECB模式的.这一模式用于实际应用加密的问题是,容易遭受字典攻击.ECB模式下,只要密钥确定了,相同明文一定输出相同密文.这一特性如同谍战片里的替换密码本,一字对一字.这

DES加密模式详解

DES加密模式详解 http://www.cnblogs.com/Lawson/archive/2012/05/20/2510781.html http://www.blogjava.net/wayne/archive/2011/05/23/350879.html 加密算法常见的有ECB模式和CBC模式: ECB模式:电子密本方式,这是JAVA封装的DES算法的默认模式,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,则补足8个字节(注意:这里

iOS核心笔记——网络编程-网络安全

1.数据安全: 1.01 攻城利器:Charles(公司中一般都使用该工具来抓包,并做网络测试)2.注意:Charles在使用中的乱码问题,可以显示包内容,然后打开info.plist文件,找到java目录下面的VMOptions,在后面添加一项:-Dfile.encoding=UTF-83.02 数据安全的原则4. 1)在网络上"不允许"传输用户隐私数据的"明文"5. 2.)在本地"不允许"保存用户隐私数据的"明文"6.03

Java密码学原型算法实现——第二部分:单钥加密算法

题注 本部分为单钥加密算法的实现.单钥加密体制是密码学加密中的核心密码学原型之一,很早很早前人类就已经开始了单钥密码学体制的研究.本部分的所有实现基于Bouncy Castle库,其地址详见我上一篇博客<Java密码学原型算法实现--第一部分:标准Hash算法>. 不得不说,相比Java JDK的API,Bouncy Castle提供的库函数封装更为科学,实现更为方便.实际上,Bouncy Castle根据单钥体制的不同算法以及不同工作模式进行了不同的封装,只要实现了一种模式或者一种加密算法,

信息安全技术及应用 常规加密技术

一.密码技术与常规加密概述 1.1 密码系统 密码学:包含密码编码学和密码分析学两部分内容.前者是研究如何通过编码来保证信息的机密性,后者则研究如何破译密码. 一般加密模型 密码系统的主要功能:完成信息的加密变换和解密变换. 明文:加密变换前的原始信息. 加密算法:加密变换时使用的算法. 密文:经过加密变换后的信息. 解密算法:解密变换时使用的算法,是加密算法的逆过程.加密和解密算法是相关的. 密钥(Key):在加密和解密变换过程中引入一个相同或两个不同但相关的参数,该参数称为密钥.分为加密密钥

DES加解密算法Qt实现

算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为bengold1979的网友表示感谢!本文是对DES算法代码一文代码的具体描述.该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 图片及部分解析来自 http://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E5%8A%A0%E5%AF%86%E6%A8%9