- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于国产化可信芯片文件加密系统研究
基于国产化可信芯片文件加密系统研究
摘 要 本文提出了建立基于国产化可信芯片的文件加密系统的必要性,采用我国自主研发的TCM安全芯片为可信根,通过C++/C#语言混合编程实现可信系统开发,经过TCM芯片进行加密的数据就只能在该平台上进行解密和处理,证明了TCM的可信信息系统的可行性。
【关键词】国产化 TCM 加密 解密
1 研究背景
研发自己的可信计算技术,是国家安全的需要,我国目前采用的信息产品存在严重的安全隐患。关键信产品都是来自国外,安全后门普遍存在。
在此背景下,许多公司和研究机构在可信计算方面进行了大量的研究,2005年4月联想集团和中科院计算所完成了安全芯片和可信PC平台开发。2005年4月,兆日科技也推出符合可信计算联盟技术标准的可信安全芯片。2008年4月底,中国可信计算联盟(CTCU)在国家信息中心成立。2007年12月,国家密码管理局正式发布了《可信计算平台密码支撑平台功能和接口技术规范》,至此,中国有了自己的可信计算规范。
2 研究目的
建立基于硬件的应用软件的访问控制策略,让指定的用?粼谥付ㄖ斩松鲜褂弥付ǖ挠τ萌砑?做指定的事,指定策略范围之外的行为都是不被允许的,为应用系统提供一个可信、可控、可管理的安全运行环境。包含如下几点:
2.1 芯片级的身份鉴别
可信信息系统采用基于TCM模块的平台身份证书标识用户身份。
2.2 芯片级的数据保护
利用了硬件级加解密算法,完成数据保护。
2.3 芯片级的应用软件访问控制
采用基于信任链的访问控制机制,用户在计算机终端上只能安装和使用已授权的应用软件和程序。应用软件及其包含的可执行文件、动态链接库和控件的完整性,由可信密码模块安全芯片验证。
3 系统总体设计
3.1 系统架构设计
本系统三层结构,包括可信密码模块、中间层及应用层。其中:
3.1.1 可信密码模块
主要用为可信计算电脑提供数据加密,将敏感数据存放在芯片的安全存储区中;提供完整的密钥管理方案,包括密钥的建立,存储,迁移以及密钥协商等功能。
3.1.2 中间层
介于前端TCM硬件模块与应用软件中间,提供数据加密程序、数据签名等功能的封装。
3.1.3 应用层
包括身份认证,数据加密,软件保护等上层应用。
3.2 系统逻辑结构图
为了简化系统开发和实现一个稳键、可靠的系统架构,根据系统分层设计的思想,把系统分为:表示层,业务逻辑层,中间层,数据处理层。
3.2.1 表示层
使用WinForm作为数据表示层。
3.2.2 业务逻辑层
使用C#作为业务逻辑层。
3.2.3 中间层
使用C#、CLR和C++作为中间传输层。
3.2.4 数据处理层
使用Subsonic代码生成工具作为数据处理层。
4 系统关键技术实现
C/C++则擅长写算法的编写,执行效率高,因此封装TCM的底层函数都是用C/C++开发的,而C#则擅长快速开发,同时有良好的兼容性,本系统利用CLR C++(指托管C++)把本机C++代码包装起来编写输出类库,供C#使用,由于CLR C++和C#都符合CLS规范,所以两者可以无缝集成,在一个解决方案里包含这两种语言的项目。下面以数据加密为例说明一下实现方法:
4.1 用C++实现TCM数据加密函数
//加密函数
//keylenth:密钥长度;key:密钥数据;dataLength:被加密数据长度;
//data;加密数据;enDataLength:密文长度;enData;密文数据
TSM_RESULT TcmEncryption(UINT32 keylenth,BYTE* key,UINT32 dataLength,BYTE* data,UINT32 enDataLength,BYTE* enData)
{//函数实现}
4.2 使用托管C++包装本地C++类
TSM_RESULT TcmEncryption(UINT32 keyLenth,BYTE* key,UINT32 dataLength,BYTE* data,UINT32 enDataLength,BYTE* enData)
{
System::UInt32 r=-1;
CTcm tcm;//非托管C++类
r=tcm.TcmEncryption(keyLenth,key,dataLength, data,enDataLength,enData);
return r;
}
由以上代码可以看出,托管c++代码的函数声明跟C++几乎一样。编译生成
您可能关注的文档
最近下载
- 输输电线路角钢塔焊接件组装工艺技术规程(作业指导书9).doc VIP
- 文旅公司招聘笔试试题.pdf
- 诺华在中国-诺华中国Novartis.PDF VIP
- 4.《促织》课件(共62张PPT) 高教版(2023)中职语文基础模块上册.pptx VIP
- 威尔克姆V8[中文]说明书.pdf VIP
- 2022届中考真题、模考专项练习-“伏安法测电阻”、“测定小灯的电功率”(附答案).pdf VIP
- 专题1.1 整式的乘除(压轴题专项讲练)(北师大版)(原卷版).pdf VIP
- 2025—2026年印制电路板制造的节能环保趋势.pptx
- 再生润滑油基础油团体标准(TCRRA-0901-2023).pdf VIP
- 美世国际职位评估手册.pdf VIP
文档评论(0)