1.c语言编写hill密码
花了些时间写的,希望对你有帮助~
#include<stdio.h>
#define N 3 //可加密的字符串长度
char plaintext[N]=; //明文,输入时输入字符,参与运算时强制转换成整数
int ciphertext[N]=; //密文,保存成整数,输出时强制转换成字符
int key[N][N]; //密钥矩阵
void getPlainText() //获得明文字符串
{
printf("请输入明文:");
scanf("%s",plaintext);
printf("\n");
}
void getKey() //输入密钥矩阵
{
int i,j;
printf("请输入加密矩阵:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&key[i][j]);
printf("\n");
}
void hill() //Hill加密算法
{
int i,j;
for(i=0;i<N;i++){ //矩阵的乘法
for(j=0;j<N;j++){ //计算转换依据,0~25对应a~z
ciphertext[i]+=key[i][j]*(int)(plaintext[j]-'a');
ciphertext[i]%=26;
}
}
printf("\n");
}
void printCipherText() //输出加密后的密文
{
int i;
printf("加密后的密文是:");
for(i=0;i<N;i++) //把参与计算后是整数强制转换成对应的字符
printf("%c",(char)(ciphertext[i]+'a'));
printf("\n");
}
void main()
{
getPlainText(); //明文
getKey(); //密钥
hill(); //加密
printCipherText(); //密文
}
2.c语言编写hill密码
// 希尔算法的加密与解密#include
3.求一篇密码学应用的论文
密码学(Cryptogra phy)在希腊文用Kruptos(hidden)+graphein(to write)表达,现代准确的术语为“密码编制学”,简称“编密学”, 与之相对的专门研究如何破解密码的学问称之为“密码分析学”。密码学是主要研究通信安全和保密的学科,他包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。这两者之间既相互对立又相互促进。密码的基本思想是对机密信息进行伪装。一个密码系统完成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行。
在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现的,我们称这些密码体制为古典密码。其中包括:易位密码、代替密码(单表代替密码、多表代替密码等)。这些密码算法大都十分简单,现在已经很少在实际应用中使用了。由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。以下介绍我们所研究的古典密码学。
三 、古典密码学的基本方法
从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。而古典密码有着悠久的历史,从古代一直到计算机出现以前,古典密码学主要有两大基本方法:
①代替密码:就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。
②置换密码(又称易位密码):明文的字母保持相同,但顺序被打乱了。
现在我们汇报我们研究的几种简单的古典密码学
4.急求密码学的论文
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。
密码学是在编码与破译的斗争实践中逐步发展起来的,并随着先进科学技术的应用,已成为一门综合性的尖端技术科学。它与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。它的现实研究成果,特别是各国政府现用的密码编制及破译手段都具有高度的机密性。
进行明密变换的法则,称为密码的体制。指示这种变换的参数,称为密钥。它们是密码编制的重要组成部分。密码体制的基本类型可以分为四种:错乱——按照规定的图形和线路,改变明文字母或数码等的位置成为密文;代替——用一个或多个代替表将明文字母或数码等代替为密文;密本——用预先编定的字母或数字密码组,代替一定的词组单词等变明文为密文;加乱——用有限元素组成的一串序列作为乱数,按规定的算法,同明文序列相结合变成密文。以上四种密码体制,既可单独使用,也可混合使用 ,以编制出各种复杂度很高的实用密码。
20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、脱密密钥的分离。加密密钥是公开的,脱密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。
利用文字和密码的规律,在一定条件下,采取各种技术手段,通过对截取密文的分析,以求得明文,还原密码编制,即破译密码。破译不同强度的密码,对条件的要求也不相同,甚至很不相同。
中国古代秘密通信的手段,已有一些近于密码的雏形。宋曾公亮、丁度等编撰《武经总要》“字验”记载,北宋前期,在作战中曾用一首五言律诗的40个汉字,分别代表40种情况或要求,这种方式已具有了密本体制的特点。
1871年,由上海大北水线电报公司选用6899个汉字,代以四码数字,成为中国最初的商用明码本,同时也设计了由明码本改编为密本及进行加乱的方法。在此基础上,逐步发展为各种比较复杂的密码。
在欧洲,公元前405年,斯巴达的将领来山得使用了原始的错乱密码;公元前一世纪,古罗马皇帝凯撒曾使用有序的单表代替密码;之后逐步发展为密本、多表代替及加乱等各种密码体制。
二十世纪初,产生了最初的可以实用的机械式和电动式密码机,同时出现了商业密码机公司和市场。60年代后,电子密码机得到较快的发展和广泛的应用,使密码的发展进入了一个新的阶段。
密码破译是随着密码的使用而逐步产生和发展的。1412年,波斯人卡勒卡尚迪所编的百科全书中载有破译简单代替密码的方法。到16世纪末期,欧洲一些国家设有专职的破译人员,以破译截获的密信。密码破译技术有了相当的发展。1863年普鲁士人卡西斯基所著《密码和破译技术》,以及1883年法国人克尔克霍夫所著《军事密码学》等著作,都对密码学的理论和方法做过一些论述和探讨。1949年美国人香农发表了《秘密体制的通信理论》一文,应用信息论的原理分析了密码学中的一些基本问题。
自19世纪以来,由于电报特别是无线电报的广泛使用,为密码通信和第三者的截收都提供了极为有利的条件。通信保密和侦收破译形成了一条斗争十分激烈的隐蔽战线。
1917年,英国破译了德国外长齐默尔曼的电报,促成了美国对德宣战。1942年,美国从破译日本海军密报中,获悉日军对中途岛地区的作战意图和兵力部署,从而能以劣势兵力击破日本海军的主力,扭转了太平洋地区的战局。在保卫英伦三岛和其他许多著名的历史事件中,密码破译的成功都起到了极其重要的作用,这些事例也从反面说明了密码保密的重要地位和意义。
当今世界各主要国家的政府都十分重视密码工作,有的设立庞大机构,拨出巨额经费,集中数以万计的专家和科技人员,投入大量高速的电子计算机和其他先进设备进行工作。与此同时,各民间企业和学术界也对密码日益重视,不少数学家、计算机学家和其他有关学科的专家也投身于密码学的研究行列,更加速了密码学的发展。
5.求一篇密码学应用的论文
古典密码学 爱伦 坡所说:密码可破!人类的智慧不可能造成这样的密码,使得人类本身的才智即使运用得当也无法破开它! 一 、密码学的发展历程 密码学在公元前400多年就早已经产生了,正如《破译者》一书中所说“人类使用密码的历史几乎与使用文字的时间一样长”。
密码学的起源的确要追溯到人类刚刚出现,并且尝试去学习如何通信的时候,为了确保他们的通信的机密,最先是有意识的使用一些简单的方法来加密信息,通过一些(密码)象形文字相互传达信息。接着由于文字的出现和使用,确保通信的机密性就成为一种艺术,古代发明了不少加密信息和传达信息的方法。
例如我国古代的烽火就是一种传递军情的方法,再如古代的兵符就是用来传达信息的密令。就连闯荡江湖的侠士,都有秘密的黑道行话,更何况是那些不堪忍受压迫义士在秘密起义前进行地下联络的暗语,这都促进了密码学的发展。
事实上,密码学真正成为科学是在19世纪末和20世纪初期,由于军事、数学、通讯等相关技术的发展,特别是两次世界大战中对军事信息保密传递和破获敌方信息的需求,密码学得到了空前的发展,并广泛的用于军事情报部门的决策。例如在希特勒一上台时,德国就试验并使用了一种命名为“谜”的密码机,“谜”型机能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完,希特勒完全相信了这种密码机的安全性。
然而,英国获知了“谜”型机的密码原理,完成了一部针对“谜”型机的绰号叫“炸弹”的密码破译机,每秒钟可处理2000个字符,它几乎可以破译截获德国的所有情报。后来又研制出一种每秒钟可处理5000个字符的“巨人”型密码破译机并投入使用,至此同盟国几乎掌握了德国纳粹的绝大多数军事秘密和机密,而德国军方却对此一无所知;太平洋战争中,美军成功破译了日本海军的密码机,读懂了日本舰队司令官山本五十六发给各指挥官的命令,在中途岛彻底击溃了日本海军,击毙了山本五十六,导致了太平洋战争的决定性转折。
因此,我们可以说,密码学为战争的胜利立了大功。在当今密码学不仅用于国家军事安全上,人们已经将重点更多的集中在实际应用,在你的生活就有很多密码,例如为了防止别人查阅你文件,你可以将你的文件加密;为了防止窃取你钱物,你在银行账户上设置密码,等等。
随着科技的发展和信息保密的需求,密码学的应用将融入了你的日常生活。 二 、密码学的基础知识 密码学(Cryptogra phy)在希腊文用Kruptos(hidden)+graphein(to write)表达,现代准确的术语为“密码编制学”,简称“编密学”, 与之相对的专门研究如何破解密码的学问称之为“密码分析学”。
密码学是主要研究通信安全和保密的学科,他包括两个分支:密码编码学和密码分析学。密码编码学主要研究对信息进行变换,以保护信息在传递过程中不被敌方窃取、解读和利用的方法,而密码分析学则于密码编码学相反,它主要研究如何分析和破译密码。
这两者之间既相互对立又相互促进。密码的基本思想是对机密信息进行伪装。
一个密码系统完成如下伪装:加密者对需要进行伪装机密信息(明文)进行伪装进行变换(加密变换),得到另外一种看起来似乎与原有信息不相关的表示(密文),如果合法者(接收者)获得了伪装后的信息,那么他可以通过事先约定的密钥,从得到的信息中分析得到原有的机密信息(解密变换),而如果不合法的用户(密码分析者)试图从这种伪装后信息中分析得到原有的机密信息,那么,要么这种分析过程根本是不可能的,要么代价过于巨大,以至于无法进行。 在计算机出现以前,密码学的算法主要是通过字符之间代替或易位实现的,我们称这些密码体制为古典密码。
其中包括:易位密码、代替密码(单表代替密码、多表代替密码等)。这些密码算法大都十分简单,现在已经很少在实际应用中使用了。
由于密码学是涉及数学、通讯、计算机等相关学科的知识,就我们现有的知识水平而言,只能初步研究古典密码学的基本原理和方法。但是对古典密码学的研究,对于理解、构造和分析现代实用的密码都是很有帮助。
以下介绍我们所研究的古典密码学。 三 、古典密码学的基本方法 从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。
而古典密码有着悠久的历史,从古代一直到计算机出现以前,古典密码学主要有两大基本方法: ①代替密码:就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。 ②置换密码(又称易位密码):明文的字母保持相同,但顺序被打乱了。
现在我们汇报我们研究的几种简单的古典密码学 1.滚桶密码 在古代为了确保他们的通信的机密,先是有意识的使用一些简单的方法对信息来加密。如公元六年前的古希腊人通过使用一根叫scytale的棍子,将信息进行加密。
送信人先将一张羊皮条绕棍子螺旋形卷起来(如图),然后把要写的信息按某种顺序写在上面。
6.c语言编写hill密码
// 希尔算法的加密与解密#include
7.为什么说加法密码、乘法密码、仿射密码、置换密码、Hill密码以及
加法密码就是真典密码学中的恺撒密码格式是:密文=(明文+密钥)mod26,剩法密码是恺撒密码发展出来,格式是:密文=明文x实钥mon26;置换密码就是在简单的纵行换位密码中,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2。 一串字母当成n维向量,跟一个n*n的矩阵相乘,再将得出的结果MOD26;Vigenere是恺撒密码演变而来。使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
有兴趣可以了解一下古典密码学,这里面都有。
8.希尔密码的介绍
希尔密码(Hill Password)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2。 一串字母当成n维向量,跟一个n*n的矩阵相乘,再将得出的结果MOD26。注意用作加密的矩阵(即密匙)在\mathbb_^n必须是可逆的,否则就不可能译码。只有矩阵的行列式和26互质,才是可逆的。
转载请注明出处众文网 » hill密码毕业论文