MD算法

2024-06-04

MD算法(共9篇)

MD算法 篇1

一、引言

在信息行业, 安全从未像今天这样重要。安全是一个涉及面很广的问题, 在信息系统的各个环节中都至关重要。因此, 在谈到信息安全时, 可以指多个领域:应用、数据、网络、通信、用户和主机系统等等。在这些领域中, 一项共同的安全需求和目标是对数据的保护, 这进一步突出了安全的重要性, 要求所有企业和组织承担起伦理和法律责任, 采取适当的措施和步骤确保信息安全。在各个层面采取安全措施, 可确保信息可靠的处理、存储或传输, 同时让任何得到授权的实体都能够使用它们。其中, 单向数字签名散列算法更是使数据完整性验证和通过混淆保护数据的机密性成为可能。

二、MD5算法的研究与扩展

2.1 MD5算法的描述

MD5是一种迭代型强加密单向散列函数。单向散列函数指的是根据输入消息 (任何字节串, 如文本字符串、Word文档、JPG文件等) 输出固定长度数值的算法, 输出数值也称为“散列值”或“消息摘要”, 其长度取决于所采用的算法, MD5生成128位的散列值。为了实现对数据的认证的目的, 散列函数应满足以下条件: (1) 函数的输入可以是任意长。 (2) 函数的输出是固定长。 (3) 已知x, 求H (x) 较为容易, 可用硬件或者软件实现。 (4) 已知h, 求使得H (x) =h的x在计算上是不可行的, 这一性质称为函数的单向性, 称H (x) 为单向散列函数。 (5) 已知x, 找出y (y≠x) 使得H (y) =H (x) 在计算上是不可行的。如果单向杂凑函数满足这一性质, 则称其为弱单向杂凑函数。 (6) 找出任意两个不同的输入x、y, 使得H (y) =H (x) 在计算上是不可行的, 则称其为强单向杂凑函数。MD5算法结构采用迭代型杂凑函数的一般结构。其中, CV0=IV=n比特长的初值;CVi=f (CVi-1, Yi-1) 1≤i≤L;H (M) =CVL;CVi-1, 称为链接变量;通常b>n, 称函数f为压缩函数。

2.2 MD5算法的扩展

在数据的加密处理方面, MD5总体看来是安全的, 目前破解MD5主要依靠大型字典的方法, 将常用密码进行MD5后建立数据库, 然后和MD5数值进行对比, 通过这样的方法来破解MD5。为了应对大型字典破译的问题, 提出一种基于MD5算法扩展的加密方法。基于MD5算法的扩展算法流程是, 原始的数据信息首先经过MD5的单向加密得到加密数据, 然后对加密数据再利用双向加密算法加密。得到最终的加密信息由于采用二次加密, 且二次加密算法和对应参数多样和未知性, 如DES、RSA等, 从而使MD5大型字典破解方法完全失效。

三、MD5算法的应用

3.1 Java安全架构与技术

Java平台提供了一种通用的面向对象编程语言和一个标准的运行环境, 可用于开发和实现安全的跨平台应用解决方案。为提供基于Java平台的应用解决方案的端到端安全, Java运行环境和Java语言在格式和结构方面对代码及其执行环境做了严格的限制, 从而提供了全面的安全基础。Java之所以能成为安全可靠的运行环境, 在很大程度上应归功于Java架构基础的固有的安全性, 该架构包括Java虚拟机和Java语言, 其中JVM提供了内置的安全策略、访问控制机制和安全扩展。在J2SE中, JCA为Java平台提供加密服务和算法, 以保护消息的安全。JCA定义了提供者概念及一个用于访问加密服务和实现相关功能的一般API框架。通过标准化API框架和提供者实现, JCA还提供了算法和实现的独立性。MD5消息摘要是单向安全散列函数, 在J2SE中, JCA提供者支持消息摘要算法:消息摘要算法5 (Message Digest 5, MD5) , MD5可生成128位散列值。消息摘要使用引擎类java.security.Message Digest表示, 其形式为字节数组, Message Digest.get Instance创建一个实现了指定算法的消息摘要对象实例, 条件是提供者支持该算法。方法Message Digest.update使用由字节数组指定的数据更新摘要, 而方法Message Digest.digest计算散列值并返回一个字节数组。

3.2 MD5算法扩展的应用

随着信息技术的飞速发展, 拥有着效率高、便捷性强等特性的信息系统被越来越多的企业和个人使用, 信息系统一般都会采取用户名和密码结合的登录方式进行身份验证, 此时用户名和密码及其其他敏感信息会存入数据库中保存, 然而如果服务器和数据库被人攻破, 用户的密码将会暴露, 从而导致很严重的后果。现给出基于MD5扩展算法并采用Java语言编程的核心代码, 此算法已应用于无线局科技服务管理系统, 用于解决用户密码安全问题。

四、结束语

通过对MD5加密算法的研究分析得出, MD5的核心是压缩函数, 也正因如此MD5是一种不可逆的安全性很高的加密算法, 但却收到大字典攻击的威胁, 从而导致强度弱的密码被泄露, 通过在MD5加密算法原有基础上的扩展, 克服了外界的攻击, 增强了加密算法的强壮性, 这种基于MD5扩展的加密算法, 可用于保护数据库敏感信息、身份验证、数据完整性等方面。

摘要:当今世界, 人们在关键业务和行业部门大量的采用计算系统和网络技术, 从而带来了新的威胁和风险, 如未经授权的访问、信息窃取和篡改、病毒传输等。文章针对数据的机密性和完整性提出一种基于MD5单向加密技术的扩展, 并通过对该算法的深入研究, 介绍MD5加密算法的基本原理和实现流程, 并给出此加密算法利用Java语言编程在实际系统的使用方法和使用效果。

关键词:MD5,加密,Java

MD算法 篇2

而魔典推出的安全存储系列产品,可以说是完全针对这一现象所设计的。这些产品的共同特点是内部集成金山毒霸或江民杀毒软件,与系统连接后即自动启动杀毒软件。对于向U盘内写入的文件进行实时自动扫描,避免因拷贝文件而致使U盘感染病毒。而且,为了保护防病毒软件不被破坏,魔典的安全存储系列产品采用虚拟光驱技术直接在系统内挂载虚拟的光盘驱动器,并将杀毒软件植于其中,从而从逻辑上实现“不可改写”,避免杀毒软件被破坏。

魔典便携系统

魔典便携系统提供的是一套基于U盘的安全环境。魔典便携系统的容量为2GB,内部集成金山密保、金山清理专家、江民杀毒移动版、江民实时监控等功能。载入系统后,便携系统可以提供一个独立于操作系统的存储环境。在临时使用公用计算机时,用户可以将自己的文件存储在魔典便携系统中,并且使用随系统附带的加密工具进行加密存储。同时,向系统中写入的文件均会通过江民实时监控进行扫描,确保便携系统不被病毒感染。对于经常去网吧上网、玩游戏的用户来说,这套系统可以说是十分方便的。

魔典杀毒U盘MD-09A

魔典杀毒U盘MD-09A的外形十分小巧,采用全金属拉丝工艺外壳,结合独特的旋转接口,让魔典杀毒U盘MD-09A显得十分时尚。这款产品提供2GB存储空间,内部集成金山毒霸U盘版,可以给U盘自身提供写入文件扫描。而且金山毒霸U盘版可以说“麻雀虽小,五脏俱全”,除了前面提到的U盘保护功能外,这款迷你型的杀毒软件还可以在线更新病毒定义,并且可以对系统进行全面扫描,用来修复被病毒感染的计算机可以说是非常方便。

魔典杀毒U盘 MD-06B

魔典杀毒U盘MD-06B与MD-09A一样,均提供固化的金山毒霸U盘版,并且在功能上也基本相似,但二者的外形却完全不同。MD-06B的外壳采用红色拉丝金属工艺制造,内部盘体为黑色工程塑料,并且以旋转的方式安置在外壳内部。靓丽的红色让这款产品显得更为活泼一些。同样,这款产品也提供2GB存储空间,功能上也提供文件写入扫描、全系统扫描等功能。可以说,MD-06B与MD-09A在基本功能上是一致的,但在外形设计上则考虑到不同用户群的不同需求,进行了单独设计。

魔典的这一系列产品可以作为个人安全套装软件的有力补充,虽然这三款产品均提供了比较丰富、全面的安全防护功能,但它们并不能取代我们日常使用的安全防护套装软件。它们的作用是在我们需要修复被病毒感染的计算机时,或是需要临时使用公用计算机时,给我们提供一个安全的数据存储、调用环境。可以说这些产品的外形、功能都很令人满意,而至于说品质方面,用户大可放心。魔典的全部产品均采用三星A级Flash芯片,并且所有固化的软件均为正版独家授权,用户可以放心使用。□

