数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 6301|回复: 16

[other] 串口通信简易加密算法的破解

[复制链接]
发表于 2019-5-18 11:32:57 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
A数据经一定算法后得到B数据,其中A是2字节随机数,求具体算法。
相关关键词:单片机串口通信,MODBUS协议

A数据(2字节)   B数据(2字节)

75 86            11 40
77 24            48 77
7D 63            5D 69
93 2F             EC 6A
2C CD            5B B1
00 00             DA A6
DA A6            FF 23
FF FF             9F D9
9F D9            FF FF
01 01            FD 8B
10 10            CA 96
88 88            2F F2
44 44            94 A2
BB BB            40 0B


发表于 2019-5-18 12:08:07 | 显示全部楼层
不要算了,这不是简单的一个算法,是一个加密表。之前公司做个一个
回复 支持 反对

使用道具 举报

发表于 2019-5-18 12:17:14 | 显示全部楼层
如果输入输出唯一对应,可以直接穷举建立个映射表.
回复 支持 反对

使用道具 举报

发表于 2019-5-18 12:42:55 | 显示全部楼层
数据量太少了 看不出个啥来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-18 20:12:18 | 显示全部楼层
原始字节是随机数,故意用 FF FF 或者 00 00 来试,发现结果不可逆,不是简单的异或运算。
回复 支持 反对

使用道具 举报

发表于 2019-5-19 00:50:20 | 显示全部楼层
一般这种加密算法都市替换算法。
可以尝试这样破解:
发送:
1、00
2、00 00
3、00 00 00
........
n、 11 11 11......


不断替换,判断相同的数字在不同的位置被替换成什么数字。

比如:
数字      第一次替换、  第二次替换、第三次替换、第四次替换......
  1             F                 E                B                 1
........

从 0到F 16个数字出现的规律。 只要重复出现就好办了。

我用这种方法破解了别人的加密协议:titter:。

最后加一句:需要时间和耐心。

打赏

参与人数 1家元 +10 收起 理由
家睦 + 10 歡迎探討

查看全部打赏

回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2019-5-19 07:59:47 | 显示全部楼层
西点钟 发表于 2019-5-19 00:50
一般这种加密算法都市替换算法。
可以尝试这样破解:
发送:

方法不错,我很赞成这个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-19 11:38:36 | 显示全部楼层
西点钟 发表于 2019-5-19 00:50
一般这种加密算法都市替换算法。
可以尝试这样破解:
发送:

改天试试看
回复 支持 反对

使用道具 举报

发表于 2019-5-20 01:15:30 | 显示全部楼层
这标题取的,还以为是已经破出来了呢?正想围观看热闹:sweat:

其实对密码方案攻击破解,一般有几种情况:暴力攻击、已知明文攻击和选择明文攻击,越往后相对难度越低。暴力攻击就是穷举,说白了就是全靠运气瞎蒙,已知明文攻击就是在同时截获明文和密文的情况下,就是类似于楼主给出的情况,已知明文和密文对,然后通过统计规律、语言规律等,对加密算法进行反推,如果截获的明文和密文对足够多,就有可能反推出规律,然后进而反猜算法。如果能够获得加密装置,可以根据猜解者的想法,输出特定的数据,观察结果的变化,其实楼主也可以这样做的,这样做在三种情况中,难度是最低的了。

如果加密装置在楼主手上,可以尝试选择明文攻击,就是输入特殊的数据,以观察结果。比如输入全0、全1、55h、AAh等特殊数据,看看输出规律。另外,可以反复输入同一数据,观察输出,看看结果是否相同,可以判断该算法是否与时间或者上一次运算结果相关。

反正,现代密码算法一般就是三种操作:分散、混乱(一般是位运算和反馈)、迭代,但是要破解一个初级的算法,也是需要对加密算法有比较深的研究和经验才行,除非是使用固定密钥作简单运算的,否则不容易的,放弃吧。
回复 支持 反对

使用道具 举报

发表于 2019-5-20 01:19:14 | 显示全部楼层
西点钟 发表于 2019-5-19 00:50
一般这种加密算法都市替换算法。
可以尝试这样破解:
发送:

这种办法,仅适合简单地使用了分散操作的加密算法,看看DES就知道了(现在很多山寨算法都参考了DES),如果是分散以后,再加入混乱手段(比如非线性反馈移位寄存器之类的)就不行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-20 08:33:00 | 显示全部楼层
fat 发表于 2019-5-20 01:19
这种办法,仅适合简单地使用了分散操作的加密算法,看看DES就知道了(现在很多山寨算法都参考了DES),如 ...

仔细看提供的数据,已经有00,FF等简易明文。但是密文没有规律。
回复 支持 反对

使用道具 举报

发表于 2019-5-20 09:30:40 | 显示全部楼层
哈哈,光凭这几组数据就能破解的话,这加密算法也就废了。我之前在一个产品上做的通信算法,就算每次要发送的数据是一样的,经过加密算法后,输出都是不一样的值,长度也会变化,当然在这里使用了真随机数发生器,以及复杂的随机同步算法:biggrin:
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-5-21 08:39:11 | 显示全部楼层
明文是随机数,无法提供大量数据进行分析。
回复 支持 反对

使用道具 举报

发表于 2019-7-24 14:28:34 | 显示全部楼层
明文是随机数,无法提供大量数据进行分析。
回复 支持 反对

使用道具 举报

发表于 2019-7-25 09:30:59 | 显示全部楼层
fat 发表于 2019-5-20 01:19
这种办法,仅适合简单地使用了分散操作的加密算法,看看DES就知道了(现在很多山寨算法都参考了DES),如 ...

说的对,有的高级加密,很难破
回复 支持 反对

使用道具 举报

发表于 2019-7-30 23:15:39 | 显示全部楼层
南天音乐 发表于 2019-5-20 09:30
哈哈,光凭这几组数据就能破解的话,这加密算法也就废了。我之前在一个产品上做的通信算法,就算每次要发送 ...

用的基于时间的算法?
回复 支持 反对

使用道具 举报

发表于 2019-7-31 03:01:43 来自手机浏览器 | 显示全部楼层
有破解的心思和能力,基本上程序自己写算了。没准难度还更低。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-27 03:35 , Processed in 0.171600 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表