毕业论文设计管理系统密码

hill密码毕业论文

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 #include #include #include #include // nDime为全部变量,可逆矩阵的维数int nDime;int index = 0; // MAXN为明文的最大长度const int MAXN = 256; // 矩阵相乘,a是一个列为1的矩阵void MultiplyMatrix(int a[], int b[][10], int *text){ int i, j, t; for (i = 0; i < nDime; i++) { t = 0; for (j = 0;j < nDime; j++) t += b[i][j] * a[j]; text[index++] = t; }} // 求行列式的值int determinant(int m[][10], int size){ int row, column; int temp1[10], temp2[10], t; for (column = 0; column < size; column++) { temp1[column] = m[0][column]; temp2[column] = m[0][column]; } for (row = 1; row < size; row++) { for (column = 0; column < size; column++) { int diff = column - row; int sum = column + row; if (diff < 0) diff += size; if (sum >= size) sum %= size; temp1[diff] *= m[row][column]; temp2[sum] *= m[row][column]; } } t = 0; for (row = 0; row < size; row++) t += temp1[row] - temp2[row]; return t;} // 求矩阵中某一元素的代数余子式int func(int matrix[][10], const int i, const int j){ int row, column, m, n; int NewMatrix[10][10]; m = n = 0; for (row = 0; row < nDime; row++) { if (i == row) continue; for (column = 0; column < nDime; column++) { if (j == column) continue; NewMatrix[m++][n++] = matrix[row][column]; } } printf ("New Array:\n"); for (row = 0; row < nDime - 1; row++) { for (column = 0; column < nDime - 1; column++) printf("%d ", NewMatrix[row][column]); printf("\n"); } int sign = (!((i + j) % 2)) ? 1 : -1; return sign * determinant(NewMatrix, nDime - 1);} // 对矩阵求逆,cm矩阵与m矩阵互逆void ConverseMatrix(int m[][10], int cm[][10]){ // 矩阵求逆,利用数学公式A(逆)= (1 / |A|)乘以A* // 其中,|A|表示行列式A的值,而A*表示矩阵A的伴随矩阵 int row, column; int StarMat[10][10]; // StarMat表示m的伴随矩阵 int t; // 初始化伴随矩阵 for (row = 0; row < 10; row++) for (column = 0; column < 10; column++) StarMat[row][column] = 0; // 求伴随矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) { StarMat[row][column] = func(m, row, column); printf("伴随矩阵:%d", StarMat[row][column]); } // 求行列式的值 t = determinant(m, nDime); // 求出逆向矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) cm[row][column] = StarMat[row][column] / t; // 输出逆向矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) printf("%d ", cm[row][column]); printf("\n");} // 希尔加密及解密算法void ShellPassword(int *OText, int TextLen, int matrix[][10], int *text){ int i, j, n, a[10]; // 判断要将OText分成几部分 n = TextLen / nDime; if (TextLen % nDime) n++; // 矩阵相乘 // 将OText分成的几部分分别与matrix矩阵相乘 for (i = 0; i < n; i++) { for (j = 0; j < 10; j++) a[j] = 0; for (j = 0; j < nDime; j++) a[j] = OText[i * nDime + j]; MultiplyMatrix(a, matrix, text); }} int main(void){ int i, temp, row, column; // matrix存放加密或解密矩阵,Password为加密后的结果 // OText存放原文转换为普通数字,如A~1,Z~26 int matrix[10][10], ConMatrix[10][10], OText[MAXN], Password[MAXN], OriText[MAXN]; char text[MAXN]; char sel; printf("=================================================\n"); putchar('\n'); printf(" SHELL加密解密器\n"); putchar('\n'); printf("=================================================\n"); while (1) { // 初始化矩阵 for (row = 0; row < 10; row++) for (column = 0; column < 10; column++) matrix[row][column] = 0; putchar('\n'); printf("1.加密\n"); printf("2.解密\n"); printf("0.退出\n"); printf("请输入你的选择:\n"); sel = getche(); switch (sel) { case '1': printf("\n请输入原文:\n"); memset(text, '\0', sizeof(text) / sizeof(char)); memset(Password, 0, sizeof(Password) / sizeof(int)); gets(text); printf("输入加密矩阵的维数,维数不能超过10维:\n"); scanf("%d", &nDime); printf("输入矩阵,该矩阵必须为可逆矩阵,否则将不能进行解密:\n"); // 可逆矩阵即,设A为n阶矩阵,如果存n在阶矩阵B使得AB=BA=1 // 则矩阵A是可逆的,称B是A的逆矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) scanf("%d", &matrix[row][column]); // 将小写字母转换为大写字母 for (i = 0; text[i] != '\0'; i++) if (islower(text[i])) text[i] |= 0x20; // OText存放将字母转换为相应数,如A~1,Z~26 for (i = 0; i < MAXN; i++) OText[i] = 0; for (i = 0; text[i] != '\0'; i++) OText[i] = text[i] - 'A' + 1; // 加密 ShellPassword(OText, strlen(text), matrix, Password); // 将加密后的内容打印出来 printf("加密后的内容为:\n"); for (i = 0; i < strlen(text); i++) printf("%d ", Password[i]); putchar('\n'); break; case '2': break; case '0': return 0; default: break; } getchar(); } return 0;} 译码算法我会在明天上传上来,你的加密密钥是一个三。

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 #include #include #include #include // nDime为全部变量,可逆矩阵的维数int nDime;int index = 0;// MAXN为明文的最大长度const int MAXN = 256;// 矩阵相乘,a是一个列为1的矩阵void MultiplyMatrix(int a[], int b[][10], int *text){ int i, j, t; for (i = 0; i < nDime; i++) { t = 0; for (j = 0;j < nDime; j++) t += b[i][j] * a[j]; text[index++] = t; }}// 求行列式的值int determinant(int m[][10], int size){ int row, column; int temp1[10], temp2[10], t; for (column = 0; column < size; column++) { temp1[column] = m[0][column]; temp2[column] = m[0][column]; } for (row = 1; row < size; row++) { for (column = 0; column < size; column++) { int diff = column - row; int sum = column + row; if (diff < 0) diff += size; if (sum >= size) sum %= size; temp1[diff] *= m[row][column]; temp2[sum] *= m[row][column]; } } t = 0; for (row = 0; row < size; row++) t += temp1[row] - temp2[row]; return t;}// 求矩阵中某一元素的代数余子式int func(int matrix[][10], const int i, const int j){ int row, column, m, n; int NewMatrix[10][10]; m = n = 0; for (row = 0; row < nDime; row++) { if (i == row) continue; for (column = 0; column < nDime; column++) { if (j == column) continue; NewMatrix[m++][n++] = matrix[row][column]; } } printf ("New Array:\n"); for (row = 0; row < nDime - 1; row++) { for (column = 0; column < nDime - 1; column++) printf("%d ", NewMatrix[row][column]); printf("\n"); } int sign = (!((i + j) % 2)) ? 1 : -1; return sign * determinant(NewMatrix, nDime - 1);}// 对矩阵求逆,cm矩阵与m矩阵互逆void ConverseMatrix(int m[][10], int cm[][10]){ // 矩阵求逆,利用数学公式A(逆)= (1 / |A|)乘以A* // 其中,|A|表示行列式A的值,而A*表示矩阵A的伴随矩阵 int row, column; int StarMat[10][10]; // StarMat表示m的伴随矩阵 int t; // 初始化伴随矩阵 for (row = 0; row < 10; row++) for (column = 0; column < 10; column++) StarMat[row][column] = 0; // 求伴随矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) { StarMat[row][column] = func(m, row, column); printf("伴随矩阵:%d", StarMat[row][column]); } // 求行列式的值 t = determinant(m, nDime); // 求出逆向矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) cm[row][column] = StarMat[row][column] / t; // 输出逆向矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) printf("%d ", cm[row][column]); printf("\n");}// 希尔加密及解密算法void ShellPassword(int *OText, int TextLen, int matrix[][10], int *text){ int i, j, n, a[10]; // 判断要将OText分成几部分 n = TextLen / nDime; if (TextLen % nDime) n++; // 矩阵相乘 // 将OText分成的几部分分别与matrix矩阵相乘 for (i = 0; i < n; i++) { for (j = 0; j < 10; j++) a[j] = 0; for (j = 0; j < nDime; j++) a[j] = OText[i * nDime + j]; MultiplyMatrix(a, matrix, text); }}int main(void){ int i, temp, row, column; // matrix存放加密或解密矩阵,Password为加密后的结果 // OText存放原文转换为普通数字,如A~1,Z~26 int matrix[10][10], ConMatrix[10][10], OText[MAXN], Password[MAXN], OriText[MAXN]; char text[MAXN]; char sel; printf("=================================================\n"); putchar('\n'); printf(" SHELL加密解密器\n"); putchar('\n'); printf("=================================================\n"); while (1) { // 初始化矩阵 for (row = 0; row < 10; row++) for (column = 0; column < 10; column++) matrix[row][column] = 0; putchar('\n'); printf("1.加密\n"); printf("2.解密\n"); printf("0.退出\n"); printf("请输入你的选择:\n"); sel = getche(); switch (sel) { case '1': printf("\n请输入原文:\n"); memset(text, '\0', sizeof(text) / sizeof(char)); memset(Password, 0, sizeof(Password) / sizeof(int)); gets(text); printf("输入加密矩阵的维数,维数不能超过10维:\n"); scanf("%d", &nDime); printf("输入矩阵,该矩阵必须为可逆矩阵,否则将不能进行解密:\n"); // 可逆矩阵即,设A为n阶矩阵,如果存n在阶矩阵B使得AB=BA=1 // 则矩阵A是可逆的,称B是A的逆矩阵 for (row = 0; row < nDime; row++) for (column = 0; column < nDime; column++) scanf("%d", &matrix[row][column]); // 将小写字母转换为大写字母 for (i = 0; text[i] != '\0'; i++) if (islower(text[i])) text[i] |= 0x20; // OText存放将字母转换为相应数,如A~1,Z~26 for (i = 0; i < MAXN; i++) OText[i] = 0; for (i = 0; text[i] != '\0'; i++) OText[i] = text[i] - 'A' + 1; // 加密 ShellPassword(OText, strlen(text), matrix, Password); // 将加密后的内容打印出来 printf("加密后的内容为:\n"); for (i = 0; i < strlen(text); i++) printf("%d ", Password[i]); putchar('\n'); break; case '2': break; case '0': return 0; default: break; } getchar(); } return 0;} 译码算法我会在明天上传上来,你的加密密钥是一个三阶的数组,密文C是:1729 2514 811 165。

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密码毕业论文

