您的当前位置:首页正文

基于vigenere密码的文件加解密器的研究与实现

来源:帮我找美食网
SYS SECURITY 系统安全 基于Vigenere密码的文件加解密器的研究与实现 ◆王飞王笛关宏博 摘要:随着计算机网络和通信技术的发展,信息安全技术已经成为 一个国家信息技术水平的一个重要标志,密码技术则是其核心。维吉尼尔 (Vigenere)密码算法是古典加密算法中的最典型的算法之一,本文主要 利用c语言设计实现了分别基 ̄-Vigenere密码算法和三维Vigenere密码算法 的文件加解密器。 关键词:维吉尼尔(Vigenere)密码算法;文件加;解密器 表1.1 vigenere方阵 引言 随着现代通信技术的发展以及计算机网络的普及, 信息已成为社会必须的资源,信息安全也成为时代的迫 切需求。加密技术作为信息安全的核心也越来越受到人 们的普遍重视。本文主要利用C语言实现二维和三维的 基于Vigenere密码的文件加解密器。 一a b c d e f g h i j k 1 Ii1 11 o p q r s t Lt v w x y z a A B C D E F G}{I J K L M 0 P Q R S T U V W X Y Z b B C D E F G H I J K L M 0 P Q R S T U V W X Y Z A c d e C D E F G H I J K L N 0 P Q R S T U V W X Y Z A B D E F G H I J K L氍N 0 P Q R S T U VⅣX Y Z A B C E F G H I J K L弘N 0 P Q R S T U V W X Y Z A B C D f F G H I J K L M 0 P Q R S T U V W X Y Z A B C D E 、二维vigenere密码 g G}{I J K L M N 0 P Q R S T U V W X Y Z A B C D E F h H I J K L M N 0 P Q R S T U V W X Y Z A B C O E F G i I 5 K L辫N 0 P Q R S Y U V W X y Z A B C D E F G H 0 P Q R S T U V详X Y Z A B C D E F G珏I Vigenere密码算法是古典加密算法之一,在密码学 中占据着非常重要的地位,它对于我们理解、设计、分 析现代密码学具有很高的参考价值。Vigenere密码算法 如下: j J K L k K L粥N 0 P Q R S T U V W X V Z A B C D E F G H I_了 设密钥k=klk2…k ,明文m=m1m2…m ,加密 变换 Ek( )=ClC2…C 1 in n L 0 P Q R S T U V W X Y Z A B C D E F G{{I J K 醚N 0 P Q R S T U V W X Y Z A B C D E F G H I J K L N 0 P Q R S T U V W X Y Z A B C D E F G H I J K L 其中C i( l+kf)mod26,i=1,2,…,疗。 ‘ 表1.1 ̄vigenere方针。它的X轴表示明文,Y轴表 示密钥,利用它可以快速的对简短文件进行加解密。 o 0 P Q R S T U y W X y Z A B C D E F G H I J K L N p P Q R S Y U V W X Y Z A B C D E F G H I J K L M N 0 q Q R S T U V W X Y Z A B C D E F G H I J K L N 0 P 二、三维vigenere密码 在二维加密过程中明文中重复部分的间距若是密 钥长度的倍数,则在密文中会产生一个重复部分。当 数据量较大时,就有可能据此推出密钥长度。为了避 免这样的危险,可以利用三维vigenere密码算法进行 加密。 r R S T 0 V W X Y Z A B C D E F G lq I J K L N 0 P Q s S T U V W X Y Z A B C D E F G H I J K L M 0 P Q R t T V W X Y Z A B C D E F G H I J K L N 0 P Q R S 0 P Q R S T u U V W X Y Z A B C D E F G H I J K L v V W X Y Z A B C D E F g H I J K L疆N 0 P Q It S T U w W X Y Z A B C D E F G H I J K L粥N 0 P Q R S T U V x X Y Z A B C D E F G H I J K L M N 0 P Q R S T U V W y Y Z A B C D E F G H I J K L M 0 P Q R S T U V W X 如图2.1上的密钥字母所在坐标轴为x轴,明文字 母坐在坐标轴为Y轴,则二维vigenereJJl密的密文字母 z Z A B C D E F G H I J K L M N 0 P Q R S Y U V W X Y 48 信息系统工程I 201 1.7.20 SYS SECURITY 系统安全 三、文件加解密器的实现 墨 燕 一 本设计主要实现了一个基于Vigenere密码算法的文 枣 件加解密器,它能针对文本文件进行加解密,并提供相 关的新建、打开、保存等功能。下面从功能模块等方面 童 图2.1 vigenere立方体 分别在x轴方向和Y轴方向以模26形式增长。而三维 vigenere密码是在此基础上增加一个z轴,使二维加密后 的密文在z轴的方向也以模26的方式增长。 记第一次加密密钥K : -,kxz,…,k ,第二次加密 密钥K:= l,k …,k ,明文 y yl,m 2,…,m ,通 过引入坐标轴,规定a到z分别表示0 ̄1J25,则在原二维 平面,密文字母坐标为 ,M ,)的点对应的字母,相 应于三维空间,密文字母就是坐标为 , ,K: 的点 对应的字母。 上 于是在是三维空间,具体的代换过程可表述如下:[2 加密变换为 cj= +@ +Myi)rnod q) ̄od g C=E )=c。,c:,…,c ,其中{i_l,2,…,n =26 解密变换为 土 卫 fm,=((c 一K 。 g)Inod口一Kxi+口)mod g = (c):m 2,…,m ,其中{ 1 2-, lg=26 理论上不可攻破的密码系统只有一次一密系统,但 在实际应用中,一次一密却受到很大限制。Vigenere密 码针对的是26个英文字母,如果密钥长度为 则密钥 空间为26 。若f】和l 互质,实际上就可以做到用长度为 , +f2的密钥代替长度为, 『2的密钥,而此时密钥空间就 从26 扩展到26 ”,如果采用密钥穷尽搜索的方法,将 是十分困难的,从而极大的提高了破解难度,也实现了 用较短的密钥代替较长的密钥加密效能的作用。 详细介绍设计思路和原理。 3.1功能模块 该文件加、解密器的结构如下图3.1所示。 文件加解褰器 % … … 。 … 点 ……………… … 旃建 打开 迢出 保存 二维 二缡 三孀 三绻 帮助 关于 拥 镌 拥事 解峦 _ 图3.1文件加解密器模块设计图 3.2主函数流程图 如图3.2所示,是该程序的主流程图。它首先初始 化一些全局变量并显示主窗口;然后调用while(1)进入 主循环,等待用户按键的返回值,然后根据返回值进行 相应处理。若返回的是常规字符,则进行新建操作,即 图3—2文件加解密器执行主流程图 信息系统工程f 201 1.7.20 49 : 苎 墨 ! 室全 将字符保存到相应内存中;若返回值为功能键,则根据 返回值执行相应的操作。 3.3其他相关函数介绍 该文件加解密器中除主函数外,还有另外8个函 数,主要实现一些辅助功能。现在简单介绍如下几个主 要函数: (1)加密函数 加密函数通过循环逐个对待加密字符进行操作, 若是字母则将其转为对应数字;若为其他字符则保持 原样。对于字母再计算对应使用的密钥并利用Vigenere 方阵求出对应密文。最终返回一个指向密文的字符串 指针。 (2)解密函数 解密函数与加密过程是逆过程。对于字母利用 Vigenere方针求出该密文对应的明文与字母a的距离d, 最后将d以模26的方式加到字母a上,得到明文。该函数 最终返回一个指向明文的字符串指针。 (3)菜单控制函数int menuctrl(char★q,int A) 该函数用于调用菜单、移动菜单的光条带和选取菜 单选项的任务,最终返回整型值A,主函数根据返回的 A的值来进行相应的操作。 (4)保存函数void save(char★p,char q) 该函数主要是针对明文和密文分别进行保存, 操作过程是相同的。首先以只写方式为输出打开一 个文本文件,然后依次将明文或密文写入相应的文 本文件中。 3.4函数执行主要过程 软件运行后的主界面如图3.2所示。通过功能键 F1、F2、F3调用菜单FILE、TOOL、HELP。 图3.2文件加、解密主界面 该程序执行时,根据按键的返回值执行如表3.1所 示的相应的操作。 50 信息系统工程I 2011.7.20 子菜单 返回值 操作 NEW 100 执行主函数 opEN lb1 调用打开函数 SAVE 102 调用僳存函数 ENCRYPTION l】O 调用加密 数 DECRⅥT ON lll 调用解密函数 设置不同参数,调用 THR_ENCRYP l12 两次加密函数 设置不同参数,调用 THR-DECRYP ll3 两次解密函数 HELP,ABoLrr 120/l2l 显示相关内容 总结 随着因特网技术的飞速发展,如何保证敏感信息数 据的安全传输日益受到人们的重视,为此,加密技术方 兴未艾并得到日新月异的提高。如今在现实中应用的加 密算法大部分是在经典密码体制基础上经过改进的,作 为密码学的发展源泉,经典密码体制仍具有很高的研究 价值。 本设计实现的文件加解密器可以执行文本文件的 加、解密等,具有一定的实用性。但是由于经验和知识 的缺乏,该文件加解密器还是存在一些不足,最主要的 问题是该软件在界面上没有实现窗口操作,使用起来不 够方便,界面也不够美观。 润 参考文献 [1]刘桂海,张王勇},李军怀.基于双密钥的三维v enere密码的研究与 应用叽.计算机工程与应用,2008,44(12):127-129. 【2]田鲁怀著.数据结构【M】.北京:电子工业出版社,2008. 【3]姜灵芝,余健著.c语言课程设计案例精编[M】.北京:清华大学出 版社.2008. [4】尹德淳著.c函数速查手册【M】.北京:人们邮电出版社,2009. (作者单位:王飞,东北大学信息学院;王笛, 海南大学信息科学技术学院;关宏博。东北大学信息学 院) 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top