迷茫 - hecrics的BLOG http://hecrics.52rd.net - 复制 - 收藏
hecrics 发表于 2008-11-25 11:19:00


① 从SIM卡接收到20字节的随机数;
② 从20字节随机数中取前4字节作为RND1;
③ 从20字节随机数中取后16字节作为RND2;
④ 取RND1的第四字节(从左到右)与“0X07”进行“与”操作,再对其结果取模5的值,模5的结果(0—4之间)即为所要选择的主密钥的索引号;再根据索引号从主密钥数组中找到一组Km;
⑤ 获取分散因子X2(8字节长),取RND1作为分散因子X2的前四字节,后面不足补0X20;
⑥ 获取分散因子X1(8字节长),取SIM卡的ICCID的后8字节即可;(注意:取回的ICCID每个字节的前4位和后4位是颠倒的)
⑦ 用Km左右主密钥,加密分散因子X1:(注意:加密数据是8字节,加密结果也是8字节)
a) Kcl = 3DES(Km, X1);(注意:Kcl为Kc的左8字节)
b) Kcr = 3DES(Km, NOT X1); (注意:Kcr为Kc的右8字节)
c) Kc = Kcl || Kcr;
⑧ 用第七步骤中的结果Kc作为主密钥,加密分散因子X2,加密方法同步骤七;
⑨ 用第八步骤中的结果Kc作为主密钥,加密RND2,得到的结果即为最后的密文C;
a) C = 3DES ( Kc, RND2);(注意:加密数据是16字节,加密结果也是16字节)
⑩ 最后在把厂商代码(1字节)、密钥版本(1字节)和密文C(16字节)发送回SIM卡。

 

第二步:确认加密算法是否正确:
按照下面的密钥对明文加密,如果结果是一致的,那说明加密算法正确。
* 8字节密钥,8字节明文
 * Key   : 0123 4567 89ab cdef
 * Plain  : 0123 4567 89ab cde7
 * Cipher : c957 4425 6a5e d31d
 *
 * 16字节密钥,8字节明文
 * Key   : 0123 4567 89ab cdef fedc ba98 7654 3210
 * Plain  : 0123 4567 89ab cde7
 * Cipher : 7f1d 0a77 826b 8aff
 *
 * 16字节密钥,16字节明文
 * Key   : 0123 4567 89ab cdef fedc ba98 7654 3210
 * Plain  : 0123 4567 89ab cdef 0123 4567 89ab cdff
 * Cipher : 27a0 8440 406a df60 278f 47cf 42d6 15d7
 *
 * 24字节密钥,8字节明文
 * Key   : 0123 4567 89ab cdef fedc ba98 7654 3210 89ab cdef 0123 4567
 * Plain  : 0123 4567 89ab cde7
 * Cipher : de0b 7c06 ae5e 0ed5
 *
 * 24字节密钥,16字节明文
 * Key   : 0123 4567 89ab cdef fedc ba98 7654 3210 89ab cdef 0123 4567
 * Plain  : 0123 4567 89ab cdef 0123 4567 89ab cdff
 * Cipher : ad0d 1b30 ac17 cf07 0ed1 1c63 81e4 4de5
 *

第三步:验证各个步骤是否正确:

1. 从SIM卡取回20字节随机数,这里用下面这组代替:
5C 34 44 66   20 20 20 20   01 C0 34 E4   19 AB 44 89   90 A5 03 56

2. 取得RND1:
RND1 = 5C 34 44 66

3. 取得RND2:
RND2 = 20 20 20 20   01 C0 34 E4   19 AB 44 89   90 A5 03 56

4. 取得Km:
Index = (0x66 & 0x07)%5 = 1;
Km = MainKey[1],在这里用下面这组替代:
6e 5b 38 47 d1 c7 c1 86 28 7c 18 6a 35 a5 e3 20

5. 获取分散因子X2:
X2 = 5C 34 44 66 20 20 20 20

6. 获取分散因子X1:
ICCID = 98 68 45 23 12 45 67 56 35 45
X1 = 45 23 12 45 67 56 35 45