转载请注明出处众文网 » 毕业论文设计管理系统密码

资讯

毕业设计网站论文

阅读(427)

本文主要为您介绍毕业设计网站论文,内容包括求几个毕业论文样本的网站,供参考.,高分求VB或网站程序论文和毕业设计,马上就毕业了,网站设计与制作的论文该怎么写。目前信息化技术的迅速普及和广泛应用,大量各行各业工作人员开始利用网络这种

资讯

关于信用社毕业论文

阅读(443)

本文主要为您介绍关于信用社毕业论文,内容包括我要写一份关于农村信用合作联社的论文,写什么题目的什么好呢?,信用社经济类毕业论文贷款方面的,能帮我写个关于某县农村信用社发展现状及分析的毕业论文的提纲搜。希望对你有所帮助。推荐一个

资讯

变频器在平网印花机设计与应用毕业论文设计

阅读(461)

本文主要为您介绍变频器在平网印花机设计与应用毕业论文设计,内容包括电气自动化论文题目,紧急需要“自行车上的物理知识”研究性学习论文,1500字以上,请大,急求一篇关于变频调速或者变频器的外文文献,要论文形式的搜狗。1. PLC控制花样喷

资讯

论善意取得毕业论文

阅读(414)

本文主要为您介绍论善意取得毕业论文,内容包括毕业论文善意取得制度创新之处,善意为话题写一篇议论文800字谢谢了,急!求助翻译论文摘要<论善意取得制度研究>。善意取得是《物权法》中的一项重要制度,关于善意取得制度的适用范围,主要有两种观

