用户卡和机具进行双向认证

问题的提出:

1、传统的“对暗号”

经典片断:

问:天王盖地虎

答:宝塔镇河妖

互相握手,拥抱,同志呀同志!可终于找到你了

相信大家一定看过间谍电影中地对暗号片断,但是暗号容易被敌人窃取,于是有了革命者惊险或悲壮的故事,当然了其中不乏有叛徒的出卖。

安全分析:

对暗号中容易出现暗号被第三方窃取的情况,其中存在很大的安全隐患,相信大家一定印象深刻,深有体会。

2、密码学中对“对暗号”的借鉴

在传统的对称密码学体系中,用密钥来代表双方的暗号

暗号=密钥

当然了,暗号越复杂,即密钥长度越长越安全

但暗号太复杂,越不容易记住,所以实际应用中密钥长度也不会太长(现在比价流行使用128位的密钥)

至于对称密码算法:CPU卡中使用的一般为3DES(112位),其它的128位的如IDEA、AES等

3、密码学中的双向认证的实际做法

由于直接对暗号存在不安全的隐患,所以密码学中并不直接判断两个密钥是否相等

而是采取一次一密的情况。

什么是一次一密呢?

就是:

1、每次都由一方产生一个随机数

2、双方都用密钥计算随机数得到一个值

3、比较随机数的计算值是否相等

这样就避免了密钥泄露的问题,因为每次得到的都是临时值,所以每次都必须去计算随机数,而

密钥又是被读出的,只能用来计算(通过使用指定的密钥标识来计算)。

所以就算泄露了随机数的计算值也没关系,因为下一次这个计算值并不能被使用。

4、CPU卡中的双向认证的实现

实体:CPU卡 机具

CPU卡中存放一个密钥

机具中存放和CPU卡相同的密钥

CPU卡外部认证步骤:

1、CPU卡产生一个8字节随机数送给外部程序,CPU卡临时保存随机数在卡内

2、外部程序把8字节随机数送给机具,机具用密钥计算随机数,得到8字节随机数密文

3、外部程序把8字节随机数密文送给CPU卡

4、CPU卡在卡片内部解密8字节随机数得到随机数明文,

5、CPU卡在卡片内部把解密后的随机数和步骤1中临时存放的随机数比对,若相等,则外部认证成功

所以外部认证是CPU卡认证机具。

机具内部认证步骤:

1、机具产生一个8字节随机数送给外部程序,机具临时保存随机数在机具中

2、外部程序把8字节随机数送给CPU卡,CPU用内部认证密钥计算随机数,得到8字节随机数密文

3、外部程序把8字节随机数密文送给机具

4、机具解密8字节随机数得到随机数明文,

5、机具在内部把解密后的随机数和步骤1中临时存放的随机数比对,若相等,则内部认证成功

所以内部认证是机具认证CPU卡

这样机具和CPU卡从而达到了双向认证

5、密钥的分散问题

由于一个机具必须可以认证n张卡片,而每张卡片的密钥都不相同

一般的想法:必须有n个机具对应n张卡片,但是这样代价太高,也不现实

密码学中提出了一个方法,即密钥分散的方法。

即机具中存放的是用户卡的母密钥,每次认证的时候,由母密钥根据用户卡的标识

计算得到用户卡的密钥。

文章转载于:https://www.cnblogs.com/ioter/articles/3732929.html

