密码键盘常用(加解密,链接,MAC,PINBLOCK)算法介绍-资料整理

2023-10-30

常用算法介绍

一、DES,TDES算法

1,DES(Data Encryption Standard,标准加密算法)

DES采用了64位的分组长度和56位的密钥长度,它将64位的输入经过一系列变换得到64位的输出。解密则使用了相同的步骤和相同的密钥。DES的密钥长度为64位,由于第n*8(n=1,2,…8)是校验位,因此实际参与加密的长度为56位,密钥空间含有2^56个密钥。

2,3DES(Triple Data Encryption Standard,三重标准加密算法)

  3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密。3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它是以DES为基本模块,通过组合分组方法设计出分组加密算法。

 

3,DES和3DES的关系

3DES = DESEncrypt(K3,DESDecrypt(K2, DESEncrypt(K1, DATA)));

Result1 = DESEncrypt(K1, DATA);

Result2 = DESDecrypt(K2, Result1);

Result  = DESEncrypt(K3, Result2 );

 

4,3DES密钥分组案例

1)KeyLen = 16; 

KEY = KeyLeft + KeyRight; 

K1 = KeyLeft, K2 =  KeyRight, K3 = KeyLeft

计算案例:

11223344556677889900AABBCCDDEEFF Encrypt 1234567890ABCDEF

  1. KEY = 11223344556677889900AABBCCDDEEFF, KeyLen = 16
  2. KEY = 1122334455667788 + 9900AABBCCDDEEFF
  3. KeyLeft = 1122334455667788; KeyRight = 9900AABBCCDDEEFF
  4. K1 = 1122334455667788;
  5. K2 = 9900AABBCCDDEEFF;
  6. K3 = 1122334455667788;
  7. Result1 = DESEncrypt(K1, DATA) = DESEncrypt(1122334455667788, 1234567890ABCDEF) = 80B152BBAB64EAFF;
  8. Result2 = DESDecrypt(K2, Result1) = DESDecrypt(9900AABBCCDDEEFF, Result1) = DESDecrypt(9900AABBCCDDEEFF, 80B152BBAB64EAFF) = E4D517773B4F5E33;
  9. Result  = DESEncrypt(K3, Result2 ) = DESEncrypt(1122334455667788, Result2 ) = DESEncrypt(1122334455667788, E4D517773B4F5E33) = 1B3606F30B101507;

 

2)KeyLen = 24; 

KEY = KeyLeft + KeyCenter + KeyRight

K1 = KeyLeft, K2 =  KeyCenter , K3 = KeyRight

计算案例:

11223344556677889900AABBCCDDEEFFFEDCBA0987654321 Encrypt 1234567890ABCDEF

 

二、ECB,CBC算法

分组加密,也叫块加密(block cyphers),一次加密明文中的一个块。是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。分组加密算法中,有ECB,CBC,CFB,OFB这几种算法模式。

