《嵌入式工程师需知道的实用算法.docx》由会员分享,可在线阅读,更多相关《嵌入式工程师需知道的实用算法.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式工程师需知道的实用算法伴随着人工智能、物联网时代的到来,数据应用变得频繁起来,数据安全应该如何保护?软件加密 算法都有哪些,这些算法在哪些方面得到了应用?慢慢读下去,你会发现围绕在我们身边的“小密码”。对称加密算法对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数 据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其 变成复杂的加密密文发送出去。在对称加密算法中,使用的密钥只有一个,发 收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知 道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密 效率高。不足之处是,交易双方都使用
2、同样钥匙,安全性得不到保证。对称加 密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成 本较高。DES加密算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度 是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算 法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读 由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密 钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算 次数为256o随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然 而从非关键性质的实际出发,仍可
3、以认为它是足够的。不过,DES现在仅用于 旧系统的鉴定,而更多地选择新的加密标准。3DES加密算法3DES是三重数据加密算法块密码的通称。它相当于是对每个数据块应用三 次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得 容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加 DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。3DES是DES向AES过渡的加密算法,加密算法,其具体实现如下:设Ek() 和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表 明文,C代表密文,这样:3DES 加密过程为:C=Ek3 (Dk
4、2 (Ekl(M)3DES 解密过程为:M=Dkl(EK2 (Dk3(C)AES加密算法AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体 制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各 种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,这个 标准用来替代原先的DES,已经被多方分析且广为全世界所使用。AES加密算法被设计为支持128 / 192 / 256位(/32=nb)数据块大小(即分 组长度);支持128 / 192 / 256位(/32=nk)密码长度,在10进制里,对应 34X1038、62X 1057、3 1X107
5、7 个密钥。对那加室算法(加解密密钥相同)名称 密钥长度运算速度安全性资源消耗DES S6位较快|低|中3DES 112位或168位慢中高AES 128、192、256位 快”二产3%公2 ! _/ y非对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙一公钥和私 钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才 能完成对明文的加密和解密过程。采用不对称加密算法,收发信双方在通信之 前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由 于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛 应用的不对称加密算法有RSA算法和美国
6、国家标准局提出的DSA。以不对称加 密算法为基础的加密技术应用非常广泛。RSA加密算法RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最 优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能 够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。 RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但 那时想要,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公 开作为加密密钥。i?BywD 半七潭*:Enc(xSngtti豆不 同的代码员,兆军百 辜*欣不同代码R时 质的塘卬发现力 byte由大文Encoding 使用FJ代M页.但 byteU定式的叫又转 建为适刍字用京胡文Bvte宇中操娟又:口 5A加至卮这桎窈静*范作DSA加密算法DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。DSA 的一个重要特点是两个素数公开,这样,当使用别人的P和q时,即使不知道 私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却做不 到。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能 进行密钥交换,只用于签名,它比RSA要快很多.