编辑评价

基于简化MD5的TFIDF算法 篇3

Web文档具有有限的结构。此外,文档的内容是人类所使用的自然语言,计算机很难处理其语义。文本信息源的这些特殊性使得现有的数据发现技术无法直接应用。我们需要对文本进行预处理。向量空间模型(VSM)是应用比较多的方法之一,在该模型中,文档空间被看做是由一组正交词条向量所组成的向量空间,每个文档表示为其中的一个泛化特征向量,每一个特征项对应一个权值,权值的大小代表它区分该文档内容属性的能力的大小。其中权重的计算方法主要有对数加权算法、频度加权算法、布尔加权算法、频度加权算法、开根号加权算法、熵加权算法和TFIDF加权算法等[1]。TFIDF加权算法形式简单效果显著而被广泛地应用。但是,要想得到相对精确的特征向量往往要产生海量的分词,导致一些应用中磁盘IO次数的增加,效率不高;而且又造成计算资源的膨胀,导致整个应用的资源浪费。本文以此为出发点提出了基于变异MD5压缩的TFIDF改进算法M-TFIDF,使整个算法在特征词选取的效率得到提高。

1特征项权重算法及改进

1.1经典算法描述

在VSM该模型中,每个文档表示为其中的一个泛化特征向量如式(1)所示。

式(1)中ti为词条项,wi(d)为tid中的权值,wi(d)一般被定义为tid中出现频率tfi(d)的函数,即wi(d)=φ(tfi(d)),φ函数选用TFIDF函数φ=tfi(d)lg(Νni),其中,N为所有文档的数目,ni为含有词条ti的文档数目,在TFIDF向量表示法中wi(d)反映了词条ti区分文档内容属性的能力,一个词条在文档中出现的范围越广,说明它区分该文档内容属性的能力越弱,另一方面在特定的文档中出现的频度越高说明他在区分该文档内容属性的能力越强。然而算法却有不足之处,有些词的IDF很低,但它只是在某一类文档中出现的很广,那么该词却恰恰很好的表现了文本的特征。

针对以上的缺点有演化出改进的TFIDF算法[2]来确定特征向量权值,首先移除文档中的停用词,如连接词、感叹词等。接下来引入相关文本集合R和无关文本集合U,通过无关文本中的词语来确定相关文本中重要的词语。其中包含在相关文档中词条ti的文档数为mi,则改进后的IDF如下式。

ni确定的情况下IDF值随mi的增加单调递增,即词条ti在相关文本集中数量大,而在非相关文本集中数量小时,该词条对于相应的相关文本有很好的代表性,应选为特征词。

考虑到中文的词性特征以及文档的结构特点文献对TFIDF方法引入重要因子σ[3]。词性方面,名词和动词在中文赋予较高的权重,副词和形容词次之等;文档结构方面,标题中的词以及黑体格式的词赋予较高的权重等。改进后的TF-IDF公式如下。

最后,对所有的特征词按照其评估结果从大到小排序,选取预定数的最佳特征作为结果的特征子集。

算法流程如图1所示。

1.2算法改进

针对算法在中文分词后对特征向量进行查找统计时所需的磁盘IO情况,本文采用压缩技术使待查找的文件大小减小,减小查找统计时的磁盘IO。

将特征值元组<t1,t2,…,ti,…,tn>运用压缩算法对每一个字段进行压缩,使原始元组压缩成为较小的元组,这样一来不仅减小了磁盘IO,而且使得元组备份时的磁盘空间也随之减少。然而压缩后两个不同的字段可能出现相同值。所以本文对错误的期待时间做一个理论化表述,以证明错误期待时间在对数字不敏感的行业是可以容忍的。假设将元组<t1,t2,…,ti,…,tn>中ti进行压缩。假设ti为一个64位的长整数那么两个不同的t可能摘要出同一个长整数的可能是2-64。特征元组文件的增加需要查找的元组增多,相应的出错的概率也会随之增加。假设文件大小为512 M,特征元组中的待压缩字段为256位,计算出在512 M的快照文件中元组的个数将为221即2 097 152个,那么比较这些字段保证一天不出现差错的概率如式(4)所示[4]。

Perror=(1-E)rec(F)≈(1-2-64)2 097 152 (4)

那么出错期待的时间计算如式(5)所示。

由公式可以得到近似的出错期望时间约为2.409 9×1010年,所以除非是要将其使用于对数字极其敏感的行业,否则这个出错可期待的天数是完全在可接受范围内的。

在压缩算法选取方面采用变异的MD5摘要算法。 MD5算法是在文档rfc1321中提出的一个被广泛使用的称为信息摘要的摘要算法[5],其主要过程包括了对字符串的填充(Padding) 、分段摘要(Digesting) 和最终摘要的输出(Outputting) 三个步骤。在实际的计算中又分为四轮如下所示。

数学表示如式(6)所示。

digesti=f5[f4(Ni,f3{Ni,f2[Ni,

f1(ni,digesti-1)]}),di-1] (6)

式(6)中Nii段源数据,fi(i=1,2,3,4)是第i 轮的摘要处理所进行的, f5 为digesti-1与f4产生的四个32位的长整数分别相加。四轮处理函数中每轮用到的处理函数如式(7)—式(10)所示。

FF(A,B,C,D)=B+[(A+F(B,C,D)+Ni+

Ti]<<Si) (7)

GG(A,B,C,D)=A+[(D+G(A,B,C)+Ni+

Ti]<<Si) (8)

HH(A,B,C,D)=D+[(C+H(D,A,B)+Ni+

Ti]<<Si) (9)

II(A,B,C,D)=C+[(B+I(C,D,A)+Ni+

Ti]<<Si) (10)

其中的“+”表示 (X ADD Y)MOD 232。

其中每轮中使用到的非线性处理函数如式(11)—式(14)所示。

F(X,Y,Z)=(X and Y)or[(not X) and Z] (11)

G(X,Y,Z)=(X and Z)or[(not Z) and Y] (12)

H(X,Y,Z)=X X orY X or Z (13)

I(X,Y,Z)={Y X or[X or(not Z)]} (14)

接下来将MD5算法简化为每一个分组只进行其中一轮的处理。这样的结果将在在雪崩效应和算法的不可逆推性强度上遭到破坏,而这两个性质都不是我们所必须的。将这四轮循环减少为每次只进行一轮,而为保持算法的一致性四轮处理方法在处理过程中循环使用。于是得到简化后的算法公式化表示为。

digesti=f5[fi%4(Ni,digesti-1),di-1] (15)

在文献[4]论证了变异的MD5算法不满足hash函数常见的评价标准中的产生两对不可预知性元数据的条件的合理性,以及证明了该算法满足如下必要的三个hash函数评价标准:随机均匀分布性;输入为均等影响输出位;任意输出位间的相互独立性。所以变异的MD5算法可以作为本文中的压缩方法来使用。

基于变异的MD5特征值权重算法M-TFIDF流程如图2所示。

1.3算法效率分析

对算法效率进行理论化分析,考虑查找时耗费的磁盘IO容易得知当数据被压缩存储之后所占的磁盘空间减少,相应内存中存放的数据将会增加,这样显然会减少读取磁盘的次数,假设每次内存中的数据容纳量为n个文件,总共需要比对的文件总量为N,形成相关文本m1个,无关文本m2个,那么至少要Νn+m1+m2次磁盘IO,经过压缩后每次内存中的数据容量为nnew(nnew>n)文件的总量为N不变形成的相关文本m1new(m1new<m1)个,无关文本m2new(m2new<m2),那么至少需要Νnnew+m1new+m2new次磁盘IO,由此可见在比对时的磁盘IO有所降低。其次,从最后一次排序出发分析磁盘的IO的效率的提高,在一般情况下对一个大小为|F|的文件采用败者树多路归并排序需要2 × |F|×lg|M|| F |的磁盘IO量来完成文件进行的排序工作,其中|M|表示允许内存的大小,那么现在假设压缩后的文件大小为|Fnew|(|Fnew|<|F|),压缩后的磁盘IO时间变为2|Fnew | lg|M|| Fnew |,那么压缩前后的IO差为2 |F |lg|M| |F|-2|Fnew |lg|M|×| Fnew |,假设|F|-|Fnew|=|ΔF|>0,化简后得2|F|lg |M| | F |/|Fnew|+2|ΔF|lg|M|×| Fnew |>0,所以在最后一趟排序时的磁盘IO减少。

1.4应用测试实验

测试平台为PC机,CPU为intelCore2双核处理器,4GBDDR3内存,win7旗舰版操作系统。

原始的TFIDF算法和基于变异的MD5的TFIDF算法在时间效率上的对比如图3所示。