1,电码本模式(Electronic Codebook Book (ECB)

ECB模式是分组密码的一种最基本的工作模式。在该模式下,待处理信息被分为大小合适的分组,然后分别对每一分组独立进行加密或解密处理。如下图所示:

2,密码分组链接模式(Cipher Block Chaining (CBC))

CBC模式是将前一个密文分组与当前明文分组的内容混合起来进行加密的,这样就可以避免ECB模式的弱点。CBC模式首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密,如下图所示:

 

 

3,ECB-CBC基础算法对比

 

  • MAC各种算法介绍

 

1,MAC_CBC算法(支持密钥长度:8字节,16字节,24字节。)

CBC模式加密数据,取结果最后8字节作为MAC结果。

2,MAC_X9.9算法(密钥长度:8字节)

算法与MAC_CBC一致。

3,MAC_X9.19算法(密钥长度:16字节,24字节)

CBC模式加密数据,取结果的最后8个字节(R’)按密钥情况再处理

(1)8字节密钥,R’就是结果

(2)16字节或24字节密钥,R’经K2解密K3加密后得到结果

 

 

 

 

4,MAC_PBOC算法

数据末尾加0x80,后续算法与MAC_A9.19一致。

5,MAC_BANKSYS算法

数据分组异或后结果拆分成16字节,取前8字节用密钥加密,结果与后8字节异或,异或后的结果再加密,加密后的结果拆分成16字节,前8字节为MAC结果。

算法步骤:

  1. 数据分组异或得到8字节结果R1
  2. R1拆分成16字节数据,分为前8字节R21和后8字节R22
  3. R21用密钥加密,结果与R22异或,得到R3
  4. R3用密钥加密,得到结果R4
  5. R4拆分成16字节数据,分别为前8字节R51,和后8字节R52
  6. 取R51作为MAC结果

 

四,PINBCLOK算法

1,  ANSI X9.8

  • Format:  CLPPPPxxxxxxxxXX,  XOR with PAN
  • PAN:    0000AAAAAAAAAAAA
  • C:  0x00
  • L:  the length of Pins
  • P:  the Pins (4~12 bit digits)
  • X:  Padding (0xF)
  • x:  P or X
  • A:  Primary Account Number, minimum 12 digits without check number.

 

2  IBM3624

  • Format:  PPPPxxxxxxxxxxxx
  • P:  the Pins (4~16 bit digits)
  • X:  Padding (0x0~0xF)
  • x:  P or X

部分资料源于网络,侵删。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码键盘常用(加解密,链接,MAC,PINBLOCK)算法介绍-资料整理 的相关文章

  • 判断是否有环以及求环的入口节点。

    目录 思路一 环形链表求环入口节点 一 判断是否有环 1 当节点个数为偶数个 slow走到中间节点 如果fast为空 则没有环 2 当节点个数为奇数个 slow走到中间节点 如果fast gt next为空 则没有环 3 如果有环 那么sl
  • GoPlus Go的数据处理方言

    Go https github com goplus gop 是GO面向大数据处理一个方言 可以做到几乎100 兼容Go的同时 提供很多语法上的便利以处理各种大数据的数据结构 例如矩阵等 例如 的例子 其输出是 安装Go git clone
  • shell编程之for循环

    文章目录 shell编程之for循环 一 for语句 1 什么是for循环 2 for语句的结构 3 for语句中常用转义字符 二 for语句应用示例 1 批量添加用户 2 根据IP地址检查主机状态 三 循环的次数 1 循环次数的格式 2
  • linux中修改环境变量及生效方法

    方法一 在 etc profile文件中添加变量 对所有用户生效 永久的 用VI在文件 etc profile文件中增加变量 该变量将会对Linux下所有用户有效 并且是 永久的 要让刚才的修改马上生效 需要执行以下代码 source et
  • Linux系统启动流程详解

    目录 前言 Linux系统的启动流程大体分为以下几个部分 因为在 BIOS阶段 计算机的行为基本上被写死了 可以做的事情并不多 一般就是通电 BIOS 主引导记录 操作系统这四步 对这四步感兴趣的小伙伴可以看这篇博客 计算机是如何启动的 所
  • 如何卸载--奇安信安全终端管理系统

    1 找到Entbase bat D Program Files x86 QAX 360safe EntClient conf 我的路径是这样的 2 右击奇安信 设置 防护 关闭自我保护 3 删除Entbase bat 中的两个qtpass
  • 一种改善调制宽带变换器的有意混叠方法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 AMWC 混叠调制宽带转换器 根据给定的硬
  • 绕过CDN寻找网站真实IP的方法汇总

    工作所需 将 绕过CDN寻找网站真实IP 的方法进行汇总 打开笔记 发现保存了好几篇以前收集的一些相关文章 文章都比较类似 方法大同小异 做个汇总 也添加一些自己积累 0x01 判断ip是否为网站真实ip 这个就很简单了 简单说下几个常见的
  • Transformer解析

    Transformer超详细解读 Transformer库 Transformer变形BERT等 https github com huggingface transformers 数据集下载 https mirrors tuna tsin
  • 动态内存管理

    对于内存我们了解道的就有栈区域 堆区 静态区 常量储存区 代码区 栈区 stack 指那些由编译器在需要的时候分配 不需要时自动清除的变量所在的储存区 如函数执行时 函数的形参以及函数内的局部变量分配在栈区 函数运行结束后 形参和局部变量去
  • linux下telnet批量验证某端口开放

    1 ip库 cat iplist txt 10 1 1 1 10 1 1 2 10 1 1 3 10 1 1 4 10 1 1 5 2 相关脚本 cat telnet sh bin bash Author jimmygong Email j
  • C++高频知识总结 p1

    总结 C C 是怎么实现接口的 C 11新特性 STL容器有哪些 vector list set dqueue的区别 iterator类型有哪些 C C 是怎么实现接口的 C 中 通过类实现面向对象的编程 而在基类中只给出纯虚函数的声明 然
  • mybatis insert操作返回值问题

随机推荐