资讯

关于变频器的毕业论文

阅读(466)

本文主要为您介绍关于变频器的毕业论文,内容包括求毕业论文:变频器的设计,求PLC变频器毕业论文de外语参考文献,翻译求助——变频器等方面的专业论文的摘要。黄慧敏. 通用变频器应用中的问题及对策[J].矿山机械.2004(11)曹玉泉,王主恩. 异步

资讯

毕业设计科技小论文

阅读(409)

本文主要为您介绍毕业设计科技小论文,内容包括科技小论文可以写什么内容?,科技小论文400字,如何写科技小论文(3000字以内)?。比如;选好课题撰写科技小论文,首先要考虑写什么,也就是课题的选择。选择课题是写好论文的关键。要注意以下原则:价值

资讯

关于针棉织品染整专业毕业论文

阅读(470)

本文主要为您介绍关于针棉织品染整专业毕业论文,内容包括求一篇染整毕业论文,染整技术在毛发领域的应用论文,求一篇与染织专业有关的论文,1000到2000字左右~谢谢各位大神了~。进入21世纪,绿色环保纺织品成为纺织品种的新视点,在运用千变万化

资讯

毕业论文专家评阅意见

阅读(431)

本文主要为您介绍毕业论文专家评阅意见,内容包括论文评阅意见怎么写,大学毕业论文的评阅人评语怎么写,大学毕业论文的评阅人评语怎么写。研究生应按时认真完成学位论文并按照本学校研究生学位论文撰写要求中提出的有关事项和格式撰写论文。