7. 用Km加密X1:
X1 = 45 23 12 45 67 56 35 45

Km = 6e 5b 38 47 d1 c7 c1 86 28 7c 18 6a 35 a5 e3 20
Kcl = 3DES(Km , X1):
Kcl = 5A 6B 3D 1D A7 D6 09 35
Kcr = 3DES(Km , NOT X1):
Kcr = F9 75 AA E6 47 67 35 B3
Kc = 5A 6B 3D 1D A7 D6 09 35 F9 75 AA E6 47 67 35 B3

8. 用Kc加密X2:
X2 = 5C 34 44 66 20 20 20 20

Km = 5A 6B 3D 1D A7 D6 09 35 F9 75 AA E6 47 67 35 B3
Kcl = 3DES(Kc , X1):
Kcl = 4F F4 BC 09 32 57 92 7E
Kcr = 3DES(Kc , NOT X1):
Kcr = 87 23 26 36 8B 48 77 E9
Kc = 4F F4 BC 09 32 57 92 7E 87 23 26 36 8B 48 77 E9

9. 用Kc加密RND2:
Kc = 4F F4 BC 09 32 57 92 7E 87 23 26 36 8B 48 77 E9
C = 3DES(Kc, RND2);
C = AC DA 08 20 DC 5D EA 94 67 8C EA 4D F9 62 F8 76

10. 把密文C发送回SIM卡,SIM卡会发回91XX。当然根据上面的数据只能验证具体那个步骤可能有问题而已,这个数据发给SIM卡,返回的肯定是认证失败,因为这是我自己用的测试数据。

 

结束。大家有啥意见就直接提啊。

