二进制下因子分解分数一次一密的改进与实践_第1页
二进制下因子分解分数一次一密的改进与实践_第2页
二进制下因子分解分数一次一密的改进与实践_第3页
二进制下因子分解分数一次一密的改进与实践_第4页
二进制下因子分解分数一次一密的改进与实践_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二进制下因子分解分数一次一密的改进与实践一次一密是 Gibert Vernam和JOSePh MaubOrgne大约在1918年发明的密码 系统,其加密方法是一种简单易行的加密方式,但它的可攻破性很难,基本上是 不可攻破的。因子分解分数加密是自己设计出的一种新的加密方法,通过对分子不同的分解,再在二进制下,利用分解的因子对给定的明文加密,可设计出多种方式加密,其可实现多次加密,保密性更强,且易操作,更难破解。这将是一篇 有理论和实践意义的好的论文,对密码学和编程都有很好的实践作用。第一章主要介绍密码学的定义及发展前景,我们可以粗略地了解密码学的原 理;第二章主要介绍一次一密加密系统及其简单应用

2、;第三章主要针对第二章一次一密加密方法进行了改进,增强信息的保密性, 并通过C+程序得到验证。1.1密码学的定义研究信息的保密和复原保密信息以获取其真实内容的学科称为密码学。它包括密码编码学和密码分析学。密码编码学是研究对信息进行编码,实现 隐蔽信息的一门学科;密码分析学是研究复原保密信息或求解加密算法与密钥的 学科。1.2密码学基本简介密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著 名的密码学者Ron RiVeSt解释道:“密码学是关于如何在 敌人存在的环境中通 讯”,自工程学的角度,这相当于密码学与纯

3、数学的异同。 密码学是信息安全等相 关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不 是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所 使用的技术,如访问控制与信息的机密性。密码学已被应用在 日常生活:包括自动 柜员机的芯片卡、电脑使用者存取 密码、电子商务等等。1.3 密码学理论基础在通信过程中,待加密的信息称为明文,已被加密的信息称为密文,仅有 收、发双方知道的信息称为密钥。在密钥控制下,由明文变到密文的过程叫加密, 其逆过程叫脱密或解密。现代密码学所涉及的学科包括:信息论、概率论、数论、计算复杂性理论、 近世代数、离散数学、代数几何学和数字逻辑

4、等。1.4密码学技术应用1. 数位签章(Digital Signature):这是以密码学的方法,根据EDI讯息的内容和发信有该把私钥,任何人都无 法产生该签名,因此比手写式的签名安全许多。收信人则以发信人的公钥进行数 位签章的验证。2. 数位信圭寸(DigitaI EnVelope):这是以密码学的方法,用收信人的公钥对某些机密资料进行加密,收信人 收到后再用自己的私钥解密而读取机密资料。除了拥有该私钥的人之外,任何人即使拿到该加密过的讯息都无法解密, 就好像那些资料是用一个牢固的信封装 好,除了收信人之外,没有人能拆开该信封。3. 安全回条:收信人依据讯息内容计算所得到的回覆资料,再以收信

5、人的私钥进行数位 签章后送回发信人,一方面确保收信人收到的讯息内容正确无误,另一方面也使收信人不能否认已经收到原讯息。4. 安全认证:每个人在产生自己的公钥之后,向某一公信的安全认证中心申请注册,由认证中心负责签发凭证(CertifiCate),以保证个人身份与公钥的对应性与正确性。第二章一次一密2.1 一次一密定义一次一密指在流密码当中使用与消息长度等长的随机密钥,密钥本身只使用一次。具体而言,首先选择一个随机位串作为密钥,然后将明文转变成一个位串, 比如使用明文的ASCIl表示法。最后,逐位计算这两个串的异或值,结果得到的 密文不可能被破解,因为即使有了足够数量的密文样本,每个字符的出现概

6、率都 是相等的,每任意个字母组合出现的概率也是相等的。这种方法被称为“一次一 密”2.2 一次一密简介一次一密是一种不可攻破的密码系统,是Gilbert Vernam和JOSePhMaUbOrg ne大约在1918年发明的。首先选择一个随机位串作为密钥,然后将明文 转变成一个位串,这可以通过将数表示成二进制来实现。最后,逐位计算这两个串的异或值,结果得到的密文是不可能被破解的。2.3 次一密举例给定一则信息,我们将信息表示成:1010100101。异或规则: 0+0=0,0+1=1,1+仁0。密钥是:1000100011,用如下方式得到密文:(明文)1010100101(密钥)+ 100010

7、0011(密文)0010000110解密时用相同的密钥,只需要简单地将密文与密钥异或:0010000110+1000100011=1010100101如果加密的是一个字母的序列,可以这样做些改动。密钥是一个移位数的 随机序列,每个数在025之间。解密时用相同的密钥,字母要向相反的方向移动。第三章二进制下因子分解分数一次一密的改进与实践3.1.两次加密随机给定一则二进制信息和一个分数,取分数的分子的一种分解方式,将分解后的因子作为密钥,均按照一次一密的方法对信息进行两次加密。3.1.1两次加密理论指导随机给定一个分数AB(A、B均为正实数)及明文X ,对于A至少有一种分解 方式:A=A1*A 2

