加密方案设计

2024-10-21

加密方案设计(共12篇)

加密方案设计 篇1

随着社会信息化程度的不断提高,人们对信息存储的安全性要求越来越高。存储设备作为信息存储的载体,其加密重要性日趋凸显。这也成为当今专家学者的研究热点之一,胡伟等对移动硬盘硬件加密的设计与实现进行了研究。但当今市面上大多数存储载体都是以明文形式直接存储信息,或者是以软加密方法进行加密,保密性能较低,不能满足用户需求。本文采取硬加密技术,设计了多功能加密U盘,不仅实现实时加密,而且保密性能大大提高。

1 U盘保密原理

1.1 U盘加密方法

目前,市面上的U盘加密方法主要有三类:A.假加密,通过设置密码验证身份,隐藏文件,而实际存储内容没有任何变化。B.软加密,通过内置或附带软件对数据进行加密,一般用AES,也可分加密区及非加密区。C.硬加密,通过内置硬件透明加密,读取时验证。其中,硬加密由于具有U盘防止数据恢复、防暴力破解、防病毒等优点,是目前市面上各种U盘加密方法中安全性最高的。

1.2硬件加密设计

本设计主要由AT89C52单片机(芯片)、矩阵键盘、管脚电路等部分组成。

1.2.1加密芯片设计

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。本文选择AT89C52单片机为核心控制元件,设计一个置于U盘内部的电子密码锁。该加密锁是由单片机系统及MAX232组成。使用单片机汇编语言进行编程,实现了硬件加密锁的功能。本加密锁结构简单,保密性能高,造价成本低,有很强的实用性。

AT89C52单片机工作性能参数如表1所示。

1.2.2管脚设计

本设计中,与AT89C52单片机通过管脚相连接的包括矩阵键盘、解锁电路(包含发光二极管)、自锁电路、电源电路以及复位电路等。芯片管脚连接如图1所示。

AT89C52单片机共有40个引脚,32个外部双向输入/输出(I/O)端口。

P0口为一个8位漏级开路双向I/O口,用于连接输入错误密码达到5次时对整个电路的自锁功能。

P1口是一个内部提供上拉电阻的8位双工I/O口,用于连接矩阵键盘。

P2口是一个内部上拉电阻的8位双工I/O口,用于连接串行存储器。

P3口作为AT89S52的一些特殊功能管脚备选功能,此设计中将它作解锁电路(包含发光二极管)的接口。

1.2.3矩阵盘设计

本设计采用四位数字密码器,由于所需按键数量较多而不适合采用独立按键式键盘,因此采用2*3矩阵式按键键盘,该键盘能够完成键盘的输入功能。

1.2.4总体硬件设计

在芯片、管脚的基础上,设计矩阵键盘,用于输入数字密码和进行各种功能实现。由用户通过连接单片机的矩阵键盘输入密码,而后经过单片机对用户输入的密码与预先保存的密码经行对比,从而判断密码是否正确。将发光二极管灯与解锁电路相连接,来显示锁的开关状态:若密码正确,则发光二极管通路发光;若密码错误,发光二极管处于熄灭状态。

1.2.5软件设计

利用AT89C52单片机(芯片),设计密码锁电路和控制程序。其基本功能如下:

(1)使用密码键盘来输入相关信息;

(2)设置6位数字和符号(0-3)密码;

(3)默认一组六位数字密码“000000”;

(4)优盘USB连接时在载体上完成密码重设;

(5)键盘设置如下两个功能键:A-确定;B-清除按键/输入密码。

U盘USB连接时密码输入正确则密码锁打开读取数据,否则显示错误。若五次连续输入错误密码,自锁电路运行从而数据无法再次读取。U盘解密流程如图2所示。

2 U盘结构与功能设计

2.1 U盘结构设计

U盘主要结构由U盘、密码器和启瓶器三部分构成,如图3所示。

图3中,主体是U盘,U盘又包含USB端口、主控芯片、加密芯片、PCB底板、外壳封装等五个模块。其中USB采用A型端口,负责连接电子载体,是数据输入或输出的通道;主控芯片负责各部分的协调管理和下达各项动作指令,并使计算机将U盘识别为“可移动磁盘”,是U盘的“大脑”;加密芯片对存储数据进行保护;PCB底板负责提供相应的处理数据平台,能将各部件连接在一起。

U盘的表面设计了密码器。密码器上有六位按键,前四位是数字键,用于输入密码,后两位是“确认”、“取消”键。U盘的尾端是启瓶器,其外形是军队常见的五角星形状,在五角星中间镂空的圆中,添加了“八一”实体字样,“一”字上凸起的部分可实现开启瓶盖的作用,U盘的外壳是圆柱状导弹样式,并涂有迷彩色,具有鲜明的军事特色。

2.2 U盘功能设计

2.2.1加密功能

本U盘采用硬加密技术设计解锁密码,唯有正确地输入密码时,才能成功读取优盘内部所存储的数据,从而实现对用户信息实施有效保护的功能。

2.2.2启瓶功能

本U盘具有启瓶器的功能,凭借圆环端上的字体“八”和“一”以及临近部位的镂空外形,成为一个独特的启瓶器。启瓶器采用杠杆原理,属于省力杠杆。设计时,启瓶器把手的长度和支点位置必须设计合理,方便人以最小的力气开瓶。使用时,字体“八”将瓶盖固定,表示杠杆的阻力点,字体“一”中心突起部位卡进瓶盖边沿以作支点,U盘端口一端作为作用点并在这里施以作用力;瓶盖被固定处至指点之间的垂直距离为阻力臂,U盘端口至固定点的垂直距离为动力臂。假若需要使用此功能,适当固定瓶盖后作用恰当的外力便能将瓶盖开启。

2.3外观特点

本加密U盘具有鲜明的军事特色。在圆环一端,五角星与字体“八”和“一”设计来源于07式常服大檐帽帽徽实际,同时为了实现启瓶器功能,创新性地将中心部位镂空,在满足足够实用性的前提下使外观也得到最大条件下的突破,达到了实用性与外形的双重实现。

U盘外壳部分采用中国自主研发的东风导弹系列模型,这样的设计将华夏子孙最引以为豪、最能代表中国武器装备水平的武器装备之一融入创新设计中,不仅能满足用户的使用需求,同时也满足用户的心理需求,能够让产品更受欢迎。

在颜色方面,确保U盘的结构外观特色更加突出。主体采用迷彩色,其余各部位颜色与其原模板颜色保持一致:即五角星呈红色,而字体“八”“一”为黄色;主体圆柱部位和U盘盖为迷彩色。

3结论

根据前期的市场调查,U盘用户普遍关注的是保密性、机械设计的实用性以及外观设计的创新性。本作品以密码加密为切入点,在实现硬加密的同时,加以实用性很强的启瓶器设计以及独特的外观设计,能够满足军队涉密人员、掌握商业机密人员和广大军迷朋友的需求。其应用前景不仅局限于部队,还可涉及地方行业的方方面面,如金融领域、教育领域、餐饮领域,凡是需要上述功能的,本作品均可为之适用,应用面极广。

参考文献

[1]胡伟,慕德俊,刘航等.移动硬盘硬件加密的设计与实现[J].计算机工程与应用,2010,46(22):62-64.

[2]李建波.基于AT89C52单片机的电子密码锁[J].现代电子技术,2008,28(23):154-156.

[3]郭海英.基于单片机的电子安全密码锁的设计[J].现代电子技术,2005,28(13):95-97.

[4]李劲,李斌,周全江.四位数字密码锁设计[EB/OL].[2016].http://wendang.baidu.com.

[5]陈丽君,王英丽.基于51单片机的硬件加密锁的设计与实现[EB/OL].http://wendang.baidu.com.

加密方案设计 篇2

本文设计并实现了一款基于USB协议的计算机接口加密系统,通过USB接口与计算机连接,系统很好地满足了在普遍使用的优盘上实现敏感数据的加密 【关键词】计算机 数据接口 加密系统 设计

随着数字技术的发展,大量敏感数据被存储于移动载体上,由此带来的安全隐患日益严重,于是移动存储设备所带来的信息安全问题也越来越被用户重视。

因此,为确保信息的完整性、实用性、保密性和可靠性,确保用户使用方便的加密技术呼之欲出。

在不断发展的计算机技术下,研制一款无需安装、操作简便、灵活、实用、识别简单、加密强度高,能够充分利用现有资源、且小巧美观、携带方便的加密设备具有重要的现实意义和使用价值。

1 软件加密

1.1 软件加密方案

1.1.1 PrivateZone软加密方案。

我的地盘(PrivateZone)磁盘加密软件,该软件运行后,会自动生成一个可以加密的分区,保存到该分区的数据将自动的被加密。

用户凭访问密码才能访问该分区的数据。

至于如何在移动硬盘中使用,用户还必须通过自己手动设置的方式来实现加密。

将此加密工具复制到用户的U盘或移动硬盘根目录中则可以加密隐藏U盘或移动硬盘上的所有文件。

将此加密工具放到文件夹中则只加密当前文件夹。

需加密多个文件夹则每个文件夹中都得安放本工具、不同的文件夹可用不同的密码,但密码你必须记牢。

1.1.2金盾卫士软加密方案

从官方数据可以知道KDS金盾卫士加密软件采用内核技术、手工加密。

该软件加密强度很高,密钥的长度达到128位。

通其他加密软件相比,该软件是真正意义上的文件内容加密,不是所谓的某些文件夹加密软件,通过隐藏文件来实现“伪加密”。

1.2现有软件加密缺点

(1)需要在电脑或U盘中安装软件,一但系统不稳定或软件损坏可能造成数据永远丢失。

(2)需要记忆较长的密码,用户一旦忘记密码,数据也将永久丢失。

(3)需要用户手动完成相关操作,如加密、复制加密工具等。

(4)很难防止别人通过其他软件进行暴力破解,或者利用软件本身的漏洞进行破解。

软件加密最大的缺点是密码问题,如果用户长时间不使用,一旦忘记密码,连自己都无法进入,相当于把自己关在了防盗门之外。

数据安全也就完全失去了意义。

另外这些产品的应用都需要借助计算机的帮助,如果用户想在没有安装这类软件的机器上或者U盘上使用数据就必须要下载软件并且安装后才能读取。

非常的不方便。

此时硬件加密就显现出了其无可比拟的优越性。

2 硬件加密

2.1 硬件加密方案

现在我们常使用的移动硬盘,也存在很多的常见的加密方案,为了防止在存取数据的环节上的数据被非法获取,必须采用对移动硬盘全盘硬件加密。

这涉及到一系列的加密法转换、附加密钥、加密模块等过程。

解密部分还对硬盘的数据进行完整性校验。

通过采用这些措施保证数据的安全。

2.1.1 朗科U661闪存盘

朗科推出的硬件加密产品U661闪存盘采用朗科特有的256位专业级AES硬件数据加密的防范功能,该款闪存盘拥有硬件加密、磁盘分区加密、普通操作人员加密等功能,是一款具有很高的安全性的硬件加密产品。

2.1.2 K301

