基于JCE的数据加密密钥交换实现技术

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:abc1234Shi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在介绍了XML的安全特性和其加密规范后,从Diffie-Hellman密钥协商的生成原理出发,运用XML加密规范所提供的对数据对象进行密钥协商的机制,并以经典的D-H密钥协商为例,依据规范所制定的原则,运用JCE所具有的安全特性为实现技术,就如何对密钥协商交换进行了探讨,从而为XML加密规范的实际应用探索了一种方式,并以此说明建立自主加密扩展的重要意义。
  关键词:XML;数据加密;密钥协商;JCE
  中图分类号:TP309文献标识码:A文章编号:1009-3044(2007)03-10596-01
  
  1 引言
  
  密钥管理是建立加密信息安全系统的基础核心,其内容包括密钥生成、密钥存储、密钥分发/协议和密钥验证等基本功能,保证加密系统的有效和安全,需要有相应的安全策略管理和安全服务体系,以建立起数据交换各方安全的信任关系,并实现互操作化的安全协商与信任机制。
  XML数据加密规范经W3C多次大规模的讨论和修改,已经于2002年4月成为推荐标准,作为对于XML数据对象的加密规范,该文档定义了XML数据加密的处理流程和结果表示,并运用了XML-Schema来描述加密内容模式结构,以及可粒度化的加密实现等,提供了在应用上的对不同对象不同内容的特殊处理方式,即可在不同敏感级,使XML文档可选择的相异性得以实用。根据W3C提出的XML加密语法与处理规范,EncryptedData是一种抽象类型,从其可派生出与内容模式相关的EncryptedData和EncryptedKey元素以及相应的属性,并扩展以Diffie-Hellman密钥协商为基础的XML密钥协商的处理机制[1]。
  与XML安全特性实现密切相关的Java安全体系提供了分布式Java应用程序的可靠方法,成为安全模型建立的基本组件和工具。其中,在Java2.0运行上平台上的Java密码扩展(JCE)为第三方商业级的加密技术提供了可能,可建立起标准服务提供者和应用程序接口的相应模型。
  
  2 XML安全与加密规范
  
  XML安全体系提供了满足Web安全性需要的规范集合,这些规范本身符合XML1.0所规定的样式要求并延展了XML标准的特性:
  (1)XML安全使用相应的安全技术(如XMLSchema),定义了表示XML安全信息的XML词汇表以及共享该词汇表的机制。
  (2)提供了应用上的可扩展性与灵活性,允许安全特性应用到XML文档、元素、元素内容以及任意的二进制数据对象,并能通过命名空间和类型定义扩展XML词汇表。
  (3)可应用到端一端的加密,并始终保持安全与内容相关而与传输管道无关。
  (4)通过URI联系机制与安全处理模式定义,尽可能地利用现有的加密与安全技术。例如,对于X.509证书,被简单地编码为文本格式,而无需重新定义。
  核心的XML安全规范包括以下五个部分:
  (1)为完整性和鉴别而考虑的XML数字签名规范。
  (2)为机密性保护所提供的XML加密规范。
  (3)用于密钥管理的XKMS。
  (4)提供鉴别和权限断言的SAML,即安全断言标识语言。
  (5)声明授权规则的XACML,即XML访问控制标识语言[2]。
  XML数据加密混合密码体制,即所谓的电子信封(envelope)技术。但是,以上系统需要对公钥进行验证,面临着公钥的分发和合法身份的绑定等问题,要由第三方信任才能得以完成。为此,本文正是基于以上背景,根据XML加密规范,运用JCE安全特性,实现了通信双方无需知道对方内容的密钥协商管理协议。
  
  3 协议的JCE实现
  
  Diffie-Hellman算法其安全性是建立在有限域中计算离散对数困难性的基础上,运用该算法可用于通信双方(或多方)的密钥交换,即各方按照Diffie-Hellman协议所规定的通信规则互换算法生成數,最后产生共用的对称密钥。
  首先,甲乙通信双方约定一个大素数n和一个数g,g为模n的原根,因此g与模n互质。这样,任何1到期n-1之间的整数k都有一个对应整数q使得k=gq(mod)n,n和g的值可以公布或在甲乙方之间交换。g和n的选择对系统安全性有较大影响,应选择较大的n(512位以上),数(n-1)/2也应该是一个素数。
  JCE通过javax.crypto的Keyagreement类支持密钥协商。其getInstance( )方法可以指定密钥协商算法和可选提供者,JCE支持Diffie-Hellman密钥协商协议。要让双(多)方达成密钥协商,各方应生成和初始化对象:
  Keyagreement K=Keyagreement.getInstance("DH")
  然后,参与密钥协商的各方执行密钥协商的不同阶段,这些阶段随所用的密钥协商协议不同而不同,对于Diffie-Hellman密钥协商只有一个阶段,即用另一方的公开密钥(y值)更新Keyagreement对象,doPhase( )调用之后,可以由generateScret( )产生双方通信的密钥[3]。
  
  4 加密实例
  
  用双方的私有密钥调用(即甲方的x值,乙方的y值)调用对象init( )方法,init( )方法有四种形式,可以组合Keyagreement中要指定的SecureRandom与AlgorithmParameterSpec对象,产生的具体密钥随每个程序调用而不同,但各方最后生成的共享(秘密)密钥值完全相同。至此,可以运用该密钥值对设定的某个具体文档进行加密,以下是加密后,加密文档的生成例子:
  
  是从抽象类型中派生的XML核心元素,元素不仅包含加密数据,而且在替换加密文档后作为新文档的根元素[4]。
  
  5 结束语
  
  以上实例反映了运用JCE在实现XML加密规范中的实际应用,其技术机制即保留了规范所规定要求又不失有效性,是WEB数据加密的可选技术之一。
  JCE加密扩展(JCA,Java Cryptography Architecture)是建立在JCA(加密体系结构)基础上以提供基本数据机密性、完整性和源标识为主要目的安全扩展,尽管加密是任何安全系统的核心部分,但在JDK中却把JCE作为扩展放在安全体系结构之外,其原因是为了巧妙避开美国出口政策的限制[5]。
  此外,JCE还提供了标准的安全服务提供者和应用程序接口模型,使得许多商业级的加密技术得以第三方实现,因此,开发自主的加密扩展体系成为可能,同时,由于加密涉及到国家政治、经济、军事、科技等方面的需要,所以,建立自主的加密体系实现技术更显得尤为迫切。
  参考文献:
  [1]P.Samarati,E.Bertino,S.Jaiodia. An Authorization Model for a Distributed Hypertext System. IEEE Transactions on Knowledgeand Data Engineering,Vol8,No4,Augest1999:275-278.
  [2]Elisa,Barbara,Carminati. XML Security Specification On Key Agreement. Information Security Technical Report,Vol.6No.2,2004:230-237.
  [3]Atul Kahate. 密码学与网络安全安全. 北京:清华大学出版社,2005:56-78.
  [4](英)Mark Birbeck, 等. XML高级编程(第二版). 北京:机械工业出版社,2002:125-128.
  [5]龚力. XML数据加密的Diffle-Hellman实现. 现代计算机,2003,5: 62-63.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:Windows的任务管理器显示了计算机上运行的程序和进程的详细信息,并提供了有关计算机性能的信息。通过对它的巧妙使用,可以帮助我们解决很多实际应用中的问题,文中介绍了几个应用的方面。  关键词:任务管理器;进程;巧用  中图分类号:TP316文献标识码:A文章编号:1009-3044(2007)04-11151-01    1 任务管理器的启动和打开  Windows2000的任务管理器窗口
