搜档网
当前位置:搜档网 › 分析比较分组密码AES-CFB 或 OFB与流密码RC4的特点

分析比较分组密码AES-CFB 或 OFB与流密码RC4的特点

作业二、分析比较分组密码AES-CFB 或 OFB与流密码RC4的特点

一、RC4算法介绍

RC4是一种对称密码算法,它属于对称密码算法中的序列密码(streamcipher,也称为流密码),它是可变密钥长度,面向字节操作的流密码。

RC4是流密码streamcipher中的一种,为序列密码。RC4加密算法是Ron Rivest在1987年设计出的密钥长度可变的加密算法簇。起初该算法是商业机密,直到1994年,它才公诸于众。由于RC4具有算法简单,运算速度快,软硬件实现都十分容易等优点,

使其在一些协议和标准里得到了广泛应用。

流密码也属于对称密码,但与分组加密算法不同的是,流密码不对明文数据进行分组,而是用密钥生成与明文一样长短的密码流对明文进行加密,加解密使用相同的密钥。

RC4算法特点:

(1)、算法简洁易于软件实现,加密速度快,安全性比较高;

(2)、密钥长度可变,一般用256个字节。

对称密码的工作方式有四种:电子密码本(ECB, electronic codebook)方式、密码分组链接(CBC, cipherblock chaining)方式、密文反馈(CFB, cipher-feedback)方式、输出反馈(OFB, output-feedback)方式。

RC4算法采用的是输出反馈工作方式,所以可以用一个

短的密钥产生一个相对较长的密钥序列。

OFB方式的最大的优点是消息如果发生错误(这里指的是

消息的某一位发生了改变,而不是消息的某一位丢失),错误不会传

递到产生的密钥序列上;缺点是对插入攻击很敏感,并且对同步的要求比较高。

RC4的执行速度相当快,它大约是分块密码算法DES的5倍,是3DES的15倍,且比高级加密算法AES也快很多。RC4算法简单,实现容易。RC4的安全保证主要在于输入密钥的产生途径,只要在这方面不出现漏洞,采用128bit的密钥是非常安全的。

RC4算法加密流程:包括密钥调度算法KSA和伪随机子密码生成算法PRGA两大部分(以密钥长度为256个字节为例)。

密钥调度算法:首先初始化状态矢量S,矢量S中元素的值被按升序从0到255排列,即S[0]=00, S[1]=1, …, S[255]=255.同时建立一个临时矢量T,如果密钥K的长度为256字节,则将K 赋给T。否则,若密钥长度为keylen字节,则将K的值赋给T的前keylen个元素,并循环重复用K的值赋给T剩下的元素,直到T的所有元素都被赋值。这些预操作可概括如下:

/*初始化*/

fori = 0 to 255 do

S[i]= i;

T[i]= K[i mod keylen];

然后用T产生S的初始置换,从S[0]到S[255],对每个S[i],根据由T[i]确定的方案,将S[i]置换为S中的另一字节: /*S的初始序列*/

j= 0

fori = 0 to 255 do

j= (j + S[i] + T[i]) mod 256

swap(S[i],S[j]);

因为对S的操作仅是交换,所以惟一的改变就是顺序的改变。S

仍然包含从0到255的所有元素,在初始化的过程中,密钥的主要

功能是将S-box搅乱,代码中的变量i确保S-box的每个元素都得

到处理,变量j保证S-box的搅乱是随机的。因此不同的S-box在

经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,

并且该序列是随机的。

伪随机序列生成算法:矢量S一旦完成初始化,输入密钥就不

再被使用。密钥流的生成是从S[0]到S[255],对每个S[i],根据

当前S的值,将S[i]与S中的另一字节置换。当S[255]完成置换

后,操作继续重复,从S[0]开始:

/*密钥流的产生*/

i,j = 0;

while(true)

i= (i + 1) mod 256;

j= (j + S[i]) mod 256;

swap(S[i],S[j]);

t= (S[i] + s[j]) mod 256;

k= S[t]

伪随机序列一旦生成,就得到子密码sub_k,把子密钥和

明文进行异或运算,得到密文。解密过程也完全相同。加密中,只

需将k的值与下一明文字节异或;相反解密中,将k的值与下一密

文字节异或就可以还原出明文信息。算法描述为:

for(i = 0; i < textlength; i ++)

ciphertext[i]=keystream[i]^plaintext[i]

RC4算法存在的问题:因为RC4算法具有实现简单,加密速度快,对硬件资源耗费低等优点,使其跻身于轻量级加密算法的行列。但是其简单的算法结构也容易遭到破解攻击,RC4算法的加密强度完全取决于密钥,即伪随机序列生成,而真正的随机序列是不可能实现,只能实现伪随机。这就不可避免出现密钥的重复。RC4算法不管是加密还是解密,都只进行了异或运算,这就意味着,一旦子密钥序列出现了重复,密文就极有可能被破解。

具体破解过程如下:若明文、密钥是任意长的字节,可以用重合码计数法(counting coincidence)找出密钥长度。把密文进行各种字节的位移,并与原密文进行异或运算,统计那些相同的字节。如果位移是密钥长度的倍数,那么超过60%的字节将是相同的;如果不是,则至多只有0.4%的字节是相同的,这叫做重合指数(index of coincidence)。找出密钥长度倍数的最小位移,按此长度移到密文,并且和自身异或。由于明文每字节有1.3位的实际信息,因此有足够的冗余度去确定位移的解密。对所有的密钥,输出密钥流的前几个字节不是随机的,因此极有可能会泄露密钥的信息。如果一个长期使用的密钥与一个随机数串联产生RC4算法密钥,那么可以通过分析大量由该密钥加密的密文得到这个长期使用的密钥。解决该问题的办法是:抛弃密钥流最初的那部分数据。

RC4is a stream cipher with variable key

length. Typically, 128 bit (16 byte) keys are used for strong encryption, butshorter insecure key sizes have been widely used due to export restrictions.

1.RC4_set_key:sets up theB B using the B bytes long key atB.

2.RC4: encrypts or decrypts the Bbytes of data at B using B and places the result

atB. Repeated RC4() callswith the same B yield a continuous key stream. Since RC4 is a streamcipher (the input is XORed with a pseudo-random key stream to produce theoutput), decryption uses the same function calls as encryption.