朗科公司推出的另外一款优盘的型号为K301。

K301由设备端硬件实现数据加密功能,在该优盘的加密区,数据被加密后存储在优盘,就是更换连接设备,读出的数据是经过加密的信息,没有任何实际意义,保证了数据的安全。

2.2 现有硬件加密缺点

(1)对于很多硬件加密的设备,加密芯片都是内嵌的,使得这些加密设备只能对自身进行加解密操作,既只能完成一对一的加密;

(2)由于加密需要对传输的数据进行数字化处理,从而导致进行数据传输时速度变慢,并且对所有传输到加密设备内的数据都进行无选择性的加密,使得这些加密设备的使用带有较大的局限性,使用较为不便。

(3)价格昂贵,性能一般的加密设备价格是普通U盘的3-4倍,而性能稍好的价格远高于此,导致很多用户对加密设备望而却步,市场占有率很低。

3 功能分析

本文提供的加密技术,只要U盘等移动存储载体通过它连接电脑,就可以对电脑传输到移动存储载体内的数据进行加密或者对存储载体内的加密数据进行解密读取并进行处理。

对于初次使用的用户,无需在电脑上安装任何软件或者驱动,转接系统连接电脑后,电脑将自动运行mass-storage协议,从而系统成为了一个假U盘。

对于比较关心的密码,用户只需使用一个小小的SD卡写入一个八位数的密码即可,而无需记忆,这就相当于用户花钱买了房子之后,只需买一把保险的锁将大门锁起来,只要有效地保管好钥匙,就无需担心房子内的财产安全。

当存储有加密文件的移动存储载体直接连接电脑后,在现行的文件系统下是无法看到经过加密系统加密的文件的,即使客户使用。

3.1 系统功能

这是一款真正实现了数据加密的小巧易用的加密设备。

既秉承了传统软硬件加密的优点,又具有自己独特的功能:

3.1.1 真正的文件加密

通过解析SCSI指令将PC写入U盘的数据用DES加密算法处理后再写入移动存储载体内,从而确保了对所有的传输的数据进行了加密操作,保证数据安全。

3.1.2 真正的文件隐藏

利用独特的算法对U盘的FAT文件结构进行处理,将加密后的数据再做隐藏,使得在移动存储的载体直接连接电脑时无法看到经过了加密的文件,即使使用了专门的数据恢复软件,也无法将加密的文件再现,进一步保证数据安全。

3.1.3 真正的一盘多用

经转接口加密的优盘同时还可以当做普通优盘在计算机上正常使用,同时,加密后的数据与非加密数据在存储时是物理隔离的,以保证数据安全。

所以,对于一个普通的非加密U盘,既可以把它当做一个安全的加密U盘进行文件的存储管理,同时也可以将其当做正常的存储介质使用。

3.1.4 真正的即插即用

无需安装任何驱动软件和应用软件,直接用转接口连接U盘和PC,就可以进行加密存取。

在接口第一次连接电脑时,计算机操作系统调用masstorage协议,识别之后就可以真正实现即插即用。

3.1.5 真正的一口多用

加密设备独立于存储介质,即使用本转接口可以对目前市面上的几乎所有主流优盘进行加密处理而不必购买专门的加密优盘。

拥有一个转接口就相当于拥有了无数个加密优盘。

3.1.6 安全的密钥管理

用户只有将存储有密钥的SD卡插入卡槽才能进行加密数据的存取。

而SD卡的管理和携带就像我们平时使用家里的钥匙一样。

加密算法的难于破解和密码的低泄露风险,保证了数据的安全。

3.1.7 透明的用户操作

用户通过转接口对优盘数据进行存储和在电脑上直接操作优盘没有任何区别。

符合用户的操作使用习惯。

3.1.8 小巧的结构设计

整个加密转接口封装完成后只比烟盒略大,携带使用非常方便。

3.1.9 人性化的操作使用

无需花费精力去记忆繁琐的密码,无需花费时间安装专门的驱动或者使用软件,无需花费多余的钱去购买两个加密U盘。

3.2 系统特点

该加密系统对除控制信号外的所有数据进行硬件加密,防止存储环节上的数据失密,这一点和目前的加密硬盘相似。

但与目前的加密硬盘相比,该加密转接口具有无可比拟的优势,突出的特点是:

3.2.1 使普通U盘具有双重模式。

U盘并非只有一种加密模式可以使用,当U盘没有通过转接口连接电脑时,U盘可以当做普通U盘来使用,并且已经加密的.数据与非加密数据在存储空间上是物理隔离而且不连接转接口时加密数据是不可见的,任何人无法找到这些已经加密的数据,除非连接加密器。

而当连接加密器时,普通的文件也是无法显示的。

这样一来,就给用户带来了很大的方便,一盘两用。

当然数据是绝对安全的,这是因为我们通过相应的逻辑操作来达到物理隔离的效果,使不同的数据存储于不同的扇区中。

3.2.2 基于SD卡的密钥管理和数据加密。

DES加密算法所使用的密钥存储在SD卡中,与存储介质和加密设备分离。

这样做的好处,首先是对用户来说再也不用记忆冗长的密码。

当然最重要的是提高数据存储的安全性,没有存储于SD卡中的密钥,就无法对优盘中的加密数据进行操作。

没有密钥更无法将存储在优盘中的经DES算法加密的数据还原。

3.2.3 加密转接口性价比很高,应用前景非常可观

和同类的硬件加密相比较,市面上一般的加密优盘价格在200元左右;而本加密转接口如果能量产,则其成本不会高于60元,但是他却可以完成对现有普通U盘的加密,如果有多个U盘,节省的开销将非常可观。

加密方案设计 篇3

关键词:数字档案;文件加密;数据压缩

1 引言

随着各种图像采集设备的广泛应用,当今的网络数据以及档案数据中,数字图像所占比例正在不断增长。相比传统文本文件,图像文件的数据往往是海量的。面对越来越多的多媒体文档,档案存储的技术方式需要改进。本文提出一种针对数字档案文件存储的压缩结合加密方法。

2 数字档案的安全保存特点与需求

2.1 数据量巨大,有效的压缩可以提高存储的效率。相比实时场景图像压缩方法对于时效性的极高需求,数字档案存储可以在实时性和压缩效率上实现灵活的平衡,因此一些更先进更复杂的算法可以引入数据压缩过程中。

2.2 数字档案文档中,文本、数据、图像往往混合交替出现。每一种类型的文档的数据特点各不相同,它们的码率、原始编码格式、无损压缩极限对压缩编码器提出了不同要求,因此编码器应当能够自适应调整编码方式,实现速率可控的压缩编码。

2.3 数字档案具有较高的安全性需求。档案安全的重要性自不待言,然而传统的加密方案如DES和AES等不适合应用在高计算复杂性的图像加密中。另一方面,一些加密方案比如基于秘密分割或盲源分离算法,对空间域中的像素进行扩散,得到良好加密安全性,但加密后的密文文档会产生远大于明文的数据量[1]。如果一套档案存储方案中先后使用了压缩与加密方法,那么加密带来的冗余数据将抵消掉压缩编码的效果。因此在压缩域同时实现加密是有必要的,最近的研究已开始重视在压缩过程中集成加密算法[2]。

3 压缩编码的选择

为了确定适合于数字档案文件压缩的方法,我们分析和测试目前主流的无损压缩算法,包括基于变换的方法:JPEG、JPEG2000以及基于SP的变换编码方法;基于预测的无损压缩算法:LJPEG,CALIC;基于字典的压缩方法:PNG和RAR;以及SPIHT方法。

JPEG2000,是一个ISO/ITU-T标准的图像编码方法,它基于离散小波变换(DWT)、标量量化、上下文建模、算术编码和压缩后的速率分配等方法。

SPIHT,根据变换系数的量级来将它们从最高有效位传输到最低有效位平面,采用重要信息确定树形结构,算法的执行取决于零树结构。

S+P变换,使用简单的金字塔多分辨率方法,通过预测编码增强,它的计算量小,只使用整数增补和位移,解决了有限精度的问题。

无损JPEG (L-JPEG),使用三个最近的邻居(上,左,左上方),熵编码用于预测误差,无损JPEG在医疗成像方面有一定的知名度。

PNG,便携式网络图形是W3C推荐作为替代GIF的编码方法,它是基于预测方法的熵编码。该熵编码用于深受欢迎的Zip文件压缩程序。

WinRAR,是一款共享的文件归档和数据压缩工具,它完全支持RAR、ZIP、TAR、GZ、BZ2、JAR、ISO、7Z和Z文件。这些算法都基于一般的文本压缩字典。

使用香港理工大学的标准数据库进行对比实验,选取7000幅图像作为实验样本,测试平台为Pentium处理器(2.66 GHz),4GB内存,Windows 7操作系统和Visual C++6.0开发环境。所有无损压缩程序均在Win7的VC环境中重新编译。我们衡量压缩R=(原始图像大小)/(压缩图像大小),较大的R值表明更好的压缩性能。

图1给出的压缩方法的时间/压缩比,是数据库中全部7000次样本测试运行结果的平均值。标准JPEG(B+ECT)方法的压缩率比较低。S+P的压缩比很高,但此方法有较长的运行时间。LJPEG和PNG得到了几乎相同的压缩比。而Winrar软件仅适合用于压缩文本文件,不适合用于压缩多媒体文件,如视频、图像或音频文件。CALIC虽然是压缩率最高的算法,但是SPIHT在压缩率和压缩速度上找到了最佳的平衡。因此,对于数字图像档案文档数据压缩的大多数情况下优先推荐SPIHT方法。

4 结合SPIHT和RAC方法在压缩域实现文档加密

最近的研究表明,信息熵编码方法在加密的同时仍然可以保留明文的压缩性能。混沌系统具有许多重要的性质,比如对初始条件和控制参数具有高度敏感性,适合用于加密方案。基于混沌系统随机算术编码(RAC)已经应用于图像加密,混沌系统作为伪随机位生成器(PRBG)。前反馈非线性动力学滤波器(FFNDF)可以产生具有均匀分布的n阶混沌信号并被成功的应用于构造哈希函数,它可以用来产生更安全的伪随机序列。通常算术编码(AC)是信源编码的最后阶段,它可以做到对图像、文本等各种类型文档实现数据压缩,而RAC方法可以提供安全性且不影响压缩性能。上文中已经证明,SPIHT算法是有效的图像压缩算法,在SPIHT算法中应用RAC方法可以得到灵活的保护机制,实现完全加密或选择性加密。

SPIHT算法根据变换系数的大小将它们从最高有效位传输到最低有效位平面。SPIHT采用重要信息集确定树形结构,算法的执行取决于零树结构,即使在编码器数据开始阶段出现极小的重要信息误差,算法都不能正确地解码图像。这种敏感特性使得它适合于实现加密。压缩算法产生的许多不同类型的位(符号位,细化位,重要位,重要集合)。解压缩算法必须解释每一位在上下文中的正确意义。错误的重要位将导致后续位错误,而细化位则不会。本文提出的算法框架如图2所示,首先,原始数据通过小波变换得到变换系数;随后采用SPIHT进行分类,决定重要映射。根据阈值给出的重要系数,不重要的空间方向树和孤立的不重要系数重新排序,得到重要位和符号位;接下来是细化阶段,获得重要系数的附加细化位;最后,使用FFNDF生成伪随机位序列,控制对符号位与比特流进行异或运算,实现自适应的二进制RAC对量化的符号流进行数据压缩和加密。

在SPIHT编码阶段,重要系数的坐标隐藏在重要位中。由于SPIHT的预测性和可变长度编码,解码不仅取决于当前的位,而且取决于重要位。一个重要位错误会导致严重的错误传播。而标志位和细化位不能提供足够的视觉信息。所以,如果想实现选择性加密,标志位和细化位可以不必被加密,从而获得更快的加密速度。如果我们想保护信息的全部内容,就需要加密所有的位。因此,根据应用的情形,我们可以灵活地将编码算法分为全部加密和选择性加密。由于SPIHT方法针对图像的空间冗余,而RAC针对熵冗余,所以该加密方法是文件格式兼容的,文本、图像和任意文档都可以使用此算法进行加密和压缩。

5 实验结果和安全性分析

实验采用国际标准图像goldhill(512*512),压缩比为0.25bpp(比特每像素),二阶FFNDF的产生密钥和仿真条件为:反馈系数为3.57和4.0,转换系数为5.70和7.0,初始值是0.7238。状态值分别是0.3552和0.8421,控制参数是分段线性映射0.35。所有的仿真采用双浮点运算IEEE754浮点标准。

(a)原始图像;(b)图像的小波域;(c)全加密和压缩的图像;(d)仅细化阶段加密的图像;(e)仅系数加密的图像;(f)使用错误密钥解密后的图像

图3给出了原始图像以及变换过程和加密解密结果,完全加密可以获得良好的安全性,但是仅使用细化位或系数参与加密运算则只改变了图像的亮度/对比度,实现有限的保护。

优秀的加密系统需要有极敏感的密钥保证系统能够抵御暴力破解。FFNDF对于初始值和控制参数非常敏感,根据图6(f),与初始密钥差别在10-15量级的错误密钥解密后的图像完全不可读取。系统对初始密钥值的敏感度达到了的10-15,而其他参数的敏感度是10-16,密钥空间为 ,这足以抵抗密钥搜索破解。

6 结束语

加密方案设计 篇4

随着视频应用的日益广泛, 视频的安全性变得越来越重要。基于以往的标准, 人们研究了许多加密算法:有用传统密码技术进行全部加密的方法, 如DES算法、CSC算法和VEA算法, 这类算法虽然有较高的安全性并且不改变压缩比, 但是计算复杂度很高;有对DCT系数进行加密的方法, 如分段置乱算法, 这类算法虽然有较低的计算复杂度, 但是安全性低于全部加密的算法, 压缩比也有所改变;有在熵编码过程中进行加密的方法, 如多状态索引方法, 这类算法虽然计算复杂度低, 对压缩比的影响较小, 但在已知明文攻击情况下是不安全的。上述方法各有优缺点, 而且大多针对MPEG标准, 因此研究适合H.264特点的安全加密技术成为目前研究的热点。

针对现有视频加密算法的不足, 本文提出一种基于H.264的可感知加密算法。

1 加密数据元素的分析与选取

对H.264编码宏块语义层进行分析, 决定提取帧内预测模式字 (Intra Prediction Mode) 、运动向量差值 (Motion Vector Differ_ence) 和残差系数 (Residual Coefficient) 三类定长语法元素 (fix-length code) 进行加密操作[1]。

1.1 帧内预测模式字

根据每个宏块所属片组的不同, 每一个宏块都有几种编码预测模式。但帧内预测编码是所有片组编码类型中都支持的。对亮度像素块而言, 存在有Intra_4×4, Intra_8×8、Intra_16×16三种预测模式。Intra_4×4模式下有9种预测模式, 适用于对图像细节部分进行编码, Intra_16×16有4种预测模式, 适用于对平坦区域进行图像编码[2]。

采用Intra_4×4的编码模式字进行加密操作。每一个4×4块都是通过上方和左方像素预测而来, 如图1所示, a-p为待预测像素, 它利用相邻块中已经解码的A-Q像素来进行预测。对每一个4×4块, 总共有9种模式供选择[2], 其中除了DC模式, 另外8种预测模式的方向也在图1中。

图1 Intra_4×4预测示意图

Intra_4×4的编码预测模式总共有9种预测模式, 至少需要4个bit位来进行编码。在H.264的标准中, 利用一个“prev_Intra_4×4_pred_mode”字段来排除一种预测方式, 用另外3个bit位来表示余下的8种预测模式。因此, 只对后3个bit位进行加密扰乱, 这样的加密过程中, 不会影响到其他字段, 也不会产生额外的码流。

1.2 运动向量差值

如图2所示, 在P帧或B帧中, 每个宏块 (16×16像素) 可以有4种方式来进行分割:16×16、8×16、16×8、8×8。如图2 (d) 是采用8×8模式, 分为4个子宏块 (8×8像素) 。每个字宏块可以进一步进行分割:8×8、4×8、8×4、4×4。

每一个分区或者子宏块都有一个单独的运动向量MV (Motion Vector) , 用于引用前面参考帧的对应区域来对当前块进行预测编码。每个预测区的MV都需要相当数目的比特位来进行编码。为了进一步减少比特数, 可以利用邻近的MV之间的相关性进行预测编码。后一个MV可由前面已经编码的MV预测得到, 只需要对它们的差值MVD (Motion Vector Difference) 进行编码。在H.264中, MVD值是采用指数哥伦布 (Exp-Golomb) 进行编码的, 这是一种变长编码[3]。

指数哥伦布编码由前缀和后缀构成, 前缀为M个0后面跟一个1, 后缀为M bit的INFO, 其码形为:[M zero]1[INFO]。其中, M=floor (log2 (Code Num-1) ) 。若MVD<0, CodeNum=2|MVD|-1, INFO的大小为Code Num-2M。用加密函数来对INFO进行加密:y=Encrypt- (INFO) , 其中y为加密后的密文。

本文只对MVD的符号位进行加密, 对于每一个MVD值, 只需要对一个bit位进行加密操作。

1.3 残差系数

在H.264中, 残差块系数通过CAVLC和CABAC进行编码[4]。在进行CAVLC编码的过程中, 涉及到以下几个语义字段[2]:非零系数数目 (Total Coeffs) 、拖尾系数数目 (Trailing Ones) 、非零系数幅值 (Level) 以及最后一个非零系数前零的个数 (Total Zero) 和每个非零系数前零的个数 (Run Before) 。经过分析, 只有Trailing Ones和Level的符号位是属于定长字段[6], 因此提取这两个字段的符号位进行加密操作。如图3所示。

2 算法设计

分别引入三个不同的控制参数P1、P1、P3对预测模式字IPM、运动向量MVD和残差系数Residual Coefficien的加密强度进行控制[1], 具体方案为:以P1、P2的概率分别对IPM、MVD进行加密, 当P1、P2从0到1进行变化时, 相应地进行不加密到完全加密;以P3对Residual Coefficients系数符号位进行不加密到完全加密控制。

下面是算法的具体伪代码描述:

3 仿真结果与分析

3.1 实验环境

实验测试条件:H.264/AVC标准, JM10.2版本, 以IPPP方式进行编码, I帧刷新率为10, 帧率为30 F/s, 2GB内存, Intel T5670处理器, 并用VS2008完成对JM10.2代码的调试。实验中采用CIF格式的352288的foreman作为视频序列。

3.2 加密效果分析

单独加密IPM字段, 只是对亮度信息进行加密, 如图4中人脸和轮廓信息清晰可见;单独进行MVD加密的过程中, 如图5中, I帧图像完全不受任何影响, B、P帧的I bock也完全不受影响, 关键信息很容易泄露。单独对残差系数进行加密, 如图6, 与IPM一样, 图像的轮廓信息没有很好的隐藏。另外, 从对抗解密攻击能力上来看, 单独对一种加密元素进行分析加密空间更小, 也更容易实施破解。因此, 在视觉安全性要求比较高的场合, 应该联合对所有三种元素进行加密, 从图7可以看到, 随着加密强度不断提高, 视频图像可感知性不断下降, 在最强的加密强度下, 整幅图像完全被扰乱有很高的视觉安全性。各种方汉加密后PSNR值如表1所示。

3.3 安全性分析

在加密方案中, 保持视频格式的语义兼容性, 加密操作并不改变相关字段的长度。攻击者会很自然地通过单独猜解每个字段元素的值来进行Cipher-only Attacks[7]。最简单的方法是进行ECA攻击 (Error Concealment-based Attack) , 就是将所有FLC的值赋值为一个固定值进行破解。同时, 攻击者也可以通过相邻块之间的相关性来单独猜解每个FLC的值, 下面对其复杂性进行分析说明。假设在一个帧数据中所有FLC的数据为N, 加密的概率控制为p, 则在一帧数据中实际进行加密的FLC的数目为p N, 对一帧数据进行去块攻击的难度至少为O ( (CNPN2PN) 。对于每一个符号字段[5], 至少有两个取值 (0和1) , 如果是IPM字, 则有更多的取值可能。如果假设p>100N, 则有2PN>2100, 实际上, 在一个数据帧里面, FLC的数目要远远大于100, 该加密的方案在对抗Cipher_only Attacks攻击还是十分有效的。

3.4 性能分析

一个加密算法的计算复杂度主要取决于它要进行加密的数据量。本文加密的数据量主要包括IPM、MVD和残差系数。在一个宏块中, IPM和MVD符号位, 还有Residual Coefficient的符号位需要加密, 因此, 要加密的数据量同整个视频数据相比, 只占很小的部分。所采用的加密操作也仅仅是对相关的bit位进行“异或”操作, 所需的系统开销极小, 基本上不会对编解码带来影响。

本文研究了一种在H.264编码下进行Perceptual Encryption的方法, 通过对语法元素的分析和编码方式的研究, 选取了IPM、MVD和Residual Coefficient这三种定长字段的元素进行加密。通过引入概率参数来对每种类型的字段加密强度进行控制, 分析加密不同元素所带来的视频加密效果。实验结果表明, 单独加密其中任何一种元素, 都能对图像带来很大的干扰。但要获得很好的安全性, 必须联合加密三种元素。这种加密方案具有很好的安全性和实时性, 而且不会带来额外的码流, 保持了视频的压缩比不变, 并且可以调整不同的加密强度, 适用于各种应用的需求。

摘要:针对多媒体视频传输的安全性与实时性的要求, 提出一种基于H.264感知加密算法的视频加密方案。该方案将视频数据分为VLC (Variable Length Code) 和FLC (Fix-Length Code) 两类, 只选择FLC中对重构图像比较重要的元素进行加密操作。理论分析和仿真结果表明, 该加密方案具有安全性高, 低成本系统开销的特性。

关键词:视频加密,H.264编码标准,感知加密算法,FLC,安全性

参考文献

[1]刘萧.基于H.264编码的视频加密研究[D].杭州:浙江大学计算机科学与技术学院, 2010:18-29.

[2]毕厚杰.新一代视频压缩编码标准:H.264/AVC[M].北京:人民邮电出版社, 2005.

[3]李晓举, 冯战申, 胡友情.基于H.264 CAVLC熵编码的视频加密方案[J].计算机工程与应用, 2009, 45 (34) :114-117.

[4]包先雨, 蒋建国, 袁炜, 等.H.264/AVC标准中基于CABAC的数字视频加密研究[J].通信学报, 2007, 28 (6) :24-29.

[5]QAO L, NAHRSTEDT K.A new algorithm for MPEG videoencryption[C].In:Proceeding of the Frist International Con-ference on Imaging Science, Systems and Technology (CISST’97) , LasVegas, Nevada, 1997:21-29.

[6]LIAN S G, LIU Z, REN Z.Secure advanced video codingbased on selection algorithms[J].IEEE Transactions onConsumer Electronics, 2006, 52 (2) :621-629.

如何策略使用加密狗进行加密 篇5

1、硬件复制

复制硬件,即解密者复制Sentinel Superpro相同的加密锁。由于加密锁采用了彩虹公司专用的ASIC芯片技术,因此复制该加密锁非常困难,且代价太大。

2、监听

解密者利用并口监听程序,进行解密,其工作机制是:

监听程序,记录应用程序对并口发的查询串和加密锁发回的响应串。当移去加密锁时,如果程序再对并口发查询串确认身份时,监听程序返回所记录的响应串。程序认为加密锁仍然在并口上,是合法用户继续运行,应用程序也就被解密了。

3、打印机共享器

将加密锁插在打印机共享器上,多台计算机共同使用打印机共享器上的一把加密锁。(后面简述对抗策略)

4、DEBUG

解密者DEBUG等反编译程序,修改程序源代码或跳过查询比较。应用程序也就被解密了。

对于以上的几种解密方法加密者可以考虑使用以下几种加密策略:

1、针对上述监听和DEBUG问题解密方法,本人推荐充分利用加密狗开发商的API函数调用的加密策略:

a、针对并口监听程序

1)对加密锁进行算法查询

?正确的查询响应验证

用户生成大量查询响应对,如200对。在程序运行过程中对激活的加密算法单元随机的发送在200对之中的一对“345AB56E”―――“63749128”。查询串“345AB56E”,哪么算法单元返回的下确的响应串应该是“63749128”,若是,则程序认为加密锁在并口上,是合法用户,继续运行,反之终止程序。

?随机非激活算法验证

我们对非激活的加密锁算法单元发随机生成的查询串,如:“7AB2341”,非激活算法单元只要是有查询就会有响应串。因此返回响应串“7AB2341”,在程序中判断响应串与查询串是否相同,如果相同,则证明我们的加密锁仍然在口上。继续运行程序。

?随机激活算法验证

假设监听程序了解了上面的机制。即对非激活的加密算法我们发什么查询串则返回相同的响应串。哪么我也有对策。对激活的加密算法单元发随机生成的查询串,如:“345AB56E”由于是激活算法响应串肯定与查询串肯定不等。所以假如返回响应串“7253ABCD”,在程序中判断响应串与查询串是否不同,如果不同,则证明我们的加密锁仍然在并口上,继续运行程序。

上面三种加密策略在程序同时使用,相符相承,相互补充。即使监听程序记录下来我们的部分查询响应。

2)分时查询

用户把查询响应对分组,如120对分为4组。每30对一组。头三个月使用第一组,第二个月三个月使用第二组以此类推,监听程序就算记录了头三个月。第二个月三个月以后程序仍然无法使用。

也可以再生成100对“临时委员”,每次运行随意抽出1对与以上分组结合使用。使记录程序在三个月内也无法记录完全。程序也无法使用。

3)随机读写存储单元

为了防监听程序。我们的策略是:程序在启动时,我们利用随机函数随机生成的一个数,假设是“98768964”。我们在指定的18#单元写入这个数。哪么我们在程序运行中,每调用一个功能程序前读取18#单元,数判定是否是我们写入的数“98768964”。因为每次写入的数是随机生成的,所以监听程序记录不到当次启动时写入的随机数,它返回的数肯定是一个不匹配的数。我们就可以就此判定是否是合法用户。Sentinel Superpro加密锁可以重复写10万次以上。也就是说每天写三次也可以使用一百年。

2、针对打印共享器的加密策略

为了防打印共享器。我们的策略是:程序在启动时,我们利用随机函数随要生成的一个数,假设是“7762523A”。我们在指定的34#单元写入这个数。哪么在程序运行中,每调用一个功能程序前读取34#单元,以判定是否是我们写入的数“7762523A”。以此判定是否是合法用户。因为每次写入的数随机生成的,同时使用打印共享器的其他非法用户的程序一进入也会写入一个不同的随机数。那么第一个用户的程序在校验是否是第一个用户写入的数时,就会被认为是非法的用户。所以在一个阶段也只是一个程序使用。(例如RAINBOW公司开的Sentinel Superpro加密锁可以重复10万次以上。也就是说每天写三次也就可以使用一百年。)

3、针对DEBUG跟踪的加密锁的安全策略

1)分散法

针对DEBUG跟踪。在调用每个重要功能模块前,我们建议要对加密锁进行查询,校验身份。如果只在程序开始部分校验身份,DEBUG跟踪程序部分可以轻易的跳过校验部分,而一些不良用户可以在验证后可以将加密锁拔下用在其它计算机。

2)延时法

针对某一具体查询校验,都有三步骤:

?查询得到响应串

?比较响应串和查询串是否匹配

?执行相应的步骤

我们建议以上三个步骤要延时执行。最好鼗三步骤相互远离些,甚至放到不同的子程序或函数中。例如:我们执行“查询得到响应串” 后,相隔50执行“比较响应串和查询串是否匹配”。假如程序需要调用一个函数。哪么我们就在这个函数里执行“执行相应的步骤”。这样程序更难于被。

3)整体法

将响应串作为程序中数据使用。

例如:我们有返回值“87611123”,而我们程序需要“123”这个数。我们可以让“87611123”减去“8761000”得到“123”。这样以来任何对加密程序的修改都会使程序紊乱。

4)迷惑法

想加密啥,就加密啥 篇6

加密是确保宝贵数据安全的一种好方法,无论你通过互联网传送数据,将数据备份到服务器上,还是只是将数据装在笔记本电脑里随身通过机场安检。加密数据让你或预期接收方之外的人都完全无法读取数据。最棒的是,办公室里面和个人电脑上所用的软件大多已经内置了加密功能。你只要知道从哪里找到该功能。本文将介绍如何找到加密功能。

但首先说一说密码。

说到加密,总避免不了这个不同的话题:密码强度。大多数的加密形式都要求你设置一个密码,这样可以加密文件,等到以后想再次查看文件时,可以解密文件。如果使用安全性差的弱密码,黑客就可能突破加密防线,访问文件,因而加密也就失去了其目的。

强密码的长度应该至少 10个字符,不过12个字符更安全。它应该包括混合的大小写字母以及数字和符号。如果你觉得纯字母更容易记住,要是密码长得多,比如20个或更多字符,那么这种密码仍是安全的。