期刊
摘要:针对 MATLAB软件在国外高校和工程中的广泛应用,本文结合数字信号处理双语教学改革,将 MATLAB引入双语教学,介绍了其在数字信号处理双语教学中的具体应用,以提高学生的学习效率与学习积极性,培养学生的创新能力。  关键词:MATLAB;数字信号处理;双语教学  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2007)04-11155-03    1 引言  “数字
期刊
摘要:注册表是Windows操作系统中的核心数据库,它包含了应用程序和计算机系统的全部信息,对系统的运行起着至关重要的作用。本文首先阐述了注册表的作用及结构分析,然后列举了注册表损坏的常见症状,最后提出了注册表备份与修复的办法。  关键词:注册表;结构分析;备份与修复  中图分类号:TP316文献标识码:A文章编号:1009-3044(2007)04-11158-02    1 引言  Windo
期刊
摘要:客户关系管理系统(CRM)是提高企业竞争力的有力保障。本文通过分析CRM的特征以及陶瓷企业特性,提出了一种基于工作流的陶瓷企业客户关系管理系统的构建方法。经证明该体系结构能有效地应用于当前陶瓷企业客户关系管理。  关键词:CRM;工作流;体系结构  中图分类号:TP302文献标识码:A文章编号:1009-3044(2007)03-10598-01    1 引言    中国作为陶瓷发源地,有
期刊
摘要:网络虚拟社区是各种动态网站技术的综合应用,集多种休闲娱乐功能于一身,能够提供各种交流和服务手段。ASP、ASP.NET、JSP、PHP等是虚拟社区设计常用的技术,它们各有优缺点。新兴的P2P技术具有网络可伸缩性好、健壮性强、资源的利用率较高、节省投资等优点。本文介绍如何利用基于JXTA平台的P2P技术去构建一个虚拟网络社区,虚拟校园的过程。  关键词:P2P;JXTA;虚拟校园  中图分类号
期刊
摘要:Lucene是一个高性能、纯Java的全文检索引擎工具包,而且开源。Lucene几乎适合于任何需要全文检索的应用,尤其是跨平台的应用。Lucene 可以被看作一个支持全文索引的数据库系统,但又与传统的关系型数据库有很大的不同。  关键词:Lucene,全文检索,关系型数据库  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)03-10615-02  关系型数据库
期刊
摘要:自然灾害每年都给国家带来巨大的经济损失,而且还在以更快的速度增长,严重影响我国的可持续发展。长期以来,单项减灾系统相互独立,管理分散,综合减灾效果差。建立减灾综合系统有利于减灾各部门工作的统一协调,大大提高灾害应急快速反应能力。利用AJAX技术可以让减灾系统更加高效,降低对使用者的技术要求,增强使用者和系统的交互,让减灾综合系统发挥更大作用。AJAX在防灾减灾中的应用,稍加推广,即可应用到各
期刊
摘要:本文主要讨论了Mysql数据库和Mssql系列数据库提供的几种SQL数据字段类型的不同定义、应用以及如何在不同类型字段之间转化的问题。  关键词:Mysql;Mssql;数据类型   中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)03-10632-01    1 引言    我们在创建表之前首先要讲一下数据库提供SQL数据字段类型的问题,因为在实际应用中它是建
期刊
摘要:随着数据仓库技术的发展和应用,OLAP技术已成为决策支持系统领域研究的热点。文章探讨了基于OLAP的多维分析模型设计,将OLAP技术应用于学生选课数据仓库中,阐述了具体的实现过程,并形成了客户端访问界面。  关键词: 联机分析处理(OLAP);维表;事实表;星型结构;客户端界面  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10625-01    1 引
期刊
摘要:本文根据C语言的教学重点和目的,探讨如何提高C语言课程的教学质量,使学生更好的掌握C语言的基本语法和程序设计算法,培养和提高学生的编程能力。  关键词:C语言;教学方法;多媒体教学  中图分类号:G642文献标识码:A文章编号:1009-3044(2007)04-11160-03    1 引言  C语言是国内外广泛使用的计算机语言,它兼顾了高级语言的易用性、可移植性好等优点,又具有低级语言
期刊