您当前的位置: 首页 >  算法

ZhangJiQun&MXP

暂无认证

  • 1浏览

    0关注

    1187博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

对称算法(分组算法) 非对称算法 Hash算法 密码键盘中的常用名称解释 Pinblock: ANSI9.8 算法

ZhangJiQun&MXP 发布时间:2019-06-13 18:20:05 ,浏览量:1

目录

对称算法(分组算法)

非对称算法

Hash算法

密码键盘中的常用名称解释

Pinblock:

ANSI9.8 算法

解释:pin block,顾名思义就是pin块,密码块的意思,实际上是对pin原文做一定转换后的结果

说明:对称算法和非对称算法的区别:就是加解密的密钥是不是一样的,一样的就是对称的,不一样的就是非对称的。

对称算法(分组算法)

   分组算法:举个例子 对于des都是明文8个字节,密文也是8个字节,分组的意思就是对每8个字节进行加密获得的密文进行结合。解密就是逆向过程。

   SM4(国密):密钥16字节,密文16字节,明文是16字节的整数 倍

   DES:密钥8字节,密文8字节整数倍,明文是8字节的整数倍

   3DES(国际):密钥可以是16字节(key1+key2+key1),也可以是24字节(key1+key2+key3)。

   3DES加密过程为:C=Ek3(Dk2(Ek1(M)))

   3DES解密过程为:M=Dk1(EK2(Dk3(C)))。

非对称算法

目前应用中非对称算法由两种RSA(国际)和SM2(国密).

算法

参数

说明

RSA

e

目前几个行都是固定为:0x010001(65537)

密钥长度(bit)

能加密的密钥长度/8,数据长度最大为1024=>128  2048=>512  1152=>144。

n(也有叫moudle)

128字节,由n,e 密钥长度可以计算出公钥

d

128字节,由e,d,密钥长度可以计算出私钥。

CRT(中国剩余定律)

算法有利于提高RSA的运算速度。

在CRT进行私钥解密的时候需要更多的参数P,Q,DP,DQ INVERQ.而非CRT算法只需要D即可。

填充方式

所谓的填充规则是为了数据更加安全在RSA算法进行的基础上对原始数据按照一定的规则进行组合(像密码键盘的pinblock)

  • nopadding(最原始的):就是加密数据前补0x00。0000000.。。。|M
  • KPCS#1:填充规则:EM=0X00||T||PS||0X00||M

第一个0是先导零,要来保证正整数;T是凑齐方法,可以是0,1,或者2;(T=0,代表ps必须是0x00,T=1 代表用0xFF进行填充,T=2 代表用不为0的随机数进行填充)PS就是填充数据:第二个0是分隔符;M就是原始数据。

PS:国密芯片:u192和u256.国密芯片是是支持u192和u256的。在u192中rsa的所有传入的参数是倒序的例如==》 e=0x00010001那么在192芯片导入e的时候就要传入4字节  01 00 01 00。然后192和256是支持非CRT算法的。  

SM2

国密推荐256位曲线参数

p=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

a=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

b=28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93

n

私钥(32个字节)

gx、gy(公钥)

GX,GY各32个字节,公钥就是64个字节

密文组成(C1+C2+C3),新的标准是(C1+C3+C2)。

邮储用的C1C3C2,其他地方农信是C1C2C3

C1:64字节的随机数

C2:真正的密文,跟明文的长度是一样的

C3:是杂凑值(32字节)。通过SM3(摘要算法)进行运算得出的。

Hash算法

SM3(MD5,SHA256)就是算个hash值。

哈希(Hash)算法可以看作是一种加密算法,也称为散列函数。哈希算法可以 将任意长度的消息(二进制数据)映射成为一个长度较短目长度固定的哈希值(二进制 串),并且针对不同的输入数据的映射结果极大概率是不一样的。在哈希算法中,一个 从明文到密文的过程几乎是不可实现的,是一种单向体制。哈希值通常被称作为数字摘 要(DigitalDigest),可以通过哈希值来对数据的完整性进行校验,可以应用哈希算法 对数据文件在不查看其内容的情况下进行校验。哈希算法具有易压缩性、易计算性、 易更改性、单向性、抗碰撞性笔特性。 哈希算法有很多种,包括MD系列、SHA系列等。类似于加解密算法,长度越长 的算法基本认为越安全。目前最流行的加密算法是SHA-2,但是跟SHA-1不同,SHA-2 不是一种算法,而是一系列算法的统称,其中就包括SHA-256[56]。在SHA-256算法中, 对输入消息以512位的分组为单位进行处理且最大长度小于264位,经过SHA-256算 法的运算,输出一个固定长度的值-即256位的数字摘要。 根据哈希函数的抗碰撞性,在进行数据完整性校验时,接受者通过对收到的消息进 行相同的哈希运算,将新得出的哈希值与之前声明的数据哈希值进行比较,若不相同, 那么确定传递的消息被篡改。因此,在区块链系统中,为了方便数据的校验和存储,常 用哈希函数来进行数据的完整性校验。

密码键盘中的常用名称解释

工作密钥:密码键盘的主要工作就是获取让用户输入密码,那么密码不能明文进行传输的,要通过一个密钥进行加密,那么这个密钥就是 工作密钥,为最终密码键盘的工作而服务的密钥就叫工作密钥。

主密钥:用来加解密工作密钥的密钥就是主要密钥,即主密钥。

保护密钥:用来加解密主密钥的密钥就是保护密钥。   

  保护密钥--------->主密钥--------------->工作密钥。                                              

校验值:为了检验解出来的密钥是否正确的。约定:用密钥对8/16个字节的0x00进行加密得到的值。

Pinblock:

用卡号+客户输入的密码按照一定的规则进行组合(异或运算)作为明文。

解释:pin block,顾名思义就是pin块,密码块的意思,实际上是对pin原文做一定转换后的结果,望采纳。

ANSI9.8 算法

(常用默认的算法) -- 带主账号信息(倒数第二位开始向前取12位)1.格式化主账号(其实就是补充到对应算法能计算的字节数,前面补0x00,SM4补到16个字节,des和3des补到 8个字节)2.格式化PIN(前面密码位数,然后补到对应算法能计算的字节数,后面补0xFF).3.格式化后的主账号与格式化后的Pin按位异或

例子:账号:

1234567890123456

截取后:

456789012345(从倒数第二位开始往前数12位)

填充:

des:

0000456789012345(补足8个字节)

sm4:

00000000000000000000456789012345(补足16字节

pin明文:

123456

填充:

des:

06123456FFFFFFFF(前加位数再补足8字节)

sm4:

06123456FFFFFFFFFFFFFFFFFFFFFFFF(前加位数再补足16字节)

异或结果:

des:

0612713176FEDCBA

sm4:

06123456FFFFFFFFFFFFBA9876FEDCBA

密钥明文:

11111111111111111111111111111111

pinblock:

DES:

CFBF4EC810315AF2

SM4:

1247750D89CADD4C4B2436A978E006B1

关注
打赏
1665659684
查看更多评论
立即登录/注册

微信扫码登录

0.0442s