图中数据是多次试验的平均结果,如图2中所示当数据量不是很大的时候两种算法的效率相当,当数据量比较大的时候M-TFIDF算法效率较原始的算法要高。

理论上来说改进算法和原始算法在文本分类上是无差异的,接下来针对文本分类效果的无差异性文本分类的整体效率作如下实验来测试改进算法的文本分类效果。

首先选择文本分类的语料库和数据集如表1所示。

本文测试时采用KNN算法分别应用M-TFIDF以及经典TFIDF算法进行测试,分类评价采用查全率与查准率,结果如表2所示。

其中,时间的效率的对比如图4所示。

评价结果显示基于M-TFIDF文本的分类效果一致,分类时间相对减少,其中分类时间为特征向量选取时间和最后一趟排序时间以及KNN算法分类时间之和(经过多次试验的平均结果)。

2结束语

本文在互联网海量数据处理效率不高的背景下,针对目前流行的文本分类算法中特征向量权重计算时的效率不高的问题提出了M-TFIDF特征向量权重计算方式,在传统的算法基础上增加了元组的压缩处理使得算法在效率上有所提高,当然算法也有弊端,当压缩比例不高时的效果不明显,反而还会增加压缩数据的资源开销,下一步的工作重点会放在压缩算法的改进方面。

参考文献

[1]施聪莺,徐朝军,杨晓江.TFIDF算法研究综述.计算机应用,2009;29(S1):57—60

[2]李静月,李培峰,朱巧明.一种改进的TFIDF网页关键词提取方法.计算机应用与软件,2011;28(5):25—27

[3]王军.词表的自动丰富—从元数据中提取关键词及其定位.中文信息学报,2005;19(6):36—43

[4]唐向阳.基于变异MD5的快照查分算法.微计算机应用,2010;31(12):1—7

MD&A信息传递效果分析 篇4

【关键词】 MD&A信息传递;因素分析;现状分析

“管理层讨论与分析”(Management’s Discussion and Analysis,以下简称MD&A)是上市公司定期报告中管理层对公司过去经营状况的评价分析以及对未来发展趋势的前瞻性判断。信息使用者通过对信息的阅读和理解形成对企业真实状况的理性认识,而这一过程依赖于MD&A信息的有效传递。目前理论界关于MD&A信息方面的研究尚不完善,李常青(2006)通过实证分析MD&A信息的有效性及前瞻性;刘昱熙(2006)则参照美国MD&A质量要求对我国上市公司MD&A信息质量特征进行了初步界定;其他学者在研究MD&A信息时或考察我国上市公司某一行业或某一年度MD&A信息披露现状,或研究MD&A信息披露的法律责任等重要问题。总的说来,现有研究大多分析信息披露质量或现状,而对信息传递效果方面的分析则很有限。本文以信息的传递方式为起点,系统、完整地分析影响MD&A信息传递的影响因素——系统缺陷、管理者行为、认知限度与认知偏差,将这4个因素纳入到一个统一的分析框架中,有助于对MD&A信息传递的症结进行全面分析,从而改善MD&A信息传递效果,同时在该框架下分析了我国MD&A信息披露的现状。

一、MD&A信息的传递模式

信息的传递模式为:由信源发出信息,经过编码器将信息变成信号,在信道中进行传输,到达译码器后将输出的信号变成消息,并最终传送至信息接受者(信宿)。MD&A信息传递与一般信息的传递原理相同:信源为反映企业过去经营状况的真实经济业务,若属于MD&A信息披露内容,则会通过一定的披露要求(编码器)纳入披露的范围;经处理后的信息按一定的披露规则(信道)进行传递;MD&A信息使用者(信宿)收到披露的信息后,对信息进行自我还原并形成对企业真实经营状况的理性认识。与一般信息传递不同的是,MD&A信息需要信息接受者进行自我还原,信息接受者收到的是已被还原反变换后的信息。

MD&A信息传递过程中,其传递效果受4个因素共同影响:系统缺陷、管理者行为、认知限度和认知偏差。从图1中,信息编码环节受现有法律法规等制度因素制约,称为系统缺陷影响(图中I所示);信道传输环节受到管理层非理性动因的影响,称为管理者行为影响(图中所示II);还原反变换环节受信息接受者信息处理能力的制约,称为认知限度影响(图中阴影Ⅲ)和认知偏差影响(图中阴影Ⅳ)。

图1中,空心箭头所表示的是一般信息传递流程,实线表示为MD&A信息传递的过程。

二、MD&A信息传递效果的四因素分析框架

目前,已有对MD&A信息传递效果影响因素的分析主要是停留在系统本身的缺陷以及管理层披露信息的过程中。从行为经济学和认知心理学角度分析MD&A信息传递效果,发现更多影响其传递效果因素的研究尚且没有。因而,MD&A信息传递效果的四因素分析非常有研究价值。

(一)系统缺陷

我国证监会于2001年在《公开发行证券的公司信息披露内容与规则第11号——上市公司发行新股招股说明书》中第一次引入MD&A制度,并于2005年在《公开发行证券的公司信息披露内容与规则第2号——年度报告的内容与格式》中做出进一步修订。我国关于上市公司MD&A信息披露的制度主要散布于《公司法》、《证券法》、《股票发行与交易管理暂行条例》、《上市公司发行新股招股说明书》、《公开发行证券的公司信息披露内容与格式规则》中,还没有形成一个针对MD&A信息披露提出专门的系统化的文件。由于缺乏正式统一系统的规定和指导性样本,使得上市公司执行起来比较困难,并因此影响了所披露信息的质量。缺乏类似于美国的“安全港”制度对管理层在MD&A中做出“善意”预测性信息披露的保护,使得管理层不敢主动披露更多的预测性信息。

(二)行为经济学视角——管理者非理性动因

行为经济学与传统经济学所不同的是,其综合运用社会学、心理学、行为学的理论和方法研究个人或群体的经济行为规律。理性的管理者会以追求财富最大化为目标,充分、如实地披露MD&A信息。然而,从行为经济学方面考虑,管理者行为存在非理性动因。一方面,个人理性决策的系统性偏离成为管理者非理性决策的动因,当决策者模仿别人的行为而忽视自己的价值判断时,就会出现从众行为,产生一种趋同效应。即当存在MD&A信息不如实披露行为时,公司管理者便产生了“羊群行为”,而忽略考虑披露MD&A信息的优势,信息披露的动因弱化。另一方面,理性选择理论假定管理者过去的行为与当前的选择是不相关的,甚至是由于边际效用递减而与当前决策是负相关的;而行为经济学则认为过去的习惯对于现在是有启发意义的,因为行为的重复可以减少决策的成本。由于习惯对行为有意想不到的影响,这可能导致在特定的环境下,决策只能达到次优水平。我国2001年才开始要求MD&A信息披露,各方面条件还不成熟,管理者的信息隐瞒已成为一种习惯,或者说有一种“现状偏好”的倾向,倾向于维持现状而不愿意转向其他状态。正是这种对信息隐瞒现状的偏好,弱化了MD&A信息披露的动机,在信道传递过程中对信息产生了干扰。

(三)认知心理学角度影响的二因素

认知是人们获得、储存、转换、运用以及沟通信息的心理过程。根据加洛蒂(2005)的认知心理学理论,对于信息受众来说,在接受和理解信息时,会受到多重因素的制约和影响。以下主要是从认知限度和认知偏差两个方面加以分析:

1.认知限度。认知限度主要表现在信息使用者信息处理能力上。个人对信息的接受有两种方式:一是被动、消极地接受;二是积极、有选择地接受。被动、消极地接受受活动范围、潜意识中好恶和其他深层心理及本能的影响。积极、有选择地接受,要求接受者有较强的情报能力、足够的情报意识和一定的情报鉴赏力。对于MD&A信息而言,虽然信息使用者是积极、主动地接受,但信息接受者并不能对接收到的所有信息“充分消化”,一旦出现“消化不良”,则会导致MD&A信息传递失效。

2.认知偏差。认知偏差是指信息受众在接受信息的过程中形成的对传播者或对传播信息的误解,从而导致其对传播者意图的理解偏差,其存在会影响信息受众对信息的接收与认同。对MD&A信息而言,信息使用者的判断与决策过程会不由自主地受认知过程、情绪过程等各种心理因素的影响。其认知偏差主要表现在以下几个方面:过度自信的认知偏差、损失厌恶的认知偏差和模糊趋势认知偏差。存在认知偏差会使信息受众在信息处理上出现一定程度偏差,如存在模糊趋势的认知偏差。当市场异动时,非理性的冲动战胜模糊趋势进行非理性的投资,而不关心实际信息披露情况。

三、我国MD&A信息传递现状分析——基于四因素分析框架

