信息加密算法(精选11篇)
信息加密算法 篇1
1 GPU流式编程模型
现代的图形处理器,在计算历史上第一次把数据并行、流式计算放入几乎每台台式计算机和笔记本电脑中。最近的一些研究表明,这些流式处理器有能力加速范围很广的应用程序,而不仅仅局限于实时渲染。CPU的编程模型是,程序员可以访问存储器的任何位置,而GPU的流式处理器的编程模型与前者完全不同。在GPU的流式编程模型中,对数据流的连续操作便是程序,当对一个流处理器编程时,其以更加结构化的方式访问存储器。
图形处理器在现代显卡中的地位相当于CPU在主板上的地位,是显卡中非常重要的一部分,它主要负责加速图形的处理。GPU与CPU的不同之处在于:前者是一种针对图形处理的专用处理器,其特点就是:芯片上大部分的面积都为算术逻辑单元所占据,控制部件比较少,片内Cache也很少。GPU的专用性也就决定了它的快速计算性能。因而,GPU的设计使得更多的晶体管用于数据的处理,而非数据缓存和流控制。
在流式编程模型中,数据的表现形式是流,而流的定义是数据的有序集,它们具有相同数据类型,而数据类型是多样的,可以是简单的,比如:整数、浮点数,还可以是复杂的,比如:点、三角形、变换矩阵。流的长度可以是任意的,如果流很长(流中有上百或更多的元素),那么流上的操作并行度将会很高。流上允许的操作包括复制、导出子流、用一个单独的索引流对其索引,以及用核在流上执行计算。GPU程序称为核,输入一个或多个流,输出一个或多个元素。由于在一个流元素上的计算不会影响其他元素的计算,所以就保证了这种数据的并行性。
高效计算是流式编程模型的主要目标之一。正是由于这种模型所给予的数据并行性,才使得GPU的处理速度能比串行处理器快很多。流利用应用程序中的并行性,核操作整个流,流元素可以用数据并行性并行地处理。有很多元素的长流使数据级的并行性有很高的效率。在处理一个元素时,可以利用指令级并行性。而且因为应用程序由多个核构建而来,多个核可以用任务级并行性进行深度流水线处理和并行处理。最后,在核执行时只有一个简单的控制流程(比如在各个输入元素上数据并行地用一个函数求值),允许硬件实现把大多数晶体管用于数据通路硬件而不是控制硬件。
高效通信也是流式编程模型的主要目标之一。首先,当整个流(而不是独立元素)转移到内存或从内存转移时,芯片外(全局)通信比较高效,因为初始化转移的固定开销可以分摊到整个流中,而不是单个元素。其次,用核构造应用程序允许核之间的中间结果保存在片上存储器,不需要转移到内存或从内存转移。高效的核试图把它们的输入和中间计算数据保持在局部,即在核的执行单元之内,因此,核执行内部的数据引用不用把数据从芯片外或跨芯片取到数据Cache,如同经常出现在CPU的一样。最后,执行的深度流水浅化允许硬件实现在等数据从全局内存中返回时继续完成有用的工作。这样的高度延迟容忍允许硬件为吞吐量(而不是延迟)实现优化。
2 在GPU上的实现加密算法
把原本应用于CPU的算法移植到GPU上,需要把算法转化为并行执行模式,然后写核(kernel)函数,这个函数将被多个线程独立并行地执行。在CPU的多线程并行处理中,多个线程各自执行不同的任务,允许各个线程函数有所不同。而GPU的多线程并行处理有所不同,同一块中的每个线程都是执行相同的核函数,其并行处理就相当于对一维数组中的所有元素同时执行相同的运算或操作。
根据CUDA的编程模型,开发者有更多的选择和自由,例如,可以选择存储器的类型、线程之间是否共享数据及线程的维数等,但CUDA的实现使GPU很大一部分硬件(比如渲染部分)闲置。在CUDA应用程序中,CPU程序以异步的方式调用GPU核,GPU作为CPU的协处理器提供服务。
典型CUDA应用程序的实现步骤如下:
(1)分配设备上的数据;
(2)把存储在主机上的数据传输到设备;
(3)初始化设备存储器;
(4)确定执行配置;
(5)执行核(必要时重复执行),结果存储在设备存储器上;
(6)把结果从设备上传回主机。
在CPU中进行加密,是串行加密N个块,而GPU则是并行独立地运行数据块的读取、加密、写入操作。如今的GPU拥有高达上百个甚至几百个流处理器,所以,抛开读取内存的开销,GPU加密数据的速率仍将远远高于CPU。
虽然GPU计算非常高效,但也同样存在瓶颈。CPU代码在调用核函数时,要先从内存中读取数据块到流中,加密完后,又要将流写回到内存中。而内存和GPU之间的数据读取是一笔非常大的开销,因而,要优化加密算法在GPU上的实现,就要从整体上减少这部分开销。考察GPU执行的特点可以知道,每次先由线程从内存中读取一个数据块,进行加密后,再返回到内存中。由此可见,每加密一次进行一次内存读写,频繁地存取,使得整体的运行效率比较低。由于程序运行的局部性原理,可以一次将相邻的多个分组读入,从而提高整体效率。虽然在一个块中的线程可以通过小但速度快的共享存储器(16KB)来相互协作,但它的一个主要的限制是,块与块之间缺乏一个安全的合作机制,这就使得某些程序的执行会比较困难且效率相当低。GPU的DRAM和全局存储器并非缓存,访问全局存储器会有相当大的延迟,这就导致了对全局存储器读或写的开销会很大。尽管如此,可以通过精心设计核函数和执行配置来隐藏延迟。
在GPU应用中,主机与设备之间的数据是通过DMA(direct memory access)来传输的,其传输速度会相对较慢,而设备存储器之间的数据传输会更快一些,在NVIDIA GeForce 8800 GTX的设备存储器之间的数据传输速度大约有70Gb/s,而主机与设备之间的数据传输只能达到2-3Gb/s。一般来说,应该最小化主机与设备之间的数据传输,在处理前可以批量传输一批数据。除此之外,由于共享存储器可以划分为更小的bank,数据可以并行存取,通过对共享存储器的并行存取和避免bank冲突优势可以显著提高程序的效率。
CUDA的运行时库给程序员提供了一种具体的barrier函数,即sync threads(),但是这个函数有一定的限制,它只能允许一个块中的线程进行同步。为了实现全局barrier功能,就必须先完成当前的内核,然后启用下一个内核,在目前来讲,开销是非常大的。因此,程序应尽可能地和线程块保持通信和同步局部化。在用GPU处理加密算法时,要先确定任务中的串行部分和并行部分,然后将每个需要并行实现的步骤映射为一个满足CUDA两层并行模型的内核函数。在本文的GPU实现中,数据并行部分通过分配一个线程处理任务的一个数据点,这些线程独立且并行地执行。
3 结语
随着计算机体系架构向多核化方向发展,GPU的可编程性和计算性能的不断提高,传统的算法都需要改写为并行计算方式以适应GPU的编程模式。GPU越来越强大,GPU为显示图像做了优化之外,在计算上己经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此,NVIDIA推出CUDA,让显卡可以用于图像计算以外的目的,也就是超于游戏,使得GPU能够发挥其强大的运算能力。
摘要:随着Internet的广泛应用,人们对信息安全性的需要变得越来越迫切,然而信息安全技术仍然很落后。近几年,由于计算机仿真、计算机游戏等实时需求向图形处理器提出了越来越高的要求,庞大市场对GPU以及相关软硬件的发展产生了强大动力,GPU已得到了进一步的高速发展。
关键词:GPU,加密,信息安全
参考文献
[1]林连冬,马惠珠.基于FPGA技术的RC6改进算法研究[J].电测与仪表,2008.
[2]卢开澄.计算机密码学—计算机网络中的数据保密与安全[M].北京:清华大学出版社,2003.
[3]张浩,李利军,林岚.GPU的通用计算应用研究[J].计算机与数字工程,2005,(12):60-62.
[4]胡修炎.GPU通用计算在CT中的应用[D].硕士论文.北京:首都师范大学,2007.
[5]柳有权,刘学慧,吴恩华.基于GPU带有复杂边界的三维实时流体模拟[J].软件学报,2006,17(3):568-578.
信息加密算法 篇2
摘要:介绍了NESSIE标准中的分组密码算法――Camellia算法的加、解密过程,并对其在各种软、硬件平台上的性能进行了比较,结果表明Camellia算法在各种平台上均有着较高的效率。Camellia算法与其它技术相结合将在信息安全领域产生更广泛的应用。
关键词:NESSIE 分组密码 Camellia 算法 加密
继2000年10月美国推出二十一世纪高级数据加密标准AES后,2003年2月欧洲最新一代的安全标准NESSIE(New European Schemes for Signatures、Integrity and Encryption)出台。NESSIE是欧洲IST(Information Society Technologies)委员会计划的一个项目。Camellia算法以其在各种软件和硬件平台上的高效率这一显著特点成为NESSIE标准中两个128比特分组密码算法之一(另一个为美国的AES算法)。
Camellia算法由NTT和Mitsubishi Electric Corporation联合开发。作为欧洲新一代的加密标准,它具有较强的安全性,能够抵抗差分和线性密码分析等已知的攻击。与AES算法相比,Camellia算法在各种软硬件平台上表现出与之相当的`加密速度。除了在各种软件和硬件平台上的高效性这一显著特点,它的另外一个特点是针对小规模硬件平台的设计。整个算法的硬件执行过程包括加密、解密和密钥扩展三部分,只需占用8.12K 0.18μm COMS工艺ASIC的库门逻辑。这在现有128比特分组密码中是最小的。
1 Camellia算法的组成
Camellia算法支持128比特的分组长度,128、192和256比特的密钥与AES的接口相同。本文以128比特密钥为例对Camellia算法进行详细介绍。
Camellia算法128比特密钥的加、解密过程共有18轮,采用Feistel结构,加、解密过程完全相同,只是子密钥注入顺序相反。而且密钥扩展过程和加、解密过程使用相同的部件。这使得Camellia算法不论是在软件平台还是硬件平台只需更小的规模和更小的存储即可。
(1)Camellia算法所采用的符号列表及其含义
B 8比特向量 W 32比特向量
L 64比特向量 Q 128比特向量
x?n? 比特向量
xL 向量x的左半部分 xR 向量x的右半部分
》< 比特循环左移 || 两个操作数的连接
? 比特的异或操作 x 比特位取补操作
∪ 比特位的或操作 ∩ 比特位的与操作
(2)Camellia算法所采用
基于RSA的无线加密算法研究 篇3
【关键词】无线网络 RSA 加密算法
近年来,计算机及通信科学发展突飞猛进,利用网络交流和处理信息变得越来越普遍。尤其 以无线局域网(WLAN)为代表的无线网络技术得到了高速发展和应用。无线网络作为有线网络的补充和延伸,在与日俱增的网络活动中,人们越来越关注其安全的问题。
一、无线网络的特点和存在的安全问题
(一)无线网络的特点
无线网络具有传统有线网络无法比拟的优点:灵活性,不受线缆的限制,可以随意增加和配置工作站;低成本,无线网络不需要大量的工程布线,同时节省了线路维护的费用;移动性,不受时间、空间的限制,随时随地可以上网;易安装,和有线相比,无线网络的组建、配置、维护都更容易。
(二)无线网络存在的安全问题。
1.影响WLAN的因素。IEEE 802.11的標准规定,WLAN的传输介质是无线电波。因此只要在WLAN信号覆盖范围内,入侵者可以在预期范围以外的地方访问WLAN,通过各种手段入侵WLAN,窃听网络中的数据并且对无线网络进行攻击。 其次,由于WLAN是遵循TCP/IP网络协议的一种计算机网络,所以WLAN内的计算机也会遭受来自计算机网络病毒的威胁,甚至会产生比有线网络更加严重的后果。
2.无线网络的安全问题主要表现。无线网络的安全问题主要在下面几个方面:(1)非法的AP,容易侵入。(2)未经授权使用服务和性能的限制。(3)地址欺骗和会话拦截。(4)流量分析与侦听。(5)高级入侵。基于上述特点,无线网络的通信保密能力需要一种强有效的安全机制来保障。数据加密是通过对信息进行重新编码,达到隐藏信息内容、使非法用户无法获得真实内容的一种技术,其核心就是加密算法。数据加密就是一种保障无线网络通信的有效方法。
二、无线网络的加密算法分析
数据加密的基本过程是,对明文的档或数据按某种算法进行处理,得到不可读的一段代码,通常称为“密文”,只有在输入相对应的密钥之后才能显示出本来内容,通常称“解密”。通过这样的方法来保护数据不被非法人窃取、阅读。无线网络的加密体制,按密钥方式划分,主要有对称式密钥加密和非对称式密钥加密两种。
(一)对称式密钥加密
对称式密钥又称常规密钥,是指加密的收发双方使用相同密钥的密码,且密钥是保密的,不公开,通常称之为“SessionKey”。其加密体制的特点是,收发双方具有相同的加密与解密的密钥,发送方用密钥对数据(明文)进行加密,接收方同一个密钥对收到的数据进行解密。对称密钥加密实现容易、速度快,但是为了保证密钥的安全,必须通过安全通道来传送密钥。
(二)非对称密钥加密
非对称加密算法又名“公开密钥加密算法”,需要两个密钥:公开密钥和私有密钥。如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密,所以这种算法叫作非对称加密算法。非对称密钥加密体制包括RSA、ELGamal、椭圆曲线加密等算法。其中RSA算法为当今世界上应用最为广泛的非对称加密算法
三、RSA算法
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击。RSA公钥加密算法是在1977年提出的目前已被ISO推荐为公钥数据加密标准。
(一)RSA算法的原理
1.加密消息。假设甲想给乙送一个消息m,甲知道乙产生的N和e。那么甲使用事先与乙约定好的格式将m转换为一个小于N的整数n,比如甲首先将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如甲的信息非常长的话,也可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c:。计算c并不复杂。甲算出c后就可以将它传递给乙。
2.解密消息。乙得到甲的消息c后就可以利用她的密钥d来译码。她可以用以下这个公式来将c转换为n: 得到n后,乙可以将原来的信息m重新复原。
3.签名消息。签名消息检测出数据在传播路径上有没有被篡改过,RSA也可以实现消息署名。假如甲想给乙传递一个署名的消息,那么甲为自己的消息计算一个散列值(Message digest),然后用甲自己的密钥(private key)加密这个散列值并将这个“署名”加在消息的后面。这个消息只有用甲的公钥才能被解密。乙在获得消息后首先用甲的公钥解密这个散列值,然后将这个数据与乙为这个消息计算的散列值相比较,如果两者相符,乙就知道发信人持有甲的密钥,以及这个消息在传播路径上没有被篡改过。
(二)RSA算法的攻击方法和应对
RSA算法的攻击方法主要有模数攻击、时间攻击和因子分解。解决模数攻击的办法是不共享模数。时间攻击。假如甲对乙的硬件有充分的了解,而且知道它对一些特定的消息加密时所需要的时间的话,那么甲可以很快地推导出d。因为在进行加密时所进行的模指数运算每个位元进行的,所以如果能得到多组信息和信息的加密时间,就会有机会可以反推出私钥的内容。因子分解。因子分解在RSA安全性的时候已经论述,因子分解可以成功破解RSA,也是最流行的一种攻击方法。应对方法是在一定条件下尽可能选取大数。RSA算法易于理解和操作,是第一个能同时用于加密和数字签名的算法。RSA从诞生到现在历经各种攻击的考验,是被研究的最广泛的公钥算法,也是目前最优秀的公钥算法之一。
四、总结
将基于RSA的算法用于WLAN及更多的平台,确保具有开放性与共享性的无线网络不受到外界的攻击与破坏。随着计算机网络的不断发展,更多的优秀的加密算法也会涌现出来。
参考文献:
[1]杨峰,张浩军.无线局域网安全协议的研究和实现[J].计算机应用.北京邮电大学出版社
[2]贺雪晨.信息对抗.与网络安全清华大学出版社(第2版),2010,5.
信息加密算法 篇4
关键词:网络,信息安全,加密,DES,AES,RSA,DNA密码
随着政府、银行等重要部门信息化水平的不断提高,采用先进的信息技术对传统产业进行改造已经势在必行。信息系统及网络在信息化改造过程中发挥着重要作用,信息网络技术的应用和普及,对包括经济、政治、军事等社会各领域产生深刻且广泛的影响。如今,信息技术已经融入了人们生活与工作当中,成为了一个重要的经济增长点,信息化社会逐渐成为全球发展的核心和潮流[1,2,3]。
信息作为一种重要的战略资源,在社会中发挥着越来越重要的地位和作用。同时,信息安全问题也逐渐呈现出来。在关系国计民生的社会各领域信息化程度不断提高的同时,网络中所存在的信息安全问题已越来越突出,譬如网络攻击、病毒感染等事件一旦处理不当就有可能对经济发展和社会稳定产生一定的影响。信息安全技术的核心思想是,采用计算机、网络架构、密码知识以及安全技术,保护信息在公用网络系统中传输、交换以及存储过程中的的真实性、完整性、可用性、可靠性、保密性、不可抵赖性等特性。也即是通过采取一定的安全策略,使网络环境中信息的可用性、完整性及保密性等受到很好的保护[2]。
网络安全领域中已有的主要技术有:
1)防火墙技术。防火墙在内部网络与Internet之间建立起一个安全网关,实现内外网的隔离和访问控制。防火墙系统决定了外界可以访问哪些内部的服务及内部的服务和数据,内部人员可以访问外部的哪些舒服和数据。防火墙通过对内外消息的检查和过滤,只允许授权的数据能够通过防火墙,从而为网路的安全提供保障。
2)入侵检测技术。入侵检测技术是一种主动保护自己免受黑客攻击的网络安全技术,它具有监视分析用户和系统的行为、审计系统配置和漏洞、评估敏感系统和数据的完整性、识别攻击行为、对异常行为进行统计、自动收集和系统相关的补丁、进行审计跟踪识别违反安全法规的行为等功能,使系统管理员可以有效地监视、审计、评估自己的系统。
3)漏洞扫描技术。漏洞扫描是自动检测远端或本地主机安全脆弱点的技术。它查询TCP/IP端口并纪录目标的响应,收集关于某些特定项目的有用信息。这项技术具体是由安全扫描程序实现的。安全扫描程序能够对一个系统的代码进行反复获取、编译和运行,并对上述检测所获得的大量数据进行分析,从而可以快速地在较大范围内发现系统的脆弱点。
4)加密技术。采用密码加密技术对信息加密,是最常用的安全保护措施。该技术的特征是利用现代的数据加密技术来保护网络系统中包括用户数据在内的所有数据流。只有指定的用户或网络设备才能够解译加密数据。
而数据加密技术是网络安全的核心,其主要任务是寻找具有高安全性的密码算法或协议,从而实现对信息进行加密或认证[2]。本文主要研究用于网络安全中经典的对称及非对称加密算法。
本文第2节介绍了传统通信保密系统模型以及相关的理论知识,第3节介绍了典型的密码体制和相关密码算法;第4节对第3节中介绍的几种密码算法进行了实现和比较;最后是本文的总结。
1 相关理论
传统的信息保密通信系统如图1所示[4]。
该网络系统根据通信行为不同可分为发送方和接收方,图1中所对应的定义如下[3]:
1)发送方:又名信息源,是信息的发送者。
2)接收方:信息所要传送的预定对象。
3)明文:是原始的可理解的数据或消息,通常作为加密算法的输入。
4)密文:经过加密看起来杂乱且随机消息,通常作为加密算法的输出。它的结果通过明文和密钥产生。不同的密钥用于同一信息,将会产生不同的密文输出。密文是随机流数据,意义通常难以直接理解。
5)密钥:在加密与解密过程中控制数据的处理,包括加密密钥以及解密密钥。
6)加密算法:在发送方加密明文所采用的规则集。
7)解密算法:在接收方解密密文时所采用的规则集。
8)截收者:在信息传输以及处理过程中,通过电磁窃听、搭线窃听等方式来窃取信息的非受权者。
9)密码分析:是指截收者试图从截取的密文中分析出信息的明文或者密钥。
10)密码分析员:专门从事密码分析工作的人。
2 典型的密码体制
目前,密码体制主要可以分为对称和非对称两种密码体制[4,5,6]。
2.1 对称密码体制[5]
在上世纪七十年代之前,公钥密码还未产生,那时唯一的加密方法就是对称加密。甚至在今天,对称加密依旧是一种应用最为广泛的加密方法。对称加密体制如图2所示,包括明文、密文、密钥、加密算法和解密算法五个基本组成部分。
对称密码体制的最大特征是加密和解密具有相同的密钥。这种单一密钥体制的保密性主要依赖于密钥的保密性,而跟加密算法的保密性无关,也就是说,在只知道密文以及加密算法的情况下无法得到明文.
DES和AES算法是具有代表性的两种对称加密算法,以下对这两种算法进行详细描述。
2.1.1 DES算法[5]
DES算法在1997年被NIST(National Institute of Standards and Technology,美国国家标准和技术协会)吸收为联邦信息处理标准FIPS PUB46。DES算法采用64位的分组长度以及56位的密钥长度。该算法将64位的输入明文通过一系列运算处理得到64位的密文输出,而解密过程则采用同一密钥,解密步骤类似。如图3所示,图中左半部分与右半部分互换从而产生预输出。最后的预输出通过与初始置换(IP)互逆的置换(IP-1)相作用,从而产生64位的密文。图中右半部分给出了56位密钥的使用过程。密钥在初始置换之后,经过循环左移和置换等操作得到子密钥Ki,将其用做每一轮的迭代。在每轮的置换过程中所使用的函数相同,但通过密钥的循环移位而使得子密钥之间互不相同。
2.1.2 AES算法[5]
NIST在1997年公开征集新的高级加密标准(Advanced Encryption Standard,AES),要求该标准的安全性能不低于3DES,并且需要具有更好的执行性能。除了这些要求之外,NIST特别强调了高级加密标准必须是128位分组长度的对称分组密码,能够支持128位、192位、256位不同长度的密钥。NIST最终选择了Rijndael算法,也即现在所说的AES算法。
AES具有高效加密和解密的优点。由于密钥长度为128,192或256位,可以运用计算机进行高速处理。并且具有较好的安全性,难以在短时间内破译。
AES算法中加密算法输入以及解密算法的输出分组都是128位。输入分组采用字节为单位的正方形矩阵来表示,矩阵中字节是按照从上到下和从左到右方式排列的。该分组被复制到State数组,加密或解密的每个阶段都会改变该数组,直到最后阶段将State复制到输出矩阵。128位的密钥同样采用字节为单位的矩阵进行描述。然后被扩展为一个以字为单位的密钥序列数组;每个字都是由四个字节构成,128位的密钥最后扩展成为一个44字的序列。对于加密算法中的每个128位分组输入,它的前4个字节按照先后顺序依次放入in矩阵的第1列,接下来的4个字节放入第2列,……。类似的,扩展密钥的前4个字节(也即一个字)放入w矩阵的第1列。
2.2 非对称密码体制
2.2.1 非对称密码体制[6]
非对称体制是1976年由Diffie和Hellman首先引入的。使用该密钥体制的每个用户都选定一对的密钥:一个是可以公布的,而另一个则保密。该密钥体制又叫做公钥体制。公钥密码体制的出现是密码史上非常重要的里程碑。公钥密码体制的算法中最著名的代表是RSA系统,背包密码、McEliece密码、Diffe_Hellman、Rabin、零知识证明、椭圆曲线、EIGamal算法等。
公钥密码学跟先前的密码学有本质区别。首先,公钥算法不是基于替换与置换,而是是基于数学函数,另外,也是其本质区别是,公钥密码使用是非对称的两个独立的密钥,而对称传统密码只需要一个密钥。公钥密码体制包括明文、密文、公钥、私钥、加密算法和解密算法6个部分组成。其中公钥用于加密,私钥用于解密。加密算法依赖于公钥或者私钥。
2.2.2 RSA算法[5,6]
比较有代表性的非对称加密算法是RSA算法。RSA算法是迄今为止最成功的公钥密码算法之一。其安全性主要依赖于数论及计算复杂性理论中的分解两个大素数成绩求出素因子的计算难解性。在数学上任然未发现能够在多项式时间内利用计算机破解RSA的最佳方案。
该算法中以分组为单位对明文进行加密,每个分组位数不超过logn,从而其的二进制值小于n。对于明文分组M以及密文分组C,RSA算法的加密与解密过程如下:
在实际应用中,收方和发方都已知n,发送方已知e,而d只有接收方知道,从而公钥加密算法中的公钥就是PU={e,n},私钥是PR={d,n}.该算法用做加密,必须满足以下3个条件:
1)能够找到e,d和n,使得对于所有的M
2)对于所有的M
3)通过e和n来确定d是不太可行的。
图6给出了RSA算法密钥产生过程以及对应的加解密算法。下面采用一个具体的实例来说明算法执行过程。具体过程如下:
1)选择出两个素数,p=17,q=11。
2)计算n=p*q=17*11=187。
3)计算准(n)=(p-1)(q-1)=16*10=160。
4)选择一个e,使其与准(n)=160互素且小于准(n),这里选择e=7。
5)确定d,满足de≡1(mod 160)且d<160。因为23*7=161=1*160+1,所以d=23。d可通过扩展的欧几里德算法计算得到。从而公钥为PU={7,187},私钥为PR={23,187}。
当输入的明文M=88时,加密为C=887mod187=11。解密为M=1123mod187=88。
现今除了RSA公钥密码体制,还出现了新的需要大素数的ElGamal,椭圆曲线密码体制等。
2.3 其它典型的密码体制
传统密码(对称及非对称密码)已经基本建立了比较完善的理论体系,目前实际使用的密码都可以算是传统的密码.传统的密码(如RSA、椭圆曲线密码等)除了一次一密以外,都只具有计算安全性.也就是说,如果攻击者有无限的计算能力,理论上就可以破译这些密码系统。新兴智能计算的出现为传统密码的破译提供了一种有效的途径,众多用于破译传统密码的智能生物算法也不断被提出。
为了克服传统密码技术存在的缺点,基于DNA计算的加密方法逐渐引起了科学家们的关注。DNA密码已成为国际密码学研究的前沿领域,它是新生的密码,其特点是以DNA为信息载体,以现代生物学技术为实现工具,挖掘DNA固有的高存储密度和高并行性等优点,实现加密、认证、签名等密码学功能,它包括DNA加密、DNA隐写和DNA认证三个方向的研究。DNA密码是数学密码的有益补充,对信息安全中的DNA加密技术进行研究具有十分重要的意义[8,9,10]。
3 算法实现与分析
3.1 算法实现
为对算法进行有效性验证,本文用编程语言实现了三种加密算法。具体实验环境为:Windows操作系统;Intel Pentium 3.20GHz处理器,2GB内存;Eclipse编程环境;JAVA编程语言。实验运行结果如下:
1)DES算法运行结果如图7。其中明文:DES;密钥为N6jHuYmSc14。(密钥的构建主要需要密钥生成器(KeyGenerator)完成生成操作,得到密钥对象后,就可以对数据做加密/解密处理。);经过加密算法后得到密文为:LXrbFs/eniI;最后通过解密算法后得到明文信息为DES。DES算法中用于加解密的密钥相同,此实例中均为N6jHuYmSc14。
2)AES算法运行结果如图8。AES算法的密钥生成和加密/解密操作与DES算法类似。图8中明文:AES;用于加解密的密钥均为I+ZSIs2IIFNDTAOdJqDsrQ==;明文通过加密算法加密后得到密文为:DY9QEUDXfIXRJL2O0/z8fA==;最后解密后得到的明文为AES。
3)RSA算法公钥长度远小于私钥长度,并遵循“公钥加密,私钥解密”和“私钥加密,公钥解密”这两项加密/解密原则。RSA算法实现易于理解,对于RSA算法的测试只需要注意经公钥加密的数据是否可以通过私钥将其解密,反之,经私钥加密的数据是否可以通过公钥将其解密。如图9,RSA算法中首先通过密钥生成器生成用于加密的公钥和用于解密的私钥。RSA算法运行图中,明文:RAS加密算法;通过私钥加密后得到的密文为:md/8Phi6wrTq+b121B7dgGZYPqd3LIQrJezlKRpsP9suon8ul3uE3vhk-cidEO5cyvz3aenYweEmwJuNUr519Eg==;最后通过私钥解密后得到明文为:RAS加密算法。
3.2 算法分析
从以上各算法的运行结果发现:
1)对称密码体制中用于加解密的密钥相同或可以从加密密钥推出解密密钥。其中典型的DES、AES的密钥长度相对比较短,密钥比较弱,安全性比较低。计算开销小,算法简单,加密速度快,进行安全通信前需要以安全方式进行密钥交换。
2)非对称密码体制用于加密的公钥和解密的私钥互不相同,另外加解密的公钥和私钥的长度相对较长,安全性比对称密码体制好。在多人之间进行保密信息传输所需的密钥组和数量很小;但是密钥和加解密算法相对复杂,计算工作量比对称密码体制大。公开密钥加密比私有密钥加密在加密/解密时的速度慢。
4 总结
随着网络技术的不断进步,网络安全问题亦日益突出。而网络安全技术中主要基于数据加密技术来保证信息安全。本文分别从对称加密和非对称加密两个方面进行介绍。对称加密部分详细介绍了数据加密标准(DES)和高级加密标准(AES);非对称加密详细介绍了RSA。最后给出了三种加密算法的实验运行结果。
网络安全其实是一种相对安全,安全性越高也就意味着其实现更为复杂。随着计算机网络技术的飞速发展,新的安全问题也将不断的涌现,新的密码密码体制也不断涌现,如NTRU量子密码体制及DNA密码等。网络安全形式的严峻性也促使我们使用新的技术和手段来为网络信息安全提供更好的保障。
参考文献
[1]王景伟,郭英敏.密码技术在信息网络安全中的应用[J].信息网络安全,2009,4:27-28.
[2]李文峰,杜彦辉.密码学在网络安全中的应用[J].信息网络安全,2009:4:40-42.
[3]吴子勤,魏自力,张巍.网络安全防范与加密技术的实现[J].网络与信息,2009,2:22-23.
[4]Nicol D M,Sanders W H.Model-based Evaluation:From dependability to security[J].IEEE Transactions on Dependability and Security,2004,1(1):48-65.
[5]马振晗,贾军保.密码学与网络安全[M].北京:清华大学出版社,2009:1-227.
[6]卢开澄.计算机密码学-计算机网络中的数据保密与安全[M].北京:清华大学出版社,2003:52-198.
[7]陈晓峰,王育民.公钥密码体制研究与进展[J].通信学报,2004:109-118.
[8]肖国镇,卢明欣,秦磊,等.密码学的新领域-DNA密码[J].科学通报,2006,51(10):1139-1144.
[9]崔光照,秦利敏,王延峰,等.DNA计算中的信息安全技术[J].计算机工程与应用,2007,43(20):139-142.
信息加密算法 篇5
关键词:MD5;加密;安全登录;算法
中图分类号:TP393.08文献标识码:A文章编号:1007-9599 (2013) 06-0000-02
1系统登录安全问题概述
许多基于互联网的业务系统都提供有权限的资源服务,用户注册通过后,登录系统,才可以浏览信息参与系统的操作。在注册过程中填写的信息,涉及到用户的个人资料等重要信息,泄露后会造成极大的隐患。
在各类业务系统中,通常会在数据库中建立用户信息数据表。数据表中包含用户用户名、密码等信息。一条用户的信息称为一条数据库的记录。用户登录数据库时,会先通过网络程序访问数据库,然后在数据库中调取对应的用户名和密码。通过校验用户输入的用户名、密码,与数据库中的信息进行比对,如果数值相同,才能通过校验,继而进入系统。如果校验结果不匹配,则退出登录程序。
在软件设计领域,有多种校验用户信息的技术和算法,也可以同时采用多种安全技术,来强化系统的安全性。系统在校验密码来验证用户身份的真伪,虽然逻辑上可行性较高,但是难以避免口令猜解技术带来的隐患。此外,黑客也会在通信信道上探窥信息,所以,传输明文口令容易被黑客截获,从而导致灭顶之灾。由此,人们探索出口令加密的传输方式。
为确保各类业务系统的安全,对数据库等相关信息加密是非常重要的。即便有黑客进入了数据库,但不能解密,仍然无法得到数据库中的原信息。在加密时,要恰当选择需要加密的数据,以不超过系统最大负荷为前提。在各类业务系统登录模块中,MD5算法加密得到了广泛应用。
2MD5算法在系统安全登录中的应用
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。考虑到各类基于网络的业务系统所面临的安全问题,可以借助MD5算法来强化安全措施,避免权限外用户浏览信息,从而提高业务系统的保密性。MD5算法在系统安全登录中的应用主要有:
2.1系统登录方面MD5算法的应用。现在,大部分的业务系统都有在登录页面进行验证权限的算法模块,用户登录后输入用户名和密码,系统把输入的信息以明文方式传递到服务器端来校验,有的数据库中也以明文形式存储用户名和密码,这都存在着极大的隐患。一旦黑客伺机进入数据库,则数据库中的用户信息就暴露无遗,从而给系统带来不可预见的损失。
为了强化系统的安全性,避免用户信息泄露,在数据库中要以MD5算法加密后的形式来存储,不可用明文或可逆算法来加密。在登录过程中系统校验用户合法性时,要在登陆端导出登录信息的MD5值,再与数据库中经过MD5加密后的用户名、密码相比对,比对后如果等值,则用户为合法用户。这种校验方式的优势在于,假使黑客进入的用户信息数据库,窃取了MD5加密后的用户密码,也不会有太大的危害,因为MD5具有不可逆性,黑客仍然得不到实际的密码值。
2.2MD5算法在数据完整性方面的应用。在传递密码或其他重要信息时,要避免数据信息被盗取,同时,还要确保信息发送者对自己所发送的文件有可追溯性,信息接收方可以明确信息发送者是谁,还能核对信息是否被篡改过,从而避免信息能准确送达且不被修改。
借助MD算法来确保系统中信息安全传递的流程为:信息发送者通过网络把信息块传递给接受者乙,乙把信息块改名为N,信息发送者甲发送信息块时,由系统应用MD5加密算法核算出信息块的哈希值MD5值M,信息接受者乙在接受文件时,由系统应用MD5算法核算出信息块的哈希值MD5值N,如果MD5值M和N等值,则信息块是完整准确的,原始文件在传递的过程中未受到损坏或增加,同时,信息传递者甲也可以核对传递前后信息块的哈希值,以确认乙接收的信息块是否是自己发送给乙的,是否被篡改过。
3基于MD5加密算法的系统安全登录实例分析
现在以实例来解释对传递过程中的数据进行MD5算法加密:
<?php
session_start();//开启缓存,临时存储一些数据。
class dengluyanzheng{
private$yonghuming;
private$mima;
private$xym;
public function__construct($usernc,$mima,$xym){
$this->usernc=$usernc;
$this->mima=$mima;
$this->xym=$xym;
}
public function chk(){
if(trim($this->xym)!=trim($_SESSION["autonum"])){
echo"";
exit;
}
include_once("common.php");
$sql=mysql_query("select usernc from tb_yonghu where usernc='".$this->usernc."' and pwd='".$this->mima."'",$conn);
$info=mysql_fetch_array($sql);
if($info==false){
echo"";
exit;
}else{
if($_SESSION["unc"]!=""){
session_unregister("unc");
}
session_register("unc");
$_SESSION["unc"]=$this->usernc;
mysql_query("update tb_yonghuset logintimes=logintimes+1,lastlogintime='".date("Y-m-d H:i:s")."'",$conn);
echo "";
}
}
}
$obj=new dengluyanzheng($_POST["yonghuming"],md5($_POST["mima"]),$_POST["xym"]);//对传递的信息进行MD5算法加密,增强数据安全性。
$obj->chk();
?>
通过在系统登录环节增加MD5算法的调用,强化了传递信息的的安全性,有助于避免密码的泄露。
4结束语
在系统登录模块中,对密码进行MD5算法加密后存储在数据库中,提高了系统的安全性。用户的验证过程,也可以借助MD5进行校验,改算法过程执行效率高,对系统负荷影响小,具有很好的可行性。现在,MD5算法得到了更为广泛的应用,有较为成熟的应用方案。
参考文献:
[1]胡天麟.基于MD5的OTP认证系统的原理及实现[J].信息技术(哈尔滨),2005,9.
[2]段青玲.MD5算法在电话语音系统软件保护中的应用[J].微计算机信息,2007,24.
[3]王金柱.MD5算法在J2EE平台下用户管理系统中的应用[J].计算机工程与设计,2008,18.
[作者简介]孙杨(1981.11-),女,汉族,辽宁大石桥市人,讲师,本科,研究方向:数据库。
信息加密算法 篇6
随着高校数学化校园的建设,学校及校内各部门都建立了自己的网站和管理系统。信息数据的安全越来越受到人们的关注。在学校信息管理系统中,经常需要将用户权限信息存储于数据库,当不同的用户登录时,根据数据库中的信息进行相关验证,但数据库中的信息也受到各方面因素的影响而使安全性受到威胁,因此如何保证数据库的安全变得越来越重要。为了增强安全性,我们有必要对数据库中的重要资料进行加密,这样既使攻击者得到了加密的用户信息,如果没有解密算法,也一样不能获得用户的真实信息。现在网站一般采用MD5加密算法对用户的重要信息进行加密。
二、加密方式分类
从大的方面来说,有两类加密方式,即:单向加密和双向加密。双向加密是加密算法中最常用的,它将能直接理解的明文加密为不能理解的密文数据。然后在需要时,可能使用一定的解密算法将加密以后的密文再解密为原来可以理解的明文。双向加密一般适合于隐秘通讯。而单向加密只能对数据进行加密,不能将密文解密。单向加密在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,这些信息不是直接保存在数据库中,而是经过加密以后再保存。这样,既使这些信息被泄露,也不能理解这些信息的真正含义,因为他得到的是一段不能解密的密文。
三、MD5算法简述
MD5加密算法,把任意长度的信息通过加密产生128位信息摘要(或信息指纹),这种加密算法对不同的信息不可能产生同一信息摘要,同时对于给定的信息摘要推断出其相应的信息也是不可能的。MD5属于单向加密的加密算法。MD5加密算法在数字签名、身份认证等方面得到了广泛的应用。
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度将被扩展至n*512+448,即n*64+56个字节,n为一个正整数。具体补位操作是补一个1,然后补0到满足上述要求。然后,再在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度n*512+448+64=(n+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足以上处理中对信息长度的要求。
MD5是一种采用单向加密的不可逆加密算法,MD5算法的应用主要是针对用户的注册登录,用户在注册时所提交的信息(密码)是利用MD5算法加密之后再保存到数据库中,这样可以防止用户密码的泄露,既使是黑客非法获得加密密文也没有办法查看到用户的密码,有效地保护了系统的安全。在用户进行登录时,为了身份验证,必须对输入的密码重新进行MD5加密,然后再与数据库中的信息进行比对,相同便可进入系统。
四、ASP中MD5加密算法的实现
在ASP程序设计中实现MD5加密是很简单的,首先需要下载一个MD5.ASP源文件,网上有很多。把MD5.ASP源文件放在网站目录,在需要加密的页面最上面引入,这样就可以在页面中使用MD5这个函数进行加MD5加密算法。
比如用户注册页面提交了表单,加密页面要把它存入数据库,不加密的时候直接使用password=Request(“password”),然后把变量password利用SQL语句存入数据库。如果利用MD5加密,只需要在这一句后面加上password=md5(Request(“password”)),我们可以把经过加密的数据放入password这个变量中,再把它利用SQL语句存入数据库。比如123经过MD5加密后会变成ac59075b964b0715,由于MD5是单向加密算法,没有谁能够算出它是12 3经过MD5加密来的。当合法用户通过登录页面输入123,程序再进行MD5加密,把加密后的数字ac59075b964b0715跟数据库中保存的进行比较,这显然是相等的,所以就通过验证,如果用户忘记了密码是123,那谁也无法由ac59075b964b0715得出这个密码。
五、NET中MD5加密算法的实现
系统只需在用户注册或密码修改时将密码用Hash Password For Storing In Config File方法进行加密,而在用户登录时用同样的方法将用户输人的密码进行加密后再比较,相同则登录成功,不同则失败。其实现略写如下:
六、结束语
互联网在我国越来越普及,其安全问题越来越突出,网络的安全只是相对而言,真是道高一尺,魔高一丈,网络没有绝对安全。此种基于WEB密码传输只是网络安全措施之一,对于互联网的安全,还有很多工作要做,如怎样防止字典攻击、穷举攻击、窥探攻击、垃圾搜索攻击等等,网络安全工作任重而道远。
参考文献
[1]刘洪涛:MD5加密算法在Web 程序中的应用.科技咨询导报,2006.8
[2]梁田贵:算法设计与分析[M].冶金工业出版社,2004
信息加密算法 篇7
关键词:混合密码技术,物联网,信息安全
一、引言
在过去的几十年里,计算机、因特网和移动互联网等技术给人类社会带来了翻天覆地的变化, 随着信息产业的发展,传统的交流个体人、机器之间的通信已经不能满足日益发展的应用要求,用户呼唤一种人与各种事物间的,或是事物与事物之间的信息交流。需求的迫切及计算机、网络技术的发展,促进物联网技术的诞生,该技术开启了人类社会信息化进程的新篇章。
从体系架构上看,物联网分为三层。其中,感知层存在安全性威胁,因为不论是普通节点还是汇聚节点都容易收到攻击,比如拒绝服务攻击,或是非法控制和破坏[I]。 试想一下,假设我们在系统的感知节点没有采取任何安全措施或安全防护不够全面的话,并且所感知的信息还涉及国家、军队的重要设施的敏感信息,一旦被非法的第三方获取,其损失是不可估量和弥补的。通过分析得出, 在感知节点可以采用硬件加密芯片、公钥基础设PKI和密码技术等安全技术手段来保证节点收集信息安全三要素。本文根据物联网系统中,信息安全传输的特点,谈谈密码技术在物联网信息安全传输系统中的设计与应用。
二、加密算法分析
1.AES算法原理
AES算法具有较高的安全性,及时是纯粹的软件实现,速度也是很快的,并且AES对内存需求非常低,使它更适合于一些受限环境中。AES的加密过程是在一个4×Nb(Nb等于数据块长除以32,标准AES为4)的字节矩阵上运作,它是一个初值为明文区块的矩阵,又称为 “状态”。加密时,其步骤包括:
(1)子密钥加:矩阵中的每个字节与本轮循环中密钥生成方案产生的子密钥做XOR运算。
(2)字节替换:用查找表的方式,透过一个非线性替换函数把每个字节替换成对应的字节。
(3)行位移:使矩阵中每个横列按照不同偏移量进行循环移位。
(4)列混合:用线性转换,混合每行内的四个字节。
首先主密钥作为初始密钥,用初始密钥K0与编码后的待加密信息按位做与运算,再用其余信息分组与本轮函数F进行迭代运算,通过扩展函数产生每轮参与运算的子密钥,函数F要迭代Nr次。除最后一轮包含3个步骤外,其余每轮都包含以上全部4个步骤。
2.ECC算法原理
ECC与经典的RSA,DSA等公钥密码体制相比,有更高的安全性,更快的速度,较小的存储空间,并且对带宽要求低。椭圆曲线密码体制来源于对椭圆曲线的研究,是指由韦尔斯特拉斯方程:
确定出平面曲线。其中,系数ai=1,2,…,6,定义在基域K上(K可以是实数域、理数域、复数域、有限域)。
满足一下公式的曲线被叫做有限域上的椭圆曲线:
P是奇素数,且4a3+27b2≠0 mod p。
针对所有的0≤x<p,可求出有效的y,得到曲线上的点(x,y),其中x,y<p。记为Ep(a,b),进行加密通信过程如下:
(1)发送方选定一条椭圆曲线Ep(a,b),并取线上一点为基点G。
(2) 发送方选择一个私有密钥k,并生成公开密钥K=k G。
(3)发送方将Ep(a,b)和点K,G传给接收方。
(4)接收方接到信息后,产生一个随机整数r(r<n),用明文编码在椭圆曲线Ep(a,b)上一点M。
(5)接收方计算点C1=M+r K;C2=r G。
(6)接收方将C1、C2传给发送方。
(7) 发送方接到信息后,计算C1-k C2=M+r K-k(r G) =M+r K-r(k G)=M,再对点M解码就可以得到明文。
三、混合密码技术在物联网信息安全传输系统中的设计与应用
1.混合密码技术在物联网信息安全传输系统中设计
按照物联网的三层架构设计,原始数据信息通过感知设备被采集,转发到采集终端,再进入安全系统进行敏感信息处理。信息安全保密系统首先对转发过来的信息进行隔离处理后进入加密模块处理。数据通过智能通信接口模块转发至网络层,再到应用层的智能通信接口模块,最终数据进入隔离、解密后被服务器接收。物联网信息安全传输系统主要包括信息采集收发子系统、智能通信接口子系统、信息安全保密子系统。其中信息安全保密子系统用于保证感知信息的传输安全; 主要用于信息传输信道的选择和信息收发等。主要包含由内、外网处理单元、网络隔离模块、信息加解密模块、身份认证模块。
2.模型的体系结构
基于信息安全传输系统中,由服务器、安全传输接口、单双向隔离通道、客户端组成的安全保密子系统。服务器负责算法管理和密钥管理;数据传输接口和单向双向隔离通道负责加密数据发送的管理;客户端负责解密文件、传送公钥和更改密码。模型的体系结构如图2:
3.混合密码技术在物联网信息安全传输系统中应用
在实际的物联网通信系统中, 除考虑保密系统的安全性外,加解密速率、加密灵活性等因素。部分物联网的信息安全传输系统采用硬件加密技术,虽说一次一密保证了信息的安全,但是额外的设备费用和硬件较高的故障率同时也给系统带来了其他的安全问题。在对称加密算法中,公开密钥负责数字签名与密钥管理,私有密钥负责明文加密。前面我们已经分析了AES和ECC算法,在数字签名和密钥管理方面ECC算法能够轻松的实现;而对于在较长明文加密中,AES算法能提供更快的加密速度。 用MD5算法辅助,因此综合运用ECC算法和AES算法, 辅助MD5算法就构成了本模型中混合加密算法方案。
(1)密钥的产生。G为Ep(a,b)椭圆曲线上选的一个基点,其阶数为n(n是大素数),并且G(x,y)是公开的。随机地确定一个整数(区间为[1,n-1]),k做为私有密钥,并计算K=k G,K为公开密钥[5]。
(2)加密和解密。公钥加密:设Ke为AES的初始密钥,发送方在r上,r∈{1,2, …,n-1} 取一随机数,计算u=r KP(KP为B的公钥),R1=r G,r G(x1,y1),v=x1Ke,可以得到(u,v),发送给接收方。至此实现对AES算法密钥加密。
私钥解密 :Ks为接收方 的私钥 。 用私钥计 算R1=Ks-1u,得到Ke=x1-1v。
(3)签名及认证。选取一个公开消息摘要函数,用MD5算法计算消息摘要H(m)。
生成签名:发送方在区间{1,2,…,n-1)上,取L随机数。计算R2=LG,LG(x2,y2),e=x2H(m),k1=L+e KS,w=k1G, 可以得到(w,e),作为发送方的签名消息。
身份认证:计算R=w-e KeP=(x1,yr),则使e=xr H(m)成立就是有效的签名,相反为无效的签名。
四、结束语
信息加密算法 篇8
近年来,图像加密技术成了信息安全领域研究的热点之一,人们也相继提出了许多图像加密的方法[1—8]。文献[1]提出了一种基于像素扰乱的图像加密方法,即对图像的行和列进行置乱,这也是目前用的最广泛的一种图像加密方法;文献[2]利用斜帐篷映射对初值的敏感及其随机性的特点提出了一种高效的图像加密算法,由于其逆变换简单,故易于解码;文献[3]结合数字改良逻辑映射和线性反馈移位寄存器,提出了一种随机性较高安全二进制算术编码,该算法保证了很好的计算开销;文献[4,5]提出了一种新的基于扩散策略的像素间置换的快速图像加密算法,证明了两个像素异或之后,其分布更均匀,从而保证了加密过程的高随机性;文献[6]利用耦合映像格子产生的密钥生成两个简单的扩散序列,设计了一种时间复杂度较低图像加密算法,通过该算法生成的密钥流,其密钥空间大且随机性很高。综上文献所述,图像加密过程中一般会考虑两点:①计算开销是否在可接受的范围之内;②随机性是否满足要求。本文提出了一种新的密钥流的生成方法,结合耦合映像格子和SBox,通过一个对称矩阵变换(SMT)生成SBox系数,然后与初始密钥异或,循环迭代N次,得到一串密钥流,再通过该密钥流分别对原始图像的行、列进行置乱,最后对扰乱后的像素进行列处理,即每一列与等长度的密钥流进行异或,同时为了保证随机性,从第二列开始每一列密文都与前一列的密文异或。
1 密钥流发生器
基于耦合映像格子(CML)提出了一种新的密钥流生成方法,框图如图1所示。CML采用二维动态映射[6]:
式(1)中,ε是耦合映像格子的耦合强度,f是混沌映射函数。f1是下帐篷映射:
式(2)中,x是系统初始状态,x∈(0,1];p是系统的控制参数,p∈(0,1)。f2是逻辑映射:
式(3)中,a是控制参数,a取3.999 73。
生成密钥流的具体流程如下:
(1)给定一组初始值(x0,y0),x0,y0∈(0,1],CML输出(x,y);
(2)用SMT变换将(x,y)的初始区间(0,1)变换到指定的区间,即SMT的输出x',y'∈(0,15],具体变换如下:
(1)令对称矩阵
②取x',y'的下限作为SMT的输出,即floor(x'),floor(y'),将其作为初始密钥流。
(3)分别提取x0,y0的前8位,记为x1_b,y1_b,令c1=floor(x'),d1=floor(y'),则
其中,SBox是一个16×16的二维表,对应有16×16个(0,255)的十进制数,通过下标c1,d1可以找到SBox中对应的数,将其作为SBox的输出;
(4)从第二列开始,xi_b,y1_b,i=2,3,…,n分别是前一个密钥的输出左移3bit、右移3bit得到,则最终密钥流φ(i)=SBox(ci,di)⊕xi_b⊕yi_b。
2 加密与解密
传统的图像加密方案有两种[7—15]:①结合置乱和扩散操作,置乱即对图像的像素进行扰乱处理,扩散是对图像像素值进行改变;②先对图像进行分块,然后对每一块进行编码。本文结合这两种加密方案对图像进行加密,整体加密流程图如图2所示:
2.1 置乱
假设输入为一个大小为M×N的灰度图像,用CML产生的一组密钥流,即(xi,yi),i∈max{M,N},作为循环移位的密钥。对于xi,取i=M,x1,x2,…,xM组成一个一维数组(x1,x2,…,xM),然后对这个一维数组的数值进行E-R处理,即扩值取整,记为Rshift=floor[N(x1,x2,…,,xM)],用Rshitf对该灰度图像的行进行移位,即数组第一个参数控制图像第一行右移的位数,第二个参数控制图像第二行右移的位数,依次类推;同理,对于yi,取i=N,y1,y2,…,yN组成一个一维数组(y1,y2,…,yN),对其数值进行E-R处理,记为Cshift=floor[M(y1,y2,…,yN)],用Cshif对灰度图像的每一列进行下移位。
2.2 扩散和分块编码
经过置乱后的图像还是大小为M×N的图像,对置乱后的图像进行分块处理,即对图像像素进行列处理,如图3所示。令置乱后第i(i=1,2,…,N)列的像素值为Pi(j)(j=1,2,…,M),扩散后的像素值为Ci(j),前一个扩散的像素值为Ci(j-1)。编码过程如下:
Step1:第1列的像素值与密钥流异或,记为
Step2:第2列采用同样的方法编码,即,然后用第1列的密文与第2列进行异或,即
Step3:同理,每一列像素值与密钥流进行异或后再与前一列密文进行异或
2.3 解密过程
是加密过程的逆过程,即先提取密文序列,对每一块密文序列进行编号,从第N列开始每一列与前一列异或;然后恢复加密过程中使用的密钥流,分别与(1)中的每一列异或,异或的结果组成一个M×N的矩阵;最后利用2.1节中的两个一维数组,即Rshift、Cshif,分别对矩阵的列、行进行移位,移位后的结果即为原始图像。
3 实验结果与分析
为了分析该算法的可行性,做了以下实验。输入图像为256×256的Lena灰度图像,密钥系统的初始值选取x0=0.27,y0=0.837 0,p=0.7,a=3.999 73。
3.1 密钥空间分析
一种加密算法密钥空间的大小代表该算法可用于加密的不同密钥的总个数。本文算法密钥系统有四个初始值,x0,y0,p∈(0,1),a∈(3.57,4)。根据IEEE 754标准,64位双精度数的精确度为10-15,则该算法的密钥空间可以大至2197。因此,该密钥空间可以很好地抵抗暴力攻击。
3.2 信源熵
信源熵是用来描述信源符号随机出现程度的指标。信源熵可定义为
式(4)中,P(mi)为信源符号mi出现的概率。对于一副理想的随机图像,其信源熵理论上可以达到8。原图像和加密图像的信息熵如表1所示。
3.3 直方图分析
直方图是反映一幅图像在同一灰度级的像素的分布情况。一个好的加密系统,其加密图的直方图应该呈统一分布,以抵抗外界的数学统计攻击。本文的原图和加密图的直方图如图4所示。直方图显示,加密前的图像的直方图呈不规则变化,而加密后的图像的直方图基本呈统一分布,这说明密文不能为非法用户提供有效信息,从而可以有效地抵抗外界的统计攻击。
3.4 像素相关性分析
对于一幅普通的图像来说,其相邻像素,包括水平、垂直、对角线方向,理论上是高度相关的。加密图像相邻像素的相关性是衡量一个加密系统的一个重要指标,相邻像素相关性越低,其加密效果更好。本文选取了5 000对相邻像素点测试其相邻像素的相关性,原图像和加密图像的相关性如图5所示。像素相关性rxy的计算公式如下:
式中,x、y为图像相邻像素的灰度值。原图和加密图的相关系数如表2所示。
3.5 差分攻击分析
差分攻击是一种选择明文类攻击,为了抵抗这类攻击,则要求输入图像中少数像素点变化会导致密文大量像素的改变。像素个数改变率(NPCR)和统一平均变化强度(UACI)经常用来作为该类特性的分析指标,NPCR值越接近100,UACI值越接近34,其加密效果越好。NPCR和UACI的定义如下:
式中,C1、C2分别为两幅只有一个像素差别的密文图像,C1(r,c)、C2(r,c)分别为C1、C2在点(r,c)处的像素值,size(D)为对应图像的大小。该算法的NPCR和UACI的仿真结果如表3所示.可以看出,本文算法经过一轮加密就基本可以达到较为理想的效果,两轮迭代之后可以保证NPCR>0.996和UA-CI>33.4,而要得到同样的效果,其他两种算法至少要迭代两次以上才能实现。
4 结束语
浅析RSA加密算法 篇9
在传输信息过程中,为确保信息的安全性和保密性,信息加密成为一种主要措施。加密算法的种类不胜枚举。从2012年为期5天的RSA大会中,可见RSA已经运用到社会中的各个领域,受到了全世界的关注。这主要基于RSA加密算法不仅易于理解和实现,而且安全性好。
1 RSA加密算法
1.1 算法原理
文献[1]中描述RSA算法是在1977年由Rivest、Scha Mir和Adle Man发明的。RSA算法是一种既用于数据加密也可以数字签名的非对称密码算法,其安全性依赖于因子分解大数问题。
RSA密码算法是利用陷门单向函数的一种可逆模指数运算,它的安全性是基于大数分解的困难性。下面给出RSA体制的算法流程:
1)RSA加解密算法的初始化
第一,加解密系统随机地选取两个非公开的大素数p和q。
第二,计算出公开的模数N和非公开的欧拉函数,N=pq,φ(N)=(p-1)(q-1)。
第三,随机生成一个整数e作为加密秘钥,并使成立。
第四,计算d(私钥),使得)成立,即,为安全起见立即销毁p、q及e。
2 RSA算法存在攻击
尽管对于RSA的密码分析已经研究了三十多年,但它依然是流行和可靠的。可是,在RSA算法实现的细节上存在一些缺陷,这导致了RSA的安全性下降,从而使RSA被攻击者攻破。下面简单地概述一下目前对RSA算法攻击的几种主要方法。
2.1 数学攻击
实质上就是直接对两个素数乘积N的因式分解。这是一种最直接和最困难的的方法。一旦对N进行分解成功,就很容易得到密钥e。大整数因子分解一直是数论和密码学理论研究中的主要课题。根据目前的研究表明,目前最快的因式分解算法的复杂度为。此外,在文献[4]中,作者提出了用于分解强素数乘积构成的RSA模数N的算法,能够进一步提高了运算效率。
2.2 时间攻击
依赖解密算法的运行时间。P.Kocher提出,利用测定RSA解密所进行的模指数的运算时间来估计解密指数d,然后再确定d的值;可以通过将解密运算量与参数d无关来挫败时间攻击;不断强力穷举密钥。
2.3 密文攻击
攻击者非法获取密文通,过对密文反复用公开密钥加密,可以使明文出现。例:如果取RSA参数(N,e)为(35,17),明文M为33,加密明文:c=3317mod 35=3;再次加密:317mod 35=33,从而得到明文。
2.4 RSA的部分明文攻击
另外,攻击者不仅对可以密文进行攻击,也可以通过获取明文消息的部分信息进行破译或恢复整个明文。这也是RSA存在的另一个安全性的重要问题。
2.5 对RSA小指数的攻击
此攻击方法主要针对RSA算法实现中的细节。如果为了加快加密和验证,选较小的e,并且用这些e向多个用户加密同一个消息(N不同),利用中国剩余定理可以联立方程求解明文。
2.6 公用模攻击
如果需要多个密钥对,有一种做法:不再重新寻找p、q,而只是重新选d、e,即若干对密钥使用同一个模N。这时可以不用重新分组,也方便管理。但可能遭到公用模攻击。这样,如果同一信息用两个不同的指数e加密,并且两个指数e是互素的,则不需要任何解密密钥便能恢复出明文。设M是明文,两个互素的加密密钥分别是e1、e2,共同的模数为N,两个密文分别c1=Me1mod N、c2=Me2mod N。由于e1、e2互素,根据扩展Euclid算法可以找到a和b,使其满足ae1+be2=1。假设a是负数(在a、b中,肯定有一个是负数),再次使用Euclid算法可以计算出c1-1故可得到((c1-1)-rc2s)≡M mod N。
3 参数的选择
RSA体制是将安全性基于因子分解的第一个系统。虽然无法证明因子分解等于破解RSA系统,但若能分解因子N,便能破解RSA系统,所以RSA对公开的N的选择是很关键的。对于公开密钥e和解密密钥d也需要加以限制,否则会使RSA不安全。选择参数会影响RSA整个系统的安全,常用的参数选择应注意要求如下:
3.1 p,q的选择
要想提高RSA的效率和安全性,可以从p、q两个参数以下两个方面着手:素数的检测算法和对p、q的破解。
素数的检测算法。在RSA算法中,首先要产生两个大素数。但是要判断一个大整数是否为素数却一直是个难点。素数检测算法有确定性素数检测法和概率性素数检测法两类。目前,在RSA密码的应用中都使用概率性检测法来判断一个大数是否是素数。但是通过概率性监测算法的检测,还是存在伪素数的情况。
对p、q的破解。从RSA算法原理中,我们知道欧拉函数φ(N)和模数N:φ(N)=(p-1)(q-1)和N=pq。那么根据这两个式子可以构造关于p、q的一元二次方程,即χ2-(N-φ(N)+1)χ+N=0。其中p、q满足:
由文献[4]提出的一种强素数的量子算法,可求得φ(N),这样就可以得到p、q的值,即分解了模数N,RSA就被破解了。
总之,为了抗穷举,p、q都要大;p、q的差要大,如果p、q的差不大,可以用N开方估算p、q;p-1、q-1要有大的素因子,p、q要为强素数;p-1、q-1的公因数要小。
3.2 模数N取几个素数乘积
从RSA算法原理,我们知道模数N是由两个素数相乘得到的。那么模数N可以由多个素数相乘得到吗?答案是肯定的。Euler函数φ(N)表示小于N并且与N互素的正整数个数。如果模数N可因式分解为(其中,ai>0,ai互不相同),则φ(N)=∏Piai×(1-1/Pi)即:。文献[1]已经证明了该推断的正确性。
无论取多个素数还是两个素数相乘,一旦计算出模数N的值,就会都被丢掉。所以这多个素数和两个素数的保密性是一样的,RSA的加密和解密过程是相同的。那么在确定N时应尽可能的选择多个素数相乘。但是如果通过量子算法[4]来对多个素数乘积的模数N进行分解的话,那么就不能构成一元二次方程,分解模数N的难度就更大。
3.3 e,d的选择
e不能太小,如果e小,则可能而未取模,这样可以直接对密文开方求出明文;e太小易遭低指数攻击。为了有效防止被攻击,同时有较快的加解密速度,通常加密密钥e选取16位的素数,并且为modφ(N)的阶数,即i要达到(p-1)(q-1)/2。
d不能太小,应该。解密密钥d的值越小,系统签名和解密运算的速度越快,这对于我们常用的智能卡的加密、银行系统的签名特别重要。
4 小结
综上所述,RSA是一种安全性较好的非对称密码算法。它的安全性依赖于对模数N的因式分解。在日常生活中,RSA算法已广泛地运用到各个领域。那么对RSA算法的攻击无时不在。特别地,当选择的参数不当时,RSA很容易被攻击。要确保RSA的效率和保密性,我们应注意以下几点:对素数检测算法进行改进;用量子算法来研究RSA算法。
摘要:RSA算法不但能用于数据加密,也能用于数字签名,还能检测素数的算法,所以它是目前最有影响力的公钥加密算法,能够抵抗到目前为止已知的所有密码攻击。其安全性依赖于大素数因数分解的困难性。文章主要介绍RSA的加密算法原理、加密与解密过程,存在的攻击,以及参数选择。
关键词:非对称密码,RSA算法,加密,素数,参数,量子算法
参考文献
[1]武亚宁.RSA公钥算法的新探讨及改进[J].信息安全与技术,2012(9):27-28.
[2]白洁.RSA大会,安全领袖眼中的世界[J].信息安全与通信保密,2010(4):16-19.
[3]张宏,刘方圆.四素数RSA加密算法的研究与分析[J].2010:29-30.
[4]潘峰,申军伟.一种强素数因式分解的量子算法[J].2010,46(10):73-74.
人类DNA含外星加密信息 篇10
写进人类DNA
国际知名的科学家与作家戴维斯博士撰文说,外星文明也许早将他们的“兴衰史”和对人类的“欢迎词”写进了我们人类的细胞DNA中,只有当人类的科技发展到某个特定阶段,才能读懂我们DNA中那些由外星人留下的“加密信息”!他认为,科学界应该严肃考虑这一观点。
40多年来,世界各地的天文学家孜孜不倦地用天文望远镜搜索着浩渺的太空,希望能捕获到某个外星文明向地球发来的光电信息。美国“SETI”研究计划的科学家们更是发起所谓的“凤凰工程”,用天文望远镜寻找空中可能是外星人发出的激光信号。然而到目前为止,所有的搜索都告无功。戴维斯认为,这一徒劳的结果是合乎情理的,因为如果其他星系真的存在外星文明,那么外星科技很可能领先于人类数百万年甚至数亿年,很能相信拥有这样先进文明的外星智能生物会用“原始”的无线电或激光来与地环人通迅。
戴维斯说,外星人可能将其信息结合进地环生物的基因中,这样地球的生物,尤其是人类的繁衍将带有外星人信息的基因不断复制,并永远保存在地球上。(做到这点其实很容易,其吵一种方法就是以一种携带加密外星人信息的外星病毒感染人类细胞)
“垃圾DNA”藏玄机
事实上,科学家早在人类的DNA中发现了大量的“垃圾DNA”,这些垃圾DNA不包含任何遗传因子,但却表现得异常稳定。戴维斯道:“如果外星人真的曾经将某个信息遗留在地球生物的体内,那么这些垃圾DNA就是最应好好研究的地方。”戴维斯称,如果这些“垃圾DNA'’序列能在电脑屏幕上展现出一个像素数组或一个简单的图像,那么,外星生物曾干预人类DNA的设想就极可能是真的。
戴维斯称,人类的DNA编码足够容纳一部像样的小说,或者一段外星文明的兴盛和衰落简史。
DNA来自天外
戴维斯并非第一位提出人类DNA与外星人紧密相关的科学家,被誉为DNA之父的美国已故科学家克瑞克(Francis Crick)在70年代就提出过这一观点。发现DNA双螺旋结构,因而开似是了分子生物学使现代基因研究成为可能的克瑞克,在其《生活本身》(LifeItself)一书中说,地球上最早的生命可能来自一艘太空船,是外星文明想在宇宙中传宗接代的结果。
《华盛世顿邮报》在介绍克瑞克生评文章中说,克瑞克的这一假设民不无道理,35亿年前生存在地球上的生物就比其周围的无机素要复杂,DNA是一个精心制作的分子,而生合的起顺手在生物记录中却从没有找到过。
科学们发出严厉警告
戴维斯的观点一发表,马上引起强烈反响,反对者将这种观点视为“典型的伪科学”。而对外星人学说有研究的一些人士则号召人们不要再封闭自己的思想了,想想看为什么当克瑞克发现DNA结构时被认为是绝顶聪明,而一提到外星人就不能被接受;天才爱因斯坦到晚年确信上帝的存在,也让那些无神论的科学家引以为憾。那些具有真正的科学探索精神的学者,其实头脑都是很开放的,他们不会把科学暂还不能认识到的事物一股脑儿地说是迷信或伪科学。因为这样就使他们不想再去研究它,而科学也就不可能再发展了。
信息加密算法 篇11
随着社会信息化建设的日趋深入和国内软件产业的迅速发展,计算机软件作为一种特殊的商品,已随着计算机硬件的普及进入社会生活的各个领域。但是作为一种技术高消费型产品,软件产品在研发过程中投入了大量的人力物力,开发成本较高、风险系数较大、技术难度较强、系统安全性较低等诸多因素制约着软件产品的推广。本文以实际开发的共享软件(在VB.NET开发环境下,实现简单的干洗店前台管理系统)为例介绍了不同加密算法在软件加密保护中的综合应用。
1 使用RES算法实现软件注册加密
由于计算机软件的易复制性,为有效保护软件开发者的知识产权,需要使用相应的加密技术,实现对软件的注册加密。就目前来说,最为行之有效的办法就是采用“一机一码”的注册机制对软件进行注册。大量研究表明,通过读取计算机CPU序列号、硬盘序列号、网卡MAC地址等硬件参数作为加密的明文,生成软件的注册码,并通过注册表来保存注册码,能够有效地防止软件的非法复制。而生成注册码的关键是要采用高强度的加密算法,否则,很容易被解密者通过逆向分析写出注册机,导致软件保护彻底失败。RSA是最流行的非对称算法加密之一,它的突出特点是破解者即使分析出软件中的注册验证算法,也很难推导出注册机的算法,非常适合软件注册码的加密算法。
因此,干洗店前台管理系统作为一个共享软件,采用该算法实现软件注册加密是一种行之有效的方法。
1.1 RSA算法的实现
选择两个大素数p、q,尽量使p、q的差值大,并且(p-1)、(q-1)的因子有素数。
计算n=p*q,&(n)=(p-1)*(q-1)注册码的长度取决于n的长度,n的位数越多越安全,在注册码软件加密保护的实际应用中,一般认为RSA算法的密钥需要1024位以上是有安全保障的。
在这个过程中d和n互素,(e,n)为公开密钥,(d,n)为私人密钥,大素数p和q在生成密钥以后不再需要,可以将它们舍弃,但绝不可泄露。
1.2 软件注册的实现
生成软件注册码,需要获取用户端机器的硬件参数所构成的明文。该明文可以采用多种方式进行加解密,由客户端获取,如图1,在客户端可以获取机器码。
用户在未注册状态下获取机器码后,通过多种方式将用户的机器码发送给软件开发人员,由软件开发人员通过软件注册机生成注册码(图2),并将注册码反馈给用户进行注册,以取得软件的使用权。其中在注册码生成的过程中,机器码作为明文信息m,使用私人密钥(d,n)对机器码m进行加密,得到注册码密文s=(m^d)mod n。
用户获取注册码后,将注册码输入后(图1)进行对注册码校验,使用公开密钥(e,n)对注册码s进行解密得到明文信息m’=(s^e)mod n,比较m与m’,如果相等,则s是软件作者给的合法注册码,软件正常运行,并将注册信息写入系统注册表,否则软件注册失败,软件拒绝运行。
由于RSA算法需要进行的都是大数计算,运算速度成为制约RSA算法的瓶颈。无论是软件还是硬件实现,速度一直是RSA算法的缺陷,所以RSA算法一般情况下只用于少量数据的加密,因此在软件注册验证时可以采用RSA算法进行加密。但是在对系统文件和配置文件的加密上,RSA算法显得无能为力了。
2 使用DES算法实现系统文件和配置文件加密
DES(Data Encryption Standard)是典型的并且应用最为广泛的加密算法之一,它是由IBM公司1975年研究并发布的,1977年它得到了美国政府的正式许可,成为一种标准的加密算法。目前已被应用于许多需要安全加密的场合(如银行数据加密等)。DES算法把64位的明文进行16轮编码变换为64位的密文输出块,它使用64位的密钥(实际为56位,8位是奇偶校验位)。DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。
在共享软件开发过程中,对于系统配置文件、系统源文件、系统生成文件的加密,可以采用DES算法进行加密。一方面它具有极强的安全性,另一方面该算法的执行效率较高。
例如,在干洗店前台管理系统中的数据库配置文件中,数据库初始化时的相关数据库服务器、数据库用户名和密码等信息,可以用DES算法加密后存放在数据库配置文件中如图3。
实现方法如下:
3 使用MD5算法实现系统登录加密
MD5加密算法是Hash算法的一种,它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。使用MD5算法加密后的密文具有不可逆性,也就是说即便是密文被别人获取,也很难被破解成明文,因此MD5算法在用户身份验证方面得到广泛应用。
当用户登录系统的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在数据库文件中的密码值进行比较,进而确定输入的密码是否正确。通过这样的步骤,软件系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。
在用户登录界面,系统需要将用户输入的密码字符串使用Fun_MD5()函数进行加密,生成用户密码的密文,然后将用户密码的密文字符串与数据库中的用户密码字符串进行比对,如果相同则登录成功,否则登录失败。
在用户注册界面,用户所输入的用户密码字符串,需要先经过Fun_MD5()函数生成用户密码的密文,然后将用户密码的密文保存在数据库中。
因为用户密码的密文具有不可逆性,如果用户的密码遗失,只能将该用户的密码初始化后重新修改。
4 总结
伴随着加密技术的日益成熟,各种加密算法在保护个人隐私及软件传播上做出了巨大的贡献。但是,软件加密所带来的安全只是相对的、暂时的,软件在设计开发的过程中不可避免地存在着一定的隐患和漏洞。随着解密技术的不断发展进步,软件加密技术也在不断完善。
参考文献
[1]卢开澄.计算机密码学.计算机网络中的保密与安全.清华大学出版社.2005.
[2]黄俊,许娟,左洪福.基于RSA算法的注册码软件加密保护.计算机应用.2005.