hugerat 发表于 2007-7-17 21:36

51单片机可用的AES加解密算法!

&nbsp;&nbsp;&nbsp;&nbsp;这是一个适用于C51单片机的AES加解密算法,用C语言编写,Keil&nbsp;C&nbsp;uV3编译通过。是我根据网上多见的C++的AES算法改写而成。128bit加解密。<br />&nbsp;&nbsp;&nbsp;&nbsp;因为我的项目中要用到AES加解密,网上虽有许多AES的C++或DELPHI的源代码,也有一些C语言的源代码,但都不适用于C51单片机使用(主要是因为都使用了查表法对运算速度进行优化,但因为占用太多内存和代码空间,不能用于C51单片机)。因此本人对这些算法进行了改写,适用于C51单片机,用Keil&nbsp;c编译后,约占2K代码空间,和1K多的内存。一般带有1K字节内存的C51单片机完全可用。但因为没有使用查表法优法,所以运算速度不是特别快,不适用于要对大量数据加解密的场合。此算法在C51&nbsp;F020单片机中实际使用,运行正常。此算法只提供了128bit的加密级别,因为要增加加密位数,要太多代码和内存,C51单片机基本无法使用,故没有提供。<br /><br />点此下载

gyt 发表于 2007-7-18 06:49

谢了!

hugerat 发表于 2007-7-18 16:35

不谢

conwh 发表于 2007-7-18 17:10

不知道,解密照样读片子

hugerat 发表于 2007-7-23 09:01

这个算法不是用来给程序加密的。

是用来给要传输的数据进行加密的。

古道热肠 发表于 2007-7-23 09:06

有共享精神,谢过了

wjc3k 发表于 2007-7-23 09:25

没有TEA算法来得实用。

基本不需要额外内存,加解代码也简单,不需要太多代码。速度也快。<br />强度也算是可以的。<br />#include&nbsp;&quot;tea.h&quot;<br /><br />#define&nbsp;MX&nbsp;(z&gt&gt5^y&lt&lt2)+(y&gt&gt3^z&lt&lt4)^(sum^y)+(k^z)<br />#define&nbsp;DELTA&nbsp;0x9e3779b9<br />#define&nbsp;S_LOOPTIME&nbsp;&nbsp;&nbsp;5<br />#define&nbsp;BLOCK_SIZE&nbsp;PAGE_SIZE<br />/*&nbsp;<br />*key&nbsp;&nbsp;maybe&nbsp;128bit&nbsp;=16&nbsp;Bytes.<br />*buf&nbsp;&nbsp;maybe&nbsp;BLOCK_SIZE<br />*/<br />void&nbsp;btea_encrypt(&nbsp;unsigned&nbsp;char*&nbsp;buf,&nbsp;unsigned&nbsp;char*&nbsp;key&nbsp;)<br />{<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;n=BLOCK_SIZE/4;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;*v=(unsigned&nbsp;long&nbsp;*)buf;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;*k=(unsigned&nbsp;long&nbsp;*)key;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;z&nbsp;=&nbsp;v,y&nbsp;=&nbsp;v,sum&nbsp;=&nbsp;0,e&nbsp;;<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;p,q&nbsp;;<br />&nbsp;&nbsp;//&nbsp;Coding&nbsp;Part&nbsp;<br /><br />&nbsp;&nbsp;q&nbsp;=&nbsp;S_LOOPTIME&nbsp;+&nbsp;52&nbsp;/&nbsp;n&nbsp;;<br />&nbsp;&nbsp;while&nbsp;(&nbsp;q--&nbsp;&gt&nbsp;0&nbsp;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;DELTA&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;e&nbsp;=&nbsp;sum&nbsp;&gt&gt&nbsp;2&nbsp;&&nbsp;3&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;p&nbsp;=&nbsp;0&nbsp;;&nbsp;p&nbsp;&lt&nbsp;n&nbsp;-&nbsp;1&nbsp;;&nbsp;p++&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;v,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;v&nbsp;+=&nbsp;MX;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;v&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;v&nbsp;+=&nbsp;MX;<br />&nbsp;&nbsp;}<br />}<br /><br />/*<br />*key&nbsp;&nbsp;maybe&nbsp;128bit&nbsp;=16Bytes.<br />*buf&nbsp;&nbsp;maybe&nbsp;BLOCK_SIZE<br />inbuf&nbsp;==&nbsp;outbuf&nbsp;==&nbsp;buf<br />*/<br />void&nbsp;btea_decrpyt(&nbsp;unsigned&nbsp;char*&nbsp;buf,&nbsp;unsigned&nbsp;char*&nbsp;key&nbsp;)<br />{<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;n=BLOCK_SIZE/4;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;*v=(unsigned&nbsp;long&nbsp;*)buf;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;*k=(unsigned&nbsp;long&nbsp;*)key;<br />&nbsp;&nbsp;unsigned&nbsp;long&nbsp;z&nbsp;=&nbsp;v,y&nbsp;=&nbsp;v,sum&nbsp;=&nbsp;0,e&nbsp;;<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;&nbsp;p,q&nbsp;;<br /><br />&nbsp;&nbsp;//Decoding&nbsp;Part...<br />&nbsp;&nbsp;q&nbsp;=&nbsp;S_LOOPTIME&nbsp;+&nbsp;52&nbsp;/&nbsp;n&nbsp;;<br />&nbsp;&nbsp;sum&nbsp;=&nbsp;q&nbsp;*&nbsp;DELTA&nbsp;;<br />&nbsp;&nbsp;while&nbsp;(&nbsp;sum&nbsp;!=&nbsp;0&nbsp;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;e&nbsp;=&nbsp;sum&nbsp;&gt&gt&nbsp;2&nbsp;&&nbsp;3&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;p&nbsp;=&nbsp;n&nbsp;-&nbsp;1&nbsp;;&nbsp;p&nbsp;&gt&nbsp;0&nbsp;;&nbsp;p--&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;v,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;v&nbsp;-=&nbsp;MX;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;v&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;v&nbsp;-=&nbsp;MX;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;-=&nbsp;DELTA&nbsp;;<br />&nbsp;&nbsp;}<br />}<br />算法描述可在网上搜索。

andyliji 发表于 2011-2-15 18:10

我为什么下不了啊?

加油吧小鱼儿 发表于 2014-4-18 13:37

謝謝了~

jinhuangdishu 发表于 2014-6-10 10:41

怎么下载不了……

mcu430 发表于 2019-5-5 11:30

这个很不错不知道用的如何?

mcu430 发表于 2019-5-5 11:31

这个很不错不知道用的         如何?

Joey26 发表于 2020-7-16 10:10

厉害

一路向北lm 发表于 2020-7-16 13:36

一些片子支持ASE 硬件加密

dhxhh 发表于 2022-4-29 19:32

水电费噶啥地方第三方阿斯顿发送到发水电费啥的发生
页: [1]
查看完整版本: 51单片机可用的AES加解密算法!