如果你不确信自己的密码是不是够好,可以借助微软免费的密码检查工具来查证(https://www.microsoft.com/en-gb/security/pc-security/password-checker.aspx)。千万不要使用安全性被评为“Strong”以下的密码。

使用微软的BitLocker,用于全盘加密。

加密整个硬盘

你在PC上可能已经有了一个Windows登录密码,但要是有人偷走了你的电脑或硬盘,那么这个密码实际上保护不了你的数据——窃贼只要把你的硬盘装到另一台PC上,即可直接访问数据。如果你的电脑上有大量的敏感信息,就应该采用全盘加密,就算硬件落到坏人手里,全盘加密也能保护你的所有数据。

微软的BitLocker软件大大简化了在Windows中设置全盘加密——只要你的电脑满足下列两个标准:

1. 你有终极版或企业版的Windows 7或Vista,或者是专业版或企业版的Windows 8。

2. 你的电脑里面有TPM(可信平台模块)芯片。

想看看你的电脑有没有TPM芯片,最简单的办法就是只要试着启用BitLocker。Windows让你可以知道有没有TPM芯片。

想启用BitLocker,依次进入到Control Panel(控制面板)> System and Security(系统和安全)>BitLocker Drive Encryption(BitLocker驱动器加密),或者在Windows 8中搜索“BitLocker”。在BitLocker菜单中,点击你想加密的一只或多只驱动器旁边的Turn on BitLocker(开启BitLocker)。就是这么容易。

如果你的PC不满足BitLocker的要求,仍可以使用TrueCrypt或DiskCryptor,进行免费的全盘加密(http://www.pcworld.com/article/242614/how_to_use_diskcryptor_to_encrypt_your_hard_drive.html)。

BitLocker还可以保护袖珍驱动器。

加密外部和USB拇指驱动器

想对拇指驱动器和USB硬驱进行全盘加密,你可以使用BitLocker To Go,它是为可移动介质而设计的。你仍需要专业版或企业版的Windows,但不需要TPM就可以使用BitLocker To Go。

你只需要插入想加密的设备,然后再次进入到BitLocker菜单。在菜单底部,你会看到BitLocker To Go这部分,可以点击相应设备旁边的Turn on BitLocker(开启BitLocker)。

加密互联网流量

有时候,你想加密不断出入的互联网流量。如果你使用未采取安全措施的无线网络(比如在机场),黑客就能截获进出你笔记本电脑的数据,里面可能含有机密信息。为了让窃听者无法读取该数据,你可以使用虚拟专用网(VPN)来加密。

VPN与可信赖的第三方服务器之间建立了一条安全的“隧道”。通过这条隧道发送的数据(发送到你的电脑或从你的电脑发送)已经过加密,那样就算数据被截获了,仍是安全的。一些基于Web的VPN每月收取少许费用,但提供了非常便捷的接入服务,当然你也可以建立自己的个人VPN或办公VPN。

选择或建立VPN的过程有点冗长,这里不作介绍,可以参阅我们为菜鸟和专家撰写的关于VPN的这篇文章(http://www.pcworld.com/article/223044/vpns_for_beginners_to_experts.html)。

TrueCrypt有助于为Dropbox数据添加另一层保护。

加密Dropbox(或其他云存储环境)

如果你或贵企业的其他同事使用Dropbox或SugarSync,会很高兴知道这一点:那些流行的云存储服务已经可以加密你的数据,无论数据在传输途中还是静静地放在服务器上,都能予以保护。遗憾的是,同样那些服务还保管着解密密钥,这意味着它们可以解密你的文件,比如说倘若执法人员要求它们这么做的话。

如果你在云存储环境中有任何非常敏感的文件,不妨使用第二道加密,确保文件安全,以免被人窥视。为此,最直接最简单的方法就是使用TrueCrypt,在你的Dropbox里面创建一个经过加密的卷。(想全面了解借助TrueCrypt加密任何内容,请参阅本文的末尾部分。)

如果你希望能够从其他电脑访问数据,可以考虑同时把便携式版本的TrueCrypt放入到你的Dropbox中。为此,需要运行TrueCrypt安装程序;在安装过程中,选择Extract(抽取)选项,然后选择把抽取后的文件放入到Dropbox或其他云存储环境中。

nlc202309020936

想加密Outlook电子邮件,只需要检查一个复选框。

加密电子邮件

你的电子邮件可能含有一些非常敏感的信息,这使得电子邮件成为需要加密的合适对象。如果你使用Outlook,确保往来邮件安全很容易。

Outlook加密并非基于密码。相反,想使用Outlook中密码安全特性的人都会收到一个数字证书,数据证书的作用是可以自动加密和解密邮件。两个用户可以彼此发送经过加密的邮件之前,他们必须向对方发送数字签名的邮件,以便共享证书。这听起来有点复杂,但整个过程实际上很简单,只需要一会儿工夫。想设置Outlook以便发送经过加密的邮件,请遵照微软官方指南介绍的步骤(http://office.microsoft.com/en-us/outlook-help/get-a-digital-id-HP010355070.aspx)。

一旦你收到并交换了数字ID,就可以发送经过加密的邮件了,为此只要打开新邮件窗口,点击Options(选项)> More Options(更多选项)> Security Settings(安全设置),然后勾选Encrypt message contents and attachments(加密邮件内容和附件)方框。

保护Gmail邮件需要一种不同的方法。

加密Gmail邮件

如果你使用Gmail,确保电子邮件的安全有点不一样,因为邮件存储在谷歌的服务器上,而不是存储在你的本地机器上。当你撰写或查看电子邮件时,邮件通过一条经过加密的HTTPS连接来传送,所以没必要担心它们被人截获。其实,Gmail方面的首要安全风险在于,别人会进入到你的帐户——如果采取良好的密码做法和分两个步骤的验证,就能尽量减小这个风险。

如果你想发送除了预期收件人外别人绝对不能看到的文本电子邮件,总是可以使用基于浏览器的加密应用程序,对邮件进行手动加密。通过电子邮件将密文(经过加密的文本)发送到收件人,然后使用另外某个渠道把密码发送给收件人——然后,收件人可以使用同一个Web应用程序来解读邮件。

用密码保护Office文档不费吹灰之力。

加密Word、Excel和PowerPoint等文档

在Office 2010和2013中,可以以同样的方式加密任何Word、Excel或PowerPoint文档:点击File(文件),确保Info(信息)选项卡已被选中,然后点击Protect Document(保护文档)按钮。最后,点击Encrypt with Password(用密码加密),然后为你的文件选择一个强密码。想打开该文件的人都要有相应的密码。与往常一样,通过用来发送文件的同一个渠道发送密码并不安全。

Adobe为PDF文件提供了大量的安全设置。

加密PDF

与微软Office产品一样,Adobe Acrobat X Pro也让用户很容易加密文件。加密选项在Protection(保护)这部分中右上角的Tools(工具)选项卡。点击Encrypt(加密)按钮,然后点击标记为Encrypt With Password(用密码加密)的选项。

你离加密Evernote笔记只有一步之遥了。

加密Evernote笔记

云笔记应用程序Evernote是记住和组织重要信息的好方法,包括帐户资料、医疗和财务记录以及其他敏感数据。要是你觉得任由所有那些个人信息在外面公开着不踏实,Evernote有一项内置的加密功能,这应该会让你松一口气。只要打开某个笔记,高亮选择想隐藏的文本,鼠标右击。在弹出来的菜单中,选择Encrypt Selected Text(加密所选择文本),然后创建一个密码。Evernote就会隐藏所选择文本,并换成一个小小的挂锁图标。无论你啥时想再次查看文本,只要双击该图标,输入密码即可。

TrueCrypt可以保护任何一种文件。

加密其他任何文件

最后,我想介绍可以加密你PC上几乎任何内容的一种方法:TrueCrypt(http://www.pcworld.com/article/231577/truecrypt.html)。TrueCrypt是一款免费的开源应用程序,它让你可以加密PC上的任何一个文件或任何一组文件。如果你的个人PC或办公PC里面有想保护的各种敏感文档,这个程序恐怕是不二选择。

想使用TrueCrypt,先下载该程序,然后运行安装程序(http://www.truecrypt.org/)。默认的安装选项很合适,所以只管从头到尾点击。

接下来,运行TrueCrypt,点击Create Volume(创建卷)按钮。窗口会弹出来,逐步指导你完成卷创建过程。在头两个屏幕上,任由默认的选项勾选着,只需点击Next(下一步)。在第三个屏幕上,会要求你指定一个卷位置。这是以后要保存经过加密的数据的硬盘位置,所以选择一个位置,并选择一个容易记住的名称。想指定位置,点击Select File(选择文件),这会打开文件浏览器窗口。不过与大多数文件浏览器窗口不一样,这里需要往Name(名称)栏输入一个名称,然后会创建供TrueCrypt使用的有着该名称的文件。

下一个屏幕要求检查加密设置;默认的选项可以接受,所以点击Next(下一步)。之后,会要求你指定卷大小。你想加密的所有文件都必须装入到该卷中,所以要确保分配了足够的空间。如果你仅仅存储文本文档,那么500MB可能就够了,但如果要存储大量媒体,至少需要数GB的空间。

在TrueCrypt中,设置保护你数据的密码。

现在会要求你设置密码——所以挑一个合理的密码!最后,选择了密码后,就能够完成整个过程了。按照最后一个屏幕上的说明操作,点击Format(格式化)。

鉴于卷已创建完毕,你可以用它来存储文件了。在TrueCrypt中,点击Select File(选择文件),然后选择你刚创建的那个卷文件。之后,点击驱动器号,点击Mount(挂载)。你输入密码后,TrueCrypt会创建一个虚拟驱动器,电脑的其余部分对待该虚拟驱动器如同对待刚装上的实际硬驱。你可以如同访问其他任何驱动器那样访问它:只要打开文件资源管理器,点击左边的驱动器号即可。

把你想要加密的任何文件拖到该虚拟硬驱上;一旦加密完毕,点击TrueCrypt中的Dismount(卸载)。你存储在虚拟硬驱里面的文件已经过加密,并存储在那个卷文件里面。你想再次访问这些文件的话,只要运行TrueCrypt,挂载该卷文件即可,就像你之前进行的操作那样。

加密方案设计 篇7

信息安全是信息传输和存储过程中的一个关键问题, 并已受到越来越多的关注和重视, 只有解决好信息的安全问题, 才能使网络资源得到充分的利用, 刀片加密服务器就是针对这一问题的一个解决方案。利用加密服务器建立的安全公用信息平台, 将能逐步改变企业传统的建网观念, 使企业由独立建网逐步转变为租用公网, 计算机网络将真正走向公用化。在利用加密服务器建立的公用信息平台中, 数据信息只有授权用户通过证书认证后, 经过安全通道才可以看到明文。而非授权用户无论通过什么途径都得不到任何有效信息, 从而保障了信息传输和信息存储的安全性;同时不改变用户的使用习惯, 不影响数据库的结构, 对于合法用户保持透明。

刀片加密服务器是一种新型服务器, 它与传统服务器的不同之处有二:一是它实现了在操作系统层面上的数据加解密技术, 用户不需要通过编写应用程序来实现数据的加解密;二是采用了基于安全证书的网络全过程的安全措施, 数字签名、签名验证、SSL和SSH技术的采用可保证用户能够安全有效地在远端控制刀片加密服务器, 并同时实现了数据传输、数据存储的加解密。

1刀片加密服务器的主板设计

将算法芯片、密钥区与服务器主板集成到一起, 加密服务器的主板设计框图如图1所示。

图1中各模块分别为:CPU:IntelPIII处理器。内存:512MB。网卡接口:100M全双工。FLASH区:用于存放操作系统内核和MPU程序。密钥区:用于存放安全证书、私钥和文件加脱密主密钥 (所有密钥以密文形式保存, 证书由管理员私钥签名) 。

主板接口:用于连接主板与机架母板。密钥灌装数据线:用于将服务器证书、私钥和管理员证书写入到主板密钥区。该数据传送线位于主板接口中。加密卡:完成加解密运算以及服务器私钥的保护。

2加密卡的设计实现

本加密卡基于DSP芯片TMS320C6205对各种加密芯片的控制, 完成各种加密算法。整个系统的框架如图2所示, 该加密卡做成一块PCI插卡, 主要由定点DSP芯片TMS320C6205、RSA算法芯片SSX04、对称算法芯片SSP02—A、密钥生成芯片WNG—5、W78LE51和可编程逻辑器件XC9536XL等组成。

2.1加密卡的工作原理

加密卡上电后, 计算机主机通过DSP芯片的PCI接口模块初始化DSP, 并下载DSP的运行代码开始启动。在DSP内部的数据存储区分配一端可供DSP处理器和主机共同访问。

2.2加密卡的组成部分:

2.2.1 MPU

加密卡中的MPU采用TMS320C6205[1], 用于控制RSA协处理器芯片、密钥生成芯片、对称算法芯片、服务器私钥保护模块的工作等。

在设计中, 我们对Motorola 公司的PowerPC产品MPC855t和TI公司的产品TMS320C6205进行了比较, Motorola 公司的PowerPC产品MPC855t是一款嵌入式CPU产品, 功能大而全, 主频为80 M, 需要外接内存及PCI桥如PLX9052, 但是价格很高。为了降低成本, 在设计中我们采用了TI公司的高性能DSP产品TMS320C6205, 由于该芯片功能单一, 因而价格较低。该芯片功耗低、运算速度快 (1600 MIPS, 200M时钟) , 且有内置程序存储器、数据存储器, 带PCI接口, 从而可以简化加密卡的设计。另外, 该芯片还具有在线加载程序功能, 完全可以满足我们的应用需求。

TMS320C6205是TI公司发布的一款定点DSP芯片, 属于TMS320C6200系列。该系列芯片采用VLIW 体系结构, 提供了极高速的处理能力和强大的对外接口能力, 主要用于视频、多通道无线通信、有线通信等领域进行高速数字信号处理和数值运算。同时, TI提供了强大的开发工具与测试平台, 大大缩短了该系列芯片的开发周期。

2.2.2 算法芯片

算法芯片包括RSA算法芯片SSX04、对称算法芯片SSP02—A和密钥生成芯片WNG—5, 均采用国密办提供的有关芯片。

(1) SSX04特性

模长、幂长和操作数的长度均可选, 模长可选为32—1 024位 (模值必须为奇数) , 幂长可选为2—1024位, 操作数长度可选为1—1 024位。RSA算法芯片SSX04的主要特点:

① 大数模幂运算;② 大数模乘运算;③ 模长、幂长和操作数的长度可选;④ 采用16位双向I/O接口总线D[15:0], 可工作于8位/16位总线模式, 地址/数据总线复用。

外部主机与SSX04[2]通讯流程为:先通过总线端口 (地址总线) 寻址到SSX04其中的一个内部寄存器, 再通过总线端口 (数据总线) 向此寄存器写入或读出数据。数据写入SSX04时, 若不足8位 (8位数据总线) 或16位 (16位数据总线) , 将高位补零。

SSP02—A算法芯片是一种商用加/脱密芯片。它采用分组密码算法体制, 支持的分组长度为128比特。本芯片可工作于数据总线结构为32位的数字系统中, 为用户提供标准的密码算法模块, 也为用户提供有分割要求的密码算法模块。本芯片兼有数据完整性验证功能, 可在数据加/脱密的同时自动生成杂凑值, 完成数据完整性与正确性验证。本芯片采用反熔丝结构的FPGA芯片实现, 封装形式为标准PQFP208。

(2) SSP02—A算法芯片特性

标准PQFP208;工作电压5 V/2.5 V或3.3V/2.5 V;采用32位数据总线;仅需要两根地址线即可控制;使用8 MHz外部时钟时, 片内加/脱密速度超过50 Mb/s;与用户处理器之间的连接少, 控制方式简单;可工作于中断或查询方式;采用反熔丝技术, 难以破读。

2.2.3 服务器私钥保护模块

服务器私钥保护模块由51单片机构成, 其中固化有用于保护服务器私钥的密钥。服务器中存储的密钥采用密存方式, 所用保护密钥保存在加密卡中的“服务器私钥保护模块”中, “服务器私钥保护模块”由W78LE51P单片机实现。为了确保服务器私钥的安全, 应使保护密钥的使用只在加密卡中, 并且在51单片机芯片被窃取的情况下密钥也不能被读出。为此, 我们采取了以下两方面的措施:

生产时将单片机程序和保护密钥 (生产时生成, 每一块板卡一个密钥) 烧录到单片机的ROM中, 然后将单片机的烧录控制位烧断 (单片机及烧录软件提供的功能) , 这样, 算法和密钥就被固化到单片机的ROM中, 并且不能读出。

为了确保单片机中的程序和密钥的安全性, 我们还采取了将单片机的数据端口 (P0口) 高压熔断的方法, 使其失去功能。在这种状态下, 即使51单片机芯片被窃取, 其中的密钥数据既不能被读出也不能被更改。

2.2.4 电源与复位

在加密卡中DSP TMS320C6205需要1.5 V和3.3 V, RSA算法芯片SSX04、对称算法芯片SSP02—A需要2.5 V的电源。我们采用TI公司为DSP芯片设计的电源管理芯片TPS70302提供3.3 V和1.5 V (U2) 两种电压输出, 并具有上电复位信号。采用AMS1505提供2.5V (U1) , 供给SSX04和SSP02—A。电路图如图3所示。

3小结

本文主要介绍了基于刀片加密服务器的加密卡的实现, 通过加密卡使原来的服务器的安全性、可靠性有了保障, 使保密的强度得到加强, 但用户使用加解密操作完全不会影响用户原来的工作与速度。该加密卡稍微改进后同样可以应用与其他的系统中。

摘要:刀片加密服务器在更好的保证网络的安全性的同时, 能够使以往的网络系统更加安全和经济。刀片加密服务器与普通的服务器有着很大的区别。其中加密卡在刀片加密服务器中的占有重要的地位。介绍了加密卡的组成部分与设计原则。

关键词:刀片加密服务器,加密卡,DSP,TMS320C6205

参考文献

[1]TMS320C6000Technical Brief.Ttxas Instruments (spru197D) , Feb-ruary1999

一种针对口令的加密设计方案 篇8

很多系统中, 对用户ID、密码的存储与传送都没有进行加密处理, 明文在使用过程中很容易被非法用户获得, 所以很难保证系统的安全性。笔者对用户密码采用了移位代换算法进行加密处理, 并对传统的移位代换算法进行改进, 使用户密码在存储及传输过程中都以密文的形式存在, 加大了被破译的难度。

1 单表移位代换密码

单表代换密码指明文的所有字母都用同一个固定的明文字母表到密文字母表的映射, 即令明文m=m0m1…, 则相应密文为:

其中f表示某个固定的明文字母表到密文字母表的映射。

移位代换密码是最简单的一类代换密码, 其加密变换为:

其中, mod q表示为q除得的余数。密钥空间元素个数是q, 其中有一恒等变换, 即k=0。解密变换为:

最著名的单表代换密码是以凯撒大帝命名的凯撒 (Cacser) 密码。这是对英文26个字母进行移位代换的密码。q=26, k=3, 则有下述代换:

比如, 明文是m=Cacser cipher is a shift substitution, 则经凯撒密码变换后得到的密文是:

反向利用同一个对应表, 就可以从密文C=E (m) 中恢复出原来提明文m。

2 改进的移位代换密码对用户密码的加密

通过分析, 传统的移位代换密码算法存在很大缺陷, 在进行移位加密代换时采用固定的K值, 所以降低了密文破译难度。一旦明文代换表与移位数K被确立, 密文的安全性就不复存在。为了减小密文被破译的可能性, 本文作者对传统的基于单表的移位代换密码算法做了一些改进, 把K值的确立与具体用户的某些相关信息联系起来 (本文中假设用户名) 。K的值随用户名的不同而不同, 即不同的用户密码在加密存储及传输时采用不同的K值来处理。并且对某一明文的不同位置上的字符采用不同的K值进行移位处理, 即使黑客对多个不同的密文来分析, 也很难得出对明文的加密规律, 因为对于K值的选择带有一定的随机性。

为算法的实现方便, 对用户名和密码做了两点约定: (1) 用户名必须是由汉字或拼音组成; (2) 用户密码是数字与字母的组合且密码当中不能包括空格。下面对这种算法思想做简单介绍:

移位K的不同取值来源于用户名, 即取用户名称的拼音位数, 如:王大传 (wang da chuan) , 则K= (4, 2, 5) 。在对明文进行移位处理时, 则对于不同位置上的明文采用不同的K值进行处理。明文加密首先根据K的取值个数进行分组, 这里K个数为3, 所以对明文以3为单位进行分组。然后对每一组分别采用不同K值进行移位代换。比如给定明文:pub159lic, 其各位与移位K值对应关系如图1所示:

加密变换为:

mi为明文m中第i个字符, i的值不超过明文的的最大长度。q有两个值:当明文中的字符对应为数字时, q=10;为字母时, q=26。L为明文长度, 即用户密码的长度。J为K的取值个数。

为了计算的方便, 当明文出现字母时, 直接将它转化为对应表中的数值。对应关系为a~z对应数值中的0~25, 即a=0, …, z=25 (表2所示) , 而不是采用的字母对应的ASCII值;明文中的数值保持不变。对数值明文计算以后得到的值为加密的值;对字母明文计算以后的值再根据对应表转化成字母的值为加密后的值。其中定义了两个数值与字母转换的函数:LTON () 为字母转化成数值函数, NTOL () 为数值转化成字母函数。

解密变换为:

在进行密文恢复的时候, 如果密文当中出现的是字母, 则首先将字母转化成对应的数值, 然后再与K作比较, 如果为数值则直接与K比较。这里ci是转化为数值以后的值, 通过比较结果来决定恢复密文所用公式。

3 算法流程

为便于理解, 下面通过具体实例来看一下算法的加密与解密过程:

这种加密方法的优点是移位值K取的是一组值, 而且取值带有一定的随机性。对明文加密时分别对不同的位采用不同的K值进行移位代换, 增加了破译难度。缺点是明文与密文对应位置的数据类型是一样的, 即数值加密以后得到的依然是数值, 字母加密以后还是字母。虽然这种加密方法不能抵抗高强度的密码分析, 但是对于一般的黑客还是能够起到一定的作用, 使他们不能够轻易地得到用户密码。

4 结束语

对用户ID/密码的安全检索是加强系统安全应用最广泛的一种方式。基于明文的存储与传输存在很大的安全问题, 笔者对传统的基于单值移位K的加密算法进行改进, 使加密算法的安全性基于在多值移位K上, 减小了密码被破译的可能性。

摘要:本文提出了一种简单的对用户口令的加密方案, 采用移位代换算法进行加密处理, 并对传统的移位代换算法进行改进, 使用户密码在存储及传输过程中都以密文的形式存在, 增加了应用系统的安全性。

关键词:身份认证,口令识别,加密,安全性

参考文献

[1]阙喜戎, 孙悦, 龚向阳, 王纯.信息安全原理与应用.清华大学出版社.2003.7.

加密数据库程序设计 篇9

从目前来看, 数据库程序通常分为网络版和单机版。对于大型企业的应用程序来说, 采用网络版, 数据库的安全可靠性极高。但对于单机版数据库应用程序来说, 由于用户能够直接接触到数据库文件, 这就给一些人员通过一些工具软件对数据库实现修改、查看、复制等机会, 这就使得数据库的安全受到一定威胁。采用复杂的数据库则又会相对提高了程序设计的复杂程度, 其复杂程度往往超过了应用程序本身, 造成操作冗余, 资源浪费。

采用MDB数据库, 程序设计简单可靠, 而且操作系统自带数据库相关控件, 应用程序简单到只有一个程序文件和一个数据库, 而且可以做成绿色软件, 因此对于应用不太复杂如查询系统、考试系统等等应用软件, 最适合采用这种数据库程序制作。

MDB文件是微软Office Access生成的, 具有结构简单, 易用性强的特点。数据录入时, 可以采用Access进行, 程序运行时则可以完全脱离Office。程序设计也十分简单, 对系统资源要求也不高。但这种数据库的缺点显而易见, 那就是数据库开放性极高, 可以用Access轻易进行编辑, 实现对数据库修改、删除、复制等操作, 尽管具有密码保护, 但是加密算法很简单, 破解MDB数据库密码的工具非常普遍, 可以做到瞬间破解。

如果对数据库中的工作表名、字段名以及每一条记录进行加密, 那么即便知道数据库密码, 可以打开, 得到的也仅仅是乱码, 毫无价值。因此, 采用对数据库内容进行加密, 既能方便使用数据库, 又增强了数据库的安全。

2 基本原理

2.1 数据库本身加密

MDB数据库由众多工作表组成, 每个工作表中又可以有诸如自动编号、整形数值、长整型数、文本、注释、长二进制等等类型的字段, 然后就会有多条记录。数据库程序就是读写数据库中的这些记录, 经过处理后呈现程序界面, 由操作人员进行操作, 然后最终记录到数据库, 这就是数据库应用过程。

在程序处理过程中, 无论数据库是否加密, 所有的操作都是后台进行, 操作人员感知不到。当读取数据库时, 程序将读取的内容进行解密, 解密后进行一系列处理, 得到一定的结果通过程序界面展示出来, 操作员进行相应操作后, 需要写入数据库时, 进行加密操作, 数据库中存储的内容是加密信息。当窥视数据库人员在使用Access打开数据库时, 得到是乱码, 不论是工作表, 还是字段, 还是每一条记录, 全都是加密后的信息。若想得到明文, 就必须知道加密算命法, 然后进行解密。

因为单机版的MDB程序虽然有安全要求, 通常以保护知识产权为目的, 也有的是防止数据被篡改, 一般数据库删除损失不会很大, 但是被复制, 被修改损失较大。总的来说安全要求不是十分高, 过高的要求则通过网络版实现。

如果窥视数据库人员得到密文想要得到明文, 就必须进行解密, 数据库信息量往往很多, 解密就需要重新开发解密程序。不同的加密算法, 不同的加密强度, 导致解密工作能否成功概率不一样。

现成的高强度加密算法种类很多, 但绝大多数过于复杂, 最关键的是仅适合英文字符加密, 并不适合汉字加密。因为要对汉字加密, 介绍的加密算法是针对汉字设计的独创简单算法, 尽管加密强度并不高, 没有高深的数学理论作支撑, 但对于一般单机数据库程序来说加密强度足够了。更强的加密需求则使用网络版, 根本就不让窥视者接触数据库。

加密过程:读取一串需要加密的字符串, 颠倒这个字符串, 例如“昨夜星辰昨夜风, 画楼西畔桂堂东;身无彩凤双飞翼, 心有灵犀一点通。”颠倒之后就变成了“。通点一犀灵有心, 翼飞双凤彩无身;东堂桂畔西楼画, 风夜昨辰星夜昨”, 颠倒后读取每个字符 (一个汉字算一个字符, 不算两个) 的U-nicode代码, 然后进行异或操作得到新的一个数值, 将这个数值转化为字符保存, 实现加密过程。

其中异或操作时, 汉字的Unicode代码和什么数值异或操作呢?这个异或数值可以指定不同值, 而且第一个字符异或数值和第二个、第三个都不同, 程序设计采用“基数+字符串个数*步长=异或数”的机制, 防止固定数值易被解密。对于数据库来说, 数据表名、字段名等长度低于10个字符的, 步长值在5左右, 对于超过10个汉字长度的长文本、备注型字段内容, 步长值最好为0, 因为如果不为零, 可能导致异或数过大, 当与汉字的Unicode代码异或运算之后, 再转换成字符时则超出字符Unicode代码范围, 导致不可以, 最终造成解密失败。

在设计加密算法时, 将某些字符, 特别是英文、数字半角字符, 先用特殊一段字符代替, 然后再进行上述异或运算, 加密可靠性会更强一些, 例程中删除了这段代码。加密代码如下:

上述子程序代码的“异或”值一般取30以内。

解密过程:解密过程和加密过程刚好相反, 因为异或操作可逆, 因此解密算法除了解密后, 再次颠倒字符串顺序。解密代码如下:

对于MDB数据库来说, 工作表名称、字段名称、记录等的加密, 加密时, 异或数、步长选择不同, 增加解密难度。字段编号、字段类型、记录编号都是不同的, 其特征值都可以被程序利用, 可以放入到加密算法里, 为了简单叙述起见, 加密算法中删除了相关代码。

加密后, 数据库可以用Access正常打开, 但是里面全是乱码。很多人员见到乱码, 会以为是汉字BIG5或者UTF-8等编码, 然后找来转换工具转换, 其结果是越弄越乱。

2.2 程序加密

数据库内容进行了加密, 可以初步防止对数据库的窥探, 但是现在跟踪工具程序非常强大, 可以跟踪主程序的运行, 得到解密算法, 毕竟算法不是太复杂。这个时候对程序本身进行加密, 就可以防止算法被逆向推导出来。

简单的程序加密做法是将编译后的可执行文件用UPX压缩, 压缩后得到文件大小, 然后修改源代码中判断文件大小部分, 使得程序运行时判断可执行文件大小, 相同则执行, 不相同则跳入相关处理代码。编译后再压缩, 压缩后用再用二进制编辑器修改可执行文件文件头中的某些内容, 这些内容也是由程序源代码获取, 和程序内置的内容比对, 相同则通过, 不同则跳入相关处理代码。也可以采用MD5校验方式作为程序完整性标示, 有程序判断, 最终决定通过还是跳入相关处理代码。上述指的是进入正常程序, 相关处理代码主要包括提示程序被篡改信息、拒绝执行、自毁等代码组成。例如自毁代码, 采用二进制读写方式, 修改数据库文件, 使之不能被再次使用。修改的位置、内容、偏移量固定, 可以用专门编写的修复程序修复, 否则就是一个坏文件, 没有再次被使用的机会。为了方便起见, 通常修复程序也放在程序界面上, 但是被隐藏掉, 做成类似于复活节彩蛋, 需要特殊的操作才能激活。

3 数据库操作

列出实现不同功能的VB关键代码例程, 代码作用参看代码后面的备注。数据输入数据库之后, 用Access打开数据库文件“data.dat”检查工作表、字段、记录是否被加密。

3.1 创建工作表源代码

本段代码创建一个由操作者指定的工作表名, 同时在工作表下创建4个不同类型的字段名。其中工作表名称、4个不同的字段名称都进行加密处理。

创建数据库出现问题:

3.2 添加记录源代码

数据表、字段设计好之后, 正常使用时是对记录的操作, 下面代码就是添加记录例程。

3.3 其他操作

需要强调的是, 数据库在反复使用后, 体积会庞大, 经常进行数据库压缩也是一个好习惯。数据库压缩过程是先将数据库压缩成一个新的数据库, 然后删除未压缩的数据库, 再将压缩后的数据库改名为原来的数据库。

数据库压缩代码例程:

4 结语

分布式接口加密安全方案 篇10

1 对称加密模式

在以往系统间交互的经验基础上,使用DES固定加密方式。具体流程描述如下:

(1)在请求后台验证系统的时候,通过DES进行加密。

(2)后台验证系统在获取请求后进行参数解密。

(3)参数参与系统逻辑处理后,将需要返回的用户信息通过加密后返回。

(4)门户获得返回信息后再进行解密。

如图1所示。

DES是对称加密,通过这样的加解密,从安全性上来讲是比明文传输要安全多。但是因为是对称的固定加密,因此当加解密的方法泄漏后,这种加密也就变得毫无意义了。那么是否可以动态加密呢?通过研究以及资料的查找,我们采用第二种方式进行安全性处理。

2 一次性动态加密方式

所谓一次性动态加密方式,指Web页面通过Ajax进行一次异步请求验证服务器,被请求的接口通过RSA算法产生公钥和私钥,并通过Ajax的response将公钥返回给Web客户端,而将私钥保存在服务端;Web端的页面获取公钥后,通过JavaScript的加密后将请求发给后台验证服务器;后台验证服务器在获取请求后,找到相应的私钥进行解密;接着进行系统逻辑处理,处理后的结果通过DES进行加密返回给客户端,客户端通过DES进行解密来获取用户信息。

从图2描述的整个流程,可以看到,使用到RSA和DES两种加密算法。

RSA和DES两种加密算法各有优缺点。总的来说:

RSA算法是公钥算法(非对称算法),耗时较长,有较高安全性,一般用于密钥交换、签名及验证;

DES算法是私钥算法(对称算法),耗时较RSA短很多,安全性较差,但加解密效率高,而RSA需要对大素数进行运算,所以需要时间长。

在分布式接口场景中,通常请求的参数是少量的数据量,但需要高的安全性,通过RSA算法来加密参数保证安全性;而返回数据基本是导向性的结果,数据通常比较多,性能要求高,使用DES进行加解密。

第二种采用RSA和DES的混合方式大大提高了接口的安全性。此外在请求接口之前都通过Ajax异步访问验证服务器来先获取动态的公钥,也大大减少key泄密的可能性。因为Web应用,在压力测试后发现,大量并发的请求下,页面访问的速度会变慢,通过监控分析发现,从第一种方式的一次请求到了第二种方式中,变成两次请求,是性能变化的主要原因。

那么如何解决这个问题呢?减少请求则是最根本的解决方式。第一次请求是为获取动态key而产生的;第二次请求则是属于业务上的正常请求。只能通过减少第一次的请求数就能总体上减少整个系统的请求量。因此研究了第3种方案。

3 基于Cookie的动态加密方式

在第二种方案上,当用户在浏览器访问系统时候,任何外部接口的调用都需要预先调用RSA key生成器,然后把公钥传给Web端。每调一次外部接口,都会去调用这个RSA key生成器,如果将公钥作为Cookie保存在Web端,则当公钥Cookie存在时,那么就可以避免对RSA key生成器接口的调用,从而减少了第一类请求的数量了,这个访问性能也就大大提高。

Cookie本身作为存储只能存在少量的信息,它的生命周期由客户端和服务器共同来控制。客户端通过清除浏览器缓存等方式来清除Cookie;服务器端则通过对添加Cookie时,设置有效期来控制Cookie的有效性。公钥是一串字符串,它也具备客户端和服务器共同来控制的特点,因此将Cookie作为载体来存储动态公钥,是一个非常合适的方式。Cookie大致有3种生命周期,分别为浏览器有效;无效;指定期间有效。Cookie的有效期需和RSA生成器保持一致,所以需要改造一下RSA生成器,在请求RSA生成器的时候,添加一个expires参数,来表示获取的公钥作为Cookie所期望的有效期限。此外Cookie本身还有path属性,如果设置path属性,那么就能灵活分类哪些请求需要重新访问RSA生成接口来获取新的公钥,哪些可以依赖寄存在Cookie里面的老公钥。有了path和expires这两个作为请求参数,RSA生成器会将这两个信息放入服务端,其中expires表示服务器私钥的有效期,若没有这参数,默认就认为Cookie为当前浏览器有效;path参数为可选项。

然而在具体分布式环境下,客户端和服务端不能保证总是时间一致,那么服务端需要具备容错机制来处理异常问题,其中异常情况大概有下面两种:

(1)客户端Cookie为空

当客户端取得公钥为空,或者没有这个Cookie,那么需要客户端通过Javascript相关的脚本进行判断后,通过Ajax异步主动去调用RSA生成器,获取一个全新的公钥存入到当前Cookie中。

(2)客户端Cookie无效

Cooke公钥存在,用该公钥去服务端获取相应私钥时,发现私钥不存在或者已失效,则认定Cookie已经无效,那需要调用的用户信息接口能主动跳转到RSA生成器生成一个新公钥返回给客户端,接着客户端再自动进行二次请求用户信息接口。如图4描述了这么一个具体过程。具体过程如下:

(1)客户端以Cookie方式将公钥带入,访问用户信息接口(业务接口)。

(2)拦截器发现公钥失效,则抛出异常来调用RSA生成器,并返回给客户端以Cookie方式保存在客户端。

(3)客户端自动在获取的新的公钥后,对服务器用户信息接口进行二次请求。

(4)用户信息接口获取信息后,用DES进行加密后返回给客户端。

(5)客户端通过DES进行解密。

通过上述3个阶段的探索,对分布式接口的安全方案有了一定的认识。意识到在安全方面需要掌握基本的安全知识,如DES和RSA的各种优缺点;在当将传统证书或者硬件加密的方式转换为轻量级的Web应用时,需要将Ajax和Cookie这类Web属性特性和传统安全知识相互结合来解决分布式接口安全问题,同时也要知道Web本身注重的多访问量会导致性能降低的问题,合理优化访问量,最终在安全和性能上获取一个平衡点。

参考文献

[1]鲁立,龚涛.计算机网络安全.机械工业出版社.

探索BitLocker加密 篇11

有了EFS,还要BitLocker?

说到Windows自带加密手段,大家就会想到EFS(加密文件系统),EFS的确能够在一定程度保证数据不被非法访问。但这还远远不够,因为EFS无法加密Windows系统,只能加密数据,通过第三方软件修改用户密码等方式仍然可窥探用户数据。微软在Windows Vista中新增了一种叫做BitLocker的功能,在Windows Vista企业版和旗舰版中,可以有效防范已知的各种脱机攻击方式。

BitLocker的工作方式

启用BitLocker后,系统会把硬盘的主引导记录(MBR)、NTFS卷的引导扇区、NTFS引导代码,甚至整个Windows Vista的安装分区,包括系统文件、注册表、EFS密钥等文件全部加密,而解密所用的密钥会被保存在另外的地方(TPM芯片或优盘等介质)。以后Vista每次启动时,都会自动使用保存的密钥来解密Windows安装分区,并开始系统的引导工作。BitLocker加密的模式有两种,分别有不同的要求和安全级别。

TPM模式:这种模式要求电脑的主板带有1.2版本的TPM芯片,TPM模式的BitLocker不仅可以实现加密操作系统分区,还可以保证分区的完整性和不可篡改性。

u盘模式:如果没有TPM芯片,还可以采用U盘,条件是电脑的BIOS支持开机时访问USB闪盘(如果不支持,可能需要更新主板BIOS或者更換主板)。这种情况下我们可以将解锁磁盘所需的启动密钥存放在U盘里,开机时必须插入这块U盘,随后才能解锁加密的Windows卷,以便正常启动Windows Vista。但是要注意,这种模式只能加密Windows分区,无法实现完整性检查,也就无法防范上文所说的脱机攻击。

使用BitLocker的前提条件

目前主流的电脑都没有集成TPM芯片,因此下文重点介绍U盘模式的使用方法。

要使用BitLocker,最重要的是要保证自己的硬盘分区.符合要求。硬盘上至少要有两个分区:一个的可用空间不能小于1.5GB,并且必须是活动分区(也就意味着该分区必须是主分区,不能是扩展分区,也不能是逻辑驱动器),Vista不能安装在这个分区上;另一个分区则没那么多要求,只要可用空间能满足Vista的安装要求即可。

如果你用的是Windows Vista旗舰版,那么还可以通过Windows Update安装“BitLocker和EFS增强”这个程序,这是一个Windows Ultimate Extras程序,因此无法被企业般用户使用。

安装该程序后,打开开始菜单,然后依次打开“所有程序/附件/系统工具/BitLocker/BitLocker驱动器准备工具”,并接受许可协议启动该工具,这个工具可以检查系统配置(主要是硬盘分区情况)。如果出现一个对话框告诉你不需要运行准备工具,那么证明你的系统已经准备好了。如果不满足要求。

在这个界面上点击“继续”两次,待准备好之后,该工具会要求我们重启系统。这时候如果运行diskmgmt.msc打开磁盘管理工.具,可以看到准备工具在原本只有一个分区的硬盘上新建了一个1.5GB的活动分区,图中的C盘依旧是系统盘,随后会被加密,另外薪增加了一个S盘,用于保存引导Vista所需的引导文件,这个分区不会被加密。

重启动系统之后,硬盘分区方面的准备工作就全部完成了。不过这时候我们还需要对组策略进行一些调整。因为默认情况下Vista只允许我们使用TPM模式的BitLocker加密,因此要使用U盘模式,必须启用一项策略。

运行gpedit.msc打开组策略编辑器,定位到“计算机配-置-管理模板-Windows组件-BitLocker驱动器加密”,双击右侧的“控制面板设置:启用高级启动选项”这条策略,选择“已启用”,然后确保选中了下方的“没有兼容的TPM时允许BitLocker”选项。至此所有设置工作都已经完成。

启用u盘模式的BitLocker

在控制面板中依次点击“安全-BitLocker驱动器加密”,可以打开BitLocker的启动界面。如果前面的设置都正确,可以看到安装Vista的分区,并且这个分区下有一个“启动BitLocker”链接。

因为我们只打算使用U盘模式,本机也没有安装任何TPM芯片,因此选择唯一可用的选项,点击“下一步”。,在这里我们将准备好的U盘插入USB接口,待这块U盘出现在BitLocker设置窗口中之后,点击选中,然后点击“保存”。

接着Vista会要我们输入一个48位的密码,这个密码主要是为了数据恢复使用。例如,使用BitLocker加密系统时将保存密钥的U盘弄丢或者弄坏了,将导致无法进人系统。遇到类似情况时就可以使用这时候设置的48位密码来恢复系统,所以这个密码是非常重要的,应妥善保管。

输入密码,这里提供了三个选项备份恢复密码。例如我们可以将这个密码保存到u盘中,或者保存到硬盘上,另外还可以直接打印。建议在处理这个备份的恢复密码的时候要小心,尽量不要保存在本地硬盘上,就算要保存到U盘中,最好使用另一块U盘,同时将这块U盘保管到安全的地方。当然,如果用纸把密码打印保存是最好的办法,因为在某种程度来说,纸质文档还是比电子文档安全可靠。

在安装了上文说的BitLocker和EFS增强程序后,在Windows Vista旗舰版中,我们还可以把BitLocker的恢复密码保存到微软的服务器上。这是微软为Windows Vista旗舰版用户提供的一项增值服务,日后因为丢失了密钥以及恢复密码而导致系统无法启动时,我们还可以使用其他电脑访问服务网站,获取自己的恢复密码。

我们可以打开控制面板,然后依次单击“安全一密钥安全联机备份一保存BitLocker恢复密码”,要想联机保存自己的密钥,我们必须使用一个windows Live ID登录。日后如果需要找回自己的恢复密码,我们需要访问Windows Market Place网站(www.windowsmarketplace.com)上的Digital Locker服务,然后使用同样的Live ID登录并下载即可。

随后系统会询问我们是否进行BitLocker系统检查,建议进行一次检查。确认检查后,系统会首先重启动一次,确保可以在启动过程中从u盘读取BitLocker密钥,然后才会真正加密Windows安装分区。如果不检查直接加密,等到重启动后才发现BitLocker功能在自己的电脑上有问题,那时候才是欲哭无泪。

选中检查的选项,并点击“继续”。随后系统会重启动,并进行BitLocker检查,如果检查一切无误,那么就可以开始加密Windows安装分区。加密需要一定的时间,虽然在这过程中系统还可以正常使用,不过建议你不要进行其他操作,等待加密完成即可。

BitLocker的恢复

经过上面的设置,以后每次重启电脑,我们都需要提供保存了BitLocker密钥的U盘(上文中使用的第一个U盘,而非第二个,那是用于保存恢复密码的)。如果某天这个U盘遗失了,或者损坏了,导致系统无法启动,这时候也不用担心。之前不是设置过恢复密码么,赶快把这个密码从保险柜里找出来吧。无法提供密钥的时候,Vista的启动过程将会停留在图5所示的地方。

移动通信端到端加密安全方案设计 篇12

新时代的到来,带来了新事物的产生,新事物促进着时代的发展,相对来说,二者是协调发展的,正如移动通信业务一样,其是新时代下最为显像的表征,新时代也因为这一技术得到了飞速的发展,但是就如今的现状而言,尽管移动通信的业务为人们带来了极大方面的同时,也为信息安全技术的保障工作提升了困难,这无疑也是对移动通信技术产生了一定的挑战,面对这样的挑战,相关技术研究人员展开了深入的研究,并且提出了相关的研究理论,其中端到端加密安全方案成为了时下最为热门的研究方案之一,由此,笔者在前人的研究基础上,对前人的研究结果、理论进行汇总分析,并且相应的提出个人的见解,对端到端加密安全方案进行设计研究,现报道如下。

1端到端加密的概念

所谓的端加密,实际上指的是在信息传递的过程中,信息从客户端输出开始,就受到相应程序或者是技术手段的保护, 直到安全的输送到目的地点,就算期间出现信息传输节点断开, 或者是人为的信息截取和破坏,也不能获取到一定的信息内容, 这样的安全技术手段就被称之为“端到端加密信息安全保护技术”。

对于这种安全防护技术而言,其本身的安全防护能力十分之高,并且能够满足现今的信息安全防护的需要,在目前的安全防护领域具有着重要的地位,同时也是未来移动通信技术主要的安全研究动向之一。

2端到端加密的安全方案设计

2.1端到端加密系统的组成

在移动通信系统中,端到端加密系统主要有以下几个方面共同构成:

(1)[UE]端到端加密的加密终端;

(2)[eNB]端到端加密的专网基站;

(3)[eCN]端到端加密的核心网;

(4)[MDC]端到端加密中的调度机;

(5)[AFEE]端到端加密的代理;

(6)1[KDC]端到端加密中的密钥分发中心。

在整个端到端机密系统中,各部分相互之间互相协作,共同配合,形成规定形势下的移动通信信息安全防护体系,在这样的防护体系中,以上各组成部分之间存在着以下联系:

2.2各项业务运行模式设计

目前的移动通信系统的专网组份不仅支持组呼、点呼,还包括整个视频信息的全过程监控等一些最为基础的实用性功能,而端到端加密系统主要是在原有的功能基础上,加入了信息的加密过程以及安全防护过程,因此可以将系统升级后的移动通信系统功能概括为组呼安全防护、点呼安全防护以及短彩信安全防护等基本业务的安全防护,在该系统升级的过程中, 并不包括视频端到端加密业务。

2.2.1端到端加密密钥分发中心系统的优化

通过上文的描述,可以知道,端到端加密中的密钥分发中心又被称之为KDC,其能够对密钥进行控制分配管理,在对端到端加密中的密钥分发中心进行优化的时候,主要将其设定为 “三元加密”的形式进行,所谓的“三元加密”实际上指的是采用三层密钥的形式对移动通信信息进行加密。也就是说,当第二层密钥被更新,一层密钥对其进行加密或者是解密,当第三层密钥被更新,二层密钥对其进行加密或者是解密。

为了进一步的提升移动通信过程中信息的安全性能,二层以及一层密钥的分配主要是采用的端到端加密密钥分发中心和加密卡直接相连接,通过密钥分发中心中的加密卡设定程序, 将密钥记录在加密卡之中。

2.2.2短彩信业务优化加密

短彩信的使用者通过相应的客户端,向端到端加密密钥分发中心提出申请,为短彩信进行密钥加密,端到端加密密钥分发中心将发送两个密钥,一个密钥发送给短彩信的发送方,另一个密钥发送给短彩信的接收方,短彩信的发送方对短彩信进行加密,密钥为X,然后对短彩信进行发送,短彩信的接收方, 得到密钥Y,对加密后的短彩信进行解密,进而进行阅读,通过流程图表现为:

3结语

上一篇:中职数学课程教学下一篇:互动视角