AT88SCXX系列加密存储芯(卡)片解决方案

AT88SCXX系列加密存储芯(卡)片解决方案
 --摘自网络(找不到原创作者,故无法标明)

1、   简介
         AT88SCxx系列加密存储芯(卡)片是国际著名芯(卡)片厂商Atmel公司生产的具有多用途的加密存储系列芯(卡)片。利用I2C串行总线通信,采用认证或加密验证等方式进行数据访问,因此以其容量大、体积小、使用方便、安全可靠等特点,在生产开发中得到了广泛的应用。
        AT88SCxx系列包括AT88SC0104C、AT88SC0204C、AT88SC0404C、AT88SC0808C 、AT88SC1616C、AT88SC3216C、AT88SC6416C、AT88SC12816C、AT88SC25616C等型号,用户区存储空间从1Kbits到256Kbits不等。用户存储区通过配置可划分成4到16个相同容量的应用存储区。分别受8套读、写口令的控制和安全等级的设定,这些应用分区的读写安全设定可以自由合并使用
2、   芯(卡)片是如何保证安全性的
         AT88SC系列芯(卡)片提供了标准、口令、认证和加密三种方式访问用户存储区,在标准访问方式下,对用户存储区的读写访问无任何限制;在口令访问模式下,对用户存储区的读写访问需要口令验证;在认证方式下,用户必须经过认证,同时要通过不同用户区所设定的口令检验才能正确访问用户数据区;加密验证模式下访问用户时用户必须首先经过认证,然后利用认证成功后配置区特定寄存器中更新的数据作为密钥再次进行认证,最后还要通过不同用户区设定的口令检验后才可访问用户区,这种方式下总线下传输的数据是经过加密的密文。
        AT88SC系列芯(卡)片内置了一个64bit的加密算法。其认证和加密模式都使用了这个算法。在认证和加密模式下,大大增强了IC卡访问的安全性,能有效克制旁路攻击。在这两种模式下,主机每次与IC卡或者芯(卡)片交互的信息都不一样,这样第三者很难从交互信息中获取有效数据。
3、   芯(卡)片的认证加密过程
         主机首先从芯(卡)片中读出Nc和Ci,根据自定义的函数F1(Nc,Ks)算法算出Gc,其中Ks为用户知道固定参数,同时利用芯(卡)片内部的F2(Gc,Ci,Q0)算法算出Q1,并向芯(卡)片发送初始化认证参数Q1和Q0,其中,Q0是CPU方给出的随机数。芯(卡)片内部则利用自己的F2逻辑算出Ci+1=F2(Gc,Ci,Q0),同时得出Q2=F2(Gc,Q1)。芯(卡)片收到校验认证命令后,判断是否Ci+1=Q1,如是,则有Ci+2=F2(Gc,Ci+1),且用Ci+2更新Ci,芯(卡)片中的认证通过;同时更新芯(卡)片内部同组的SK(Session Encryption Key)的值。CPU方接收芯(卡)片中更新的Ci后,判断是否等于Q2,如果通过,则认证全部通过。如下图所示:

        上面说的过程是认证模式,如果想进入加密难证模式的话,需要再次利用认证成功时返回更新的SK值,用它取代Gc,Ci再作为参数;利用F2函数,芯(卡)片和主机再计算一次并比较,判断相等后才进入加密认证模式。
        上面提到的F2算法,是芯(卡)片内部的控制逻辑利用Gc、Ci、Q0三个参数初始化的一个DES算法的变种。这个算法是所有加密解密、完整性认证与信息认证的关键。
4、   用户数据的安全访问
         认证(加密)成功后就可以发送命令选择用户分区进行数据的读写访问了,如果各个分区还有读或写的口令限制,则还需要向访问的分区写入口令进行校验,口令正确后,才能真正完全访问用户分区。此时如果多个用户分区使用相同的安全等级和口令,则可以将这多个用户区进行合并。需要说明的是,认证一旦成功后,芯(卡)片内部的加密机制就立即开始启动,主机对芯(卡)片的任何操作都需要根据芯(卡)片加密机内部算法进行计算,以保持与它的同步。特别是向用户分区写数据后,发送写数据命令后,要紧接着发送一次主机方计算的加密校验结果,与芯(卡)片内部加密计算的结果进行校验。芯(卡)片只有接收到正确的校验和后才能将数据写入到相应的地址内,否则数据写不到目的地址,同时芯(卡)片会返回错误信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值