古典密码算法实验c语言,古典密码实验报告.doc

article/2025/9/25 6:51:09

41528d3028836879cd698677c3999917.gif古典密码实验报告.doc

哈尔滨工程大学实验报告实验名称古典密码算法班级学号姓名实验时间2014年4月成绩指导教师实验室名称哈尔滨工程大学实验室与资产管理处制一、实验名称古典密码算法2、实验目的通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼亚密码、周期置换密码、列置换密码,加深对代替技术的了解,为现代分组密码实验奠定基础。3、实验环境(实验所使用的器件、仪器设备名称及规格)运行WINDOWS或LINUX操作系统的PC机,具有GCCLINUX、VC(WINDOWS)等C语言编译环境。4、实验任务及其要求(1)根据实验原理部分对移位密码的介绍,自己创建明文信息,并选择一个密钥,编写移位密码的实现程序,实现加密和解密操作。(2)根据实验原理部分对维吉尼亚密码的介绍,自己创建明文信息,并选择一个密钥,编写维吉尼亚密码的实现程序,实现加密和解密操作。(3)根据实验原理部分对周期置换密码的介绍,自己创建明文信息,并选择一个密钥,编写周期置换密码的实现程序,实现加密和解密操作。(4)根据实验原理部分对列置换密码的介绍,自己创建明文信息,并选择一个密钥,编写列置换密码的实现程序,实现加密和解密操作。5、实验设计(包括原理图、真值表、分析及简化过程、卡诺图、源代码等)1.移位密码移位密码(SHIFTCIPHER)是一种典型的单表替代密码,也称为加法密码。移位密码的加密方法就是将明文中的每个字母用其在字母表后面的第K个字母替代,它的加密过程可以表示为CMKMODN其中,M为明文字母在字母表中的位置数;N为字母表中的字母总数;K为密钥;C为密文字母在字母表中对应的位置数。相应的,移位密码的解密过程可以表示为MCKMODN移位密码的一个典型代表就是凯撒密码(CEASERCIPHER),它是K3时的移位密码。使用英文字母表的撒密码的加(解)密可以表示为MC3MOD26MC3MOD26,例如,明文ATTACKSATNINEAM密钥3加密将明文分组对每一个密文字母,依英文字母表,用其右的第3个字母代替密文DWWDFNVDWQLQHDP另外,使用凯撒密码加密后的密文“DWWDFNVDWILYHSP”,其明文为“ATTACKSATFIVEPM”。2.维吉尼亚密码维吉尼亚密码(VIGENERECIPHER)是一种多表代替密码,其本质是周期移位密码。维吉尼亚密码的(用户)密钥为一含有D个字母的有限字母序列KK0K1KD1加密时,首先将用户密钥进行周期扩展(周期为D),扩展后的无限字母序列称为工作密钥,记为KK0K1KI其中KIKIMODD,I0,1,当D1时,维吉尼亚密码就是移位密码。对于含有L个字母的明文,维吉尼亚加密过程可以表示为CIMI+KIMODN其中,MM0M1MIML1为明文,CC0C1CICL1为密文,KK0K1KIKL1为工作钥,N为明文字母表的长度,L为明文长度(含有字母的数目)。例如,使用用户钥CAT,对明文“VIGENERECIPHER”进行维吉尼亚加密。此时,N26(对应英文字母表),用户钥C3、A0、T19,得到的密文为“XIZGNXTEVKPAGR”。置换(PERMUTATION)是古典密码中另一种基本的处理技巧,就是将明文中的字母重新排列,字母本身不变,只是改变其位置。置换密码(SUBSTITUTIONCIPHER)就是使用置换法进行加解密的密码算法,也称为换位密码。置换密码的密钥是一个置换,它表示了明文字母在密文中出现的位置。例如,使用密钥Π3421,对明文“MING”进行加密,得到的密文为“NGIM”。3.周期置换密码周期置换密码是将明文字母按一定长度M进行分组,把每个分组中的字母按1,2,,M的一个置换Π重排位置次序来得到密文的一种加密方法。其中的密钥就是置换Π,在Π的描述中包含了分组长度的信息。解密时,对密文字符按长度M进行分组,并按Π的逆置换Π−1把每组字符重排位置次序来得到明文。例如,明文MINGCHENJIUDIANFADONGFANGONG加密密钥3421(I1,2,3,4的一个置换ΠI3,4,2,1)加密将明文分组(4个字母一组),然后根据加密密钥给定的置换,对每个明文分组进行置换MINGCHENJIUDIANFADONGFANGONGNGIMENHCUDIJNFAIONDAANFGNGOG密文NGIMENHCUDIJNFAIONDAANFGNGOG解密密钥4312(3412的逆置换)4.列置换密码列置换密码也称为矩阵置换密码。其加解密方法如下把明文字符以固定的宽度M分组长度水平地按行写在一张纸上,按1,2,,M的一个置换Π交换列的位置次序,再按垂直方向即按列读出即得密文。解密就是将密文按相同的宽度M垂直在写在纸上,按置换Π的逆置换Π−1交换列的位置次序,然后水平地读出得到明文。置换Π就是密钥。例如,明文MINGCHENJIUDIANFADONGFANGONG密钥YULANHUA加密去掉密钥重复字母得YULANH,得到密钥字母顺序653142得出距阵列数为6,将明文按行填充距阵按列(依顺序)写出距阵中的字母。密文GIFFGHDDN0NJNGNCUAA0INANOMEIOG(其中0为无效字符)解密加密的逆过程6、实验步骤通过实验分析,将各个古典密码算法编写出来,然后编写一个主函数。调试,验证加密解密正确性。INCLUDEINCLUDEDEFINECRYPT_OK1DEFINECRYPT_ERROR0DEFINEMAXSIZE100VOIDSHIFTCIPHERVOIDVIGENERECIPHERVOIDCYCLECIPHERVOIDCOLCIPHERVOIDMAIN{INTOP0WHILE1{PRINTF“WHICHCIPHERWOULDYOUWANT1SHIFT2VIG3CYC4COL\N“SCANF“D“,FSTDINSWITCHOP{CASE1{SHIFTCIPHER}BREAKCASE2{VIGENERECIPHER}BREAKCASE3{CYCLECIPHER}BREAKCASE4{COLCIPHER}BREAK}}}//主函数//列置换置换密码INTCOLENCRYPTCHARPLAIN,CHARCIPHER,CHARKEY//列置换置换密码加密算法INTCOLDECRYPTCHARPLAIN,CHARCIPHER,CHARKEY//列置换置换密码解密算法VOIDCOLCIPHERENCRYPT//列置换置换密码加密调用VOIDCOLCIPHERDECRYPT//列置换置换密码解密调用VOIDCOLCIPHER//列置换置换密码模块调用INTFIXCHARM,INTT//字符串补齐修正VOIDCOLCIPHER{INTOP0WHILE1{FSTDINPRINTF“__THIS_IS_COLOUM_CIPHER_PROCESS____________________\N“PRINTF“1FORENCRYPT,2FORDECRYPT“SCANF“D“,GETCHARSWITCHOP{CASE1{COLCIPHERENCRYPT}BREAKCASE2{COLCIPHERDECRYPT}BREAKDEFAULT{PRINTF“ERROR\N“}}}}//列


