1992|2

120

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

(番外12)GD32L233评测-CAU加解密(捉弄下小编) [复制链接]

本帖最后由 韵湖葱白 于 2022-3-7 11:52 编辑

前言

实验都做完了,一直没有时间把文章梳理出来,时间长了自己都差点忘记了,这一篇测试下CAU加密。

加密的接口都比较简单,但是背后的原理却比较复杂,都是绕来绕去的数学公式,这里就不说了。

以电子密码本模式ECB为例,它是最古老,最简单的模式,将加密的数据分成若干组,每组的大小跟加密密钥长度相同;然后每组都用相同的密钥加密, 比如DES算法, 如果最后一个分组长度不够64位,要补齐64位。

定义:

  1. Enc(X,Y)是加密函数
  2. Dec(X,Y)是解密函数
  3. Key是加密密钥;
  4. Pi ( i = 0,1…n)是明文块,大小为64bit;
  5. Ci ( i = 0,1…n)是密文块,大小为64bit;

ECB加密算法可表示为:

  1. Ci = Enc(Key, Pi)

ECB解密算法可以表示为:

  1. Pi = Dec(Key,Ci)

ECB算法的特点:

  • 每次Key、明文、密文的长度都必须是64位;
  • 数据块重复排序不需要检测;
  • 相同的明文块(使用相同的密钥)产生相同的密文块,容易遭受字典攻击;
  • 一个错误仅仅会对一个密文块产生影响;

示例

比如要加密网址:https://bbs.eeworld.com.cn/thread-1191754-1-1.html

调用的接口很简单,就是 cau_des_ecb,其中的填充是 zero padding

代码:

  1. static void cau_test(void)
  2. {
  3. #ifdef CAU_TEST
  4. __attribute__((aligned(4)))
  5. uint8_t message[64] = "https://bbs.eeworld.com.cn/thread-1191754-1-1.html";
  6. __attribute__((aligned(4)))
  7. uint8_t key[8] = "12345678";
  8. __attribute__((aligned(4)))
  9. uint8_t encrypt_result[65] = {'\0'};
  10. cau_parameter_struct text;
  11. rcu_periph_clock_enable(RCU_CAU);
  12. cau_deinit();
  13. cau_struct_para_init(&text);
  14. /* encryption in DES ECB mode */
  15. text.alg_dir = CAU_ENCRYPT;
  16. text.key = key;
  17. text.input = message;
  18. text.in_length = 64;
  19. if (SUCCESS == cau_des_ecb(&text, encrypt_result))
  20. {
  21. printf("%s\r\n", encrypt_result);
  22. }
  23. #endif
  24. }

https://oktools.net/des 这个网址上进行测试,得到:

密文(HEX):49d7997faa52e7f787f8a086c93603ecf17657b2fca877be973940021ef79967eb690d428e998db0888788c9cbe0842c560fcfdf012d0edc

密文(BASE64):SdeZf6pS5/eH+KCGyTYD7PF2V7L8qHe+lzlAAh73mWfraQ1CjpmNsIiHiMnL4IQsVg/P3wEtDtw=

我们的测试结果:

当我们加密的内容很相似时,它们的密文也很相似:

例如:https://bbs.eeworld.com.cn/thread-1193072-1-1.html

密文是:49d7997faa52e7f787f8a086c93603ecf17657b2fca877be973940021ef79967eeccfeb9a8373972888788c9cbe0842c560fcfdf012d0edc

跟前面测试的就很相似了。

测试一个不相同的:

例如:https://mp.weixin.qq.com/s/ZWl1Q8bLrAr-qKYhV4w4BA

密文是:4a0abde163ab83f2750b82fd3e9cdf84cdf44866b991bbb5134c1178ba90c9115eb1f2f30047e67e7b9d69bde70b75d5965d73eaaece4d74

密文(BASE64):Sgq94WOrg/J1C4L9PpzfhM30SGa5kbu1E0wReLqQyRFesfLzAEfmfnudab3nC3XVll1z6q7OTXQ=

跟之前的差别就大了去了。

捉弄下小编

这里有一段机(违)密(规)的中文,给加密了,看看小编知道咋办不?

原文如下(仅包含一些关键字):******大陆******赤日******斗******戍******

密文如下:

HEX:
24052b69b36f22316c2880d0a3a17c8965397ed481c383026b216078e1270308be0bf72147315d6efb47fcddf4673ecd3cfcd49100445b4684ca1878b6b215499c9f412eb22cb8074a23b0bc561744e7b4ee5973057a4385935c6c26aa86d6cbd4de71d01498c09835ef9fb37e61ef0a23c0e2a1e54f796d2ae3b8c634d79cfd867f7c8b0480e7c2e4c73760f64aabba2c8e983c164eee8c4160ada24e364818c5c304cee08db926f11a362d5777e5f25010592485d518bbdd2518fa75eb2fb2c94c5eea744696d2234915521f82c09bd824a857df02788ad7e7dc470868c7b2afeb2e0440ec411ff616abafe33e35ea2a0d9e93087a893470ba3555bab9980d4d0b3487a00482ba17e509dcd45d8054a987c74b0851e869be81a35f57e3912c626f9021ac21989ae37f442c9c4c67327bf039b77c81b673d2e8eca5ae83f4445df0e903b0b4b98ee1ebafdddbfb17ba2fffff5d84852f58b04bb7dc2572ae4d88b453489228c7e1977c6b9c1d2af1bac48876c0acb9a8b1

Base64:
JAUrabNvIjFsKIDQo6F8iWU5ftSBw4MCayFgeOEnAwi+C/chRzFdbvtH/N30Zz7NPPzUkQBEW0aEyhh4trIVSZyfQS6yLLgHSiOwvFYXROe07llzBXpDhZNcbCaqhtbL1N5x0BSYwJg175+zfmHvCiPA4qHlT3ltKuO4xjTXnP2Gf3yLBIDnwuTHN2D2Squ6LI6YPBZO7oxBYK2iTjZIGMXDBM7gjbkm8Ro2LVd35fJQEFkkhdUYu90lGPp16y+yyUxe6nRGltIjSRVSH4LAm9gkqFffAniK1+fcRwhox7Kv6y4EQOxBH/YWq6/jPjXqKg2ekwh6iTRwujVVurmYDU0LNIegBIK6F+UJ3NRdgFSph8dLCFHoab6Bo19X45EsYm+QIawhmJrjf0QsnExnMnvwObd8gbZz0ujspa6D9ERd8OkDsLS5juHrr93b+xe6L///XYSFL1iwS7fcJXKuTYi0U0iSKMfhl3xrnB0q8brEiHbArLmosQ==

解密提示:

中文->转unicode码->DES ECB(key:12345678)

此帖出自GD32 MCU论坛

最新回复

最后的哪个加密怎么玩   详情 回复 发表于 2022-3-7 21:19
点赞 关注
 

回复
举报

7032

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

最后的哪个加密怎么玩

此帖出自GD32 MCU论坛

点评

哈哈哈,逗着玩的呢 这是加密过程:中文->转unicode码->DES ECB(key:12345678) 连key都告诉了,解密就反着来啊  详情 回复 发表于 2022-3-8 08:33
 
 
 

回复

120

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2022-3-7 21:19 最后的哪个加密怎么玩

哈哈哈,逗着玩的呢

这是加密过程:中文->转unicode码->DES ECB(key:12345678)

连key都告诉了,解密就反着来啊

此帖出自GD32 MCU论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
首场直播:Simcenter AI 赋能电子行业研发创新
直播时间:04月15日14:00-14:50

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 7

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表