CPU卡内部认证与外部认证相关推荐

  1. 如何理解CPU卡内部认证与外部认证

    原文地址::https://zhidao.baidu.com/question/1736711391573700787.html 相关文章 1.CPU卡及认证方法----https://wenku.b ...

  2. CPU卡程序设计实例(二十六)卡和ESAM之间外部认证

    /******************************************* 函数名称:CardExterVali 函数功能:卡与ESAM之间外部认证 输入参数:cApplySerialN ...

  3. 非接触式CPU卡的外部认证和内部认证过程

    注:转载自别人的博客,只作为笔记记忆使用,也可供大家参考 用户卡和机具进行双向认证 问题的提出: 1.传统的"对暗号" 经典片断: 问:天王盖地虎 答:宝塔镇河妖 互相握手,拥抱, ...

  4. CPU卡设计实例及程序设计(二十九)卡82H外部认证,ESAM04H,05H,06H外部认证

    /******************************************* 函数名称:AllExternVerify 函数功能:卡82H外部认证,ESAM04H,05H,06H外部认证 ...

  5. 智能门锁中CPU卡加密

    CPU卡中的双向认证的实现 实体:CPU卡 机具 CPU卡中存放一个密钥 机具中存放和CPU卡相同的密钥 CPU卡外部认证步骤: 1.CPU卡产生一个8字节随机数送给外部程序,CPU卡临时保存随机数在 ...

  6. CPU卡/CPU的分类/CPU卡标准/CPU卡生产流程

    原链接  点击打开链接 CPU卡/CPU的分类/CPU卡标准/CPU卡生产流程 CPU卡芯片通俗地讲就是指芯片内含有一个微处理器,它的功能相当于一台微型计算机.人们经常使用的集成电路卡(IC卡)上的金 ...

  7. 复旦FM1208 CPU卡调试

     原帖:http://www.itgo.me/a/x8645961561392057307/FM1208%E3%80%82 CPU卡内部自带COS,有严格的密钥管理系统.相比M1来说,要复杂的多.我用 ...

  8. 【转】CPU卡知识入门教程

    原文:http://solution.rfidworld.com.cn/2012_07/ca29975245fe241d.html 绪言:  说起CPU卡,人们肯定不禁要问,什么是CPU卡,CPU卡长 ...

  9. 复旦微电子CPU卡发卡流程

    前言 指令列表 发卡 卡片擦除 目录文件及用户密钥的创建及写入 命令报文数据域 指令集列表 指令集说明 数据(二进制数据,记录数据)的写入 MF下05文件写入 EF下15文件写入 前言 近段时间一直在 ...

最新文章

  1. 论坛报名 | 李开复张亚勤陆奇共论AI时代的创业
  2. 撤销 git commit
  3. 设计模式中必须知道的一些原则
  4. 个人计算机与微型计算机的区别与联系,微处理器、微型计算机和微型计算机系统之间有何联系与区别?...
  5. linux系统下使用xampp 丢失mysql root密码【xampp的初始密码为空】
  6. 强!Prometheus与Zabbix的对比选型!
  7. php面向对象、语法【访问成员的情形:外和方法内调用对象的关键字this】、构造函数的场景和析构函数的场景...
  8. 华中科技大学计算机学院离散数学2,华中科技大学计算机学院2015离散数学二考试点评.pdf...
  9. 使用Foobar2000在PC上播放.ios音乐
  10. 各种类型文件头特征码
  11. 2020 消息中间件MQ与RabbitMQ面试题大全
  12. 利用css画三角箭头图标
  13. 如何拉取钉钉的外出、出差审批单
  14. socket函数返回Too many open files
  15. Flutter 动画-渐变
  16. JAVA计算机毕业设计爱馨敬老院网站Mybatis+系统+数据库+调试部署
  17. ffmpeg转码php配置,PHP+ffmpeg+nginx的配置实现视频转码(转)
  18. 一个高中生是怎么玩自媒体的?
  19. 微信小程序完整项目实战(前端+后端)
  20. C#开源: 全局钩子+正则表达式=后台自动获取扫描枪数据

热门文章

  1. linux 批量下载fnl,TMS370C356FNL
  2. 【阅读文献】单目视觉SLAM方法综述【1】~单目视觉SLAM分类方法
  3. html+JavaScript 实现贪吃蛇程序
  4. linux环境安装部署RF+Jenkins+Git(非完整版)
  5. 【Oracle】userenv()函数介绍分析
  6. 许又声发表新春贺辞:潮涌东方 携手奋进
  7. Flink 容错恢复 2.0 2022 最新进展
  8. 数据库之order by
  9. #优质代码# Map按Value降序排序,Value相同时按Key排序
  10. Mac字体路径,解决matplotlib中文显示问题,超级好用~