以下是测试代码:

cryptotest.h:

[cpp]view plaincopy

1.#ifndef _CRYPTOTEST_H_

2.#define _CRYPTOTEST_H_

3.

4.#include

5.

https://www.sodocs.net/doc/d312850334.html,ing namespace std;

7.

8.typedef enum{

9.GENERAL = 0,

10.ECB,

11.CBC,

12.CFB,

13.OFB,

14.TRIPLE_ECB,

15.TRIPLE_CBC

16.}CRYPTO_MODE;

17.

18.string DES_Encrypt(const string cleartext, const string key, CRYPTO_MODE mode

);

19.string DES_Decrypt(const string ciphertext, const string key, CRYPTO_MODE mod

e);

20.

21.string RC4_Encrypt(const string cleartext, const string key);

22.string RC4_Decrypt(const string ciphertext, const string key);

23.

24.#endif //_CRYPTOTEST_H_

rc4test.cpp:

[cpp]view plaincopy

1.#include "stdafx.h"

2.#include

3.#include

4.#include

5.#include

6.#include "cryptotest.h"

7.

https://www.sodocs.net/doc/d312850334.html,ing namespace std;

9.

10.string RC4_Encrypt(const string cleartext, const string key)

11.{

12.RC4_KEY rc4key;

13.unsigned char* tmp = new unsigned char[cleartext.length() + 1];

14.memset(tmp, 0, cleartext.length() + 1);

15.

16.RC4_set_key(&rc4key, key.length(), (const unsigned char*)key.c_str());

17.RC4(&rc4key, cleartext.length(), (const unsigned char*)cleartext.c_str(), tmp);

18.

19.string str = (char*)tmp;

20.

21.delete[] tmp;

22.

23.return str;

24.}

25.

26.string RC4_Decrypt(const string ciphertext, const string key)

27.{

28.RC4_KEY rc4key;

29.unsigned char* tmp = new unsigned char[ciphertext.length() + 1];

30.memset(tmp, 0, ciphertext.length() + 1);

31.

32.RC4_set_key(&rc4key, key.length(), (const unsigned char*)key.c_str());

33.RC4(&rc4key, ciphertext.length(), (const unsigned char*)ciphertext.c_str( ), tmp);

34.

35.string str = (char*)tmp;

36.

37.delete[] tmp;

38.

39.return str;

40.}

main.cpp:

[cpp]view plaincopy

1.#include "stdafx.h"

2.#include "cryptotest.h"

3.#include "TestMemory.h"

4.#include

5.#include

6.

https://www.sodocs.net/doc/d312850334.html,ing namespace std;

8.

9.void test_RC4()

10.{

11.string cleartext = "中国北京12345$abcde%ABCDE@!!!";

12.string ciphertext = "";

13.string key = "beijingchina1234567890ABCDEFGH!!!";

14.

15.ciphertext = RC4_Encrypt(cleartext, key);

16.string decrypt = RC4_Decrypt(ciphertext, key);

17.

18.cout<<"src cleartext: "<

19.cout<<"genarate ciphertext: "<

20.cout<<"src ciphertext: "<

21.cout<<"genarate cleartext: "<

22.

23.if(strcmp(cleartext.c_str(), decrypt.c_str()) == 0)

24.cout<<"RC4 crypto ok!!!"<

25.else

26.cout<<"RC4 crypto error!!!"<

27.}

二、分组密码AES的模式

分组密码是最基本的密码技术之一, 其处理消息的长度是固定的, 如 DES为 64比特、AES 为 128比特, 但是在实际中需要处理

的消息通常是任意长的 ,且要求密文尽量不确定 ,而分组密码自身

不能做到 ,因此,引出了如何利用分组密码处理任意长度消息的问题. 解决这个问题的技术就是分组密码工作模式.

分组密码工作模式的设计理念

为了阐述分组密码工作模式的设计理念,我们首先介绍如何评价

一个分组密码工作模式. 工作模式的评价指标有三个方面 : 安全

性、性能、模式 /执行特点.

安全性评价指标包括: 抵抗现有攻击的能力 ; 可证明安全性,在合

理的假设下 ,是否有安全性的证明结果 ; 和类似模式安全性的比

较 , 和现在用的模式(如 CBC)的比较; 随机性 ,输出的统计特性 ; 是否拥有合理的数学背景等.性能评价指标包括计算的有效性、空间

需求、可并行性和预处理能力等.模式 /执行特点评价指标包括可

提供的密码服务、灵活性、错误特性、模式本身抗错性和简单性等.

安全性是所有评价指标中最重要的 , 因为其它性能的评估相对

容易、相对直观. 安全性评价中的第一条类似于分组密码中目前流

行的做法 ,评价的是工作模式的应用安全性 ,有时和具体分组密码

有关,分析模式在实际应用中对强力攻击、中间相遇攻击、潜信道攻

击等的抵抗力. 安全性中的第二条评价的是模式的理论安全性,与具

体分组密码无关 ; 通常假定分组密码是“理想”的 ,研究工作模

式自身的安全性. 模式的理论安全性是设计者应当考虑的首要问题, 也就是在假定好的基本模块存在的条件下,如何设计各种性能的工作

模式, 比如用于保密的工作模式、用于认证的 MAC、H ash等. 理

论安全性是目前对设计工作模式最基本的要求, 它保证在工作模式

这一层没有安全隐患,没有降低分组密码的安全性.

典型分组密码工作模式

(1)ECB模式

加密变换为 C i = EK (Pi ),

解密变换为 P i = EK-1 (Ci ) .

ECB模式的优点是可并行运算 , 速度快 , 易于标准化. 缺点是分

组加密不能隐蔽数据模式 ,即相同的明文组蕴含着相同的密文组;

不能抵抗组的重放、嵌入、删除等攻击; 加密长度只能是分组的倍数. 许多人建议 ECB模式不应该包含在 AES的标准中 ,因为此模式

对长度多于一块的消息不可用.

(2)OFB模式

加密变换为 Z i = EK (Z i - 1 ), C i =Pi Z i , Z0为

初始向量.

解密变换为 Z i = EK (Z i - 1 ), P i =Ci Z i , Z0为