MD&A信息传递是一个复杂的过程,任意一个环节的因素都会制约信息传递效果。李常青等(2005)对上市公司2003年和2004年的MD&A披露的实证研究表明,我国上市公司定期报告中的MD&A信息披露质量不高、前瞻性信息的披露状况不尽如人意、存在“报喜不报忧”的现象,定期报告中的MD&A信息既不能解释股票收益率的短期波动,也不具有长期潜在价值。结合四因素分析框架来看,要提高MD&A信息传递效果,首先,必须完善MD&A信息相关制度,借鉴国外成熟的MD&A信息披露制度,如美国的安全港制度。其次,在企业内部激励机制中将MD&A信息披露质量纳入管理层绩效考核范围,形成有效的内部监管机制,降低管理者行为的可能性。最后,通过普及MD&A知识,改变信息使用者的看法,加强信息使用者对MD&A信息的重视程度。

【参考文献】

[1] 李常青,王毅辉.“管理层讨论与分析”研究述评[J].厦门大学学报(哲学社会科学版),2007(5):20-25.

[2] 刘昱熙.“管理层讨论与分析”信息供给的理论分析 [J].集团经济研究,2007(11):273-274.

[3] 雷俊宇,吴敏.美国MD&A信息披露要求及其评价 [J].财会月刊(理论),2007(5):81-82.

[4] 李锋森,李常青.上市公司 “管理层讨论与分析”的有用性研究[J].证券市场导报,2008(12):67-73.

[5] 钟娟,李常青.管理层讨论与分析信息的法律责任 [J].财会月刊(会计),2006(11):55-56.

[6] 姜文杰.我国MD&A信息披露现状的探讨[J].当代经济,2008(8):151-152.

[7] 宋利元.投资者行为金融对上市公司市价的影响[J].经济管理,2008(1):81-84.

[8] 李晓东.会计信息传递效果的分析框架[J].经济管理,2008(8):41-46.

[9] 何进日,武丽.信息披露制度与欺诈管制 [J].会计研究,2006(10):18-23.

[10] 加洛蒂.认知心理学(第三版)[M].吴国宏等译.陕西师范大学出版社,2005:106-112.

MD算法 篇5

关键词:加密方式分类,Hash函数,MD5算法,加密原理,破解方法

1. 引言

随着科技的发展, 互联网已经深深地融入我们的生活中, 手机、电脑已经成了我们生活当中获取信息的重要工具和手段。在网络这个开放平台上, 不乏有些通过不正当手段窃取利益的行为, 所以信息的安全性也是一个非常重要的问题。因此许多加密算法应运而生, 例如:AES、RC4、TEA、MD5等;其中在开发者中最为常用且安全性较高的是MD5算法。

2. 加密方式分类

加密方式有两种:单向加密和双向加密。双向加密是最为常用的加密算法, 它的应用原理是将能直观理解的明文数据信息加密为不能直观理解的密文数据信息然后在需要解密的时候, 可以应用于一定的解密算法将这些加密以后的密文再解密为原来可供理解的明文, 双向加密一般应用于隐秘通讯[1]。而单向加密只能对数据信息进行加密, 不能将密文解密。在实际应用中的最典型的例子就是对数据库中的用户信息进行加密, 当用户创建一个新的账号或密码时, 这些信息不是直接保存在数据库中, 而是经过加密以后再保存。这样即使这些信息被泄露, 也不能理解这些信息的真实含义, 因为被泄露的信息是一段不能被解密的密文编码[2]。

3. Hash函数

Hash函数中文“散列函数”, 就是把任意长度的输入通过散列算法, 变换成固定长度的输出, 该输出就是散列值。这种转换是一种压缩映射, 也就是散列值的空间通常远小于输入的空间, 不同的输入可能会散列成相同的输出, 而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

4. MD5算法介绍

4.1 MD5简介

MD5是Message-digest Algorithm 5 (信息-摘要算法) 的缩写, 是Hash函数中运用最广泛的Hash算法, 经MD2、MD3和MD4发展而来。它是把一个任意长度的字节串变换成一定长的大整数。MD5算法是在MD4的基础上增加了/安全-带子0 (safety-belts) 的概念。虽然MD5比MD4稍微慢一些, 但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中, 信息摘要的大小和填充的必要条件与MD4完全相同。由于MD5算法的使用不需要支付任何版权费用, 所以在一般的情况下MD5不失为一种不错的选择。

4.2 MD5算法的特点是:

容易计算:从原数据计算出MD5值很容易。

压缩性:任意长度的数据, 算出的MD5值长度都是固定的。

抗修改性:对原数据进行任何改动, 哪怕只修改1个字节, 所得到的MD5值都有很大区别。

强抗碰撞:想找到两个不同的数据, 使它们具有相同的MD5值, 是非常困难的。

弱抗碰撞:已知原数据和其MD5值, 想找到一个具有相同MD5值的数据 (即伪造数据) 是非常困难的。

根据MD5的特性开发着往往将其用在数字签名软件签署私人密钥前被"压缩"成一种保密的格式 (就是把一个任意长度的字节串变换成一定长的十六进制数字串) 。除了MD5以外, 其中比较有名的还有sha-1、RIPEMD以及Haval等。

5. 对MD5的应用性分析

自2004年8月, 王小云在美国加州圣芭芭拉召开的国际密码大会上首次宣布了她及她的研究小组破译了MD5算法后用MD5做数字签证、电子签名已经不安全了, 但是在普通的应用开发中MD5还是被开发者广为应用的, 虽然随着海量存储技术和分布式计算的发展, 在如今的大数据时代, 可以通过创建名文库组建反向查询库对MD5进行反向查询[3]。只要拥有足够大的反向查询库, 就有可能直接查询出MD5值。但是通过用户和系统对MD5算法作部分修改或辅助改进则能有效加大反向查询的难度。

5.1 多次加密:

进行一次MD5加密后, 可对生成的MD5密码的全部或部分再进行一次或多次加密, 增加在字典中查找找的难度。如md5 (md5 (“weyuhhq”) ) 是对MD5码的全部进行再一次加密;md5 (right (md5 (“weyuhhq”) , 10) ) 是对MD5码的右10位进行再加密。经验证明多次MD5加密是不会影响其时间性能的[4]。

5.2 系统辅助改进:

系统为用户密码加上特殊的前缀或后缀, 增加密码的长度, 避免用户的密码过于简单。同时, 对所加字符串进行定期修改, 即使密码被破解, 也只能得到加长后的密码, 用户的真实密码仍然是安全的。例如原密码为“weyuhhq”, 系统加入前缀后“yhr374a”变为“yhr374aweyuhhq”。经过如此处理之后, 密码被破译的可能性便降低了许多。

5.3 用户主动改进:

用户设置密码时, 使用各种符号、数字和字母进行组合, 加大密码的长度 (至少为8位字符) , 同时对密码进行定期更换, 就可降低被字典数据匹配的概率, 有效降低被破解的概率。

5.4 数据库加“盐 (salt) ”:

利用Hash函数的雪崩效应的特性, 在创建用户密码时, 将用户名与密码连接生成新的密码, 再用MD5进行加密存在数据库中也能增加反向查询的难度[5]。

6. 结束语

本文针对MD5算法进行了介绍及研究, 并从实际应用的角度来讲, MD5算法的实用性是很高的, 理论上任何一种加密算法都会有漏洞与不足之处。我们在不断探索更加有效安全的加密方法的同时, 更应该注重培养用户的安全意识。

参考文献

[1]冯登国, 裴定一.密码学导引[M].科学出版社, 2003

[2]施卫峰, 周俊, 等.多用户信息系统中数据安全性控制及其实现[J].微机发展, 2003

[3]林蔚.MD5安全性分析[D].北京邮电大学, 2009

[4]窦立莉.MD5技术解析及改进措施[J].信息科技, 2010

MD算法 篇6

目前网络安全越来越受到重视,银行和各种大型电子商务网站都采用了提供免费的动态口令令牌或动态口令卡来加强网络身份认证系统的安全性。但对于中小型的电子商务网站来讲,提供硬件的动态口令令牌来加强安全性成本太高,显然是不现实的。开发一种简单易行的软件实现动态口令技术的方法能解决中小型电子商务网站的燃眉之急。动态口令技术的软件实现无需购买任何硬件,只需一次编程就可解决所有问题。

1 动态口令技术的基本原理

动态口令又称为一次性口令OTP(One- Time-Password) ,其特点是:用户根据服务商提供的动态口令令牌的显示数字来输入动态口令,而且每个登录服务器的口令只使用一次,窃听者无法用窃听到的登录口令来做下一次登录,同时利用单向散列函数(如 MD5算法等)的不可逆性,防止窃听者从窃听到的登录口令推出下一次登录口令。

