前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >对称算法(分组算法) 非对称算法 Hash算法 密码键盘中的常用名称解释 Pinblock: ANSI9.8 算法

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

作者头像
zhangjiqun
发布2024-12-16 16:39:15
发布2024-12-16 16:39:15
1210
举报
文章被收录于专栏:计算机工具

解释: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(摘要算法)进行运算得出的。

  • 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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对称算法(分组算法)
  • 非对称算法
  • Hash算法
  • 密码键盘中的常用名称解释
  • Pinblock:
  • ANSI9.8 算法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档