信息与计算科学专业
the_fire
奋发图强,不敢有丝毫停顿……
展开
-
S-DES算法java实现(源码下载)
<br /><br />今天上午分析了一下S-DES算法的大概流程,因为小区要停电,所以只是简单的分析了一下。实现是今天晚上写出来的。<br />有了DES分析的过程之后,S-DES的分析和实现都简单多了。以至于实现的时候直接看这流程图就开始写了。当时一边和同学聊着天一边敲着代码一边思考着:我也太笨了,到现在才学会看着流程图写程序,我自己很汗颜。<br />言归正传,类结构上和DES基本相同,不过这里把密钥生成部分给单独提取出来了,这样我感觉更直观。<br />S_DES:专门用来被别人直接调用的,也可以说原创 2010-11-25 00:36:00 · 2735 阅读 · 1 评论 -
三重DES概述
前面实现了基本的DES算法,但众所周知的是DES算法的安全性不是很高,究其原因还得归结到他的密钥位上,刨去8位校验位,剩下的56位密钥实在太短,以现在普通机器运行的速度,使用穷举法很快就可以破译。(这是我也是看资料看来得,没有实践)基于上述理由所以有必要对DES进行修改,因此也就有了多重DES。所谓多重DES不过是通过多个密钥来进行重复的加密运算,其目的不过是为了增加密钥量。那到底重复多少次才合理呢,我是不晓得的,你知道的话可以告诉我/(^o^)/~。不过用的比较广泛的就是三重DES加密了。关于三重DES加原创 2010-11-25 00:17:00 · 13275 阅读 · 1 评论 -
三轮DES和三重DES
<br /><br />哎,这次真的土鳖了,一直觉得三轮和三重是一码事,今天看差分分析的时候老是觉得哪个地方不对劲,但又不知道,晚上要把差分分析的学习总结一下的时候发现问题了。<br />差分分析中很平常的提到3轮、8轮、完全16轮这样的字眼,我心里还纳闷,不是说三重DES效率就不太好了,怎么又到了16重,(其实是我自己一直把“轮”和“重”当成一码事了,郁闷。)<br />察觉到不对劲之后又找了找不同书本的关于DES的介绍,终于在一本书中找到了一个说法:“图8.3是DES全部16轮(Round)的加/解密结原创 2010-11-26 07:34:00 · 2531 阅读 · 5 评论 -
密码分析概述
密码分析的方法主要有以下三种:1. 穷举攻击:密码分析者通过试遍所有的密钥来进行破译,显然可以通过增大密钥量来对抗穷举攻击。2. 统计分析攻击:密码分析者通过分析密文和明文的统计规律来破译密码。对抗统计分析攻击的方法是设法使明文的统计特性与密文的统计特性不一样。3. 解密变换攻击:密码分析者针对加密变换的数学依据,通过数学求解的方法来设法找到相应的解密变换。为对抗这种攻击,应该选用具有坚实的数学基础和足够复杂的加密算法。密码分析的类型有原创 2010-11-25 00:20:00 · 7356 阅读 · 0 评论 -
DES加密算法流程概述
有了上篇文章的打底,要搞懂DES算法也就不是什么难事了。现在整体把流程叙述一遍。然后再用java实现以下。首先就是把明文通过IP置换,得到一个乱序的明文序列,然后将明文序列分成L0和R0左右两部分。接着将R0直接赋值给L1,而L0通过f(R0,K1)进行模2加运算把值赋给R1。接着重复上述步骤直到得到L15和R15。然后把R15赋给L16,L15通过和f(R15,K16)进行模2加运算得到R16。注意这里L16并不是在左侧了,而是和R16换了位置。紧接着就是把R16L16通过 IP逆置换,得到密文。解密过程原创 2010-11-23 08:02:00 · 15723 阅读 · 2 评论 -
使用java实现真实数据DES加密(java源代码)
在前面那篇文章《使用DES实现真实数据加密的前奏(分析)》分析的基础上,用java实现了可以对字符串进行加密,不过遗留的问题是不能对字符串进行解密,因为在把加密后的字节型数组转为字符串之后再转回来就和原先的字节型数组不一样了,会少许多位,不知道这是为什么。莫非字节型数组和字符串不是一对一转换的吗?很迷惑具体实现大家可以先看这个图,这里面主要添加了两个类,DESPre和DESControl。DESPre主要是实现了前一篇文章中说到的基本操作,比如byte数组转成二进制数组,等。DESControl主要是用来操原创 2010-11-24 07:39:00 · 2484 阅读 · 7 评论 -
使用DES实现真实数据加密的前奏(分析)
上篇文章里面用java实现了DES的核心算法,并且对外提供了一个比较简单的接口,可以直接使用,不过有一个问题就是这个算法只是核心,只能实现对64位二进制进行加密。所以要在实际状况下使用的话需要进行预处理才行。所谓预处理就是把真是的数据,比如字符串,数据,等不定长的内容转换成分组的每组64位二进制数据组。然后再进行分组加密,最后结果合并得到加密数据,当然了,为了不让别人看出来最后的二进制密文,你可以把这些分组的数据再转换成字符串或者什么格式的就行了。预处理过程:1. 转换成每组8位的byte数组首先将字符串进原创 2010-11-24 07:36:00 · 1579 阅读 · 0 评论 -
DES加密算法java实现(核心算法+源代码)
其实有了前一篇文章《DES加密算法学习前奏》做为基础之后,要实现DES算法就是很容易的事了。不过为了是自己不过于闭门造车,我还是从网上找了找源代码,有用java写的,有用C++写的,不过所有代码貌似都是一样的。为啥说是一样的呢?一开始写一个类,然后把所有的方法往类里面添,额,我猜测如果不是作者功力很高的话,很难一次就把这个给实现了。并且如果读者功力不是很高的话(譬如说我这样的),也是很难理解其中的调用关系的。还有一点值得一提的是网上流传的方法似乎都是可以直接对文本加密的,所以对于想研究算法的人来说,这无疑是原创 2010-11-23 23:42:00 · 11959 阅读 · 19 评论 -
DES加密算法学习前奏
这几天看了一下DES加密,认真看的话这个算法并不难,有时候觉得困难时因为自己看不下去。茫茫人海,和己者寡。 要学习DES加密算法,我觉得有几点是要先了解的,下面一一列出来:1. 模2加运算这个是比较好理解的,就是两个数相加然后除2取余。2. 理解其中的置换一开始的时候就会对明文进行置换,通过初始置换IP:这个表的含义就是,第一个58就是你明文中的第58个元素,你要放到1的位置,然后把明文中第50个元素放到2的位置,以此类推。3. 子密钥的生成子密钥生成分为三步走:第一步原创 2010-11-19 17:30:00 · 2091 阅读 · 2 评论 -
S-DES简单介绍
关于DES(Data Encryption Standard)已经有所了解了,不过看题目说的是S-DES,不太理解是什么意思,google查了一下,没有找到解释,百度一下吧,更别说了,果然百度是不擅长技术搜索的。后来一想,中文的找不到应该找英文的,于是把google设置为查询英文内容,果然找到几个,虽然不是专门介绍,但只言片语也就够我了解了。 并且查到的资料也比查询中文内容时多,何故?大家心里都清楚的。其实中文的在期刊论文中也能找得到,不过期刊论文一般都是收费的。 看了原创 2010-11-17 14:20:00 · 2470 阅读 · 2 评论 -
MATLAB实现构造Euler环游图的算法——数学建模
我们专业课(数学建模)讲的东西由七桥堡问题而来的Euler环游。 如下图,要将其变为Euler环游图。%首先给出一个矩阵(相邻表示1,不相邻表示0),用来表示图1。v = 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0原创 2010-04-30 21:02:00 · 2908 阅读 · 2 评论 -
二分法的使用之MATLAB实现
今天数值计算上机做了一个验证二分法计算非线性方程的实验。以前没有想过这个问题,今天作业一下感觉这个方法确实不错,随记下来。首先给出要计算的方程:f(x)=x^2=M然后编写算法:MATLAB code:%其中a,b表示查找根存在的范围,M表示要求解函数的值function y=f2(a,b,M)k=0;eps=0.0000001while b-a>eps原创 2009-12-17 04:29:00 · 20485 阅读 · 1 评论 -
matlab打开自动关闭的问题
装上matlab7.0安装完成,但打开就自动关闭。 于是找解决办法: MATLAB7.0程序打开后一会就自动关闭的解决方法 首先请确认你的MATLAB的文件夹中有如下文件:atlas_Athlon.dll(AMD系列的请用这个),这些是对应处理器的数值运算优化文件 然后请按如下步骤进行: 1、右击我的电脑,选择属性. 2、在"高级"选项卡中点击"环境变量" 3、在系原创 2009-01-04 13:41:00 · 3237 阅读 · 2 评论 -
MATLAB的安装方法(转)
今天帮同学安装matlab(我自己的都没装上^.^),最后装上了,却不能用。不晓得什么原因。随后就在网上找。终于找到以下两篇文章(其实是第二篇把问题给解决了,第一篇没试)。关于第二篇的方法不太明白,为什么要改成windows 2000的兼容性呢?第一篇:对于压缩文件不要解压(这个很重要),而应直接双击压缩文件,再在内部双击setup文件,而安装前还需要做一道工作才能成功进行安装,即右键单击原创 2008-11-18 13:02:00 · 1742 阅读 · 2 评论 -
IP包的分片和重组——路由器的分片攻击
这是IP数据包格式相关的东西。 首先来看一下IP数据包的格式: 关于其中的一个名词大家可以去网上查,这里只是相应的介绍关于分片的部分。 就是在数据传送时,如果说数据的长度大于设定的MTU长度的话,路由器就要将其进行相应的分片操作,(关于具体的如何分片,以及如何重组可以自己查相关资料)以便让其通过路由进行传送。如下图所示,一个具有4000字节的原创 2009-10-16 20:07:00 · 8419 阅读 · 0 评论 -
纯作业代码——Java实现接口、继承
//该代码实现结果为如果设定的长和宽相等则实例化正方形(Square)的类,否则实例化矩形类。interface rect{ public double area(); public void getWidth(double Width); public void getHeight(double Height);}class Rectangle1 implements r原创 2009-10-16 19:33:00 · 1543 阅读 · 1 评论 -
文法的乔姆斯基体系——形式语言与自动机理论
注:其中V表示变量集,T表示终极符集,P为产生式,S表示开始符号。例如:A属于V,a属于TP:S->aA,A->a(产生式)。文中α,β代表属于变量和终极符。设G=(V,T,P,S),则 (1)G叫作0型文法(type 0 grammar),或短语结构文法(phrase structure grammar,PSG),其对应的语言叫作0型语言或者短语结构(P原创 2009-06-10 22:51:00 · 5809 阅读 · 6 评论 -
差分分析(differential cryptanalysis)概述
差分分析(differential cryptanalysis)是一种选择明文攻击,其基本思想是:通过分析特定明文差分对相对应密文差分影响来获得尽可能大的密钥。它可以用来攻击任何由迭代一个固定的轮函数的结构的密码以及很多分组密码(包括DES),它是由Biham和Shamir于1991年提出的选择明文攻击。差分分析涉及带有某种特性的密文对和明文对比较,其中分析者寻找明文有某种差分的密文对。这些差分中有一些有较高的重现概率,差分分析用这些特征来计算可能密钥的概率,最后定为最可原创 2010-11-26 07:33:00 · 5827 阅读 · 3 评论