选取动态口令认证这种方案的商用系统采用的是静态密码与令牌相结合的方式进行身份鉴别。这种方式在检查用户静态密码(知道什么) 的同时,验证用户是否持有正确的令牌(拥有什么) 。令牌常用的有两种方式,一种是基于时间同步机制, 另一种是基于挑战应答机制。采用时间同步机制的令牌, 每分钟会提供给用户一个不同的口令, 与验证方同步获得验证,本例实现的动态口令也是基于时间同步机制的。

2 动态口令的软件实现过程

2.1 客户端动态口令的产生

动态口令的产生和验证过程如图1所示。为了方便描述, 对图中采用的符号做如下定义:A为用户;S为认证服务器; IDA为A的标识;KA1为用户密钥1; KA2为用户密钥2;PA为动态口令;T为时钟计时器。

客户端软件(即相当于硬件实现中的动态口令令牌)保存有用户密钥和用户ID 号,软件中的时钟计数器T 每隔60秒自动用密钥KA1和KA2同时加密用户ID和当前时间 t(精确到分钟),然后我们用MD5算法对加密结果进行单向散列加密(即第二层加密),产生两个等长的32位十六进制摘要。最后我们把两个摘要分别分割为8块,进行异或运算并取每块最右边位得到最终的8位动态口令。

2.2 动态口令的验证

验证服务器收到用户输入的用户ID、静态密码和动态口令后,先验证用户ID和静态密码是否正确。如正确则在数据库中读出该用户的密钥KA1和KA2。这两个密钥在发布动态口令客户端软件时应该已确定,并存放在验证服务器端数据库内。使用密钥KA1和KA2对用户ID和当前时间t进行同客户端相同的处理,最终产生验证服务器端的动态口令,并与客户端产生的动态口令进行比较,一致则通过验证。

3 主要关键技术解决和实施效果

3.1 时间的同步问题

基于时间同步机制的动态口令系统一般每60秒产生一个新口令。如果用类似动态口令令牌的硬件实现方法,由于其同步的基础是国际标准时间,故对令牌的晶振频率有严格的要求,以降低系统失去同步的几率。但随着时间的流逝,误差总是会出现的,当服务器和令牌的时间偏移超过一定值时,则系统验证会出错。而用软件实现动态技术则没有这方面的问题,只要定期通过校时网站(如:time.windows.com等)校准一下服务器和客户端的系统时间即可解决同步的问题。

3.2 主要加密过程

用密钥KA1和KA2对用户ID和当前时间t进行第一层加密,其部分VB代码如下:

For I = 1 To Len(strSource)

′从待加(解)密字符串中取出一个字符

strChar1 = Mid(strSource, I, 1)

′取字符的低字节和Key1进行异或运算

bLowData = AscB(MidB(strChar1, 1, 1)) Xor Key1

′取字符的高字节和Key2进行异或运算

bHigData = AscB(MidB(strChar1, 2, 1)) Xor Key2

′将运算后的数据合成新的字符

strString = strString & ChrB(bLowData) & ChrB(bHigData)

Next I

For K = 1 To Len(strString)

strChar2 = Mid(strString, K, 1)

strEncrypt = strEncrypt & AscB(strChar2)

Next K

第二层加密使用MD5加密算法,由于MD5算法的理论不可逆性决定了破坏者无法根据密文推出明文,这样保证了动态口令的安全性。 此外MD5加密算法把任意长度(小于2的64次方Bit)的信息通过加密产生128位信息摘要(固定位数),而动态口令的位数也是固定的(一般为6位或8位),故MD5算法很适合应用在动态口令技术的实现中。

3.3 实施步骤和效果

(1) 新客户在网站上先注册会员,并要求提供动态口令服务。

(2) 网站产生两个随机数作为密钥KA1和KA2(如12,25)并存放于数据库客户登录信息表中。

(3) 网站根据该用户ID和其相应的密钥KA1和KA2生成一个可执行文件(EXE文件),并发放给该客户。当客户登录网站时,必须先运行该文件得到该时段(精确到分钟)的动态口令。客户端文件运行效果如图2所示。

(4) 客户在网站输入用户ID、静态密码和动态口令后,如果正确即登录成功。

3.4 碰撞问题

不同的明文如果经过加密后密文是一样的, 则我们称这种现象为碰撞。由于动态口令位数固定,所以碰撞是在所难免的。本程序实际应用中动态口令每分钟变一次,在测试中为了提高效率,我们让动态口令每秒变一次,其碰撞数据如表1所示。

从上面的数据我们可以看到:动态口令软件连续运行11天可能会出现一次碰撞(即出现一次相同的动态口令),连续运行53天则大约出现29次碰撞,连续运行半年则会出现大约350次碰撞,总体碰撞率不高,而且实际应用中我们只是在需要登录时才会运行一下客户端文件并得到该时刻的动态口令,得到动态口令后即关闭程序,而不会连续运行程序。

4 结 论

本文阐述了用双密钥和MD5算法对用户ID和当前时间进行两层加密,从而产生动态口令的编程技术。该方法在保持硬件实现动态口令优点的同时,提出了用软件实现动态口令技术的整套方案。本方案已经成功应用于温州医学院计算机实验室的计算机专业学生身份认证系统,结果表明本方案完全能够满足一般性认证系统的需要,而且可以直接在现有基础上开发,无需任何额外的硬件成本。本方案也非常适用于各类中小型商务网站的身份认证系统。

摘要:描述动态口令技术的基本原理,研究一种基于MD5加密算法的动态口令技术的软件实现方法,并通过实例演示了该方法的实际效果。对于开发各类电子商务网站的动态口令技术可以提供一定的帮助。

关键词:动态口令技术,MD5算法,加密

参考文献

[1]吴佩萱.基于时间同步机制的动态密码认证系统[J].长江大学学报:自然版,2005,2(7):256-257.

[2]李传目.一次性口令技术的研究[J].集美大学学报:自然科学版,2003,8(2):160-163.

[3]胡天麟,刘嘉勇,陈芳,等.基于MD5的OTP认证系统的原理及实现[J].信息技术,2005(9):140-142.

MD算法 篇7

随着网络和计算机技术的飞速发展,远距离信息传输变得越来越简单,从而促使社会各个领域的工作方式呈现多样性。比如在医学领域,远程的专家会诊是近几年发展起来的一项特殊业务。该业务既提高了一些中小城市医疗技术水平更节省了专家会诊的时间成本和交通成本。专家在远程诊断时,病人的病理图片(比如X光片等)对诊断结果起到至关重要的作用,所以对病理图片的要求就非常高,往往需要图片非常精细,同时又必须保证图像在传输过程中的完整性,不能出现哪怕一个像素的差错或者被恶意篡改。另外病理图片涉及到很多的隐私,所以必须对图片进行一定的安全加密。本文就是从这个角度出发,利用当前非常流行的Hash函数——MD5,设计了一种加密算法,它既解决了图像传输过程中的恶意篡改和传输差错问题,同时利用图像位加密技术,将图像本身的MD5值作为加密的周期序列,采用独特的加密方法对图像进行合理有序的加密,从而达到图像安全传输的目的。此算法易实现、运算量小、应用多样、效果好,在实现验证图像完整性功能的同时,解决了图像安全性的问题。

1 Hash函数以及MD5算法

密码学Hash函数能够用于数据完整性和消息认证,其基本思想是把Hash函数值看成输入的消息摘要,当输入中的任何一个二进制位发生变化时都将引起Hash函数值的变化。Hash函数能够接受任意长的消息为输入,并产生固定长的输出,产生的Hash值可以看成是文件、消息和其他数据块的“指纹”,它满足用于消息认证的密码学性质。它具有单向性、抗弱碰撞以及抗强碰撞等特性。因此Hash函数可以用于消息或文件的完整性检验[1,2]。

典型的Hash函数有MD4、MD5以及SHA-1等,尤其是MD5的应用最为广泛。MD5的全称是Message-Digest Algorithm 5(信息—摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L.Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。它可以利用一个随机的消息输入(比如一幅数字图像)产生一个128位的信息摘要。不同的文件,则会得到不同的128位信息摘要输出。因此MD5的典型应用是对一段信息产生信息摘要,以防止被篡改[3,4]。

2 基于MD5值的数字图像加密算法

2.1 位加密技术在图像加密中的应用

图像加密就是对图像进行某种变换,使得变换后的图像与原始图像存在颜色、亮度或轮廓等定性或定量的视觉差异。位运算加密图像的思想就是利用某种方法得到一系列的随机或伪随机的以字节为单位的数据,然后把他们和一幅图像的数据逐字节进行特定的位运算,以改变原有图像的数据信息。因为加密之后的图像必须能在接收端被正确地解密,因此,这种位运算必须具有可逆性,本文所采用的位运算是异或运算。位运算加密方法主要有两种,一种是采用流密码加密,另外一种是采用分组密码加密。本文采用的是分组加密方法,该方法利用图像本身得到的128位信息摘要,将明文分成长度为128位的分组,进行异或运算,得到密文。假设A为明文的一个分组,B为信息摘要,C为密文,则C=A XOR B。根据异或运算的特点,将C异或B,就可以得到A,这样就完成了密文解密操作[5,6,7]。

2.2 加密算法和编程实现

2.2.1 加密算法的操作步骤

1) 根据MD5算法计算得到待加密数字图像的MD5值,转换为128位的二进制序列;

2) 利用MATLAB工具读入该数字图片,存储为矩阵;

3) 根据一定的像素分块顺序,以16个像素为分块,与MD5序列进行异或运算,得到一个经过加密处理的矩阵,并存储为加密后的图片;

4) 根据加密效果和应用需要决定是否进行第二次加密,如果需要,则计算第一次加密之后的图片的MD5值,重复步骤2)和3)并且可根据需要,进行第三、第四次加密。如果不需要,结束整个过程。

该算法的流程图如图1所示。

该算法的特点之一就是可以根据图像加密效果的需要进行多次加密,一般情况下四次以内加密完全可以满足实际应用的需求。由于加密序列存在周期性,怎样对图像矩阵B进行分块将会影响最终的加密效果。因此为了提高加密效果,本算法针对每次加密过程采取不同的像素分块顺序。第一次加密采取行像素从左到右,列像素从上到下的顺序,先行后列,如图2(a)所示,第二次加密采取行像素从右到左,列像素从上到下的顺序,先行后列,如图2(b)所示,第三次加密采取行像素从左到右,列像素从下到上,先行后列,如图2(c)所示,第四次加密采取行像素从右到左,列像素从下到上,先行后列,如图2(d)所示。

2.2.2 加密算法编程实现方法和核心编程

本算法采用了在图像处理领域被广泛采用的强大的编程语言MATLAB来进行算法的编程实现和验证。该工具具有强大的矩阵数据分析和处理能力。根据2.2.1介绍的加密算法操作步骤,我们很容易利用MATLAB工具进行编程实现,核心编程以及关键语句注释如下所示:

[m1,m2]=size(Img_A); %Img_A为待加密的图像矩阵

count=1;

For i=m1:-1:1 %m1和m2的循环方式决定了四

For j=m2:-1:1 %种不同的像素块加密顺序

If count==17

count=1;

Img_A(i,j)=bin2dec(num2str([xor…

(bitget(Img_A(i,j),8:-1:1),…

code_seq(8*(count-1)+1:8*count))]));

%code_seq为128位该图像的MD5值

Else

Img_A(i,j)=bin2dec(num2str([xor(bitget…

(Img_A(i,j),8:-1:1),code_seq…

(8*(count-1)+1:8*count))]));

End

count=count+1;

End

End

2.3 解密算法和编程实现

解密算法的操作步骤和加密的操作步骤基本一致,是一个逆向的操作过程,其操作步骤如下:

1) 将得到的加密图像利用MATLAB工具读入,存储为矩阵;

2) 将已知的128位MD5值序列与图像矩阵按已知的像素分块顺序,以16个像素为分块进行异或运算,得到第一次解密后的图像;

3) 计算该解密图像MD5值,判断该图像是否经过篡改,如果是,终止操作,如果不是进入第4个步骤;

4) 根据已知的加密次数,重复1)到3)步骤进行2次、3次、4次解密操作。

该算法的流程图如图3所示。

解密算法的核心编程与加密过程基本一致,在此不再赘述。也正是由于这个特点,使得该算法的优势更加突出。

2.4 算法应用和效果分析

2.4.1 算法应用

以一张腿部X光图片为例,如图4所示,图中可以看出小腿部有明显的骨折现象,假设对该图进行加密,依据本文加密算法,操作步骤如下:

1) 计算图片文件gz.bmp(275×300)的MD5值为fbdcfa1df95e5e701fc395c296e8bb1e,转换成128位二进制序列为:111110111101110011111010000111011111100101011110010111100

111000000011111110000111001010111000010100101101110100010

11101100011110。

2) 读入该图片文件,得到图像矩阵A。

3) 第一次加密,采取图2(a)所示的矩阵分块顺序,以16个像素为单位,与MD5序列进行异或运算,得到图像矩阵B,并存储为图片gz1.bmp,加密效果如图5所示。从中可以看出,图像的大多数细节信息已经被隐藏,但是还能看出图像的大致轮廓。因此,如果我们仅仅是出于隐藏图像细节的角度出发,这种加密已经符合要求。但是,如果我们要完成图像绝大多数信息的隐藏,显然这种效果还不能满足要求,需要进一步的加密。

4) 计算gz1.bmp(275×300)的MD5值为401cebee9d23a1a73d4afa938842ac71,转换成128位二进制序列为:01000000000111001110101111101110100111010010001110100001101001110011110101001010111110101001001110001000010000101010110001110001。

5) 重复2)和3)操作,但是矩阵的分块顺序采用图2(b)示,得到图像C,并存储为图片gz2.bmp,加密效果如图6所示,从中可以看出,加密效果大大改善,图像的绝大多数信息被隐藏,而且由于采取不同的矩阵分块顺序,有效避免序列周期性带来的影响。

6) 同理进行第三次加密,计算gz2.bmp(275×300)的MD5值为735bf4f20fbbba77aa21a5916f59b57,转换成128位二进制序列为:01110011010110111111010011110010000011111011101110111010011101111010101000100001101001011001000101101111010110011011010101110000,改变像素分块顺序如图2(c)所示,得到图像D,并存储为图片gz3.bmp,加密效果如图7所示,从图中可以看出,三次加密之后相比较二次加密的效果提成并不明显,这是由于序列长度受限所致,针对有些图片会出现这种情况。

7) 同理进行最后一次加密,计算gz3.bmp(275×300)的MD5值为d1dcec689c9f11328873 4ec84147e183,转换成128位二进制序列为:11010001110111001110110001101000100111001001111100010001001100101000100001110011010011101100100001000001010001111110000110000011,改变像素分块顺序如图2(d)所示,得到图像E,并存储为图片gz4.bmp,加密效果如图8所示。

2.4.2 算法应用效果分析

分析2.4.1的算法应用效果,可以看到该加密算法能有效地对图像的信息进行加密,虽然一次加密的效果不甚理想,但是能把大多数的细节信息隐藏起来,在某些应用场合,加密一次就足够了。如果要取得更加理想的加密效果,可以选择经过二次、三次、甚至四次加密处理。在四次加密处理之后,可以发现图像的加密效果基本上符合绝大多数场合的需求,它能把原图像的绝大多数信息都隐藏起来。因此,在实际应用过程中可以根据需求选择算法的加密次数,使得该算法的应用更加灵活。另外,解密的过程与加密过程是一个逆向的操作。如果图像在传送过程中出现了哪怕一个像素的修改,即使拥有合法正确的密钥,计算解密出来的图片的MD5值将完全不同。以图8为例,第四次加密之后,图像的第一个像素原值为48,将其随意修改成111,由于仅仅一个像素值的修改,对用户而言看到的图像将不会有差别,然而解密之后计算其MD5值则变成62146a5142fe4e69174d55f0ea62f45c。比较原先解密一次后的MD5值d1dcec689c9f113288734ec84147e183,已经面目全非,由此可以判断接收到的经过加密的图像已经被篡改或者产生了传输误码,是一幅不安全的图像。因此通过此方法,可以有效防止图像传输过程中的篡改或者传输误码造成的影响,保证图像能精确地远距离传输,保证图像传输的正确,可靠和安全。

3 结束语

根据上述分析,该算法采用MD5这一经典的Hash函数算法,利用它所具有的强大数据完整性验证特点,结合图像自身的随机性对图像进行有效的安全加密,相比较其它的图像安全加密算法具有运算量小,应用灵活,特别是该算法既完成了图像加密又实现了验证图像完整性功能。该算法可以适用于绝大多数的应用场合,尤其在医学应用领域,更为突出,它既解决了图像安全性的问题,又能有效防止图像在传输过程中的恶意修改和传输差错,并且多次加密的操作给应用者带来很大的灵活性。实验表明,该算法完全符合实际的应用需求,具有一定的应用价值。由该算法的分析可知,以后完全可以在此基础上采用其它的诸如SHA-1等不同的HASH函数,来进一步改进算法,使得该算法能更加灵活地根据不同的需求,运用到实际的应用场合。

参考文献