初始向量.

OFB模式的主要优点是错误传播小,密文中的 1比特错误只导致明文

中的 1比特错误; 可以预处理 ; 消息长度是任意的 ; 可在线处理(随时处理明文 )等. 缺点是系统要求通信双方必须同步,否则难于

解密.

(3)CFB模式

加密变换为 Ci =EK (C i - 1 ) Pi, C 0 为初始向量.

解密变换为 Pi =EK (C i - 1 ) Ci, C 0 为初始向量.

CFB模式的主要优点是具有自同步能力 ; 可以处理任意长度的消息, 同时具有 CBC 的优点.基于CFB的相关工作有 OCFB模式、openPGP CF模式等. OCFB模式是由 Amm ar A lkassar针对 CFB的效率问题

提出的改进版 , 在保证自同步能力的前提下提高效率 ,并且是可证

明安全的. openPGP CFB是在 RFC2004描述的模式。它主要用在签

名和加密邮件,在商业加密产品中得到广泛应用.scFB模式是cFB 模式和oFB模式的混合体,作为密钥流生成器,具有自同步能力并且效率比cFB高,吸取了cFB和OFB的优点,充分利用了OFB的速度和cFB保持同步的能力。

国内外分组密码理论与技术的研究现状及发展趋势

国内外分组密码理论与技术的研究现状及发展趋势 1 引言 密码(学)技术是信息安全技术的核心,主要由密码编码技术 和密码分析技术两个分支组成。密码编码技术的主要任务是寻求产 生安全性高的有效密码算法和协议,以满足对数据和信息进行加密 或认证的要求。密码分析技术的主要任务是破译密码或伪造认证信 息,实现窃取机密信息或进行诈骗破坏活动。这两个分支既相互对 立又相互依存,正是由于这种对立统一的关系,才推动了密码学自 身的发展[6]。目前人们将密码(学)理论与技术分成了两大类, 一类是基于数学的密码理论与技术,包括分组密码、序列密码、公 钥密码、认证码、数字签名、Hash函数、身份识别、密钥管理、 PKI技术、VPN技术等等,另一类是非数学的密码理论与技术,包括 信息隐藏、量子密码、基于生物特征的识别理论与技术等。 在密码(学)技术中,数据加密技术是核心。根据数据加密所 使用的密钥特点可将数据加密技术分成两种体制,一种是基于单密 钥的对称加密体制(传统加密体制),包括分组密码与序列密码, 另一类是基于双密钥的公钥加密体制。本文主要探讨和分析分组密 码研究的现状及其发展趋势。 2 国内外分组密码研究的现状 2.1 国内外主要的分组密码 美国早在1977年就制定了本国的数据加密标准,即DES。随着 DES的出现,人们对分组密码展开了深入的研究和讨论,已有大量 的分组密码[1,6],如DES的各种变形、IDEA算法、SAFER系列算 法、RC系列算法、Skipjack算法、FEAL系列算法、REDOC系列算 法、CAST系列算法以及Khufu,Khafre,MMB,3- WAY,TEA,MacGuffin,SHARK,BEAR,LION,CA.1.1,CRAB,Blowfish,GOST,SQUA 算法和AES15种候选算法(第一轮),另有NESSIE17种候选算法 (第一轮)等。 2.2 分组密码的分析 在分组密码设计技术不断发展的同时,分组密码分析技术也得 到了空前的发展。有很多分组密码分析技术被开发出来,如强力攻 击(穷尽密钥搜索攻击、字典攻击、查表攻击、时间存储权衡攻 击)、差分密码分析、差分密码分析的推广(截段差分密码分析、 高阶差分密码分析、不可能差分密码分析)、线性密码分析、线性 密码分析的推广(多重线性密码分析、非线性密码分析、划分密码 分析)、差分线性密码分析、插值攻击、密钥相关攻击、能量分 析、错误攻击、定时攻击等等。 其中,穷尽密钥搜索攻击是一种与计算技术密不可分的补素密码分 析技术,也是最常用的一种密码分析技术。通过这种技术,可以破 译DES的算法。在DES最初公布的时候,人们就认为这种算法的密钥 太短(仅为56bit),抵抗不住穷尽密钥搜索的攻击。因此,1997 年1月28日,美国colorado的程序员Verser从1997年3月13日起, 在Internet上数万名志愿者的协同下,用96天的时间,于1997年6

现代密码学-第3章分组密码习题与解答-20091206

第3章 分组密码 习题及参考答案 1. 设DES 算法中,明文M 和密钥K 分别为: M =0011 1000 1100 0100 1011 1000 0100 0011 1101 0101 0010 0011 1001 1110 0101 1110 K =1010 1001 0011 0101 1010 1100 1001 1011 1001 1101 0011 1110 1101 0101 1100 0011 求L 1和R 2。 解: 初始变换IP : 1001 1010 1101 0101 1101 0010 0011 1000 0101 0110 0010 0101 1100 0101 1110 1000 则,0L =1001 1010 1101 0101 1101 0010 0011 1000 0R =0101 0110 0010 0101 1100 0101 1110 1000 K 去校验位得: 0C =1101 0111 1100 0000 0010 0111 0111 0D =1010 1000 0111 0110 0011 0101 0010 循环左移一位:1C =1010 1111 1000 0000 0100 1110 1111 1D =0101 0000 1110 1100 0110 1010 0101 经过置换选择得到:1K =0000 1111 0110 1000 1101 1000 1001 1010 1000 0111 0011 0001 同样可以得到:2K =0101 0101 0110 0001 1101 1101 1011 0101 0101 0000 0110 1110 1L =0R =0101 0110 0010 0101 1100 0101 1110 1000

基于3DES算法的文档加密的设计与实现

青岛农业大学 本科生毕业论文(设计) 题目基于3DES算法的文档加密的设计与实现姓名: 学院: 专业: 班级: 学号: 指导教师: 完成时间: 2013年6月10日

基于3DES算法的文档加密的设计与实现 摘要:随着社会进入信息化时代,由于互联网的开放性,网络资源的共享性、网络操作系统的漏洞、网络系统设计的缺陷、网络的开放性以及恶意攻击等等,都给网络带来了不安全的隐患,计算机和信息的安全问题将更加突出,网络和连接在网络上的信息系统面临着各种复杂的、严峻的安全威胁。因此,如何保障数据和信息的安全已成为人们关注的问题。 3DES(Triple DES) 是三重数据加密算法, 也是DES(Data Encryption Algorithm)向AES(Advanced Encryption Standard)过渡的加密算法。1999年,美国的NIST将3DES指定为过渡的加密标准。它比DES具有更高的安全性,克服了DES因密钥长度短而造成的暴力攻击。 本文对3DES数据加密算法进行了全面介绍,分析了该算法的设计思想。并且基于3DES数据加密算法,采用VS2010的开发环境,实现了对文件的加密与解密,从而为保障数据和文档的安全性提供了支持。 关键字:信息安全;加密;密码学;3DES加密算法

The design and implementation of the document encryption based on 3DES algorithm Abstract: As society into the information age, the openness of the Internet, network resource sharing, network operating system vulnerabilities, network system design flaws, network openness and malicious attacks, etc., gave network brings insecurity hidden, computer and information security issues will become more prominent, networks, and connected to the network of information systems face a variety of complex and serious security threat. Therefore, how to protect the data and information security has become an issue of concern. 3DES (Triple DES) is a triple data encryption algorithm is DES to AES encryption algorithm transition. In 1999, the U.S. NIST the 3DES encryption standards specified for the transition. It has a higher than DES security, to overcome the short key length DES caused due to violent attacks. In this paper, 3DES data encryption algorithm is fully described, analysis of the algorithm design. And based on 3DES data encryption algorithm, using. NET development techniques, to achieve the document encryption and encryption, so as to safeguard the security of data and documents provided support. The keyword: Information Security; Encryption; Cryptography; 3DES encryption algorithm

5.8 分组密码的工作模式和一般设计原理

第八节 分组密码的工作模式和一般设计原理 1

分组密码的工作模式 为什么要设计工作模式? 分组密码的工作模式是:根据不同的数据格式和安全性要求, 以一个具体的分组密码算法为基础构造一个分组密码系统的方法。分组密码的工作模式应当力求简单, 有效和易于实现。 2

1980年12月, FIPS 81标准化了为DES开发 的五种工作模式。这些工作模式适合任何分组密码。现在, AES的工作模式正在研发, 这些AES 的工作模式可能会包含以前DES的工作模式, 还 有可能包括新的工作模式。我们仅以DES为例介 绍分组密码主要的五种工作模式。 3

4直接使用DES 算法对64bit 的数据进行加密的工作模式就是ECB 模式。在这种工作模式下, 加密变换和解密变换分别为: DES ()i i k c m = i =1,2,… (4.12) 1DES ()i i k m c ?= i =1,2,… (4.13) 这里k 是DES 的种子密钥, i m 和i c 分别是第i 组明文和密文。 电码本(ECB)模式

在给定密钥下, i m有64 2种可能的取值, i c也有64 2种可能的取值, 各(i m, i c)彼此独立, 构成一个巨大的单表代替密码, 因而称其为电码本模式。 5

+=,则相应的密文ECB模式的缺点是:如果n i i m m +=,即在给定密钥k下,同一明文组总是产生同n i i c c 一密文组,这会暴露明文组的数据格式。某些明文的数据格式会使得明文组有大量的重复或较长的零串,一些重要的数据常常会在同一位置出现,特别是格式化的报头、作业号、发报时间、地点等特征都将被泄露到密文之中,使攻击者可以利用这些特征。 6

对称加密算法的设计与实现 精品