http://chatgpt.dhexx.cn/article/2h9Ql135.shtml

相关文章

古典密码学学习笔记

1.历史 古典密码阶段:1949年以前 近代密码阶段:1949-1975年 现代密码阶段:1976年至今 2.加密方法 古典密码学的加密方法主要有两大类:替代和置换,或者是两者的结合 3.基本密码 1.键盘布局加密 这是一种比较简单也…

古典密码

古典密码将明文的每一个字母代换为字母表中的另一个字母,代换前现将明文字母用等价的十进制数字代替,使用十进制进行运算。 字母abcdefghijklm数字0123456789101112 字母nopqrstuvwxyz数字13141516171819202122232425 根据代换是对每个字母逐个进行还是…

初学古典密码

古典密码 目录 古典密码 Wiki篇 二,凯撒密码Caesar: 三,移位密码 四,Atbash Cipher(埃特巴什码): 五,简单替换密码 六,仿射密码(affine cipher) 多表…

简单古典密码

1. 简单移位密码 m "{easy_easy_crypto}" k 3124 明文所在位置1234密文所在位置3124 flag{easy_easy_crypto}lafgea{s_eyay_scyprt}o 攻击方法:肉眼识别/爆破秘钥/根据flag字符串逆推 2. 曲路密码 明文填入一个表中,并按照一定的曲路遍历攻击方法…

古典密码技术

古典密码技术 古典密码是密码学中的其中一个类型,其大部分加密方式都是利用替换式密码或移项式密码,有时则是两者的混合。其于历史中经常使用,但在现代由于计算机的出现,使得古典密码解密已经不再困难,已经很少使用&a…