[1]王张宜,李波,张焕国.Hash函数的安全性研究[J].计算机工程与应用,2005(12):18-19,197.

[2]苏桂平,刘争春,吕述望.Hash函数在信息安全中随机序列发生器中的应用[J].计算机工程与应用,2005(11):115-116,192.

[3]MD5.http://baike.baidu.com/view/7636.htm.

[4]Xiaoyun Wang,Dengguo Feng,Xuejia Lai,et al.Collisions for HashFunctions MD4,MD5.HAVAL-128 and RIPEMD.

[5]单佳佳,朱灿焰.基于位运算的图象加密技术的研究[J].人工智能及识别技术,2007(9):804-805.

[6]邹建成,齐东旭,熊昌镇.基于面包师变换的数字图象加密[J].北方工业大学学报,2003,15(1):6-10.

MD算法 篇8

OFDM调制也称正交频分复用调制,将经过QAM调制映射得到的基带信号在频域映射到多个相互正交的子载波上,然后通过反向傅里叶变换变换到时域,再经过低通滤波和上变频等处理从天线发射[1]。为了克服反射波的干扰以及来自多个发射机的多波效应,将每一个OFDM符号的最后一段数据复制到符号的前面形成循环前缀,以防止由于多径反射等造成第N-1个符号与第N个符号之间符号间干扰(Inter-Symbol Interference,ISI),即形成保护间隔(GI)。

由于GI是每个OFDM符号最后L个采样的拷贝,所以每个OFDM符号的最后L个采样和GI有相同的幅度和相位偏移,而OFDM符号的其他部分都是相互独立的,GI和OFDM符号最后L长的部分的相关具有一个很强的峰值。本文即基于OFDM符号的结构特性提出了一种基于下采样的模式和GI长度检测算法,降低了硬件复杂度,便于FPGA实现。

1 模式检测原理

1.1 OFDM符号结构

DVB-T标准中,一个OFDM符号由有效数据和保护间隔两部分组成[1],如图1所示。

传输模式:2K和8K。

保护间隔:1/4,1/8,1/16,1/32。

N:与传输模式有关,2K模式下为2 048,8K模式下为8 192。

Q:与保护间隔有关,4种GI下的Q分别为4,8,16,32。

模式检测即是对传输模式和GI的检测,根据不同的传输模式和GI,共有8种组合,如表1所示。

1.2 模式检测基本算法

GI和OFDM有效数据中的对应部分有极强的相关性,因此可以对表1中所示的8种组合分别计算相关值,8种结果Y0,Y1,…,Y7中最大值所对应的组合即为检测结果。

接收到的数据中GI的位置是不确定的,所以对于每种模式组合,必须把所有的(N+L)个可能位置都考虑进去,每个位置需要L个相关值的累加,(N+L)个累加相关值中的最大值除以L归一化[2]后即为该模式下的检测结果。其检测公式如下,其中,r(k)×r*(k+N)表示相隔N的两个数据的相关值。

所以,2 K/GI32模式的检测公式为

其余7种模式依此类推。显然,此公式的硬件复杂度高,必须对其加以改进。

1.3 下采样模式检测算法

由式(1)知,累加的相关值要进行归一化处理,即GI长度归一化,此过程可以通过下采样来近似实现。对于不同模式组合,都从中平均抽取相同个数的相关值累加[3],再进行比较。此即为下采样检测算法的基本思想。

设从每个GI中抽取a个相关值,即对整个数据作L/a倍的下采样,相应的GI的位置也要减少[4]。因此,式(1)可修改为

例如a取16,那么2 K/GI32模式对应的相关检测值为

其余7种模式的相关检测值依此类推。

2 硬件电路实现

2.1 硬件实现框图

根据算法原理,8种组合的相关值检测可以并行执行,也可以串行执行。本设计中采用并行执行方式,即对输入的OFDM符号数据一次计算出8种组合的相关峰值,然后进行比较,最大相关峰值对应的组合即为检测结果。

实现框图如图2所示,以a=16为例,即每个GI位置抽取16个相关值进行累加,按2 K/GI32模式计算,即对输入数据进行4倍下采样。

2.2 具体实现步骤

根据上述所选的方案,具体实现步骤如下:

1)4倍下采样

以2 K传输模式下4种GI为例,当a=16时,分别要对数据进行4倍、8倍、16倍、32倍下采样,因此以最小间隔为准,即对输入数据作4倍下采样,得到所有参与运算的相关值。

2)RAM存储

根据相关值定义,r(k)×r*(k+N)为相隔N(2 K模式为2 048,8 K模式为8 192)的两个数据作共轭复数运算。因此RAM将第一个OFDM数据进行存储,下一个OFDM符号到来时与从RAM中读出的相应数据作相关运算。然后各种模式从步骤(1)得到的下采样数据中选择各自所需要的相关值进行累加,同时比较所有GI位置的相关累加值,最后得到的最大值即为该模式下的结果值,即mode0,mode1,…,mode7值。

3)相关峰值比较

8个检测值计算出来后,可以先比较2 K传输模式下4种GI对应的值,最大值所对的GI即为2 K模式下的GI检测值;同理得到8 K模式下的最大值及GI检测值;然后将2 K和8 K的最大值比较,判断传输模式,取对应的GI即可。

2.3 整体时序

MD模块整体时序设计图如图3所示。

从数据输入到检测结果输出,需要经过2(8 192+8 192/4)个有效数据。MD_END为检测结果标志,表示此处得到有效的MD_TRANS_MODE和MD_GI检测结果。

2.4 改进方案

针对计算精度和硬件复杂度,考虑有如下改进方案:

1)上述实现方式只进行了两个OFDM符号的下采样相关运算,运算精度与初始算法相比会有所下降,因此,可以做多个OFDM符号的相关值累加后再做最大值比较运算。

2)本设计中采用全并行实现方式,所占硬件资源比较大,可以采用半并行方式,进行资源和时间的折中处理,即先进行2 K模式的4种GI相关累加值的计算,然后进行8 K模式4种GI相关累加值的计算,得到各自模式下的最大相关值及其对应的GI,最后将这两个相关值进行最大值比较。在半并行方式下,两个阶段(2K和8K)只有下采样的倍率不同,相关值的选取及累加过程可以资源共享。

2.5 仿真验证

本设计采用Verilog HDL语言描述,为了配合RTL的测试,用C编写了对应的MD算法的验证程序,然后利用NC Verilog及Debussy分别进行仿真和波形观测,仿真结果表明,MD模块模式检测功能正确。

本设计的所有模块都是在Synplify Premier 8.8,ISE9.2及Xilinx FPGA XC5VLX220芯片上实现的。

3 结束语

本文提出一种下采样算法来近似相关峰值检测中GI长度相关值累加及归一化处理,其FPGA实现在DVB-T系统中进行仿真验证并集成,仿真结果表明下采样算法检测结果正确,减少了硬件复杂度,节约了资源,并且FPGA实现满足时序、面积要求。

摘要:DVB-T是基于OFDM技术的欧洲地面数字电视标准。在DVB-T中,有2K和8K两种传输模式以及1/32,1/16,1/8和1/4等4种保护间隔分数值,总共有8种组合模式。在接收机上电后开始工作时,必须首先进行模式检测,得出系统所采用的传输模式和保护间隔分数值。提出了一种基于下采样的传输模式和GI分数值检测算法,并用FPGA实现。

关键词:模式检测,DVB-T,OFDM,下采样,FPAG

参考文献

[1]黄秋芳.DVB-T标准与DVB-T标准技术分析的广播电视信息,2009(8):67-69.

[2]TSUE Yih-Ming,Hsinchu.Mode detection for ofdm signals:USA,U S2004/0240379A1[P].2003-05-29.

[3]解玉芳,郭里婷.DVB-T与地面数字电视国标信道估计算法分析[J].电视技术,2010,34(7):20-22.

MD算法 篇9

研究并实现一个功能强大全面的档案管理系统,让该系统既可以满足档案管理的需求,提升工作效率,并且可以为其他需要的单位部门提供必要的数据信息,从而能够促进整个社会的信息化产业建设。

1 国内外研究现状

二十世纪七十年代的中期,我们国家着手引进国外一些具有处理解决档案馆单一业务能力的系统,并对软件系统进行了研究和分析,根据我们国家档案馆的实际应用情况,进行改善并应用。虽然我们的档案馆开始进入了自动化管理的时代,但是,我们没有自己独立的产权,不管是系统方面还是在设备方面,我们都受到了国外产权的制约。为了能摆脱这种依赖,我们国家从八十年代中期就开始重视自助研究,在这个时期,我们档案馆自动管理系统蓬勃发展,出现了很多小型的信息检索系统,采录业务功能也渐渐进入了计算机信息化管理[2]。

