发新帖本帖赏金 3.00元(功能说明)我要提问
返回列表
打印

关于RSA加密的代码

[复制链接]
1633|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
djz1992|  楼主 | 2016-5-30 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个加密程序的ABC是哪来的?固定的?还是有别的函数随机生成,然后双方互相告知的?听说加密解密都是这个函数是么?有大神了解么。。@xyz549040622  @dirtwillfly
Const unsigned uint32_t M1  =A;
Const unsigned uint32_t IA1 =B;
Const unsigned uint32_t IC1 =C;
Void encrypt(uint32_t key, unsigned char* buffer, uint32_t size )
{
uint32_t idx = 0;
if( 0 = = key )
{
key = 1;
}
uint32_t mkey = M1;
if (0 = = mkey )
{
    mkey = 1;
}
while( idx < size )
{
key = IA1 * ( key % mkey ) + IC1;
buffer[idx++] ^= (unsigned char)((key>>20)&0xFF);
}
}

相关帖子

沙发
djz1992|  楼主 | 2016-5-30 15:06 | 只看该作者
@hgjinwei 大神,看看呢,我看到你有回复过相关内容。。。

使用特权

评论回复
板凳
djz1992|  楼主 | 2016-5-30 15:52 | 只看该作者
我看到TM4c有AES,这个怎么用的?

使用特权

评论回复
地板
hgjinwei| | 2016-5-30 18:06 | 只看该作者
djz1992 发表于 2016-5-30 15:06
@hgjinwei 大神,看看呢,我看到你有回复过相关内容。。。

Sorry,我看不出这个加密算法和RSA有何关系。
感觉这是个自定义的加密算法,我所知的加密算法没一个与之类似的。

使用特权

评论回复
5
dirtwillfly| | 2016-5-30 18:55 | 只看该作者
这是哪里的代码?官网例程吗?

使用特权

评论回复
6
hgjinwei| | 2016-5-31 10:33 | 只看该作者
网上查了下,这个加密算法是《道路运输车辆卫星定位系统平台数据交换》标准里定义的一个算法(见附件:4.4.7)。
对于M1,IA1,IC1,标准里面是这么说的:
d) 不同的上下级平台之间,加密的算法是一致的,但是针对M1、IA1、IC1的不同。数据先经过加密而后加密。

貌似只提到M1、IA1、IC1在不同平台间是不同的,但如何不同,如何约定,我没有发现。

JTT 809-2011 道路运输车辆卫星定位系统平台数据交换.pdf

4.24 MB

使用特权

评论回复

打赏榜单

dirtwillfly 打赏了 3.00 元 2016-05-31
理由:热心网友,这么偏门的资料都能查到。以示鼓励

评分
参与人数 1威望 +6 收起 理由
dirtwillfly + 6 很给力!
7
dirtwillfly| | 2016-5-31 12:42 | 只看该作者
hgjinwei 发表于 2016-5-31 10:33
网上查了下,这个加密算法是《道路运输车辆卫星定位系统平台数据交换》标准里定义的一个算法(见附件:4.4.7 ...

赞一个

使用特权

评论回复
8
djz1992|  楼主 | 2016-5-31 16:06 | 只看该作者
hgjinwei 发表于 2016-5-31 10:33
网上查了下,这个加密算法是《道路运输车辆卫星定位系统平台数据交换》标准里定义的一个算法(见附件:4.4.7 ...

也就是说这个加密算法是非主流的,自定义的。ABC和key都是双方定义的,互相知道

使用特权

评论回复
9
yyj8902| | 2016-5-31 18:31 | 只看该作者
hgjinwei 发表于 2016-5-31 10:33
网上查了下,这个加密算法是《道路运输车辆卫星定位系统平台数据交换》标准里定义的一个算法(见附件:4.4.7 ...

这都可以翻出来,牛X。

使用特权

评论回复
10
dirtwillfly| | 2016-5-31 22:33 | 只看该作者
这么偏门的资料都能查到,很攒

使用特权

评论回复
11
hgjinwei| | 2016-6-1 08:13 | 只看该作者
起始也没什么难查的啦,

1、key = IA1 * ( key % mkey ) + IC1;
2、buffer[idx++] ^= (unsigned char)((key>>20)&0xFF);

“表达式2” 对于加密算法而言,是比较常见的数值处理方式,
而“表达式1” 对于加密算法而言,是一种密钥生成算法(类似AES的S-BOX),那么网上搜表达式1,就出来了。

使用特权

评论回复
12
dirtwillfly| | 2016-6-1 20:24 | 只看该作者
hgjinwei 发表于 2016-6-1 08:13
起始也没什么难查的啦,

1、key = IA1 * ( key % mkey ) + IC1;

学习了

使用特权

评论回复
发新帖 本帖赏金 3.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:人生苦短,冬日苦长,正是青葱,却无骄阳

115

主题

620

帖子

5

粉丝