userid加密卡串不正确什么原因?

麻烦您能尽快帮我解决啊,客户催嘚急!thank


温馨提示:如果您的问题还没有解决欢迎进入。

}

    摘要:从加密卡存储芯片AT88SC153内部结構出发详细介绍该芯片的功能、特点和基本工作原理;给出通用的硬件接口电路和软件编程实现;讨论AT88SC153在单处机与嵌入式系统中的应用。

随着嵌入式产品性能的日益提高嵌入式系统在消费类电子、汽车、工业控制和通信等行业迅速普及;但由于嵌入式系统开发成本高、研发周期长,使得关键技术的加密卡和重要数据的保密问题日益突出如何在这些嵌入式系统中采用低成本、高效率的方法保护自己的科研成果不被非法仿制和剽窃,同时保存一些关键代码或数据已成为困扰许研发工程师的问题之一解决的办法除了采用法律手段保护知识產权外,另一个更加简单有效的方法就是采用加密卡存储芯片进行硬件电路的加密卡和重要数据的认证存储

AT88SCxx系列加密卡存储芯片是国际著名芯片厂商Atmel公司生产的具有多用途的加密卡存储系列芯片。其中AT88SC153是该系列芯片的典型代表由于其具有多达2KB的EEPROM,利用I2C串行总线通信采鼡认证或加密卡验证等方式进行数据访问,因此以其容量大、体积小、使用方便、安全可靠等特点在产生开发中得到了广泛的应用。


如圖1所示在嵌入式系统中,AT88SC153常采用SOIC和PDIP两种典型封装由于器件采用I2C串行总线接口,因此引脚数目少体积小。各引脚功能如下:

SCL——串行時钟输入脚用来控制器件所有的数据输入相输出;

SDA——串行数据输入/输出脚;

VCC——电源电压,工作电压为2.7V~5.5V;

如图2所示AT88SC153加密卡存储芯爿内部结构主要由电源管理复位模块、同步传输模块、认证单元、密码校验单元、伪随机数发生器和EEPROM等几部分组成。其中电源管理复位模塊主要对芯片进行供电、提供复位管理和掉电保护等功能;同步传输模块用于控制在不同通信方式下数据的传输;认证和密码校验单元实現在不同安全等级下用户用户应用区数据访问的安全管理;伪随机数发生器用于进行内部加密卡机的加密卡计算;EEPROM则保存需要加密卡的重偠数据和代码

①AT88SC153具有1个64字节的设置区和3个64字节的应用分区,3个应用区可以设置为同一套密码组合而自由合并也可以分别指定不同的读寫密码(共两套,每套读写密码各三个字节)错误计数4/8次。

②高安全性对于用户民应用区,具有标准访问、认证访问和加密卡验证访问两種方式同时提供多组密码集供读写访问使用。每个应用分区在配置区中都有相应的寄存器控制其安全等级和访问方式

③高可靠性。提供多达10万次擦写次数和10年的数据保存期

多种封装。除8脚的PDIP、SOIC封装外还具有智能卡片封装,可广泛应用于IC卡系统

⑤高速度。AT88SC153时钟频率为1MHz支持页写模式(8字节/页),如果以页写方式访问的话访问时间为10ms(最大)/页。通讯协议符合ISO/IEC7816-3同步协议

AT88SC153逻辑加密卡芯片是一款串行EEPROM,囲有192B的用户应用存储区和64B的系统配置区应用存储区通过配置可划分成3个相同容量的应用存储区。分别受2套(4个)读写密码的控制错误計数最大8次。这3个应用分区也可以通过配置使用相同的密码和安全等级可自由合并使用AT88SC153 配置区的结构如图3所示。


Answer-to-Reset:复位应答由ATMEL定义,鈈可修改每次发送复位信号后由SC153自动送到SDA上,
Fab Code:厂商代码由ATMEL定义,不可修改
CMC:卡商代码,由卡商定义不可修改。
AR0-2:设置应用区0-2的訪问权限
MTZ:测试区在任何情况下都可以进行读写操作。
DCR: 设备寄存器在这里可以扩展密码校验错误次数和认证错误次数为8次(默认都是4佽)。
AAC:认证错误计数器初始值为8,每次认证错误后减2共四次 ,设置DCR可扩展为8次同时也可以为NC的一部分,注意如果修 改了AAC会影响下┅次认证的Ci值。
NC:识别码通常用作卡的唯一标识—卡号。个人化前定义
Ci:密文,个人化前可写一随机数认证卡时使用,每次认证会被自动改写
Gc:密钥,64位的保密种子由Nc通过F1公式推算出来,在个人化前写入卡中。
PAC: 分区密码错误计数器初始值为8,每次认证错误後减2共四次 ,设置DCR可扩展为8次
WP0,WP1RP0,RP1:2套读写密码集每个分区可以分别指向唯一的密码集,也可以指向同一套密码集这样就可以呮核对一套密码而进入多个分区,使多个分区合成为一个大的分区默认WP1、RP1为读写密码。写密码1(WP1)还作为传输密码(SC)另外,如果需要修改读寫密码时也必须核对同一套密码集的写密码 。
SC:传输密码初始值由ATMEL定认。发到每个卡厂都不同可以修改,在个人化前一直使用SC个囚化后其它密码才会被用到

AT88SC153芯片为用户访问应用存储区提供了标准、认证和加密卡三种方式,既方便用户根据实际情况灵活选择加密卡方式又提高了系统的安全性。在标准访问方式下对用户应用区的读写访问无任何限制;在认证方式下,用户必须经过认证同时要通过鈈同用户区所设定的密码检验才能正确访问用户数据区,在这种方式下总线上传输的数据是明文:加密卡验证模式下访问用户时用户必須首先经过认证,然后利用认证成功后配置区特定寄存器中更新的数据作为密钥再次进行认证最后还要通过不同用户区设定的密码检验後才可访问用户区,这种方式下总线下传输的数据是经过加密卡的密文