延 边 大 学 ( 二 〇 一 三 年 五 月 摘 要 本 科 毕 业 论 文 本科毕业设计 题 目:基于D E S 的对称加密算法的 设计与实现 学生姓名:周莹冰 学 院:工学院 专 业:数字媒体技术 班 级:2009级 指导教师:李永珍 副教授

随着信息时代的来临,信息的安全性变得尤为重要,而对数据进行加密是行之有效的能保证信息安全性的方法。DES算法是众多数据加密算法中的一种,在过去的几十年中在数据加密领域有着举足轻重的地位,然而随着计算机技术的发展,DES算法的安全性也被大大地降低,针对DES的暴力破解所用的时间在逐年减少,为了能使DES这种优秀的加密算法能够重新使用,本文将针对就DES的暴力破解提供一种有效的解决方案:基于DES算法迭代算法的改进,对DES的密钥长度进行了扩展。使DES的安全性得到了增强,同时相较于DES算法的改进算法3DES算法,效率上会比3DES高,安全性上也不会逊色于3DES。 关键词:DES;密钥扩展;迭代算法; Abstract

With the coming of information age, information security has become especially important, and to encrypt data is effective to ensure the security of the information. DES algorithm is one of data encryption algorithms, in the past few decades has a pivotal position in the field of data encryption. however, with the development of computer technology, the security of DES algorithm also has been greatly reduced, the time of brute force of DES has been reducing year by year, in order to make this good encryption algorithm can be used again, this article will focus on the DES of brute force to provide an effective solution: based on iterative algorithm of DES algorithm, and extended the length of DES key. To make the security of DES more enhanced, at the same time, compared with the 3 DES algorithm, the efficiency will be higher than 3 DES, and security will not inferior to 3 DES. Key word: DES; key expansion;iterative algorithm

两种基本古典密码设计与实现

实验二两种基本古典密码设计与实现 091234 谢锦仪一、实验目的: 该实验为验证性实验。 通过本实验,使学生对于两种基本的古典密码编码方法(“代替”与“移位”)产生深刻的感性认识,体验清楚二者之间的本质差异,为理解和掌握现代密码的相应知识打下良好基础。 二、实验内容: 1.设计一个周期3的多表代换并予以实现,要求:第一个表有密钥字法产生(密钥字自拟),第二个表由洗牌法产生(注意,字母a~z与数字0~25一一对应,洗牌法即相当于实验一的方法1(n=25)),第三个表由公式法产生(数学公式自拟,注意它须是Z26上的一个一一变换)。 2.设计一个周期5的16-置换移位密码并予以实现,要求:5个16-置换至少有一个是由实验一(n=15)提供的两个方法以为、自行设计的其它方法产生。 三、实验要求: 1. 上述两个古典密码的编程实现,须能对下面一段明文进行正确加密(对代 替密码,空格和标点符号保持不动;对移位密码,空格和标点符号也移位): Q is a symmetric block cipher. It is defined for a block size of 128 bits. It allows arbitrary length passwords. The design is fairly conservative. It consists of a simple substitution-permutation network. In this paper we present the cipher, its design criteria and our analysis. The design is based on both Rjindael and Serpent. It uses an 8-bit s-box from Rjindael with the linear mixing layers replaced with two Serpent style bit-slice s-boxes and a linear permutation. The combination of methods eliminates the high level structure inherent in Rjindaelwhile having better speed and avalanche characteristics than Serpent. Speedis improved over Serpent. This version 2.00 contains better analysis, editorialchanges, and an improved key scheduling algorithm. The number ofrecommended rounds is also increased. 2. 抓图显示密文(附页),不能出现明显错误。 四、实验步骤: 1、实验思路 对于代替密码,难点是大小写的转化和保持加密后大小写的不变。这里利用了专门的字符处理函数库ctype。用Tolower函数将大写转化为小写,然后转化为数字。这样才能容易的实现代替加密的过程。在密钥字算法的实现中,利用字符串处理函数的功能,在拼接比较后,录入到choicewords中,最后进入keytab,作为密钥的一部分。洗牌法我用的是实验一自己设计的方法,很简单就融入了这个程序之中。 移位密码:由于老师要求用一种全新的产生全排列的方法,我于是想到了RSA公钥体制。这里面RSA算法是密码学三大算法之一(RSA、MD5、DES),是一种不对称密码算法。

(完整版)密码学期末考试复习

填空题 1、密码学的主要任务是实现机密性、鉴别、数据完整性、抗抵赖性。 1、机密性是一种允许特定用户访问和阅读信息,而非授权用户对信息内容不可理解的安全属性。在密码学中,信息的机密性通过加密技术实现。 2、完整性数据完整性即用以确保数据在存储和传输过程中不被非授权修改的的安全属性。密码学可通过采用数据加密、报文鉴别或数字签名等技术来实现数据的完整性保护。 3、鉴别是一种与数据来源和身份鉴别有关的安全服务。鉴别服务包括对身份的鉴别和对数据源的鉴别。对于一次通信,必须确信通信的对端是预期的实体,这就涉及到身份的鉴别。 4、抗抵赖性 是一种用于阻止通信实体抵赖先前的通信行为及相关内容的安全特性。密码学通过对称加密或非对称加密,以及数字签名等技术,并借助可信机构或证书机构的辅助来提供这种服务。 5、密码编码学的主要任务是寻求有效密码算法和协议,以保证信息的机密性或认证性的方法。它主要研究密码算法的构造与设计,也就是密码体制的构造。它是密码理论的基础,也是保密系统设计的基础。 6、密码分析学的主要任务是研究加密信息的破译或认证信息的伪造。它主要是对密码信息的解析方法进行研究。 7、明文(Plaintext)是待伪装或加密的消息(Message)。在通信系统中它可能是比特流,如文本、位图、数字化的语音流或数字化的视频图像等。 8、密文(Ciphertext)是对明文施加某种伪装或变换后的输出,也可认为是不可直接理的字符或比特集,密文常用c表示。 9、加密(Encrypt )是把原始的信息(明文)转换为密文的信息变换过程。 10、解密(Decrypt)是把己加密的信息(密文)恢复成原始信息明文的过程。 11、密码算法(Cryptography Algorithm)也简称密码(Cipher),通常是指加、解密过程所使用的信息变换规则,是用于信息加密和解密的数学函数。对明文进行加密时所采用的规则称作加密算法,而对密文进行解密时所采用的规则称作解密算法。加密算法和解密算法的操作通常都是在一组密钥的控制下进行的。 11、密钥(Secret Key )密码算法中的一个可变参数,通常是一组满足一定条件的随机序列 12、替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密码的密钥就是其替换表。 13、根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多

密码学试题

选择题 1、如果发送方用私钥加密消息,则可以实现() A、保密性 B、保密与鉴别 C、保密而非鉴别 D、鉴别 2、在混合加密方式下,真正用来加解密通信过程中所传输数据(明文)的密钥是() A、非对称算法的公钥 B、对称算法的密钥 C、非对称算法的私钥 D、CA中心的公钥 3、以下关于加密说法,不正确的是() A、加密包括对称加密和非对称加密两种 B、信息隐蔽是加密的一种方法 C、如果没有信息加密的密钥,只要知道加密程序的细节就可以对信息进行解密 D、密钥的位数越多,信息的安全性就越高 4、以下关于混合加密方式说法不正确的是:() A、采用公开密钥体制进行通信过程中的加解密处理 B、采用公开密钥体制对对称密钥体制的密钥进行加密后的通信 C、采用对称密钥体制对对称密钥体制的密钥进行加密后的通信 D、采用混合加密方式,利用了对称密钥体制的密钥容易管理和非对称密钥体制的加解密处理速度快的双重优点 5、两个不同的消息摘要具有相同的值时,称为() A、攻击 B、冲突 C、散列 D、都不是

6、()用于验证消息完整性。 A、消息摘要 B、加密算法 C、数字信封 D、都不是 7、HASH函数可应用于()。 A、数字签名 B、生成程序或文档的“数字指纹” C、安全存储口令 D、数据的抗抵赖性 8、数字证书采用公钥体制,每个用户设定一把公钥,由本人公开,用它进行: A、加密和验证签名 B、解密和签名 C、加密 D、解密 9、数字签名为保证其不可更改性,双方约定使用() A、HASH算法 B、RSA算法 C、CAP算法 D、ACR算法 10、1是网络通信中标志通信各方身份信息的一系列数据,提供一种在Internet上验证身份的方式 A、数字认证 B、数字证书 C、电子证书 D、电子认证 11、以下关于CA认证中心说法正确的是

AES加密解密算法的设计与实现

目录 1.引言 (1) 2.AES加密解密原理 (2) 3.AES加密解密算法的组成部分 (6) 3.1密钥部分 (6) 3.1.1 AES的S盒 (6) 3.1.2 AES的逆S盒 (7) 3.1.3 轮常量 (8) 3.1.4密钥移位函数 (8) 3.1.5密钥字代换函数 (8) 3.1.6密钥扩展算法 (9) 3.2加密的部分 (10) 3.2.1轮密钥加变换AddRoundKey(与密钥扩展的异或运算) (10) 3.2.2字节代换SubBytes(即S盒变换) (11) 3.2.3行移位变换ShiftRows (13) 3.2.4列混淆变换MixColumns (14) 3.3解密的部分 (15) 3.3.1逆行移位变换InvShiftRows (15) 3.3.2逆向字节代换(即逆S盒变换) (16) 3.3.3轮密钥加变换 (17) 3.3.4逆列混淆变换 (17) 4.AES加密解密算法的改进 (18) 5.结束语 (19)

1.引言 对称密码算法主要用于保证数据的机密性,通信双方在加密/解密过程中使用它们共享的单一密钥。对称密码算法的使用相当广泛,密码学界已经对它们进行了深入的研究[1]。最常用的对称密码算法是数据加密标准(DES) 算法,它是由IBM在美国国家安全局(NSA) 授意之下研制的一种使用56 位密钥的分组密码算法[2]。该算法从1977 年公布成为美国政府的商用加密标准后,使用了30 多年。 随着社会的发展,科学技术日新月异,密码分析水平、芯片处理能力和计算技术也不断地进步,二十世纪七十年代到现在应用广泛的DES数据加密标准算法因为其密钥长度较小(仅有56位),已经越来越难适应当今社会的加密技术和安全要求,其实现速度、代码大小和跨平台性也不足以适应新的各种应用要求。 1997年,RSA安全赞助了一系列的竞赛,奖励第一个成功破解以DES加密的信息的队伍1万美元,洛克·韦尔谢什(Rocke Verser),马特·柯廷(Matt Curtin)和贾斯廷·多尔斯基(Justin Dolske)领导的DESCHALL计划获胜,该计划使用了数千台连接到互联网的计算机的闲置计算能力[3]。证明了DES的密钥长度(56位),能被当前社会加密解密技术破解,其安全性有待提高。1998年,电子前哨基金会(EFF,一个信息人权组织)制造了一台DES破解器[4]。虽然其制造价格约$250,000,但是它用两天多一点儿的时间就暴力破解了一个密钥,显示出迅速破解DES的可能性,说明了DES的安全性已经开始降低。 DES 的主要问题是其密钥长度较短(仅56位),已经不适应当今分布式开放网络对数据加密安全性的要求。随着计算机能力的突飞猛进,已经超期服役的DES终于显得力不从心。在这种形势下,迫切需要设计一种强有力的算法作为新的一代分组加密标准,所以在DES 每隔五年的评估会议中, 1997年美国国家标准技术研究院(NIST,National Institute of Standards and Technology)公开征集新的数据加密标准,最后一次美国政府终于决定不再继续延用DES作为联邦加密标准,也就表明了DES 将退出加密标准的舞台,而新的标准:高级加密标准AES(Advanced Encryption Standard) 走上了历史的舞台[5]。该算法作为新一代的数据加密标准汇聚了安全性、效率、密钥灵活性、多样性、简单性和对称性等优点。 因此1997年美国国家标准技术研究院(NIST,National Institute of Standards and Technology)公开征集新的数据加密标准,即AES[6]。该算法作为新一代的数据加密标准 1

(完整版)密码学复习题

一、选择 1.若一个单向函数存在一个附加信息,当不知道该附加信息时从函数值求原像是困难的,但是知道 该附加信息时从函数求原像是容易的,则该单向函数是 A.陷门单向函数 B.门陷单向函数 C.完全单向函数D容量单向函数 2.标志着公钥密码学诞生的事件是 A. C.Shannon发表的保密系统的通信理论 B.W.Diffle和M.Hellman发表“密码学的新方向”一文 C. C.RSA加密公钥的提出 D.维吉利亚密码体制的提出。 3.下列密码体制中,被认为无条件安全的是 A.一次一密乱码本(one-time pad) B.ElGamal C.RSA D.Cramer-Shop 4.下列密码体制中,不属该分组密码的是 A.IDEA B.AES C.ElGamal D.DES 5.目前通称的AES算法指的是 A.Terpent算法 B.RCG算法 C.Rijndael算法 D.Tuofish算法 二、填空 1.按照一个明文字母是否总是被一个固定的字母代换进行划分,代换密码可分为单表代换密码和 多表代换密码。 2.经典密码学的2个分支:密码编码学和密码分析学。 3.根据攻击者所拥有的信息不同,对数字签名方案的攻击主要有惟密钥攻击,已知消息攻击,选 择消息攻击,适应性选择消息攻击四种常见的类型。 4.分组密码主要有电子密码本模式(ECB) ,密码分组链接模式(CBC) ,密码反馈模式(CFB) , 输出反馈模式(OFB) 。 5.根据密码分析者破译时已具备的条件,把对密码系统的常见攻击分为惟密文攻击,已知明文攻 击,选择明文攻击,选择密文攻击。 三、问答 1.Feistel 密码结构主要部件是哪些?它在迭代运算中起到什么作用? ANS:Feistel密码是通过代替和置换(S-P网络)交替的方式来构造分组密码,其实就是基于混乱和扩散原理实现加解密运算。 S盒变换:它把输入的一个n长的比特串转化为另一个m长的比特串输出。 P盒变换:通过把一个比特串中各比特的位置次序重新排列而得到新的比特串的变换。 2.数字签名的四个特征? ANS:数字签名具有以下特征: (1) 收方能够确认或证实发方的签名,但不能伪造。 (2) 发方发出签名的消息给收方后,就不能再否认他所签发的消息。 (3) 收方对已收到的签名消息不能否认。 (4) 第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。 3.分组密码主要优点是什么?其设计原则应考虑哪些问题? ANS:分组密码的优点是:明文信息良好的扩展性,对插入的敏感性,不需要密钥同步,较强的适用性,适合作为加密标准。在分组密码具体设计中,还需重点考虑的有:S盒的设计、P盒的设计、轮函数F的设计、迭代轮数以及密钥扩展算法等。

流密码与分组密码

流密码和分组密码 按照密钥的特征不同,密码体制分为对称密码体制和非对称密码体制。按照对明文消息加密方式的不同,密码体制分为流密码(Stream Cipher )和分组密码(Block Cipher )[1]。非对称密码体制均为分组密码[2]。 1 流密码 流密码也称为序列密码。在流密码中,明文以序列的方式表示,称为明文流。在对明文流进行加密时,先由种子密钥生成一个密钥流。然后,利用加密算法把明文流和密钥流加密,产生密文流。流密码每次只对明文中的单个bit 位进行加密变换,加密过程所需的密钥流由种子密钥通过密钥流生成器产生。流密码的主要原理是通过随机数发生器产生性能优良的伪随机序列(密钥流),使用该序列加密明文流(逐bit 位加密),得到密文流。由于每一个明文都对应一个随机的加密密钥,因此流密码在理论上属于无条件安全的密码体制(一次一密密码) [3]。流密码的基本加密过程,如图1所示。 图1 流密码的加密过程 设明文流为:12i m m m m = ,密钥流由密钥流发生器f 产生:(,)i i z f k σ=,这里i σ是加密器中的存储器在时刻i 的状态,f 是由种子密钥k 和i σ产生的函数。设最终得到的密钥流为: 12i k k k k = ,加密结果为:121212()()()i i k k k i c c c c E m E m E m == ,解密结果为: 121212()()()i k k k i i m D c D c D c m m m == 。用流密码进行保密通信的模型,如图2所示: 图2 流密码保密通信图 2 分组密码 分组密码也称为块密码。当加密一条长消息(明文)时,首先,将明文编码表示为二进制序列;然后,将其分成若干个固定长度的组(最后一组长度不够时还得进行填充,如补0);

序列密码

旺旺:旺我旺:能我过能软过软考考

主要内容
?序列密码的基本概念 ?序列密码的分类 ?线性移位寄存器序列 ?线性移位寄存器的输出序列求解
旺旺:我能过软考

序列密码的基本概念
版权所有:我能过软考
香农证明了“一次一密”不可破解。
用序列密码模仿“一次一密”密码。
为了安全,序列密码应使用尽可能长的密钥,但是,长密钥的存储、分配存在困难。
设计一个好的密钥序列产生算法,利用较短的种子密钥,产生长的密钥序列。 作为核心密码的主流密码
3 旺旺:我能过软考

序列密码的分类 同步序列密码
自同步序列密码 1)同步序列密码 ? 密钥序列产生算法与明密文无关 ? 产生的密钥序列和明密文无关
? 在通信中,通信双方必须保持精确的同步 ? 不存在错误传播
版权所有:我能过软考
输出反馈模式OFB
4 旺旺:我能过软考

