Chapter 1
Introduction
Creating secure channels between two or more parties is one of the most discussed concepts in cryptography. The invention of the computer and widespread use of computer networks has created a commonplace role for secure communications. With varied requirements placed on different channels, many different solutions have arisen to fill the many different needs of users. For short messages between anonymous parties, Public Key Encryption allows for the secure negotiation of anywhere between 500 and 2000 bits[1] of information. For longer messages, hybrid systems use the small payload of Public Key systems to pass a private key for the operation of a symmetric private key system that can operate on a much longer message[2]. A large number of private key systems operate on combinations of shift and permutation networks called Feistel networks[3]. While there is no known “back door” for breaking Feistel networks, it is always important to have alternative methods in the event that a particular system becomes compromised due to new technologies. This dissertation introduces a method of encrypting data using a convolutional encoder which can act as an alternative to Feistel network based block ciphers. This method joins a number of other block ciphers that are not based on feistel networks, such as Madryga[4] and the Crab Cipher[5].
1.1 Convolutional Codes for Encryption: An Overview
First proposed by Elias[6] in 1955, Convolutional Encoders have been used for decades to provide reliable error correction in devices such as GSM cell phones, satellites and wireless internet base stations(WiFi)[7, 8, 9]. There are quite a few resources which cover almost the entirety of convolutional codes including McEliece[10], Dholokia[11], and Piret[12]. The most commonly used decoder for convolutionally encoded data is the Viterbi decoder, because it has been proven to be the optimal decoder for maximum likelihood decoding[13]. An interesting possibility is to leverage the error correcting properties of these convolutional encoders and decoders to create a viable encryption method.
Describing a channel that uses a convolutional code for error correction as target for cryptanalysis was first proposed by Rice[14] for the half rate case, and generalized by Filiol[15] for the 1 n case. Both authors chose to examine the observed sequences and find a orthogonal vector to the observed sequences in order to discover the underlying encoder used by the channel. In 2000, Boyd[16] devised of an approach called Synthetic Impulse Response Sequence(SIRS) Algorithm which creates a table of observed parity and looks for the shortest sequence that begins with all zeros and assumes that the following non-zero bits are the impulse sequence of the encoder. In 2006, Barbier proposed[17] an algebraic method that would reveal the underlying encoder for both linear block codes and convolutional codes of any rate for both noisy and noiseless observations. The following year, Dingel proposed[18] a log-likelihood approach for noisy observations of a systematic encoder. These approaches assume that the data that the attacker is looking for is convolutionally encoded. Creating a secure channel of communication from sender to receiver using a convolutional code is a problem that has received modest interest in communications research. A few systems that describe a method of encryption using convolutional encoders have been proposed. Trinca[19] proposed a system of cascaded globally invertible convolutional encoders for use as an encryption scheme, but Orumiechiha[20] refuted the security and presented an attack that took O(k6) time to break it. Climent et al[21] proposed a different system using globally invertible encoders. So far no one has refuted the security analysis presented. It is interesting that both proposed systems chose globally invertible encoders in order to increase the security of the system without commenting that all convolutional encoders are globally invertible encoders. Encoders that possess a locally invertible sub-matrix does not prevent them from being globally invertible. The decision to have those encoders operating at a rate of n n make them convolutional scramblers more than convolutional encoders. The references to globally invertible encoders are usually works done by Lobo and Dholokia, both of whom worked at North Carolina State University with Drs. Vouk and Bitzer. The identifying feature of a globally invertible encoder vs a locally invertible encoder was the fact that the globally invertible encoder was generally a catastrophic encoder(or a degenerate encoder), and that an infinite weight input sequence could lead to a finite weight output sequence which could lead to a finite number of channel errors causing a infinite number of decoding errors. It is unclear from the literature why this makes a globally invertible encoder an ideal choice for an encryption system, but at least two researchers have decided to attempt it, and further study will reveal whether or not it is a success or a failure. In 1991 Bitzer and Vouk[22] discovered a new way of looking at convolutional encoding that allowed for error correction and encoding and decoding using only fast table lookups. By adding a small amount of computation, the sizes of the tables could be reduced allowing large memoryconvolutional encoders to be realized. The subset of encoders that could be used to achieve these tables were dubbed Locally Invertible Convolutional Encoders(LI encoders). To perform error correction, Bitzer and Vouk used Syndrome bits generated by the errors that occurred in transmission as the address in a correction table, and the syndrome values that corresponded to a error were known as s-addresses into the correction table.
The method that is proposed here is to use the properties of an encoder to create a desired syndrome sequence by inserting specific errors. These errors depend on
全文共22388字,剩余内容已隐藏,支付完成后下载完整资料
第一章 介绍
在两个或多个方之间建立安全通道是密码学中讨论最多的概念之一。计算机的发明和计算机网络的广泛应用为安全通信创造了一个平常的角色。不同的要求放在不同的渠道,而将用户的不同需求利用很多种不同的解决方案来解决。对于匿名方之间的短消息,公钥加密允许在500和2000位之间的任何地方实现安全协商的信息。对于较长的消息,混合动力系统使用公共密钥系统的小有效载荷,通过一个对称的私钥系统的操作,可以利用私人密钥运行一个较长的消息。大量的私人密钥系统操作的移位和置换网络称为Feistel网络的组合。目前还没有已知的“打破Feistel网络后门”,它总是在事件的一个特定的系统中利用新技术替代的方法进行妥协。本文介绍了一种利用卷积编码器,可以作为一个替代基于Feistel网络分组数据的加密方法。此方法加入一些其他的块密码,不是基于Feistel网络,如马德里加密码和蟹密码。
1.1卷积码的加密:概述
首次提出由埃利亚斯在1955年,卷积编码器几十年来已被用于提供可靠的纠错设备,如GSM手机,卫星和无线互联网基站(WiFi)。有相当多的资源,几乎涵盖了卷积码的McEliece 的整体合成。卷积编码的数据的最常用的解码器是维特比解码器,因为它已被证明是最大似然译码最佳解码器。一个有趣的可能性是利用这些卷积编码器的纠错性能和解码器创建一个可行的加密方法。
描述一个信道采用卷积码纠错目标攻击RST Rice的半速率的情况下提出的。作者选择研究观察序列和正交向量的观测序列,以发现潜在的信道编码器。在2000年,博伊德设计的方法称为合成脉冲响应序列(SIRS)算法,它创建了一个表观察到的奇偶校验和寻找最短的序列,开始与所有的零,并假设以下非零位是编码器的脉冲序列。2006年Barbier提出的代数方法,揭示潜在的编码器为线性分组码和对噪声和无噪声的观测任何码率卷积码。次年,Dingel提出为一个系统的编码器嘈杂的观测似然方法。这些方法假设攻击者寻找数据进行卷积编码。
创建一个安全的通信信道,从发送者到接收者使用卷积码是一个问题,已收到适度的兴趣,通信研究。一些系统,使用卷积编码器描述的加密方法已被提出。婷卡提出了一个系统的级联卷积编码器的使用在全球范围内可逆的加密方案,但orumiechiha 对其安全提出了一个攻击(K6)时间来打破它。Climent等人提出了一种不同的系统使用全球可逆编码器。到目前为止,没有人进行反驳并且实施安全分析。有趣的是,这两个建议的系统选择全局可逆编码器,以提高系统的安全性,而不评论所有的卷积编码器是全局可逆编码器。编码器具有局部可逆子矩阵不阻止他们是全局可逆的。决定这些编码器的速度在N卷积支持超过卷积编码器操作范围。在全球范围内可逆编码器的参考文献通常通过Lobo和dholokia做,Drs. Vouk和Bitzer两人都来自北卡罗来纳州立大学。识别一个全局特征与局部可逆可逆编码器编码器是全球可逆编码器通常是灾难性的编码器(或退化的编码器),一个有限重量输入序列可能导致有限重量输出序列,也可能导致信道错误从而造成解码错误的数目变化较大。目前还不清楚为什么这是一个全局可逆编码器的加密系统的理想选择,但至少有两个研究人员已经决定尝试,并进一步研究将揭示它是否是一个成功或失败的方式。
1991年比泽尔和vouk 发现了一种新的方式看待卷积编码,允许误差校正和编码只使用快速查表译码。通过添加少量的计算,可以减少尺寸的表允许大内存卷积编码器的实现。可用于实现这些表的编码器的子集被称为局部可逆卷积编码器(锂编码器)。进行误差修正,Bitzer和vouk用综合征的发生在传输比特在校正表地址错误的产生,与征值对应于一个错误被称为s-addresses到校正表。
这种方法提出了利用编码器的性能通过插入特殊C错误创造所需的综合序列。这些错误取决于选择的双编码器,而且是一个唯一的关键。编码器可以随机选择使用快速的技术,并采用传统的编码和解码,可以很容易地实现在硬件或软件。为了提高系统的安全性,发送者可以选择更大的内存编码器或改变编码率。
1.2贡献
本文提出了一种使用卷积编码器的相关密钥对称密码。为了讨论这些主题,重要的是要解决这两个加密以及卷积码。这两个问题都涵盖在信息论的范畴之下,但它们的方向却截然不同。第一步是讨论加密的一些基本原理,并且针对这些原理的使用案例进行讨论。接着,对卷积编码器的元素和它们的属性进行说明。这将是一个特定的系统,之后对如何使用卷积编码器和系统的每个组成部分进行了详细的阐述,其次是解释系统的一些长处和短处以及未来的研究方向。
1.3论文提纲
第2章涵盖了加密方法和RSA加密、McEliece加密的细节,除此之外,还有Vernam密码和加密方法。第3章阐述了卷积编码器的定义和性质以及lincc系统的功能。第4章概述了lincc系统由密钥选择的例子给出了一个步骤,包括编码和解码的过程。我们给出了一个例子,以及推荐使用的的编码率和内存值参数。本章还讨论了一些有趣的性质和问题,适用于lincc系统。第5章包括一些已知的针对lincc系统的攻击方法,还讨论了发现潜在的卷积编码器利用一个观察序列的编码方法。第6章是全文的结论,并给出了今后的研究方向。
第二章 加密
对于双方进行安全对话,他们必须能够建立一个安全的沟通渠道。如果不存在安全信道,密码学家试图创建一个特殊的加密技术来减少被偷听的影响。通过所传输的信息进行加密,因为拦截的信息需要大量的电子解码器破译,窃听者没有通过截取消息获得任何优势,窃听变得少了一个威胁。目前,每天当客户交换支付信息在线,或当网络冲浪者登录到网站的密码,这些类型的交易都会发生数以百万计的窃听量。
目前对加密技术的关注很大一部分是针对公钥加密而不是加密密钥。这主要的原因是因为公钥系统大多都会给任何第三方不信任的安全感。通过消除政府或企业的关键交流的交流渠道,安全研究人员有责任也能够把第三方的系统的身份变得值得信任。这也试图阻止任何煽动实体有窃听私人谈话的秘密后门。这类系统的E效率取决于窃听实体能力(或缺乏)在一个合理的时间内打破一个特定的系统。赫尔曼首先对这类系统进行了一个理论框架的描述。研究人员阿德尔曼和Shaw创建这种类型的系统使用的一个实际的方法是Rivest。通过这项工作的定位,针对完整性和对开发的技术,我们说明了一些主流的方法用来描述RSA加密和公开密钥加密。
2.1块和流密码
分组密码是一种密码在一个固定的宽度明文块信息中创建一个密文块的关键操作。例如,一个分组密码可能需要128位的明文来执行一系列特定的排列变化C、密码设计和输出一个128位的密文。
对于较长的消息和大量的数据,它是可取的一个使用系统,该系统可以抵抗相关的关键攻击,所以,如果一小部分被攻击者破坏,加密的消息的其余部分在解码时的风险就会变高。这些类型的系统中的一些通常被称为流密码,但并非所有,流密码可以创建块密码使用预定的操作模式。
当私钥系统使用单个密钥进行加密和解密时,系统被称为对称密钥系统。通过数学变换的方法来实现解码密钥与编码密钥,该系统被称为一个对称相关的密钥系统。
目前的系统的方法是为一个随机密钥系统的任何值的密钥提供一个转换,即使它只是一个XOR。这允许系统创建一个伪随机序列的子项从初始向量到扩大伪随机序列对消息的整个长度。大多数分组密码进行每一个明文输入固定轮数都不同,有多个随机密钥密文。这些子项由一个调度算法和初始密钥创造。
2.2 RSA加密
RSA加密使用离散对数问题作为一个单向函数,提供一个安全的系统。离散对数问题是通过提高素数在因式分解领域的困难度。RSA算法由三个不同的步骤,分别是密钥生成,加密和解密。下面对这三个步骤进行描述 。
2.2.1 密钥生成
RSA涉及公钥和私钥。公钥可以向每个人公开,并用于加密消息。用公钥加密的消息只能用私钥解密。RSA算法的密钥生成如下方式:
1.选择两个大素数p和q
2.计算N = PQ和phi;(PQ)=(Pminus;1)(Qminus;1),n用作公共和私钥的模。
3.选择一个随机的B,1<B<phi;(PQ),B和phi;(PQ)除1外没有除数(即B和phi;(PQ)是互质)。
bull;B是公开密钥索引。
bull;小位数的B在其二进制值会有更高效的加密。然而,小值的B(如B = 3)已被证明是不太安全的一种设置。
4.确定一个equiv;Bminus;1(modphi;(PQ))(使用欧几里德算法)。
bull;ABminus;1可以均匀分(Pminus;1)(Qminus;1)。
bull;被保存为私钥索引
2.2.2加密
爱丽丝将她的公钥(N,B)发送给鲍伯并保留私钥密钥。鲍伯然后希望发送消息M爱丽丝。
他首先变m为整数,0<m<n。采用商定的可逆的协议称为填充方案。然后,他计算对应的密文C
c = mb mod n (2.1)
这可以用幂法与快速做。鲍伯然后传送C到爱丽丝。
2.2.3 解密
爱丽丝可以恢复M为C,通过使用她的私钥指数D,有以下计算:
m = ca mod n (2.2)
给定M,通过反转填充方案,可以恢复原始消息m。
2.3 公钥密码体制
McEliece密码体制是一个公共密钥系统,是使用一个线性分组码来加密消息。它很简单,一目了然。这说明这种制度会导致他人相信McEliece系统是一个简单的线性变换,是一个简单的线性密码分析的密文,但这个系统不是一个简单的编码操作。编码的文字是有效的代码,它通过底层的编码器产生一个线性组合。如果错误不是插入,它仍然是一个能够发现潜在错误的编码器,攻击者会通过置换矩阵S和P而增加复杂性,任何T位或N位串错误,从而导致错误的编码结果。发现潜在的编码方案已被证明是相当于一个未知的编码器。
2.3.1加密
发个短信给爱丽丝,鲍伯会将消息m转换为为 c0 = mGlowast; A,生成一个随机字符串Z,利用误差长度tA和nA异或在一起得到C = C0 Z
2.3.2 解密
为了解密C,爱丽丝将计算PA逆,Pminus;1和c = cPminus;1。然后她会用译码算法得到m,原始消息m = mSminus;1 U 。
2.4 vernam密码
Vernam密码可以由一个已知明文攻击攻破,攻击者可以修改密文从而编程不同的消息。Vernam密码是最现代的流密码的模型,利用一个伪随机序列异或得到明文消息。
2.5高级加密标准
先进的加密标准(AES)是一个对称密钥加密标准,被选中,以取代以前的加密标准数据加密标准(DES)时,现代计算机的计算能力,使旧标准的安全问题的弱点[ 31 ]。竞争取代DES被称为高级加密标准的过程中,把fi已经年多轮的性能测试,安全性,并在多个环境下的可行性。2000年10月,NIST宣布Rijndael密码会成为新的AES标准,考虑了工作者总共15个候选人后。下面的描述主要从文本和数字方面来说明AES标准的各个部分。此外,我们也提供了解决整个过程的详细细节。
2.5.1加密
AES是一种基于密码相对于Feistel网络代替置换网络,差异是Feistel网络与每一轮AES加密都不相同,也不等与每一轮的位。AES算法有三层,每轮除RST。
bull;密钥加层
bull;字节替换层
bull;diusion层
此外,扩散层有两层,ShiftRows层和列混合层。列混合层不是为了最后一轮进行整个方案的对称。
在每一轮的第一层是字节替代层。字节替换层可以被看作是一个连续的16个S盒,每个有8个输入和输出的位。所有16个盒子是相同的,每个字节AI被另一个字节替换。S盒是AES唯一的非线性元件,是一个双射(一对一,每个元素映射到)。这允许一个唯一的逆,这是需要解密。
AES的下一层,是扩散层,有ShiftRows和列混合层。帕尔曾说过,扩散的影响在整个矩阵中蔓延,扩散层执行状态矩阵的线性运算。
ShiftRows转型是每行分别为零一二和三字节的状态矩阵循环移位。ShiftRows转型的目的是增加AES性能。让ShiftRows层输入作为状态矩阵:
A1,1 A1,2 A1,3 A1,4
A2,1 A2,2 A2,3 A2,4
A3,1 A3,2 A3,3 A3,4 (2.3)
A4,1 A4,2 A4,3 A4,4
然后输出将是新的状态矩阵:
A1,1 A1,2 A1,3 A1,4
A2,2 A2,3 A2,4 A2,1
A3,3 A3,4 A3,1 A3,2
A4,4 A4,1 A4,2 A4,3 (2.4)
列混合的步骤是用来混合每列的状态矩阵。在ShiftRows层被ff每行字节的状态矩阵的列混合层的影响,状态矩阵的列。再从Paar的文章中指出,“ShiftRows和列混合层的结合使得后三轮状态矩阵的每一个字节都取决于16个明文字节。”
列混合作用在每列的状态矩阵的每一列为一个fourterm处理多项式。每一列是一个多项式在GF(28)乘以一个固定多项式(X)模X4 1。多项式A(x)给出的公式:
a(x) ={03}x3 {01}x2 {01}x {02} (2.5)
这可以很简
全文共6149字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142731],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。