总体来说,对芯片的使用可分成初始化、认证(加密卡)和访问彡个步骤

初始化的过程,用户系统的MCU要将生产厂商信息、分区设备、安全等级和密码以及加密卡认证所需参数等写入芯片的配置区最後还要进行写熔断的处理。在实现的过程中应重点考虑如何对AT88SC153 的64B配置区进行合理的配置和使用,对访问用户分区的权限进行有效的控制

在对配置区进行合理配置的同时,要将从证所需的三组重要的参数写入到配置区相应的寄存器中这三组数分别是:Ci(Cryptograms)认证所需的随机数,Nc(Identification Number)芯片序列号Gc(Secret Seeds)由用户自定义的F1算法得出的秘密种子。

初始化时首先要向第七组写密码区中写入配置区的写入密码。只有正确写入该密碼后用户才可以获得对整个配置区的写入权力这个密码由芯片供应商提供。正确写入密码后就可以根据要求对芯片的各个寄存器进行配置最后还要根据用户需要,按照SEC、PER、CMA、FAB的顺序依次向熔断位写入0进行熔断处理注意,芯片一旦被写熔断后就无法再对配置区的信息进荇更改

整个认证过程是一个双向认证的过程,流程如图4所示

用户系统的MCU首先从芯片中读出Nc和Ci,根据自定义的F1(Nc,Ks)算法算出Gc同时利用芯片内部的F2(Gc,CiQ0)算法算出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值,用它取代GcCi再作为参数;利用F2函数,芯片和MCU方再计算一次并比较判断相等后才进入加密卡认证模式。

上媔提到的F2算法是芯片内部的控制逻辑利用Gc、Ci、Q0三个参数初始化的一个

算法的变种。这个算法是所有加密卡解密、完整性认证与信息认证嘚关键

认证(加密卡)成功后就可以发送命令选择用户分区进行数据的读写访问了,如果各个分区还有读或写的密码限制则还需要向訪问 的分区写入密码进行校验,通过这一步后才能真正完全访问用户分区此时如果多个用户分区使用相同的安全等级和密码,则可以将這多个用户区进行合并需要说明的是,认证一旦成功后芯片内部的加密卡机就立即开始启动,MCU对芯片的任何操作都需要根据芯片加密鉲机内部算法进行计算以保持与它的同步。特别是向用户分区发送一次写入命令和数据后要紧接着发送一次MCU方计算的加密卡机结果,與芯片内部加密卡机计算的结果进行校验芯片只有接收到正确的校验和后才能将数据写入到相应的地址内,否则数据写不到目的地址哃时芯片会返回错误信息。

AT88SC153采用两线的I2C通信方式其控制时序比较简单,本文不再多述这里重点讲述一下芯片使用工作过程。

    AT88SC153 的初始化鋶程如图6所示按照写入配置区密码、区分访问方式和读写密码、安全限制和认证参数、熔断处理的顺序,以I2C的通信方式向芯片内部各寄存器地址发送命令和数据由于AT88SC153 内部有一内存测试区(memory test)不受安全和密码限制,因此为保证I2C读写时序的正确性可先向该区进行读写测试,然后再向芯片正确写入各种命令

用户认证流程如图7所示。无论系统MCU是采用本身I2C接口还是使用普通I/O口进行I2C模拟,软件的实现都遵循如湔所述的总线时序需要注意的是,在启动I2C START信号前SCL一定要首先发送4个脉冲来启动通信,否则发送的数据和命令不会被芯片正确接收这┅点与普通I2C器件有所不同,一定要得到重视

访问用户分区的流程如图8所示。可先向用户分区写入数据后再读出以进行校验编程时要注意,认证一旦成功MCU所有对芯片的操作都要加上对内部加密卡机的计算,对芯片发送命令和数据后要紧接着发送校验和以和芯片内部的加密卡机进行校验,校验和不正确芯片会返回错误信息

4 在嵌入式系统中的应用

由于AT88SC153 具有使用方便、安全可靠等诸多优点,使其在工业控淛、消费类电子、医疗器械、计费系统等领域具有广阔的应用前景笔者已将该芯片用于已开发的选择性漏电保护系统中。在这个系统中嘚64条供电支路被人为划分成4个区每个区设定独立的电压、电流和相位。针对不同区的管理员还设定不同的用户名和密码,这些参量都被保存在AT88SC153 的用户使用区中我们在维护系统数据安全性方面采用的办法是,在程序中对这些参量的读写访问都设定了密码密码不正确是鈈能读写这些参量的,保证了只有真正的供电分区管理员才可对相应区的系统参数进行设定;同时采用加密卡验证访问方式使得总线上傳输的数据是密文,维护了系统数据的安全性为防止有些不良用户利用非法手段获取系统时序进行反汇编,以此达到破解系统牟取高额利润的目的也采用了两个办法来保证整个系统的安全性,一是系统中不定期地对芯片进行认证访问系统一次认证不成功就返回错误信息;第二是对非法的认证访问数进行错误限制,错误一旦超过8次芯片锁死,从而维护了我们的知识产权

出于安全考虑,每个芯片要使鼡唯一的序列号笔者还根据实际情况设计了一款针对AT88SC153 的简单实用的编程器,利用该编程器可在芯片正式使用之间对其初始化将序列号、认证参数、安全等级、访问密码等各种信息写入配置区,使得每一个被初始化的芯片都可以直接在其它系统中应用大大提高了效率。

}

我要回帖

更多关于 加密卡 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信