基于面向对象的可编程密码设计思路

来源:南粤论文中心 作者:侯有利 发表于:2010-04-08 09:52  点击:
【关健词】面向对象;可编程密码;加密算法
【摘 要】传统数据加密一般采用单一的加密算法,通过增加密钥的复杂度和长度来提高加密数据的安全级别,论文 提出在不需要过分提高密钥强度的情况下,通过加密算法不一的多重加密机制,同样可以达到高级别的数据加密,而 且,利用组件技术实现每一种加密算法,实现可编程的动态加密算法组合机制。

引言

随着计算与网络的普及,彼此间的信息通信、资源共享 等已成为人们日常生活、工作中必不可少的活动,但是信息 或数据在网络传输过程中,安全问题成了数据通信的核心。
一般我们采用加密的方法将待传输的数据进行变异,然后再
分发传输。接受方依照相逆的过程获得未加密的数据信息。 结合数据散列,数字签名等技术以保证传输数据的完整和不 可否认【l】,从而避免欺骗或他人篡改数据进行恶意攻击。因 此,数据加密是目前保证数据安全传输的核心技术。

1                当前数据加密措施的单一性
当前,数据加密一般采用一种加密算法,通过事前确 定加密密钥或者通过PKI中心分发密钥等,来对数据进行
加密处理。这里首先要确定加密算法,其次要考虑一个安 全的加密密钥。目前,对加密的数据多采用暴力破解的手 段,而且,随着计算机运算速度日益加快,暴力破解周期 也在缩短。而且一旦暴力破解成功,得到的便是原始数据。 因此,采用单一算法进行数据加密只能设置一道关卡。
目前多采用增加密钥的长度与复杂度来预防暴力破解, 以降低破解的风险。但是,算法单一,多为本地加密,难 以实现多级别的动态加密机制。因此,灵活多变的加密机 制便成了当前数据传输的新思路。

2动态加密机制的思路

目前数据加密一般采用相对单一算法,灵活多变的只是 密钥的长度与复杂度,如果我们增加算法的复杂度,采用系 列算法的组合机制进行数据加密,破解难度将呈数量级增加,
而且,经过暴力破解得到的数据可能只是一个“半成品”,因#基,:球

收稿日期:2009一04—25                                、1
作者简介:侯有利。1 972年生,男,讲师,硕士,研究方向:

信息安全、软件工程、E亿P。

为,系列算法组合加密过程中,一种算法的密文输出只是另 一种加密算法的输人数据,暴力破解一般只能得到中间的结 果,且系列算法可以进行多种排列组合,形成不同的算法组 合序列,这样就形成了“动态加密算法”。

5可重构、可复用的动态加密设计模式

3.1基于面向对象技术的。可重构.可复用.可组合的加解 密算法的设计思路
通过面向对象的继承、重载技术,加密算法核心DLL的 变更,不影响对外接口,算法的调用仍旧采用原有接口标准, 算法变更后,由于对外接口不发生变化,因此,对于用户来 讲,一切依旧如故。如果需要增加新的加密算法,必须首先 保证原来已经预留的接口,才能进行新算法的注入。当然,无 论是增加新算法还是更新原有的算法,都需要经过身份验证, 通过原加密算法或者新加密算法预留接口中的身份预留信息 同发送过去的身份信息进行校验,在获得认证通过的情况下 才能实施更新或增加新算法。
首先,将每个加密算法开发完毕,都形成相对独立的 加密算法模块或组件,各加密算法之间没有任何关联,调 用加密算法过程中可随机组合,如本文采用3种加密算法, 每一种分别采用不同的加密算法,假设3种算法分别为:A,
B、c,对数据进行加密可采用A—B—c、A—c—B、
B—A—c等多种组合,3种算法可最多形成27种组合,如 果每一重算法不一的话,就会有6种组合模式,至于每一重 加密算法有其独自的规则,具体采取哪种算法用户自选。依 照上述理论,当有更多种加密算法可选时,如有6种不同的 算法,分别为A、B、C、D、E、F,如果每一重算法不一 的话,则形成的算法组合序列最多可达720种,由于每一 种加密算法破解已经有一定的难度,有的加密算法至今还 没有找到一个合理的破解办法,如果将不同的加密算法组 合在一起,配以不同的密钥,其破解难度可想而知。假设 一个人惯用6种加密算法,保存了6个密钥,即便是每一个 密钥的长度为4位,根据键盘上的可输入字符62个,可形 成(624)4种的组合密钥,再加上加密算法的720种组合,而 且是不同算法之间的复杂规则组合,安全系数增加很多。即 便是只使用一个密钥,应用在每一重加密算法上,由于不 同加密算法不同规则的组合,其安全级别要远远高于单一 算法的多重加密应用。一定程度上,不同加密算法的多重 组合的安全级别和我们惯用的动辄上百位的密钥单一算法 的加密级别相当,甚至还有一定的优势。
3.2多级别的加密设计 根据数据的不同等级可采用不同的加密算法组合,对于
安全级别较高的数据信息,一方面采用多重加密算法的“重 数”增加。另一方面,每一重加密算法密钥级别也要增加。如 果认为多重密钥难以保存记忆,可减少密钥数量,因为多重 算法不一,其安全系数一般不会受到太大影响。
对于保密级别不太高的数据,加密算法的“重数”可以
不变,但是加密算法密钥级别可以适度降低。
3.3可重构组件的结构设计 每一种加密算法采用的类结构基本一样,下列代码是采
用VC++编辑:

Cla豁  IDnJ’n:puMic   lUnkno硎一

{pubuc:
Ⅵfh培l char·DDEs(char+pnl,ctlar·key,int   flag=l。ctlar‘ps,⋯): Vinual char·EDEs(char+阳。cllar·key。砒flag=l。ctlar’蛐,⋯): Virtual char·DT朗(cllar‘娜。ctlar·key。int nag=2,char’娼⋯);
Virttlal  char·E1切(ctlar·ps,char·key,int nag=2,ctlar‘pm,⋯); vimIal char·DEllip∞(char+pm,char·key,int nag=3,char’p8,⋯); Virt∞l char·EElup∞(char‘ps,char+key,雠nag=3,cllar’pm'⋯);


l

椭翻

Cla豁DES:public DILEn

f..·.

public:
char·DDES(char+pm,illt    nag=l,char+ps,⋯){...k(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)

顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.