|
www.encryp2.com
深圳密加技术
目的:用于电子产品的加密,防范盗版复制。
现状:对于装有单片机的电子产品,很多公司都能提供读取单片机程序代码和CPLD代码的服务,这就使得电子产品极易被抄版复制。为此,Atmel公司于1999年推出了专门用于防盗版的安全存储加密芯片AT88SC153和AT88SC1608,取得了一定的成效。尽管这两种芯片有身份确认功能,但由于身份确认通过后采用的是明文传送方式,所以芯片中的数据在通信过程中易被截获从而失去保护作用。在2003年,Atmel公司又推出了具有双向认证且为密文传送的新型加密芯片AT88SCXXXX系列,存储容量可达32K字节。对AT88SC153和AT88SC1608,现在Atmel公司已不再推荐采用。
原理:AT88SCXXXX(AT88SC0104C~25616)具有协议认证和数据密文传送的功能,使得盗版者即使盗取了单片机程序代码和CPLD代码仍然无法盗版复制,因为AT88SCXXXX(AT88SC0104C~25616)无法复制。
技术:为了便于开发AT88SCXXXX(AT88SC0104C~25616),我们配合AT91SAM7S-EK开发板做了用于AT88SCxx系列加密器件(SO、DIP封装)开发的软件。采用本软件用户可在较短的时间内完成对产品的加密工作。
加密芯片和单片机之间通过I2C总线通信,PC机通过串口读写配置区和用户区,配置好的文件存到DATA FLASH中,脱机编程时,单片机从DATA FLASH中读出配置文件,然后烧写到加密芯片中。
软件实现:
本软件配合AT91SAM7S-EK开发板,用于AT88SCxx系列加密器件(SO、DIP封装)的开发,具有读写配置区、读写用户区、模拟认证(仅对与ATMEL公司签署了NDA协议的用户开放)、脱机编程(即脱离PC机,独立对器件编程)等功能。
每个用户区可选则4种权限
自由-用户可自由读取用户区。
口令-选择使用哪一组口令。配置完成后读写用户区时需写入预设的口令。
认证和加密-选择使用哪一组密钥和哪一组密文。
配置完成后读写用户区需写入预设的密钥。
认证加密和口令-选择使用哪一组口令,哪一组密钥和哪一组密文。配置完成后读写用户区需写入预设的密钥和预设的口令。
配置寄存器,设置口令和认证的次数,可设为4次或8次
写入配置区成功后保存配置文件(扩展名.dat),(写入成功后自动保存到DATA FLASH中了)。此时可进行脱机编程。
写熔丝,成功后配置区内容不可更改。只可在导入了正确的密钥和密码(Gc和Password)后,将器件所有数据和配置文件读回。
AT88SC0104C芯片简介
如图1所示,在应用中,AT88SC0104常采用SOIC和PDIP两种典型封装。由于器件采用I2C串行总线接口,因此引脚数目少,体积小。各引脚功能如下:
SCL——串行时钟输入脚,用来控制器件所有的数据输入相输出;
SDA——串行数据输入/输出脚;
VCC——电源电压,工作电压为3.0~5.5V;
GND——地;
NC——不连接。
AT88SC0104逻辑加密芯片是一款串行EEPROM,共有128B的用户应用存储区和256B的系统配置区,应用存储区通过配置可划分成4个相同容量的应用存储区。分别受8套(16个)读、写密码的控制,错误计数最大8次。这4个应用分区也可以通过配置使用相同的密码和安全等级可自由合并使用。
①DCR:指定认证次数限制和芯片地址。
②AR0~AR7:确定访问权限,初始化时定义,指定对应的用户应用区访问方式,例如是否需要认证,是否使用密码,使用哪一套密码,是否只读等等。
③AAC:认证错误计数器。
④PAC:密码错误计数器
整个认证过程是一个双向认证的过程,
用户系统的MCU首先从芯片中读出Nc和Ci,根据自定义的F1(Nc,Ks)算法算出Gc,同时利用芯片内部的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函数,芯片和MCU方再计算一次并比较,判断相等后才进入加密认证模式。
上面提到的F2算法,是芯片内部的控制逻辑利用Gc、Ci、Q0三个参数初始化的一个DES算法的变种。这个算法是所有加密解密、完整性认证与信息认证的关键‘
电子产品硬件加密(AT88SC0104系列加密芯片)
为了防范电子产品盗版,Atmel公司推出了最新的加密芯片AT88SC0104C~25616C系列(AT88SCXXXX包括:AT88SC0104C,AT88SC0204C,AT88SC0404C,AT88SC0808C,AT88SC1616C等),专门用于电子产品加密。该器件具有协议认证和数据密文传送等功能。使用时,可将部分重要数据或程序存放到加密芯片中,极大地提高了产品的安全性。
我公司推出该系列芯片的读写器和开发包。
采用本技术对产品加密(硬件加密),可以有效防范电子产品被盗版。
采用本装置,不仅轻松实现由PC机对加密芯片的读写、模拟认证和设置,设置文件和密钥文件的存盘;还可以脱离PC机实现对器件的设置发行,装置失电后信息不丢失!
www.encryp2.com
深圳密加技术 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|