随着计算机的普及,越来越多的信息以数字方式保存,为了让文件更加安全的传输及保存,最普遍的做法是对信息进行加密处理。传统的加密算法都采用单个进程来实现,虽然可以保证数据的安全,但在实际使用中会花费相当长的时间。我们将多线程技术引入DES加密算法,在不影响加密安全的前提下加快加密的速度。
一、DES加密算法简介
DES(Data Encryption Standard)加密算法具有较高的安全性,到目前为止,除了用穷举搜索法对DES加密算法进行攻击外,还没有发现更有效的办法。如果以106个/s的速度攻击DES加密,则它搜索完全部密钥就需要近2300a的时间,因此加密算法是比较安全的。
DES算法的入口参数有Key、Data和Mode。其中Key为64位,是DES算法的工作密钥;Data是被加密或被解密的数据,也是64位;Mode为DES的工作方式,有加密或解密两种方式。通信的发送端将数据分成每64bl组,不足64b的补零用Key逐1对每1组数据进行DES加密,经过加密的数据以密文的形式通过网络传输到终点后,用同样的Key对密码数据进行解密,再组合加密后的数据,这样,便保证了数据在公共通信网中传输的安全性和可靠性。在通信网络的源端和目的端通过定期同时改用新的Key,便能更进一步地增强数据的保密性。
二、多线程与加密
在实际使用过程中,我们发现,如果待加密的数据很多,加密将会消耗相当长的时间,加密1个100K的数据文档大约需要花费16s,数据量如果很大2采用DES加密的时间可能长到难以接受的程度。
而当前主流计算机的CPU以双核和4核居多,可以考虑在加密算法中采用多线程技术来提高加密的速度。多线程是为了同步完成多项任务,不是为了提高单个任务的运行效率,而是从提高资源使用效率的方面入手提高系统的效率。我们可以把加密拆分成多个子任务,虽然多线程不能提高单个子任务的效率,但是它提高了多个任务所组成的系统的效率。
DES加密算法本身将待加密的数据分成每64bl组,然后1组1组的进行加密,最后再组合每一组加密后的数据。我们将加密过程改进为由多个线程同时进行晗1,将需要加密的文件进行文件拆分,为每1个线程分配1个分文件,每个线程加密后生成一个临时文件,结束后,将所有的文件进行组合,生成加密文件。
在拆分文件之前,需要了解文件长度,如果文件太短(一般小于64b),则没有必要进行多线程技术处理,可以直接进行文件的加密运算。启动N个进程进行运算,将拆分好的数据取出N分交给N个进程进行计算。
生成每一块加密临时文件,一定要确保其次序不乱,以保证解密后文件的正确性。
三、程序设计
在Windows XP和VC+ +6.0环境下调试程序,编写1个beginthread函数,用它创建1个子线程。程序从主线程开始运行,运行到调用be-ginthread函数时,系统为新创建的线程分配1个运行时栈,启动1个新的线程用于数据的加密,并允许原线程和新线程继续运行。启动N个线程后,将分组后的数据交给每1个进程进行加密,同时使用多
线程对数据进行加密。所有的线程完成加密运算后,需要给出返回值,以便让程序继续运行,主线程必须等待所有线程完成加密运算,这样做的目的是为了避免出现错误,让所有的临时文件都可以创建完成。加密完成后,使用DOS命令将生成的临时文件合并,并保证合并的过程不会出错。
四、数据分析
我们对1组数据文件进行加密,然后,通过采集和分析数据,估算多线程技术对DES加密算法的运算结果。
1、数据收集
程序运行的PC机是Intel Pentium 4,CPU是1.7 GHz、1.69 GHz,256 M内存。
在VC+ +6.0工程中设置多线程模式,按照界面提示输入。此次采集,我们使用加密模式,输入加密文本1.txt,保存文本2.txt,密码是123,启动IO个线程。用程序加密1个100 K的文本文件,并让文本中的文字随机化,更加有利于分析。加密此文件的结果如表1所示(时间单位为s)。
运行中CPU的状态如图1所示,图中峰值(平台期)即为程序运行时的CPU占用率。该图表明:在多线程状态下,CPU得到了充分的使用。解密的算法和加密是一样的,所以,这里我们就不再进行解密的数据统计了。
2、数据分析
在理论上,数据分布服从正态分布规律,假设总体的置信水平是0.95 (95%),由所收集的数据可以得到各次运行的平均值x和标准方差Sn-1,如表1所示。其置信区间由公式F±tc/2,n- STIU2得到,其中to.05/2 (10)=2.228 1,计算区间结果如表2所示。
取区间(14. 9387,14.5851)的平均值14.7619为单个线程的执行时间,再让程序按1个线程的模式运行3次,时间分别为16.3750,16.3130,16.2810s;加权平均后的结果是16.2320s。由于每个线程的参数不同,所以,程序中没有设置互斥机制,每1个线程均按照自己的方式由操作系统调动运行,计时系统也是只统计程序在加密时的时间数据,所以,认为得到的时间可以反映程序的执行时间。
在10个线程的情况下,我们可以粗略估计并行的执行效率是串行的(14.7619×10/16.232)=9倍。实际运行时,如果是目前主流的双核或者4核CPU,加密的效率应当会高于9倍。
小知识之多线程技术
采用超线程即是可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
当青岛*测控技术有限公司遇上安企神,测控技术数据安全将迎来哪些新变化?
海*测控技术有限公司是海*微电子有限公司100%控股子公司,是由青岛市政府、山东省政府及行业领军企业共同出资成立的第三方检测平台。旨在集成电路可靠性验证及测试分析领域打造国内一流集成电路检测、分析、设计开发及技术解决方案等集成电路产业共性技术服务平台。海*以海洋装备和高端设备集成电路可靠性验证和测试分析为特色,主要为海...
"聚势谋远:重庆*医药集团与安企神达成战略合作,探索医药+科技融合发展新路径!
重庆*医药集团有限公司成立于2017年8月,是在重庆市*区医药(集团)有限责任公司基础上组建成立的大型医药产业企业。是重庆*经济技术开发(集团)有限公司控股的混合所有制企业和市级重点项目三峡国际健康产业园投资单位,位列全国百强医药流通企业。公司下辖重庆*制药有限公司、*医药科技重庆有限公司、重庆*肿瘤医院等十余家子公司...
聚焦核心数据安全:山东卫禾*股份有限公司携手安企神软件构建防泄密屏障!
项目背景山东卫禾*股份有限公司于2015年注册成立,公司拥有总资产1.5亿元,公司具有齿轮检测中心、三坐标测量仪、全谱直读光谱仪等关键研发设备。运用UGNX7.5、MASTA5.4等研发软件进行研发,具有强大的技术研发能力,拥有31项专利,坚持产学研结合,设有山东卫禾*技术研究院,并不断加强研发平台建设,打造创新型企业...
安全+智造双升级!江阴*电子有限公司携手安企神开启企业防护新时代!
江阴*电子有限公司成立于1989年,是一家电子元器件集成设计和生产服务的领先供应商。产品应用包括数据采集、计算机外围设备和其他电子产品。还进入了汽车电子行业、航空航天行业、工业控制行业、医疗器械行业和消费电子行业,为客户提供更广泛的高附加值产品和服务。随着科技产业的快速发展和市场需求的增加,现已成功转型为一家提供完整解...
福建*医药公司联手安企神软件,成功落地应用程序、网站黑名单设置与USB管控方案!
项目背景福建*医药有限公司前身是福建*工贸责任有限公司,2015年重组后成为中国五百强企业——*医药集团的子公司。 系中国最大的民营医药集团,是在中国医药商业行业处于领先地位的上市公司。公司成立于2015年08月04日,经营范围包括中药饮片、中成药、化学原料药、化学药制剂等。应用需求管控公司电脑安装程序和使用程序,禁...