线性反馈移位寄存器请问M序列的产生
线性反馈移位寄存器 时间:2021-08-31 阅读:(
)
密文是什么 具体给我讲解一下
密文是相对于明文说的,明文其实就是你要传达的消息,而明文通过加密之后就成了密文,密文其实是信息安全的一个词汇。
帮你介绍一下。
信息安全的发展历史
通信保密科学的诞生
古罗马帝国时期的Caesar密码:能够将明文信息变换为人们看不懂的字符串,(密文),当密文传到伙伴手中时,又可方便的还原为原来的明文形式。
Caesar密码由明文字母循环移3位得到。
1568年,L.Battista发明了多表代替密码,并在美国南北战争期间有联军使用。
例:Vigenere密码和Beaufort密码
1854年,Playfair发明了多字母代替密码,英国在第一次世界大战中使用了此密码。
例:Hill密码,多表、多字母代替密码成为古典密码学的主流。
密码破译技术(密码分析)的发展:例:以1918年W.Friedman使用重合指数破译多表代替密码技术为里程碑。
1949年C.Shannon的《保密系统的通信理论》文章发表在贝尔系统技术杂志上。
这两个成果为密码学的科学研究奠定了基础。
从艺术变为科学。
实际上,这就是通信保密科学的诞生,其中密码是核心技术。
公钥密码学革命
25年之后,20世纪70年代,IBM公司的DES(美国数据加密标准)和1976年Diffie-Hellman,提出了公开密钥密码思想,1977年公钥密码算法RSA的提出为密码学的发展注入了新的活力。
公钥密码掀起了一场革命,对信息安全有三方面的贡献:首次从计算复杂性上刻画了密码算法的强度,突破了Shannon仅关心理论强度的局限性;他将传统密码算法中两个密钥管理中的保密性要求,转换为保护其中一格的保密性及另一格的完整性的要求;它将传统密码算法中密钥归属从通信两方变为一个单独的用户,从而使密钥的管理复杂度有了较大下降。
公钥密码的提出,注意:一是密码学的研究逐步超越了数据的通信保密范围,开展了对数据的完整性、数字签名等技术的研究;二是随着计算机和网络的发展,密码学一逐步成为计算机安全、网络安全的重要支柱,使得数据安全成为信息安全的全新内容,超越了以往物理安全占据计算机安全的主导地位状态。
访问控制技术与可信计算机评估准则
1969年,B.Lampson提出了访问控制模型。
1973年,D.Bell 和L.Lapadula,创立了一种模拟军事安全策略的计算机操作模型,这是最早也是最常用的一种计算机多级安全模型。
1985年,美国国防部在Bell-Lapadula模型的基础上提出了可信计算机评估准则(通常称为橘皮书)。
按照计算机系统的安全防护能力,分成8个等级。
1987年,Clark-Wilson模型针对完整性保护和商业应用提出的。
信息保障
1998年10月,美国国家安全局(NSA)颁布了信息保障技术框架1.1版,2003年2月6日,美国国防部(DOD)颁布了信息保障实施命令8500.2,从而信息保障成为美国国防组织实施信息化作战的既定指导思想。
信息保障(IA:information assurance):通过确保信息的可用性、完整性、可识别性、保密性和抵赖性来保护信息系统,同时引入保护、检测及响应能力,为信息系统提供恢复功能。
这就是信息保障模型PDRR。
protect保护、detect检测、react响应、restore 恢复
美国信息保障技术框架的推进使人们意识到对信息安全的认识不要停留在保护的框架之下,同时还需要注意信息系统的检测和响应能力。
2003年,中国发布了《国家信息领导小组关于信息安全保障工作的意见》,这是国家将信息安全提到战略高度的指导性文件
信息保密技术的研究成果:
发展各种密码算法及其应用:
DES(数据加密标准)、RSA(公开密钥体制)、ECC(椭圆曲线离散对数密码体制)等。
计算机信息系统安全模型和安全评价准则:
访问监视器模型、多级安全模型等;TCSEC(可信计算机系统评价准则)、ITSEC(信息技术安全评价准则)等。
加密(Encryption)
加密是通过对信息的重新组合,使得只有收发双方才能解码并还原信息的一种手段。
传统的加密系统是以密钥为基础的,这是一种对称加密,也就是说,用户使用同一个密钥加密和解密。
目前,随着技术的进步,加密正逐步被集成到系统和网络中,如IETF正在发展的下一代网际协议IPv6。
硬件方面,Intel公司也在研制用于PC机和服务器主板的加密协处理器。
身份认证(Authentication)
防火墙是系统的第一道防线,用以防止非法数据的侵入,而安全检查的作用则是阻止非法用户。
有多种方法来鉴别一个用户的合法性,密码是最常用的,但由于有许多用户采用了很容易被猜到的单词或短语作为密码,使得该方法经常失效。
其它方法包括对人体生理特征(如指纹)的识别,智能IC卡和USB盘。
数字签名(Digital Signature)
数字签名可以用来证明消息确实是由发送者签发的,而且,当数字签名用于存储的数据或程序时,可以用来验证数据或程序的完整性。
美国政府采用的数字签名标准(Digital Signature Standard,DSS)使用了安全哈希运算法则。
用该算法对被处理信息进行计算,可得到一个160位(bit)的数字串,把这个数字串与信息的密钥以某种方式组合起来,从而得到数字签名。
内容检查(Content Inspection)
即使有了防火墙、身份认证和加密,人们仍担心遭到病毒的攻击。
有些病毒通过E-mail或用户下载的ActiveX和Java小程序(Applet)进行传播,带病毒的Applet被激活后,又可能会自动下载别的Applet。
现有的反病毒软件可以清除E-mail病毒,对付新型Java和ActiveX病毒也有一些办法,如完善防火墙,使之能监控Applet的运行,或者给Applet加上标签,让用户知道他们的来源。
介绍一些加密的知识
密钥加/解密系统模型
在1976年,Diffie及Hellman发表其论文“New Directions in Cryptography”[9]之前,所谓的密码学就是指对称密钥密码系统。
因为加/解密用的是同一把密钥,所以也称为单一密钥密码系统。
这类算法可谓历史悠久,从最早的凯撒密码到目前使用最多的DES密码算法,都属于单一密钥密码系统。
通常,一个密钥加密系统包括以下几个部分:
① 消息空间M(Message)
② 密文空间C(Ciphertext)
③ 密钥空间K(Key)
④ 加密算法E(Encryption Algorithm)
⑤ 解密算法D(Decryption Algorithm)
消息空间中的消息M(称之为明文)通过由加密密钥K1控制的加密算法加密后得到密文C。
密文C通过解密密钥K2控制的解密算法又可恢复出原始明文M。
即:
EK1(M)=C
DK2(C)=M
DK2(EK1(M))=M
概念:
当算法的加密密钥能够从解密密钥中推算出来,或反之,解密密钥可以从加密密钥中推算出来时,称此算法为对称算法,也称秘密密钥算法或单密钥算法;
当加密密钥和解密密钥不同并且其中一个密钥不能通过另一个密钥推算出来时,称此算法为公开密钥算法。
1.凯撒密码变换
更一般化的移位替代密码变换为
加密:E(m)=(m+k) mod 26
解密:D(c)=(c-k) mod 26
2.置换密码
在置换密码中,明文和密文的字母保持相同,但顺序被打乱了。
在简单的纵行置换密码中,明文以固定的宽度水平地写在一张图表纸上,密文按垂直方向读出;解密就是将密文按相同的宽度垂直地写在图表纸上,然后水平地读出明文。
例如:
明文:encryption is the transformation of data into some unreadable form
密文:eiffob nsodml ctraee rhmtuf yeaano pttirr trinem iaota onnod nsosa
20世纪40年代,Shannon提出了一个常用的评估概念。
特认为一个好的加密算法应具有模糊性和扩散性。
模糊性:加密算法应隐藏所有的局部模式,即,语言的任何识别字符都应变得模糊,加密法应将可能导致破解密钥的提示性语言特征进行隐藏;
扩散性:要求加密法将密文的不同部分进行混合,是任何字符都不在其原来的位置。
加密算法易破解的原因是未能满足这两个Shannon条件。
数据加密标准(DES)
DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,经过16次迭代运算后。
得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。
逆置换正好是初始置的逆运算.
具体方法 需要图 我放不上去对不起了
可以将DES算法归结如下:
子密钥生成:
C[0]D[0] = PC–1(K)
for 1 <= i <= 16
{C[i] = LS[i](C[i?1])
D[i] = LS[i](D[i?1])
K[i] = PC–2(C[i]D[i])}
加密过程:
L[0]R[0] = IP(x)
for 1 <= i <= 16
{L[i] = R[i?1]
R[i] = L[i?1] XOR f?(R[i?1], K[i])}
c= IP?1(R[16]L[16])v
解密过程:
R[16]L[16] = IP(c)
for 1 <= i <= 16
{R[i?1] = L[i]
L[i?1] = R[i] XOR f?(L[i], K[i])}
x= IP?1(L[0]R[0])
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。
与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。
DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,但幸运的是当时大多数黑客并没有足够的设备制造出这种硬件设备。
在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。
所以,当时DES被认为是一种十分强壮的加密方法。
但是,当今的计算机速度越来越快了,制造一台这样特殊的机器的花费已经降到了十万美元左右,所以用它来保护十亿美元的银行间线缆时,就会仔细考虑了。
另一个方面,如果只用它来保护一台服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。
由于现在已经能用二十万美圆制造一台破译DES的特殊的计算机,所以现在再对要求“强壮”加密的场合已经不再适用了
DES算法的应用误区
DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。
由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8、16、24、......64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,......64位外的其余56位的组合变化256才得以保证的。
因此,在实际应用中,我们应避开使用第8,16,24,......64位作为有效数据位,而使用其它的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。
如果不了解这一点,把密钥Key的8,16,24,..... .64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。
A5 算 法
序列密码简介
序列密码又称流密码,它将明文划分成字符(如单个字母)或其编码的基本单元(如0、1),然后将其与密钥流作用以加密,解密时以同步产生的相同密钥流实现。
序列密码强度完全依赖于密钥流产生器所产生的序列的随机性和不可预测性,其核心问题是密钥流生成器的设计。
而保持收发两端密钥流的精确同步是实现可靠解密的关键技术。
A5算法
A5算法是一种序列密码,它是欧洲GSM标准中规定的加密算法,用于数字蜂窝移动电话的加密,加密从用户设备到基站之间的链路。
A5算法包括很多种,主要为A5/1和A5/2。
其中,A5/1为强加密算法,适用于欧洲地区;A5/2为弱加密算法,适用于欧洲以外的地区。
这里将详细讨论A5/1算法。
A5/1算法的主要组成部分是三个长度不同的线性反馈移位寄存器(LFSR)R1、R2和R3,其长度分别为19、22和23。
三个移位寄存器在时钟的控制下进行左移,每次左移后,寄存器最低位由寄存器中的某些位异或后的位填充。
各寄存器的反馈多项式为:
R1:x18+x17+x16+x13
R2:x21+x20
R3:x22+x21+x20+x7
A5算法的输入是64位的会话密钥Kc和22位的随机数(帧号)。
IDEA
IDEA即国际数据加密算法,它的原型是PES(Proposed Encryption Standard)。
对PES改进后的新算法称为IPES,并于1992年改名为IDEA(International Data Encryption Algorithm)。
IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位,同一个算法即可用于加密,也可用于解密。
IDEA的加密过程包括两部分:
(1) 输入的64位明文组分成四个16位子分组:X1、X2、X3和X4。
四个子分组作为算法第一轮的输入,总共进行八轮的迭代运算,产生64位的密文输出。
(2) 输入的128位会话密钥产生八轮迭代所需的52个子密钥(八轮运算中每轮需要六个,还有四个用于输出变换)
子密钥产生:输入的128位密钥分成八个16位子密钥(作为第一轮运算的六个和第二轮运算的前两个密钥);将128位密钥循环左移25位后再得八个子密钥(前面四个用于第二轮,后面四个用于第三轮)。
这一过程一直重复,直至产生所有密钥。
IDEA的解密过程和加密过程相同,只是对子密钥的要求不同。
下表给出了加密子密钥和相应的解密子密钥。
密钥间满足:
Zi(r) ⊙ Zi(r) ?1=1 mod (216+1)
?Zi(r) ?+? Zi(r) =0 mod (216+1)
Blowfish算法
Blowfish是Bruce Schneier设计的,可以免费使用。
Blowfish是一个16轮的分组密码,明文分组长度为64位,使用变长密钥(从32位到448位)。
Blowfish算法由两部分组成:密钥扩展和数据加密。
1. 数据加密
数据加密总共进行16轮的迭代,如图所示。
具体描述为(将明文x分成32位的两部分:xL, xR)
for i = 1 to 16
{
xL = xL XOR Pi
xR = F(xL) XOR xR
if
{
交换xL和xR
}
}
xR = xR XOR P17
xL = xL XOR P18
合并xL 和xR
其中,P阵为18个32位子密钥P1,P2,…,P18。
解密过程和加密过程完全一样,只是密钥P1,P2,…,P18以逆序使用。
2. 函数F
把xL分成四个8位子分组:a, b, c 和d,分别送入四个S盒,每个S盒为8位输入,32位输出。
四个S盒的输出经过一定的运算组合出32位输出,运算为
F(xL) =((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232
其中,Si,x表示子分组x(x=a、b、c或d)经过Si (i=1、2、3或4)盒的输出。
没有太多地方写了,不把整个过程列上面了,就简单介绍一下好了。
GOST算法
GOST是前苏联设计的分组密码算法,为前苏联国家标准局所采用,标准号为:28147–89[5]。
GOST的消息分组为64位,密钥长度为256位,此外还有一些附加密钥,采用32轮迭代。
RC5算法
RC5是一种分组长度、密钥长度和加密迭代轮数都可变的分组密码体制。
RC5算法包括三部分:密钥扩展、加密算法和解密算法。
PKZIP算法
PKZIP加密算法是一个一次加密一个字节的、密钥长度可变的序列密码算法,它被嵌入在PKZIP数据压缩程序中。
该算法使用了三个32位变量key0、key1、key2和一个从key2派生出来的8位变量key3。
由密钥初始化key0、key1和key2并在加密过程中由明文更新这三个变量。
PKZIP序列密码的主函数为updata_keys()。
该函数根据输入字节(一般为明文),更新三个32位的变量并获得key3。
重点:单向散列函数
MD5 算 法
md5的全称是message-?digest?algorithm?5(信息-摘要算法),在90年代初由mit?laboratory?puter?science和rsa?data?security?inc的ronald?l.?rivest开发出来,经md2、md3和md4发展而来。
它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一?个任意长度的字节串变换成一定长的大整数)。
不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。
虽然这些?算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同,那是因为md2是为8位机器做过设计优化的,而md4和md5却是面向32位的电?脑。
rivest在1989年开发出md2算法。
在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。
然后,以一个16位的检验和追加到?信息末尾。
并且根据这个新产生的信息计算出散列值。
后来,rogier和chauvaud发现如果忽略了检验和将产生md2冲突。
md2算法的加密后结果?是唯一的--既没有重复。
? 为了加强算法的安全性,rivest在1990年又开发出md4算法。
md4算法同样需要填补信息以确?保信息的字节长度加上448后能被512整除(信息字节长度mod?512?=?448)。
然后,一个以64位二进制表示的信息的最初长度被添加进来。
信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要?通过三个不同步骤的处理。
den?boer和bosselaers以及其他人很快的发现了攻击md4版本中第一步和第三步的漏洞。
dobbertin向大家演示了如何利用一部普通的个人电?脑在几分钟内找到md4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。
毫无疑问,md4就此?被淘汰掉了。
? 尽管md4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。
除了md5以外,其中比较有名的还有sha-1、ripe-md以及haval等。
?
一年以后,即1991年,rivest开发出技术上更为趋近成熟的md5算法。
它在md4的基础上增加了"安全-带子"(safety-belts)的?概念。
虽然md5比md4稍微慢一些,但却更为安全。
这个算法很明显的由四个和md4设计有少许不同的步骤组成。
在md5算法中,信息-摘要的大小和填充?的必要条件与md4完全相同。
den?boer和bosselaers曾发现md5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。
? ? van?oorschot和wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force?hash?function),而且他们猜测一个被设计专门用来搜索md5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一?个冲突。
但单从1991年到2001年这10年间,竟没有出现替代md5算法的md6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有?太多的影响md5的安全性。
上面所有这些都不足以成为md5的在实际应用中的问题。
并且,由于md5算法的使用不需要支付任何版权费用的,所以在一般的情?况下(非绝密应用领域。
但即便是应用在绝密领域内,md5也不失为一种非常优秀的中间技术),md5怎么都应该算得上是非常安全的了。
算法
MD表示消息摘要(Message Digest)。
MD5是MD4的改进版,该算法对输入的任意长度消息产生128位散列值(或消息摘要。
MD5算法可用图4-2表示。
对md5算法简要的叙述可以为:md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
?
1) 附加填充位
首先填充消息,使其长度为一个比512的倍数小64位的数。
填充方法:在消息后面填充一位1,然后填充所需数量的0。
填充位的位数从1~512。
2) 附加长度
将原消息长度的64位表示附加在填充后的消息后面。
当原消息长度大于264时,用消息长度mod 264填充。
这时,消息长度恰好是512的整数倍。
令M[0 1…N?1]为填充后消息的各个字(每字为32位),N是16的倍数。
3) 初始化MD缓冲区
初始化用于计算消息摘要的128位缓冲区。
这个缓冲区由四个32位寄存器A、B、C、D表示。
寄存器的初始化值为(按低位字节在前的顺序存放):
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
4) 按512位的分组处理输入消息
这一步为MD5的主循环,包括四轮,如图4-3所示。
每个循环都以当前的正在处理的512比特分组Yq和128比特缓冲值ABCD为输入,然后更新缓冲内容。
四轮操作的不同之处在于每轮使用的非线性函数不同,在第一轮操作之前,首先把A、B、C、D复制到另外的变量a、b、c、d中。
这四个非线性函数分别为(其输入/输出均为32位字):
F(X,Y,Z) = (XY)((~X) Z)
G(X,Y,Z) = (XZ)(Y(~Z))
H(X,Y,Z) = XYZ
I(X,Y,Z) = Y(X(~Z))
其中,表示按位与;表示按位或;~表示按位反;表示按位异或。
此外,由图4-4可知,这一步中还用到了一个有64个元素的表T[1..64],T[i]=232×abs(sin(i)),i的单位为弧度。
根据以上描述,将这一步骤的处理过程归纳如下:
for i = 0 to N/16?1 do
/* 每次循环处理16个字,即512字节的消息分组*/
/*把第i个字块(512位)分成16个32位子分组拷贝到X中*/
for j = 0 to 15 do
Set X[j] to M[i*16+j]
end /*j 循环*/
/*把A存为AA,B存为BB,C存为CC,D存为DD*/
AA = A
BB = B
CC = C
DD = D
?/* 第一轮*/
/* 令[abcd k s i]表示操作
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s)
其中,Y<<<s表示Y循环左移s位*/
/* 完成下列16个操作*/
[ABCD 0 7 1 ?] [DABC 1 12 2 ?] [CDAB 2 17 3 ?] [BCDA 3 22 4 ?]
[ABCD 4 7 5 ?] [DABC 5 12 6 ?] [CDAB 6 17 7 ?] [BCDA 7 22 8 ?]
[ABCD 8 7 9 ?] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* 第二轮*/
/*令[abcd k s i]表示操作
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s)*/
/*完成下列16个操作*/
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/*第三轮*/
/*令[abcd k s t]表示操作
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s)*/
/*完成以下16个操作*/
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/*第四轮*/
/*令[abcd k s t]表示操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s) */
/*完成以下16个操作*/
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /*i循环*/
5) 输出
由A、B、C、D四个寄存器的输出按低位字节在前的顺序(即以A的低字节开始、D的高字节结束)得到128位的消息摘要。
以上就是对MD5算法的描述。
MD5算法的运算均为基本运算,比较容易实现且速度很快。
安全散列函数(SHA)
算法
SHA是美国NIST和NSA共同设计的安全散列算法(Secure Hash Algorithm),用于数字签名标准DSS(Digital Signature Standard)。
SHA的修改版SHA–1于1995年作为美国联邦信息处理标准公告(FIPS PUB 180–1)发布[2]。
怎样用FPGA实现FSK调制解调?
FSK(Frequeney-Shift Keying,频移键控)是用不同频率的载波来传送数字信号。
FSK信号具有抗干扰能力强、传输距离远等优点,在只常生活和工业控制中被广泛采用。
例如CID(Calling Identity Delivery)来电显示,低速的Modem,铁路系统和电力系统的载波通信中也广泛使用他来传送各种控制信息。
以往的FSK调制解调器采用“集成电路+连线”方式设计,集成块多、连线复杂且体积较大。
本文基于FPGA芯片,采用VHDL语言,利用层次化、模块化设计方法,提出了一种FSK调制解调器的实现方法。
1 系统整体结构框图
本文设计的FSK调制解调器采用了ALTERA公司的EP1C3T144C8芯片,系统主时钟频率为20 MHz(芯片外部有源晶振),“0”,“1”数字信号由伪随机信号(m序列)发生器产生。
为完成FSK调制器和解调器的发送与接收,由FPGA芯片完成的系统整体逻辑功能框图如图1所示。
2 系统的具体设计与实现
2.1 伪随机序列的产生
最大长度线性移位寄存器序列(m序列)是数字通信中非常重要的、应用十分广泛的一种伪随机序列。
由于他具有随机性、规律性及较好的自相关性和互相关性,而且要求设备简单,易于实现,成本低的特点,本系统采用m序列作为数字基带信号进行程序调试。
m序列是由带线性反馈的移位寄存器产生的周期最长的一种二进制序列。
线性反馈移位寄存器的一般结构如图2所示。
他是由n级移位寄存器,若干模二加法器组成线性反馈逻辑网络和时钟脉冲产生器连接而成。
由于带有反馈,因此在移位脉冲作用下,移位寄存器各级的状态将不断变化,通常将移位寄存器的最后一级作为输出,由此所产生的输出序列为:{ak}=a0a1…ak-1。
输出序列是一个周期序列,其特性由移位寄存器的级数、初始状态、反馈逻辑及时钟频率(决定着输出码元的宽度)所决定。
当移位奇存器的级数及时钟一定时,输出序列就由移位寄存器的初始状态及反馈逻辑完全确定;当初始状态为全零状态时,移位寄存器输出全0列。
因此初始状态不能为全零状态。
本系统选用m序列的级数为n=7,序列长度为m=27-1=127,若选用的反馈系数的八进制数值为235,转换成二进制数值为10011101,即c0=c2=c3=c4=c7=1,c1=c5=c6=0。
仿真波形如图3所示。
2.2 FSK调制
本系统是利用2个独立的分频器来改变输出载波频率,以数字键控法来实现FSK捌制。
数字键控法也称为频率选择法,他有2个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。
键控法产生的FSK信号频率稳定度可以做到很高并且没有过渡频率,他的转换速度快,波形好,频率键控法在转换开天发生转换的瞬刚,2个高频振荡的输出电压通常不相等,于是已调信号在基带信息变换时电压会发生跳变,这种现象称为相位不连续,这是频率键控特有的情况。
本文设计的FSK调制系统方框图如图4所示。
2.3 FSK解调
过零检测法与其他解调方法相比较,最明显的特点就是结构简单,易于实现,对增益起伏不敏感,特别适用于数字化实现。
他是一种经济、实用的最佳数字解调方法。
其方框图如图5所示。
他利用信号波形在单位时间内与零电平轴交义的次数来测定信号频率。
输入的已调信号经限幅放大后成为矩形脉冲波,再经微分电路得到l圾向尖脉冲,然后整流得到单向尖脉冲,每个尖脉冲表示信号的一个过零点,尖脉冲的重复频率就是信号频率的2倍。
将尖脉冲去触发一单稳态电路,产生一定宽度的矩形脉冲序列,该序列的平均分量与脉冲重复频率成正比,即与输入频率信号成正比。
所以经过低通滤波器输出平均量的变化反映了输入信号的变化,这样就完成了频率-幅度变换,把码元“1”与“0”在幅度上区分开来,恢复出数字基带信号。
本文设计的FSK解调方框图如图6所示。
3 系统仿真与实验结果分析
整个设计使用VHDL编写,以EP1C3T144CS为下载的目标芯片,在Quartus II软件平台上进行布局布线后进行波形仿真,可得到如图7所示的波形图。
其中:clk为输入主时钟信号;en为置位信号;clks为clk经过200分频器的输出信号;ps7为时钟源经过n=7的伪随机发生器产生的伪随机(m序列)信号;fsk为ps7经过FSK调制器后的已调信号;q为fsk经过FSK解调器后的解调信号。
在实际硬件电路上进行测试,用示波器观察各个模块的工作过程,得到如图8和图9所示的波形图。
其中,圈8中Ch1为已调信号,Ch2为数字基带信号。
图9中Ch1为数字基带信号,Ch2为解调信号。
由上面的软件和硬件的测试结果可知:
(1)本系统的FSK调制解调器功能已经实观,结果正确无误,经验证满足预期的设计指标要求,且其整个工作过程可通过软件波形仿真,或是实际硬件电路通过示波器来直观、清晰观察。
(2)传统的调制解调方式可以采用软件与硬件结合的方式来实现,符合未来通信技术发展的方向。
4 结 语
传统的FSK调制解调方式都是采用硬件电路实现,电路复杂、调试不便。
文中采用硬件描述语占设计的基于FPGA调制解调器,设计灵活、修改方便,有效地缩小了系统的体积,增加了可靠性,同时系统采用VHDL语言进行设计,具有良好的可移植性及产品升级的系统性。
DSP芯片中 TMS320C54X和TMS320C55X的区别是什么
TMS320C54x和ADSP218x性能比较--技术资料--中国IC网
/document/18345.htm
摘要:TI(Texas Instruments)公司的TMS320C54X系列和ADI(ANALOG Devices Inc.)公司的ADSP218X系列是目前应用广泛的两款主流16位定点DSP芯片。
以Geffe发生器和MD5算法的实现为例,通过对这两款芯片性能的详细比较,分析研究了它们各自优缺点。
关键词:DSP芯片 TMS320C54X ADSP-218X 性能比较
从1982年第一片数字信号处理器(DIGITAL Signal Processor,DSP)TMS320C10产生以来,经过二十年的发展,DSP以其卓越的性能、独有的特点,已成为通信、计算机、消费类电子产品等领域的基础器件。
业内人干预言,DSP将是未来集成电路中发展最快的电子产品,并成为电子产品更新换代的决定因素,它将彻底变革人们的作、学习和生活方式。
DSP[6][8][9]具有两种算术结构:定点和浮点。
从理论上讲,虽然浮点DSP的动态范围比定点DSP大,且更适合于DSP的应用场合,但定点运算的DSP器件的成本较低,对存储器的要求也较低,而且耦电较省。
定点运算的可编程DSP器件仍是市场上的主流产品。
据统计,目前销售的DSP器件中的80%以上属于16位定点可编程DSP器件。
其中,TI公司的TMS320C54X系列和ADI公司的ADSP-218X系列是目前广泛使用的主流定点DSP芯片。
下面就以它们为研究对象,结合Geffe发生器[7]和MD5算法的实现,对其性能进行分析比较。
由于TI的TMS320VC5402和ADI的ADSP-2186N是使用较多的两款,硬件性能指标又相近,有很好的可比性,所以编程实现时选择它们为具体芯片。
虽然两款DSP芯片都提供C编译器,但是因为效率都不高,这里我们就不作讨论。
下面的论述都是基于直接用汇编语言编程的。
1 Geffe发生器与MD5算法
先简单介绍一眄两个算法。
Geffe发生器是一种密钥序列发生器,它利用线性反馈移位寄存器(LINEAR Feedback Shift Register,LFSR)产生序列密码。
Geffe发生器使用了三个LFSR,它们以非线性方式结合,其中两个LFSR作为复合器的输入,第三个LFSR控制复合器的输出。
因为运算量很大,所以LFSR用软件实现起来比较慢,但是用汇编语言实现比用C语言实现快。
MD5(MD,即Message Digest)是一个单向散列函数,它对输入消息产生128位散列值(或消息摘要)。
该算法需要进行大量的移位和逻辑操作,用DSP实现比较方便。
2 TMS320C54X系列与ADSP-218X系列性能比较
2.1 硬件结构[1][4][5]
TMS320C54X系列采用改进的Harvard结构体系,有一组程序总线和三组数据总线、高度并行性的算术逻辑单元ALU、乘法/累加器MAC、桶形移位器、缓冲串口、专用硬件逻辑、片内存储器、片内外设和高度专业化的指令集等等。
支持32位长操作数指令,支持并行存储和并行装入的算术指令。
ADSP-218X系列借装了TMS320X系列的优缺点,重新设计。
它也是采用改进的Harvard结构体系。
ALUMAC、桶形移位器这三个独立的运算部件均可以单周期操作。
还有丰富的双缓冲串口、中断(分外中断和内中断)等。
在TMS320C54x系列中,程序存储区和数据存储区是混在一起的,而ADSP-218X系列从物理上就将两者分开,这就使多功能指令操作显得非常方便。
因此,ADSP-218X系列程序实现更有高效性。
两款芯片主要技术指标的比较如表1所示。
M序列是怎么产生的啊,最好是用移位寄存器产生
伪随机序列可由线性移位e69da5e6ba90e799bee5baa6e79fa5e9819331333363353830寄存器网络产生.该网络由r级串联的双态器件,移位脉冲产生器和模2加法器组成,下面以4级移位寄存器为例,说明伪随机序列的产生.规定移位寄存器的状态是各级从右至左的顺序排列而成的序列,这样的状态叫正状态或简称状态.反之,称移位寄存器状态是各级从左至右的次序排列而成的序列叫反状态.例如,初始状态是0001,那么an-4=0,an-3=0,an-2=0,an-1=1.如果反馈逻辑为an= an-3⊕an-4,对于初始状态为0001,经过一个时钟节拍后,各级状态自左向右移到下一级,未级输出一位数,与此同时模2加法器输出值加到移位寄存器第一级,从而形成移位寄存器的新状态,下一个时钟节拍到来又继续上述过程.未级输出序列就是伪随机序列.其产生的伪随机序列为an=100110101111000100110101111000…,这是一个周期为15的周期序列.改变反馈逻辑的位置及数量还可以得到更多不同的序列输出.
从上述例子可以得到下列结论:
1、线性移位寄存器的输出序列是一个周期序列.
2、当初始状态是0状态时,线性移位寄存器的输出全0序列.
3、级数相同的线性移位寄存器的输出序列和反馈逻辑有关.
4、同一个线性移位寄存器的输出序列还和起始状态有关.
5、对于级数为r的线性移位寄存器,当周期p=2r-1时,改变移位寄存器初始状态只改变序列的初相.这样的序列称为最大长度序列或m序列.下图为一个4级线性反馈移位寄存器,已知初始状态 为0001。
(1)设从左到右的触发器输入依次为D0、D1、D2、D3,y为输出
n时刻:
D0=y2+y3
D1=y0
D2=y1
D3=y2
然后把D0、D1、D2、D3分别换成n+1时刻的y0、y1、y2、y3
(2)先分别列出0000至1111的下一状态,然后即可画状态转移图、表了。
很简单请问M序列的产生
原发布者:上大地下城
设计内容及要求基于MATLAB产生m序列要求:1.通过matlab编程产生m序列的产生原理及其产生方法。
2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。
第二章m序列设计方案的选择2.1方案一MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2方案二图2.1Simulink实现m序列Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。
在此环境中无需大量书写程序,而只需通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应性广,结构及流程清晰及仿真精细等优点,基于以上优点,Simulink已被广泛的运用到控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的有点具有通用性而方案二利用MATLAB的Simulink直接搭建模块,在移位寄存器较少的情况下利用此方法比较简单,可是当移位寄存器的个数增多时,要搭建那么多的模块就显的很繁琐了,缺乏通用性,因此本次实验选择方案一。
第3章m序列的产生及性质3.1m序列的产生原理、结构及产生m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的。
由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,
很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...
RackNerd今天补货了3款便宜vps,最便宜的仅$9.49/年, 硬盘是SSD RAID-10 Storage,共享G口带宽,最低配给的流量也有2T,注意,这3款补货的便宜vps是intel平台。官方网站便宜VPS套餐机型均为KVM虚拟,SolusVM Control Panel ,硬盘是SSD RAID-10 Storage,共享G口带宽,大流量。CPU:1核心内存:768 MB硬盘:12 ...
这次RackNerd商家提供的美国大硬盘独立服务器,数据中心位于洛杉矶multacom,可选Windows、Linux镜像系统,默认内存是64GB,也可升级至128GB内存,而且硬盘采用的是256G SSD系统盘+10个16TSAS数据盘,端口提供的是1Gbps带宽,每月提供200TB,且包含5个IPv4,如果有需要更多IP,也可以升级增加。CPU核心内存硬盘流量带宽价格选择2XE5-2640V2...
线性反馈移位寄存器为你推荐
copyingCopying the existing data of an employee to a new网络接入怎样建立一个网络拨号连接?文件保护vivo手机文件被保护注册电子邮件怎样注册电子邮箱java教程pdf求Java程序设计教程实验手册(翻译版) PDF版无线存储带wifi的sd卡怎么用物联网公司排名国内物联网卡座公司有排名吗?ldap统一用户认证介绍H3CTE的H3CTE认证介绍网络黑科技什么防封软件,都是假的,没有一个是真的,大家不要受骗!怎样清除历史记录清除历史记录
安徽虚拟主机 softlayer 便宜域名 pccw cpanel paypal认证 地址大全 panel1 元旦促销 数字域名 秒杀预告 admit的用法 静态空间 789电视剧 华为云盘 环聊 帽子云排名 qq金券 godaddy空间 双11促销 更多