同步序列密码的失步分析
版权所有:我能过软考


c=c1, c2, c4, c5…., cn-1, cn

⊕ k=k1, k2, k3, k4…., cn-1, cn
失 步
m=m1,m2, X,X…., X, X
? 可以检测插入、删除、重播等主动攻击
(c3 丢失) (密钥正确)
5 旺旺:我能过软考

同步序列密码错误传播分析
版权所有:我能过软考
c=c1, c2, c3, c4…., cn-1, cn ⊕ k=k1, k2, k3,k4…., cn-1, cn
m=m1,m2,X,m4 …,mn-1 ,mn-1 ? 不存在错误传播
(c3 错误) (密钥正确)
6 旺旺:我能过软考

分组密码加密

实习二分组密码加密 一、实习目的 1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish; 2.以DES加密算法为例,掌握分组加密算法加、解密过程的实现。 二、实习要求 1.实习前认真预习第5章有关内容; 2.熟悉java中的java.security.*和java.crypto.*中的相关类; 3.按要求认真撰写实习报告。 三、实习内容 1.[基本要求] 以DES/DESede为例,利用java中的相关类实现对指定字符串的加、解密。 2.[实现提示] (1) 可以利用java中的KeyGenerator类创建对称秘钥,利用工厂类KeyGenerator 的静态方法getInstance()获得KeyGenerator()类对象; (2) 方法getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfish、DES、DESede、HmacMD5或HmacSHA1等; (3) 利用工厂类Cipher的对象可以创建密码器。同样的,getInstance()的参数为字符串类型,指定加密算法的名称。 实验截图: 以DES加密为例,客户端:

客户端解密: 实习代码: 服务器MyServer类: package Caesar_Modification; import java.awt.EventQueue; import java.awt.TextArea; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.swing.JFrame;

DES分组加密实验报告

DES分组密码实验报告 一、DES算法的实现 1.DES简介 DES算法工作:如Mode为加密,则用Key 去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。 2. DES算法详述 (1)DES加密标准 DES是对二元数字分组加密的分组密码算法,分组长度为64比特。每64位明文加密成64位密文,没有数据压缩和扩展,密钥长度为56比特,若输入64比特,则第8,16,24,32,40,48,56,64为奇偶校验位,所以,实际密钥只有56位。DES算法完全公开,其保密性完全依赖密钥。 DES的加密过程可表示为: DES(m)= IP-1T16·T15…T2·T1·IP(m). 右图面是完全16轮DES算法框图: 图1 完全16轮DES算法

1 初始置换IP 初始置换是将输入的64位明文分为8个数组,每一组包括8位,按1至64编号。 IP的置换规则如下表: 表1 IP置换规则 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 2 IP-1是IP的逆置换 由于第1位经过初始置换后,已处于第40位。逆置换就是再将第40位换回到第1位。 逆置换规则如下表所示: 表2 IP-1置换 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 初始置换IP及其逆置换IP-1并没有密码学意义,因为置换前后的一一对应关系是已知的。它们的作用在于打乱原来输入明文的ASCⅡ码字划分的关系,并将原来明文的第m8,m16,m24,m32,m40,m48,m56,m64位(校验位)变成IP的输出的一个字节。 3. DES算法的迭代过程 图中Li-1和Ri-1分别是第i-1次迭代结果的左右两部分,各32比特。即Li=Ri-1, Ri=Li-1 f(Ri-1,ki)。其中轮密钥Ki为48比特,函数F(R,K)的计算过程如图所示。轮输入的右半部分R为32比特,R首先被扩展成48比特,扩展过程由表3定义,其中将R的16个比特各重复一次。扩展后的48比特再与子密钥Ki异或,然后再通过一个S盒,产生32比特的输出。该输出再经过一个由表4定义的置换,产生的结果即为函数F(R,K)的输出。 32 1 2 3 4 5