资讯

子空间毕业论文

阅读(393)

本文主要为您介绍子空间毕业论文,内容包括子空间的交与和,子空间聚类文章簇集合并部分怎么写?,关于受限子空间图像识别的论文,中英文对照。最小二乘方法最早是有高斯提出的,他用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的

资讯

广东金融学院毕业论文模板

阅读(426)

本文主要为您介绍广东金融学院毕业论文模板,内容包括金融学毕业论文,感觉好难啊,谁能发我几篇范文,金融学论文,怎么写,金融专业毕业论文范文。原发布者:zyling1208 对金融学的认识的论文金融市场交易之间不是单纯的买卖关系,更主要的是借贷关

资讯

会计信息失真的深层原因和对策研究毕业论文

阅读(403)

本文主要为您介绍会计信息失真的深层原因和对策研究毕业论文,内容包括有谁写过关于我国会计失真原因及对策的毕业论文,求助相关资料百,会计信息失真的原因及对策研究这个会计毕业论文好不好写,如果不,求《浅谈会计信息失真的成因与对策》的

资讯

本科毕业论文范文百度文库

阅读(371)

本文主要为您介绍本科毕业论文范文百度文库,内容包括毕业论文范文,本科毕业论文的标准格式及范文,求毕业论文、范文也可以。毕业论文格式论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提

资讯

汽车轮胎的保养与维护毕业论文

阅读(479)

本文主要为您介绍汽车轮胎的保养与维护毕业论文,内容包括汽车轮胎的日常维护毕业论文怎么写?,汽车轮胎的日常维护毕业论文怎么写?,汽车专业写一篇关于汽车轮胎的毕业论文。最初的气压轮胎是 1888年 英国的兽医 John Boyd Dunlop ,他先用橡胶

资讯

毕业论文一稿怎么写

阅读(398)

本文主要为您介绍毕业论文一稿怎么写,内容包括毕业论文一稿怎么写计算机专业记账本,毕业论文初稿怎么写,毕业论文如何写。按研究问题的大小不同可以把论文范文分、为宏观论文范文和微观论文范文。凡属国家全局性、带有普遍性并对局部工作有

资讯

一村一名大学生农业生产经营毕业论文

阅读(469)

本文主要为您介绍一村一名大学生农业生产经营毕业论文,内容包括求一篇发展新农村大学生1500字论文,急求一篇农村经济管理毕业论文,三千字左右谢谢!,经济管理毕业论文题目适度规模经营与农业现代化急!!。“建设社会主义新农村”是今年全党社