8、 (Ai、A2均为正实数),首先将Ai和A2化为二进制数Aii和A21, 我们分别利用A11和A21按照一次一密的加密方法对明文X及加密后的信息加密, 实现两次加密,使得原有信息更加安全,不可攻破。3.1.2两次加密实现方法将A1、A2分别表示成二进制数A11、A21 ,取A11、A21、X中长度最长的作为 密钥的长度L;在A11、A21这两个序列前加0直到分别达到长度L,得到新序列A12、A22;应 用一次一密的加密方法 A12+X得到A13, A13+ A22得到A23 ;那么明文X对应的密文即为A23 ,得到两次加密。从而在一次一密的基础上, 实现了因子分解分数的两次加密,使得原有信息更

9、加安全,不可攻破。3.1.3两次加密举例取定分数 156/7,明文 101010。异或规则:0+0=0,0+ 1=1,1+1=0o首先分解分子156: 156=4*39。其次,4和39表示成二进制数分别是:100和100111根据3.1.2实现方法确定密钥长度为:6为了与长度6致,补0后序列分别是000100、100111 (密钥)第一次加密:101010+000100=101110第二次加密:101110+100111=001001解密时用相同的密钥只需要简单地做两个异或得到两个明文101010;3.1.4 C+程序验证下面我基于3.1.4的例子来设计一个程序:#i nclude ViOSt

10、reamUSing n amespace std;int mai n()int A,B,C,D,b=32,d=32,cou nt1=0,cou nt2=0,cou nt3=0,max,i, n1, n2,n3;int a32=0,c32=0,a1count1,c1count2,M32=0,M1count3;int a2max,a3max;COUtV请依次输入分数的分子、分母! AB;COUtV给定分数:vA/VVBVVe ndl;COUtVCD;COUtVVAVV=VVCVV*VVDVVe ndl;dob-;ab=C%2;C=(C-ab)2;while (C!=0&b!=0);COUtVVC的

11、二进制形式:;for (b;b!=32;b+)COUtVVab;coUn t1+;COutV C 的二进制位数:vvcou nt1Mi;coUn t3+;for(i=0;iVco Un t3;i+)M1i=Mi; max=(co Un t1co Un t2)?CO Un t1:CO Un t2; max=(maxco Un t3)?max:CO Un t3; cout密钥的长度为:maxe ndl; if(co Un t3!=max)n 3=max-co Un t3;for(i=n 3;imax;i+)M1i=M1i-n3;for(i=0;i n3;i+)M1i=0;if(co Un t1!=

12、max)n 1=max-co Un t1;for(i=n 1;imax;i+)a1i=a1i-n1;for(i=0;i n1;i+)a1i=0;for(i=0;imax;i+)if(a1i!=M1i)a2i=1; elsea2i=0;elsefor(i=0;imax;i+) if(a1i!=M1i) a2i=1;elsea2i=0;for(i=0;imax;i+)COutVVa1i;if(co Un t2!=max)n 2=max-co Un t2;for(i=n 2;imax;i+) c1i=c1i-n2;for(i=0;i n2;i+)c1i=0;for(i=0;imax;i+)if(c1

13、i!=a2i)a3i=1;elsea3i=0;elsefor(i=0;imax;i+)if(a1i!=M1i)a3i=1;elsea3i=0;cout密文如下:e ndl;for(i=0;imax;i+)couta3i;return 0;3.2三次加密随机给定一则二进制信息和一个分数,取分数的分子的一种分解方式,并利用分解后的因子及分母作为密钥分别按照一次一密的方法对信息依次进行加密。3.2.1三次加密理论指导随机给定一个分数AIB(A、B均为正实数)及明文X (二进制信息),对于A至 少有一种分解方式:A=A *A 2( Ai、A2均为正实数),首先将Ai、A2、B化为二 进制数A11、A2

14、i及Bi,我们利用A11、A21和 Bi按照一次一密的加密方法对 X及加 密后的信息加密,实现三次加密,使得原有信息比两次加密更加安全, 不可攻破。3.2.2三次加密实现方法将A1、A2 和 B分别表示成二进制数A11、A21和B1,取 A11、A21、B1和X 中长度最长的作为密钥的长度L ;在A11、A21、B1和X这三个序列前加O直到分别达到长度L,得到新序列A12、 A22、B2、X1;应用一次一密的加密方法 A12+ X1得到X2, A22+ X2得到X3, B2+ X3 得到X4;那么密文即为X4,得到三次加密。从而在一次一密的基础上,实现了因子分 解分数的三次加密,使得原有信息比两次加密更加安全,不可攻破。3.2.3三次加密举例取定分数156/7及明文101010,异或规则:0+0=0,0+仁1,1+1=0,在二进制下, 对156/7实施三次加密。首先分解分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论