分组密码与流密码的分析设计与比较

分组密码与流密码的分析设计与比较 1引言 随着科技的发展,信息安全在现代电子通信等方面发挥着越来越重要的作用密码编码学是应对各种信息安全威胁的最有效的方法。所谓密码编码学,是指生成高强度、有效的加密或认证算法。欲传送的原始信息叫做明文,对其进行可逆的数字变换后的信息称为密文。发送者通过加密算法对明文进行加密,得到密文,这个过程称为加密。接收者收到经过处理的密文后,通过解密算法,还原成明文,这一过程称为解密。 密码系统所采取的基本工作模式叫做密码体制,主要分为两大类:对称密钥密码体制与非对称密钥密码体制。对称密钥密码体制中的加密密钥与解密密钥相同,需要安全可靠的密钥传递信道,通信双方需保管好密钥。非对称密钥密码体制中加密与解密分别有一个对应的密钥,发送者查询接收者公开的公钥对明文进行加密,接收者收到密文后再利用只有自己知道的私钥进行解密。 对称密钥密码体制又分为两大类,分别是分组密码与流密码。所谓分组密码,就是按照算法设计者预先设定的长度把明文分割成块,再对每一分组进行加密解密的算法。而对

比特进行运算、采用"一次一密"的算法,则称为流密码。 2分组密码 2.1 概论 所谓分组密码,其明文分为若干个数据块,加密后得到的密文仅与给定的密钥算法和密钥有关,与被处理的明文数据块在整个明文中所处的位置无关。较典型的分组密码算法有DES算法、IDEA算法、AES算法等。 算法设计者事先设定好分块的长度,算法将明文按照该长度进行分组,再在这些定长的分组上进行运算。在分组密码的设计中,加密与解密的处理是建立在块的基础上。算法把明文分成设定的大小,通常为64 bit或128 bit,再对每个块单独编码。 2.2 设计原则 创立了经典信息论的数学家C.E.Shannon在1949年时发表了一篇名为"《保密系统的通信理论》的论文。在这篇论文中,Shannon提出了如何设计分组加密的组合密码系统。其中,设计分组密码需要依据两个一般原则,分别是混淆原则和扩散原则。 实现混淆原则,实际上就是复杂化密文的统计特性与和密钥的依赖关系。扩散原则,即所设计的密码应使得密钥的每一位数字影响密文的许多位数字以防止对密钥进行逐段破译,且明文的每一位数字也影响密文的许多位数字以隐蔽

密码学复习试题

一填空题 1.密码学发展的四个阶段:、、 、。 2.DES的分组长度是比特,密钥长度是比特,密文长度是64比特。 3.数字签名方案是指由、、 、、组成的五元组。 4.信息安全的核心是;密码学研究的主要问题是 5.加密算法模式有四种,分别是:,, 5.DES的分组长度是比特,密钥长度是比特,密文长度是比特。 6.AES的密钥长度可以是、、;AES圈变换的由四个 不同的变换组成,它们分别是、、 、。 7.柯可霍夫原则指出密码系统的安全性不能取决于,而应取决于。 8.柯可霍夫原则指出密码系统的安全性不能取决于,而应取决 于。 9.根据加密内容的不同,密钥可以分 为、、 10.对称密码体制可以分为和两类。 11.哈希函数MD5和SHA-1的输出长度分别是和比特。 12.密码学由和组成。 13.分组密码的加解密算法中最关键部分是非线性运算部分,那么,DES加密算法的非 线性预算部分是指非线性代换,AES加密算法的非线性运算部分是指。 14. DES与AES有许多相同之处,也有一些不同之处,请指出两处不同: AES密钥长 度可变DES不可变, DES面向比特运算AES面向字节运算。

15. MD5的主循环有(4 )轮。 16. SHA1接收任何长度的输入消息,并产生长度为(160)bit的Hash值。 17.分组加密算法(如AES)与散列函数算法(如SHA)的实现过称最大不同是(可逆)。 18.Hash函数就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输 出称为。 19.Hash函数的单向性是指对任意给它的散列值h找到满足H(x)=h的x 在计算上 是不可行的。 20.公钥密码体制的思想是基于陷门单向函数,公钥用于该函数的正向(加密)计 算,私钥用于该函数的反向(解密)计算。 21.1976 年,和在密码学新方向一文中提出了公钥密码的思想,从而开创了线代密 码学的新领域。 22.公钥密码体制的出现,解决了对称密码体制很难解决的一些问题,主要体现一下三 个方面:密钥分发问题、密钥管理问题和数字签名问题。 23.RSA的数论基础是数论的欧拉定理,在现有的计算能力条件下,RSA 被 认为是安全的最小密钥长度是1024位。 24.公钥密码算法一般是建立在对一个特定的数学难题求解上,那么RSA算法是基于 大整数因子分解困难性、ElGamal算法是基于有限域乘法群上离散对数的困 难性。 25.为保证安全性,在设计分组密码时,密码变换必须足够复杂,尽量使用混淆与扩 散原则。这样使攻击者除了用穷举攻击以外,找不到其他简洁的数学破译方法二计算题

信息安全实验2分组密码加密

分组密码加密 一、实习目的 1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish; 2.以DES加密算法为例,掌握分组加密算法加、解密过程的实现。 二、实习内容 1.[基本要求] 以DES/DESede为例,利用java中的相关类实现对指定字符串的加、解密。 2.[实现提示] (1) 可以利用java中的KeyGenerator类创建对称秘钥,利用工厂类KeyGenerator的静态方法getInstance()获得KeyGenerator()类对象; (2) 方法getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfish、DES、DESede、HmacMD5或HmacSHA1等; (3) 利用工厂类Cipher的对象可以创建密码器。同样的,getInstance()的参数为字符串类型,指定加密算法的名称。 三、算法分析和流程图 DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。

四、测试数据和预期结果 1按照规定,密钥输入移位的数字,明文输入字母,如下图所示,加密成功 2加密yanglingmalasong+123 3测试*能否加密 加密

相关主题