阅读全文(2317) | 评论(30)
评 论
30楼 LiuJia123456 发表于 2009-11-5 17:24:00
请问:确认加密算法是否正确: * 8字节密钥,8字节明文 * Key : 0123 4567 89ab cdef * Plain : 0123 4567 89ab cde7 * Cipher : c957 4425 6a5e d31d 在MTK平台上验证上面,上面的数据是什么格式的? 就是Key : 0123 4567 89ab cdef 在下面‘?’部分应是什么? int Key[?] = {???};
29楼 hello_52rd 发表于 2009-7-13 10:50:00
你好,想请教你下。我的SIM卡背面的卡的ID号是:898600A1090851068001。我取后八个字节应该是什么样子的?谢谢!
28楼 52RD网友(游客) 发表于 2009-6-18 15:57:00
大家一起合作搞卡吧,哈哈
27楼 52RD网友(游客) 发表于 2009-6-14 16:06:00
博主,能联系一下我吗?请给我发个消息13185000801,或者QQ:382969322,想向你咨询SIM卡方面的事情,保证向你付咨询费,希望能合作!
26楼 hecrics 发表于 2009-6-10 17:40:00
以后干脆做这方面的咨询算了,咨询一次100¥,哈哈。 封顶1000¥,一定把问题解决。
25楼 hecrics 发表于 2009-6-10 17:38:00
要算法的人到: http://www.52rd.com/bbs/Detail_RD.BBS_160319_15_1_1.html 这里去下吧,BLOG里放不了.发EMAIL,我也不可能去发那么多吧.
24楼 52RD网友(游客) 发表于 2009-6-7 22:51:00
LZ高人阿,我现在做解密也遇到怎么也凑不出来的问题了,能不能发一份解密代码和方法啊,万分感谢了olitwo@sina.com
23楼 bitmap8 发表于 2009-6-1 19:53:00
hecrics,你好,我也遇到17楼的问题,在验证 * 16字节密钥,16字节明文 * Key : 0123 4567 89ab cdef fedc ba98 7654 3210 * Plain : 0123 4567 89ab cdef 0123 4567 89ab cdff * Cipher : 27a0 8440 406a df60 278f 47cf 42d6 15d7的时候用的3Des算法是正确地,可是 在验证9. 用Kc加密RND2: Kc = 4F F4 BC 09 32 57 92 7E 87 23 26 36 8B 48 77 E9 C = 3DES(Kc, RND2); C = AC DA 08 20 DC 5D EA 94 67 8C EA 4D F9 62 F8 76 是结果确是错误的.能否给我发份加密代码及使用方法.我得邮箱是:diao.yuelei@byd.com.不胜感激.
22楼 52RD网友(游客) 发表于 2009-5-22 15:49:00
hecrics,和17楼zhaotieming一样的情况,急需你的帮助。谢谢了。becky_zheng@foxmail.com
21楼 52RD网友(游客) 发表于 2009-5-22 15:40:00
hecrics 能否给我发份解密代码及使用方法 ,急需要。nykuist@live.cn先谢谢了
20楼 hecrics(游客) 发表于 2009-5-13 14:34:00
zhaotieming ,已经给你发过去了
19楼 hecrics(游客) 发表于 2009-5-13 14:32:00
加密算法当然对了,现在都已经开始卖了,跟所有厂商的都一样. 不要说大家都一样错啊.
18楼 52RD网友(游客) 发表于 2009-5-12 13:29:00
你的加密算法正确吗?
17楼 zhaotieming 发表于 2009-4-30 0:20:00
hecrics,我也在做SIM卡的解密,从网上下载了一个V5.09的D3DES算法,但就是无法验证算法通过,其中有makekey(),make2key(),mak3key()等函数,我都试过,无法得出正常结果,你能给我指点一下吗?我的软件包名为codechina,其中有d3des.c与d3des.h两个文件.另能否提供一下你的解密包,发至 ALPHA197507@21cn.com .先多谢了。
16楼 hecrics(游客) 发表于 2009-1-14 15:08:00
hehe,等做加密卡的人多起来,干脆大家就这里讨论算了。。。
15楼 52RD网友(游客) 发表于 2009-1-14 12:36:00
大荣,很热闹啊 bin
14楼 hecrics(游客) 发表于 2009-1-13 9:30:00
hehe,这里说的不是解密哦,一个卡,知道密钥后,也要在手机上做相对改动才行,我们又不能直接改SIM卡的程序。 不过可以找SIM卡商,他们能改SIM卡程序,但是好象写号码也不太可能,要运营商提供一些参数哦。。。
13楼 52RD网友(游客) 发表于 2009-1-11 11:52:00
我的阿里旺旺wzhtjm对楼主的破解SIM卡很感兴趣,我想解某地的V4卡,已经知道密钥了,有办法解的话跟我联系,可以合作啊,很有钱途
12楼 dancebirch(游客) 发表于 2008-12-22 10:57:00
高人,要不给一个邮箱地址我,我发一下我的卡的规格书给您,看一下和你的有没有区别
11楼 hecrics 发表于 2008-12-22 9:33:00
你说你验证过第三步:验证各个步骤是否正确:,那说明你用的3DES算法是没问题,加密的流程跟我的也一样。 现在还有一个问题一定要搞清楚,就是你拿到手的这SIM卡的加密流程不一定是跟我这个一样的,据我所知,不同的SIM卡,采用的加密流程是不一样的,好象有一种是用X1产生的密钥来加密数据的前8字节,用X2产生的密钥来加密数据的后8字节,然后2组得到最后的密文。 所以你最好是去弄清楚,这卡采用的加密流程。。。我觉得你手机上的问题应该不大了。。。要做的应该就是根据SIM卡的来改变你终端上的流程而已。 我是厦门的,做手机也有一段时间了,以后多交流。
9 1 2 :
昵 称: 匿名
验证码: 0612
博 主
进入hecrics的首页
博客名称:迷茫
日志总数:106
评论数量:627
访问次数:277933
建立时间:2006年8月23日
导 航
日 历
«Mar.2010»
123456
78910111213
14151617181920
21222324252627
28293031
公 告
详细的流量统计:
日 志
评 论
链 接

某个人的BLOG:http://blog.sina.com.cn/u/1244756857

美女好歌:http://blog.fenbei.com/5031174

详细的流量统计: