版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
概 项目简 硬件平 系统框 加密库使用说 ESAM(型号SLE66C161PE)安全方 ESAM(型号SLE66C161PE)加密认证步 ESAM发布过程认证步 ESAM获取数据过程认证步 认证密钥和文件保护密钥的...................................................................................加密库中的数据类型定 ESAM(型号SLE66C161PE)加密库函数说 加密库串口时序的设 异步半双工字符传输协 定时器的配 串口读、写函数时序的具体设计与实 例程说 参考文 附录:函数索 概项目简和数据进行保护时,只需在工程里面函数库SeedDM642_Esam.lib,然后调用相关的函数库接口函数即可实现对代码和数据的加密保护功能。本加密ESAM的SLE66C161PE系列作为硬件载体,利用其加密认证机制和文件保护功能对用户的代码和数据进行保护。加密库适用于TIC5000和C6000等多个硬件平台,更换不同的硬件用户只需根据硬件平台调整ESAM读写函数的时序,然ESAM读写函数指针传递给加密库的回调函数的接口参数,采用回调函数的方式来调用ESAM读写函数,即可实现不同硬件平台上的代码和数据的加密保护功能,使硬件平为硬件平台,采用的智能卡,内集成握奇公司自主知识的TimeCOS安全操作系统。TimeCOS操作系统除具有测、抗、自毁等硬件特性外,可ESAM模块,均有一个全球唯一的序列号,用此序列号可以控制生产的数量,以防止无偿额外的生产;ESAM模块上还有一定容量的EEPROM,提供安全的硬件平台以密钥和重要数据,进一步提高TimeCOS—ISO7816T=0(字符传输,默认方式)T=1(块传文件管理—支持层次化文件结构,可建立三级 安全体系—操作系统的部分,包括卡的验证与核对和对文件权限的控制机制。支持标准DES和三重DES算法,根据密钥程度自动选择算法;命令解释—根据接收到令检查各项参数是否正确,执行相应的操作和命令系统框ESAMESAM建立KEYY Y NYNY 建立KEY YY1数超过三次将死锁。 ESAM(型号SLE66C161PE)安全方第一级保护:建立CSK,该密钥用于进行外部认证,控制对主的权限,并控制主下文件的建立、删除等操作,即如果没有通过外部认证,就无权对ESAM第二级保护:建立DirectK,该密钥用来控制主下的一级的权限,如果户代码和数据放在主下的一级里面,要对数据和代码进行还必须对通过一级认证。该一级密钥可作为用户的二级认证密钥。当然如果用户的代码和数据放在ESAM卡的主下,则通过CSK认证后即可对数据和代码进行。当用户在一级下面建立了二级,则用户通过一级认证后还需通过二级认证才能对数据进行,这样可增加的级数,同时加强了对数据和代码的保护。目前ESAM卡共可以建立三级,所以对权限的控制至少可以建立三级认证密钥,在此以建立一级为例,所以把对一级密钥作为的二级认证密钥。当需要从ESAM卡中获取数据时,用户只需利用该密钥并借助于DES算法从ESAM从功能上讲,本安全方案利用ESAM的认证机制和文件加密保护机制实现了对用ESAM(型号SLE66C161PE)ESAM发布过程认证步ESAM发布过程实现将用户的代码或数据预置(写入)到ESAM的功能,包括如对ESAM进行出厂认证,获得操作ESAM的权限,包括三个步骤取8字节的ESAM全球唯一的序列号S/N。()设置认证密钥(包括删除主、建立密钥文件和创建用户认证密钥3个部分外部认证通过后,调用Seeddm642_Esam_DelDirect()函数执行删除操作。Key文件 证密钥CSK,以上三步至此用户完成了创建自己的认证密钥的过程。 调 Seeddm642_Esam_CreDirect()函数建立用户自己 文 调用Seeddm642_Esam_CreKeyfile()函数来创建所选 下的Key文件,用于认证密钥。 调用Seeddm642_Esam_CreBinaryfile()函数来创建所选择 用于用户的代码或数据,至此完成了创建用户个人 将用户的代码或数据写入到所选定的二进制文件 调用Seeddm642_Esam_ExtAuthen()函数进行 Seeddm642_Esam_WBinaryfilDES()函数将指定长度的关键数据利用文件的方式将代码和数据写入ESAM。注意:如果用户不需要重建认证密钥、用户和二进制文件,步骤2、3在执行之后4即可。另外由于发布过程至少牵涉CSK、认证密钥DirectKDESK3个密钥,ESAM3ESAM获取数据过程流程图(对ESAM进行出厂认证,获得操作ESAM的操作权限,包括三个步骤取8字节的ESAM全球唯一的序列号S/N。()选 文件进 认证 读出数调用Seeddm642_Esam_RBinaryfilDES()函数将用户的数据或代码以密文的加过程中所使用的密钥可以采用到Flash和分散隐藏到用户程序里面两于直接到Flash里面更加隐秘和安全,值得。ESAM计算过程中的中间变量的,都应该采用临时变量的形式,地址不能固 调函数的方式调用Seeddm642_Esam_read()函数,实现对ESAM的读操作typedefint(*FunUart_Read)(Uint32src,Uint32回调函数的方式调用Seeddm642_Esam_write()函数,实现对ESAM的写操作{Uint32ctl;Uint32prd;Uint32cnt;}成员Prd:配置定时器的周期寄存器的值。Cnt:ESAM(型号SLE66C161PE) 返回 unsignedshortint型的16bits整数,如果正确返回值等于 Uint16*Key,Uint16描述 发送外部认证命令,进行外部认 Input-----指向存放随机数数组的指针,该指针指向取随机数函数取回的8字节或4字节随机数返回 unsignedshortint型的16bits整数,如果正确,返回值等于9000详细说明:DES16,否则选择DES8,因出厂密钥为十六字节密钥,所以首次认证时应选择DES16。Uint16描述:删除当前下的所有文件,如果当前是主则该操作用于删除主下参数:详细说明:在删除操作以后必须连续进行建立Key文件Seeddm642_Esam_CreKeyfile()与创建外部认证密钥Seeddm642_Esam_IncreaseKey()两步操作,否则ESAM将死锁。Uint16描述:建立密钥文件,该文件用来存放用户的认证密钥,如果是外部认证,则该文件用来存放CSK参数 只有ESAM安全状态寄存器满足该设定的权限才可以对密钥文件进行修改等操作返回 unsignedshortint型的16bits整数,如果正确,返回值等于9000Uint16UseRight,Uint16AltRight,Uint16NextState,Uint16ErrCount,Uint16*Keys,Uint16Mode)描述 建立用户认证密参数 详细说明:后续状态表示口令核对或外部认证成功后,设置当前的安全状态寄存器0x0A,则表示口令核对或外部认证成功后置当A,所以对该下的文件进行操作时要求安全0xFF14错误认证,如果错误认证次数超过14次,则将死锁。Uint16RrRight,Uint16描述 创建二进制文参数 返回:unsignedshortint16bits9000A。Uint16CrRight,Uint16描述 创 文参数 返回 返回unsignedshortint型的16bits整数,如果正确,返回值等于9000Uint16Seeddm642_Esam_SelectFile(Uint16描述 选择文参数 返回 unsignedshortint型的16bits整数,如果正确,返回值等于9000详细说明:FileID与函Seeddm642_Esam_CreBinaryfile()的参FileID对应,如果创建的二进制文件的ID号分别为0x0001、0x0002、0x0003、0x0004,则选择文件时的FileID等于该四个ID号中的一明从创建的四个二进制文件中选择一个进行读写操作。该函数也可以用于选择文件。Uint8描述:参数:InputPtr---指向存放欲写入数据数组的指针DataLen欲写入数据的实际长度返回:unsignedshortint16bits9000所以欲写入数据的实际长度应小于等于0xA6。Uint8描述:参数:Offset2DataLen详细说明:Offset用于读出的数据相对于ESAM起始地址的偏移地址。该地址与Seeddm642_Esam_WBinaryFilNoDES()函数的Offset地址相对应,因ESAM一次最多能读出的数据量为0xA6,所以欲读出数据的实际长度应小于等于A6。Uint16Seeddm642_Esam_WBinaryfilDES(Uint8*InputPtr,Uint16DataLen,Uint16Offset,Uint16*Keys,Uint16Mode,Uint16*pDataLen)描述 以密文方式将数据写入二进制文参数 unsignedshortint型的16bits整数,如果正确,返回值等于9000。详细说DataLen是欲写入ESAM的明文实际本函数采用密文方式对ESAM芯pDataLen将实际写的密文数据长度进行反馈,因ESAM一次最多能写入的数据量为0xA6,所以密A6。参数OffsetSeeddm642_Esam_WBinaryFilDES()函数的ESAMOffsetUint16Seeddm642_Esam_RBinaryfilDES(Uint16Offset,Uint16DataLen,Uint16*Keys,Uint8*OutputPtr,Uint16Mode,Uint16*pDataLen)描述 从二进制文件读出密文数参数 Mode-------加方式(8字节密钥选DES8=0;16字节密钥选返回:unsignedshortint16bits9000详细说明:参数DataLen是欲读数据的明文实际长度,因本函数采用密文方式对ESAM芯片进行二经制文件的读操作,所以实际从ESAM中读出的数据长度是密文的长度,本函数通过指针变量pDataLen将实际读写的密文数据的长度进行反馈,pDataLen为欲读出的密文数据的长度,因ESAM一次最多能读出的数据量为0xA6,所以要求密文数据的长度应小于等A6。参Offset与Seeddm642_Esam_RBinaryFilDES()函数Offset址相对应,用于指出写入的数据相对于ESAM中的起始地址的偏移地址。voidSeeddm642_Uart_Intial(FunUart_Read描述:ESAMESAM参数:FunUart_Read----------指向Seeddm642_Esam_read()读ESAM函数的指针 详细说明本测试程序的ESAM加密库采用回调方式实现对ESAM串口读写函数的调用,用户可根据自己的硬件平台修改ESAM串口读写函数,并通过将ESAM串口读写函数指针传递给Seeddm642_Uart_Intial()实ESAM用。Seeddm642_Uart_Intial()函数用于将ESAM串口读写函数指针为回调类型。4异步半双工字符传输协议Mark:8位数据位位保护位位“0”。发送方检测到接收报告的偶校验错误时,重发上一个数据定时器的时器周期寄存器,利用定时器中断来实现的。定时器周期可按如下公式计算:T=372/ESAM_CLK,其ESAM_CLKESAM输入时钟频例如在SEED_VPM642中,ESAM3.57MHZ,所以定时T372/3.57MHZ=19600。由于串口时时器的周期,这是由于T/2时间正好位于数据位的中间,发送和获取数据不易出现误差。ESAMESAMESAMESAM5串口时序配置串口读写函数和按照ESAM的复位时序配置ESAM复位函数在seeddm642_e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公楼食堂厨师招聘合同
- 矿产资源总经理招聘协议
- 住宅小区监理协议书
- 塑料厂事故死亡赔偿协议
- 江苏商业中心中心建设合同模板
- 新生儿心脏病护理查房
- 湖南省常德市(2024年-2025年小学五年级语文)人教版摸底考试((上下)学期)试卷及答案
- 儿子婚庆父亲的讲话稿(14篇)
- 能源物联网的应用
- 采矿设备管理员工培训
- 2024年10月时政100题(附答案)
- 2024年危险化学品经营单位安全管理人员证考试题库
- JJF(苏) 275-2024 测斜仪校验台校准规范
- 【9道期中】安徽省黄山地区2023-2024学年九年级上学期期中考试道德与法治试题(含详解)
- 2024年时事政治试题【带答案】
- 2024年医疗污水处理管理制度范本(二篇)
- 意识形态分析研判制度
- 台州市水务集团股份有限公司招聘笔试题库2024
- 2024年武汉铁路局招聘236人历年高频500题难、易错点模拟试题附带答案详解
- Unit 5 Fun Clubs Section A Pronunciation 1-2e 教学设计 2024-2025学年人教版英语七年级上册
- 教学计划(教学计划)-2024-2025学年大象版五年级科学上册
评论
0/150
提交评论