• 大小: 4.14KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: C/C++
  • 标签: c  

资源简介


压缩包内有两个C语言程序代码,分别是加解密和已知明文攻击,还有三个文本文档,是代码实现过程中的输入与输出文档。实现2阶Hill密码在已知明文攻击场景中,基于向量线性无关的破译。基于C语言实现 密钥矩阵随机生成、加密、解密和已知明文攻击。

资源截图

代码片段和文件信息

/*
   代码了实现2阶Hill密码在已知明文攻击场景,在上面的实验中,使用了加密矩阵A={1203}对字符串
  helloxidian  进行了加密  加密得到的密文是hvscsckzctvqozetduyrxmhyumzfcdcihvehtmrgnubfkqn
   假设密文字母nubf分别代表了rypt,那么就可以通过矩阵的知识破解二阶HILL密码
*/
#include
#include
#include
int main()
{
FILE *fp;
int matcip[2][2]={931922}matpla[2][2]={140324}invcip[2][2]={0}invA[2][2]={0};
int tran1[10000]={0}T1[2]={0}msg[2]={0}mes[10000]={0};
int ijdetcipinvdetciplenflag;
    char ciph[10000]={‘\0‘}; //密文
char pla[10000]={‘\0‘}; //明文
    detcip = -1;
    for(i=1; detcip < 0; i++)
        {
            detcip = ((matcip[0][0] * matcip[1][1] - matcip[0][1] * matcip[1][0]) + 26 * i)%26; //求部分密文的行列式的值 
        }
    i = 1;
    
//判断 是否可逆 
        while(1)
        {
            if((detcip * i) % 26 == 1)
            {
                invdetcip = i;
                break;
            }
            else
            {
                i++;
            }
        }
        
// 求部分密文

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3142  2018-11-10 12:33  新建文件夹\CrackHill.c
     文件          47  2018-11-10 12:39  新建文件夹\c.txt
     文件        5401  2018-11-10 20:57  新建文件夹\hill.cpp
     文件          16  2018-11-10 20:58  新建文件夹\output.txt
     文件          15  2018-11-10 12:23  新建文件夹\plain.txt
     目录           0  2018-11-27 18:35  新建文件夹\

评论

共有 条评论