我们虽然只是仅仅对某些方面的业务进行了研究,但是我们也改变了档案馆管理系统的传统管理模式,我们也在不断探索新的服务方式。但是,在此时期内我们也有一些问题存在,其中最主要的是我们对系统的统一协调性做的不到位。因此,在一段很长的时间内,自动化管理技术的应用局限于单机版和局域网内的应用情况内。单机版用户占了系统应用的绝大多数,单机版系统的功能不够强大而且太过单一,其所应用的范围还是比较小,不能得到很好的普及。针对这一系列的问题,在以后的研发过程中,档案馆管理系统开始向有广度和有深度等方面共同发展,考虑一切以人为本,计算机相辅,从以往只是针对某一单一的操作任务向多任务方面考虑,开始渐渐将单一的采录系统业务、编目业务、检索业务等卓步一一整合在一起,形成一个成体系的系统,在系统功能的实现上有了很大的进步,可操作性变得更加强大。

在网络化开始发达的九十年代,档案馆管理朝着数字化信息服务体系方向发展起来,开发者开始采用基于C/S模式的二层结构来开发集成系统,这意味着功能更加完备的档案馆管理系统开始成为商品并流通。到了九十年代末期,国内的一些较有实力的系统集成开发公司敏锐地察觉到国外自动化技术的发展形势和趋势,也开始发展多层C/S体系结构。这种体系结构选用了在多个不同的硬件平台分散处理大量的事物的方式,这样可以让自动化系统进行灵活的配置和高效的运行起来。不过,这种体系结构有它的缺点,系统架构复杂程度较高,运用维护的费用更是不菲,这些缺点对于它的普及和推广带来了一定的难度。也正因为此种原因,国内大部分档案馆管理系统开发商并不都是采用此种技术。现阶段,为继续不断提高档案馆管理自动化的研发周期,使自动化系统的应用水平进一步提高,越来越多的先进的计算机信息化技术被应用到档案管理系统的开发中,因此,形成了集服务,应用,教学,研究,二次开发为一体的综合性的档案自动化管理系统[3]。

国外的发展较国内早,从七十年代开始,许多国外的档案管理系统的软件开发公司在大量的实践开发中不断积累经验, 在此基础上,公司提高了对软件的要求,并开始对软件进行升级和更新。特别是到了七十年代中期,随着计算机技术的不断发展,美国一些比较著名的大学高校的档案馆开始有了自己的专用的计算机。因此,这时候开始使用计算机来管理档案馆的工作,但这也仅仅只是限于对档案馆个别业务的操作实现。这个时期的软件并没有实现人们期望的比较完善的,达到开发期望要求的档案管理软件,只有少数一些有实力的大的高校的档案馆开始有远见的研发系统管理软件,但这也只是限于满足自身的一些实际需要。到了八十年代末,计算机应用普及应用到各个档案馆,人们开始希望可以用计算机来代替管理员繁琐的工作,进而解放管理员繁重的劳动量,至此,基于人们的迫切愿望,人们开始有计划和目的的设计和研发一些集成多个业务处理能力的自动化的档案管理系统,软件的功能变得越来越强大,稳定性越来越好,从此开始了自动化系统走上了集成化和商品化的道路。发展至九十年代,科技水平的发展带动了网络技术的发展与壮大,国外档案馆自动化研发开始进入了一个更加崭新的阶段,一些新的计算机技术被开发并应用到档案管理中,具有大型管理能力的档案管理系统不断地被设计和开发[4]。

现在是飞速发展的信息产业化时代,科技创新为我们带来了许多先进的新兴技术,我们将这些技术应用到了档案管理系统的自动化发展中,系统也随着不断地改进,日趋完善,性能稳定,功能强大,使用起来更加的方便快捷。

2 系统开发相关技术

J2EE多层结构的面世将面向对象开发技术推向了一个新的高点。SSH集成框架可以支持多种主机类型、多操作系统、多数据库,并且开发生生成的组件代码及页面完全符合J2EE的开发标准,开发人员开发出更加强大而又有特色的应用系统。

系统的用户认证模块将采用MD5(Message-Diggest Algo-rithm 5)加密认证的方法。用户的身份认证是我们国家乃至整个世界信息安全标准的主要考核指标之一,用户的身份认证是我们来衡量系统安全的一个重要指标之一,现在我们的网络发展迅速而且庞大,人数众多,信息繁杂,对于档案的安全保障显得尤为重要。这是一种有效防止信息泄露、越权攻击、假冒身份、侵犯侵权等安全威胁的有效方法之一,可以最大程度的保护系统的安全和档案信息的完整。

MD5算法的原理是把任意的数字组合经过一系列的运算,最后变成一串128位的二进制数字。首先我们要对数字进行填充,使整体字节数变为nx512,其中n是一个正整数。首先对数据填充,在数据的后面填上一个1和无数个0,当满足填充的长度变为nx512—64,最后的64位二进制数是用来表示填充以前数字的长度的。

算法的执行分为以下几个步骤:

第一步,补位:

MD5首先要做的是对输入的字节串进行补位,使得字节串的数据长度对64求余的结果是56.将数据长度扩展至LEN=K*64+56个字节,其中K为整数。进行补位的方法:补一个1,然后补0至满足上述要求。相当于补一个0x80的字节,再补充值为0的字节。这一步里总共补充的字节数为0~63个。

第二步,附加数据长度:

我们用一个64位的整数来表示数据的原始长度,这里用bit作为单位,将字符串数字的8个字节按照低位在前,高位在后的顺序附加在补位的数据后面。这是的数据长度变为: LEN = K*64+56+8=(K+1)*64 Bytes 。

第三步,初始化MD5参数:

这里有四个32位整数变量(ABCD),四个变量用来计算信息摘要,每一个变量都被初始化成以下十六进制表示的数值,其中低位的字节在前面。如下所示:

A:01 23 45 67

B:89 ab cd ef

C:fe dc ba 98

D:76 54 32 10

第四步,定义四个MD5基本的按位操作函数:

其中X , Y , Z为32位整数。

F(X,Y,Z)=(X and Y)or(not(X)and Z)

G(X,Y,Z)=(X and Z)or(Y and not(Z))

H(X,Y,Z)=X xor Y xor Z

I(X,Y,Z)=Y xor(X or not(Z))

再定义四个分别用于四轮变换的函数。

设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:

FF(a,b,c,d,Mj,s,ti) 表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)

GG(a,b,c,d,Mj,s,ti) 表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s) HH(a,b,c,d,Mj,s,ti)a=b+((a+(H(b,c,d)+Mj+ti)<<<s)

HH(a,b,c,d,Mj,s,ti) 表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)

II(a,b,c,d,Mj,s,ti) 表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)

第五步,对输入数据作变换。

这一步进行数据的处理,N是总的字节数,以64个字节为一组,每组作一次循环,每次循环进行四轮操作[5]。

3 总结

与传统档案管理系统相比,此系统有以下优越性:1可以给档案馆管理员留言,留言内容包含需要咨询的问题和意见。它能帮助档案管理员及时发现问题并加以解决,极大的提高工作效率。也充分发挥人员自觉性和互动性,激发用户参加档案馆建设的积极性。2本系统提供的服务多样化,不仅包括借还书服务、浏览新闻服务,还有公布档案借阅排行,让读者查看有哪些书更受欢迎。档案推荐服务,推荐各专业比较优秀的档案供读者参考。3档案的检索方式很灵活,可以模糊查找,专业查找,领域查找,精确查找,方便用户的使用。4由于使用的是流行的通用架构SSH,这样为系统扩展带来很大方便。

摘要:随着国家对信息化发展和文化教育的日益重视,档案管理系统正变得越来越普及。与此同时,伴随着档案量和用户量的不断增加,档案管理系统也向着更加自动化和人性化的方向发展。为了使系统更加符合安全标准,系统将采用MD5加密算法对用户身份进行有效认证。

关键词:信息化,MD5,档案

参考文献

[1]Ren Yong-chang,Liu Zhong-jing,Xing Tao et al.Research onStructure and Functionality of Books Management System Inte-grated Platform Based on MVC[J].Information Management,In-novation Management and Industrial Engineering(ICIII).2011,(3):177-180.

[2]Chen Yidong.The System of Physical Experiment Manage-ment System Basedon Web.http://d.wanfangdata.com.cn/Periodi-cal_dnxx200403014.aspx,2005.6.

[3]Gao Tianying.Books Management System Based on WEB.http://lib.cqvip.com/qk/83730X/201103/37805226.html,2011.3.

[4]comp.object.Model View Controller.http://ootips.org/mvc-pattern.html,1998.

上一篇:强化医院财务管理研究下一篇:区域科技创新政策