古典密码简记

目录 概述 传统隐写 替换密码技术 换位密码技术: 安全性分析 概述 古典密码只是对字母进行变换,而现代密码算法是对比特流进行变换。 古典密码技术比较简单,通常 采用手工或机械操作来对明文进行加密和解密的。(例&#xf…

常见古典密码

古典密码 文章目录 古典密码前言1.Affine(仿射加密)2.Bacon(培根加密)3.Brainfuck4.Caesar(凯撒加密)5.Fence(栅栏加密)6.Fenham(费纳姆加密)7.Morse(摩斯密码)8.Pigen(猪圈加密)9.Vigenere(维吉尼亚加密) 前言 系统的学习了一下古典密码,这里大概整理一下主要的加…

古典密码学

主要划分方式及其分类 按密钥方式划分:对称,非对称 按明文处理方式分:块密码,流密码 按编制原理划分:代换,置乱 对称加密算法 对称加密算法 对称加密算法(synmetric algorithm)&…

古典密码总结

古典密码 凯撒密码凯撒位移(中文版) 栅栏密码棋盘密码乘法密码仿射密码希尔密码摩斯电码猪圈密码键盘密码参考 凯撒密码 加密公式:密文 (明文 位移数) Mod 26 解密公式:明文 (密文 - 位移数) Mod 26 凯撒位移(中…

古典密码(部分合集)

古典密码 一. 移位密码1. 简单移位密码2. 曲路密码3. 云影密码4. 栅栏密码 二. 代替密码单表代替密码1.凯撒密码2.ROT133.埃特巴什密码4.经典单表替代密码5.摩斯密码6.培根密码7.图形替换密码猪圈密码圣堂武士密码标准银河密码 8.仿射密码 多表代替密码1.棋盘密码PlayfairPolyb…

密码学:古典密码.

密码学:古典密码. 古典密码是密码学的一个类型,大部分加密方式是利用替换式密码或移项式密码,有时是两者的混合。古典密码在历史上普遍被使用,但到现代已经渐渐不常用了。一般来说,一种古典密码体制包含一个字母表(如…

古典密码汇总。

一、密码类型汇总 23、维吉尼亚密码(Vigenre Cipher) 【Vigenre Cipher】 由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,   即维吉尼亚密码,也称维热纳尔密码。维…

SourceTree的使用

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。 二、下载安装SourceTree步骤 1、下载地址&#xf…

SourceTree使用教程图文详解

作者的其他平台: | CSDN:https://blog.csdn.net/qq_41153943 | 掘金:https://juejin.cn/user/651387938290686 | 知乎:https://www.zhihu.com/people/1024-paper-96 | GitHub:https://github.com/JiangXia-1024?t…

Sourcetree打开之后,闪退,问题处理

1、环境:win11 Sourcetree版本3.4.7 2、处理办法,在资源管理器地址栏输入“%LocalAppData%\Atlassian”,删掉“SourceTree.exe_Url_ampbpf5kvqim4xxkhaykobjynfannkxz”(非SourceTree目录),打开正常。

Sourcetree查看某个文件提交历史记录

1、在文件状态右上角搜索要查看的文件名 2、选择查看的文件名右键 点击变更历史即可

sourcetree使用

由于在工作中负责线上代码的部署和控制,所以对SourceTree的使用场景和使用技巧进行了全面系统的研究和实践,并以经验连载的形式进行了分享。该经验主要是对这些连载经验进行整体的概述,以方便大家的查阅和参考。 方法/步骤 SourceTree使用的…

sourceTree打不开,启动闪退

应该还是缓存文件的问题: C:\Users\wangqiang\AppData\Local\Atlassian 把这个临时文件删掉:

sourcetree使用说明

功能全面介绍 OK,拔山涉水终于安装完毕,进入主页是长这个样子 1.主页 几个按钮作用:如图,其中过滤仓库搜索框其实就是个搜索框,可以根据仓库名字的关键字搜索出仓库,右上角的设置按钮比较简单这里就不再解释大家自行点开一下就明白了 Snip20171208_22.png 新建按钮解释 Sni…

SourceTree解决冲突

1、解决冲突的时候,操作已暂存文件,不操作未暂存文件(开始的时候,这两个区域的文件是一样的,并且都带有感叹号提示) 2、使用他人版本解决冲突,会自动将当前分支对应文档更改成他人文档内容&…