(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf_第1页
(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf_第2页
(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf_第3页
(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf_第4页
(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机应用技术专业论文)truecrypt磁盘加密软件安全机制分析.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 中文摘要 t r u e c r y p t 磁盘加密软件是目前应用非常广泛的采用o t f e ( o n - t h e f l y e n c r y p t i o n ) 技术进行磁盘加密的软件系统。该技术能够保证数据在装载和存储 前被自动进行快速加解密而不需要用户的干预。软件同时还采用虚拟磁盘技术, 使用高强度密码算法对用户敏感数据进行保护。 本文通过密码研究、报文分析和汇编级分析等技术手段,分析研究了 t m e c r y p t 磁盘加密软件的工作流程、安全机制,主要工作如下: 1 、研究了t m e c 巧p t 磁盘加密软件的基本思想、总体架构和工作流程,并对虚 拟磁盘的创建过程、软件的使用与管理进行详细描述。 2 、搞清 j t r u e c r y p t 磁盘加密软件的核心密码算法。包括:数据加密算法、 数字摘要算法、密钥生成算法、随机数生成算法、口令认证算法,并给出了安 全性分析。 3 、搞清了m e c w p t 磁盘加密软件虚拟磁盘文件的报文格式及其具体含义。 4 、提出基于口令猜证的攻击方法,给出了口令正确性验证条件,并给出了 攻击实例。 5 、对t r u e c r y p t 磁盘加密软件的总体安全性进行了分析和评价,提出了若 干使用方面的安全性建议。 关键词:信息安全、磁盘加密、t r u e c r y p t 、安全机制、口令攻击 a b s t r a c t a b s t r a c t t m e c r y p t i sas o f t w a r e s y s t e m f o r e s t a b l i s h i n g a n d m a i n t a i n i n g a l l o n - t h e f l y e n c r y p t e dv o l u m e ( d a t as t o r a g ed e v i c e ) o n t h e f l ye n c r y p t i o nm e a n st h a t d a t aa r ea u t o m a t i c a l l ye n c r y p t e do r d e c r y p t e df i g h tb e f o r et h e ya r el o a d e do r s a v e d ,w i t h o u ta n yu s e ri n t e r v e n t i o n i tc r e a t e sa n ds u p p o r t se n c r y p t e dv i r t u a ld i s k s , a n dk e e p st h eu s e r sc o n f i d e n t i a ld a t ai ne n c r y p t e df o r mw i t hs t r o n ga l g o r i t h m s t h r o u g hc i p h e rr e s e a r c h ,d a t aa n a l y z i n ga n da s s e m b l e r - l e v e la n a l y z i n g ,t h i sp a p e r a n a l y s i st h ew h o l ef r a m e w o r k a n dl u c u b r a t e so nt h es e c u r i t ym e c h a n i s mo f t r u e c r y p t ,a n di t sp r i m a r yw o r ki n c l u d e s : 1 s u mu pt h ef u n d a m e n t a le n c r y p t i o ni d e a , t h ew h o l ef r a m e w o r ka n dt h e e n c r y p t i o np r o c e d u r eo ft r u e c r y p t ,t h e ng i v ead e s c r i p t i o no ft h ep r o c e d u r eo f c r e a t i o nav i r t u a ld i s k ,a n dh o wt ou s ea n dm a n a g et h es o f t w a r e 2 a c q u i r et h es o f t w a r e sc o r ea l g o r i t h ma n ds e c u r i t ym e c h a n i s m i n c l u d e s :d a t a e n c r y p t i o na l g o r i t h m ,h a s ha l g o r i t h m ,k e yg e n e r a t i o na l g o r i t h m ,p a s sa u t h e n t i c a t i o n a l g o r i t h m t h e n ,a n a l y s i st h es e c u r i t yo fa l lt h ec i p h e r sa l g o r i t h ma n dh a s ha l g o r i t h m 3 a n a l y s i st h ed a t af o r m a to fv i r t u a ld i s kv o l u m ef i l e 4 d e v e l o pam e t h o do fa t t a c k i n gac o n t a i n e rb yg u e s s i n gi t sp a s s w o r d ,a n dg i v e t h ev e r i f y i n gq u a l i f i c a t i o no ft h et r u ep a s s w o r d t od e m o n s t r a t et h em e t h o dw e l la n d t r u l y , w eg i v ea ne x a m p l e 5 w es u m m a r ya n da n a l y s i st h et r u e c r y p t ss e c u r i t ya n da d v i c ea b o u ts o f t w a r e a p p l y k e y w o r d :i n f o r m a t i o ns e c u r i t y ;d i s ke n c r y p t i o n ;t r u e c r y p t ; s e c u r i t ym e c h a n i s m ;p a s s w o r da t t a c k i i 原创性声明 本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行 研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、数 据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含 任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做 出重要贡献的个人和集体,均己在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:耋唾 日期:哩:鲨 关于学位论文使用授权的声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属兰 州大学。本人完全了解兰州大学有关保存、使用学位论文的规定,同意学 校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被 查阅和借阅;本人授权兰州大学可以将本学位论文的全部或部分内容编入 有关数据库进行检索,可以采用任何复制手段保存和汇编本学位论文。本 人离校后发表、使用学位论文或与该论文直接相关的学术论文或成果时, 第一署名单位仍然为兰州大学。 保密论文在解密后应遵守此规定。 论文作者签名:鲤导师签名: 日期:丝递! 全! 丝 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 1 1 引言 第一章绪论 信息安全是指通过保护应用、数据或者设备,使其免受非法授权的访问或 使用,来达到保护信息和资源、保护客户和用户、保证私有性等目的,并确保在 各种攻击下,应用和数据在服务器、物理信道和主机上的安全性。数据安全作为 信息安全最基本、最重要的环节,一直是人们关注的焦点。数据安全大体上可分 为传输安全和存储安全。保密存储信息的泄漏将会导致非常严重的后果,因此必 须保证其安全性和完整性。存储安全指在数据保存上确保其安全性、完整性、可 靠性和有效性。 存储安全包括存储环境安全、存储介质安全、存储管理安全、病毒处理等 方面。目前针对网络传输安全的研究比较多,而存储安全也不能被忽视,很多信 息安全事故都是发生在数据存储这一环节上。 目前,人们正在不断研究数据存储领域的各项技术,以提高系统的整体安 全性。其中有从硬件实现的白安全的存储设备,有从软件理论实现的数据分割算 法,还有基于s a n 的存储及其组密钥管理方案,此外容侵能力也是安全存储必不 可少的一项。安全的背后实际上就是一套完整的安全规划。尽管任何人都不可能 使数据实现百分之百的安全,但只要我们采用可靠的安全方法、规程和技术,再 配合已有的工业标准就可以达到目前条件下较高的安全水平。 1 2 研究背景 随着信息技术的发展,计算机和计算机网络已经成为全球信息基础设施的主 要组成部分,给人们的生活、工作和沟通带来了极大的方便。对于企业来说,数 据信息和网络应用已经成为企业重要的财富和战略性资产,它们是实现生产效率 和竞争优势最大化的关键所在。为了获得商业上的成功,企业必须要在内部或外 部网络上将其高附加值的应用和数据提供给包括员工、业务伙伴和客户在内的不 同使用者。在充分利用网络强大功能的同时,也意味着丌放企业的信息系统,所 以信息的安全和保密就成为一个至关重要的问题。对个人来说,我们需要保护我 们的私有数据,防止被一些怀有不良用心的人所窃取或者破坏。就目自矿的情况来 兰州大学硕士论文 t m e c r y p t 磁盘加密软件安全机制分析 说,企业和个人的数据信息主要以磁盘、光盘等存储介质进行保存,因此,在客 观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。 在传统上,我们可以对存储介质上的敏感文件或者数据单独进行加密处理, 在需要使用时在对其进行解密。但是,随着数据量的增加这种方式越来越显得力 不从心,我们更希望实现对整个分区、甚至是整个磁盘进行可靠地、自动地加解 密,以便随时可以将需要保密的数据存储在安全的空间。虚拟磁盘加密技术和 o t f e ( o n - t h e - f l ye n c r y p t i o n ) 技术正是解决这一问题的关键。 目前在国际上比较流行的磁盘加密软件主要有以下几种: ( 1 ) 、t r u e c r y p t 该软件能在计算机上产生一个或几个虚拟盘。每个虚拟盘里可以贮存敏感数 据,使用高强度密码算法进行数据加解密。这些数据会自动被实时加密,只有拥 有正确的口令,才能读取这些文件,并自动实现加解密。 ( 2 ) 、p g p d i s k 该软件是美国n e t w o r ka s s o c i a t ei n c 开发的免费软件,它的核心思想是利用 虚拟磁盘保护敏感数据。在装载虚拟磁盘文件时需要输入口令才能打开这个分 区,在这个分区内的文件是经过加密的。当不再需要这个分区时,可以把这个分 区关闭。 ( 3 ) 、b e s t c r y p t 该软件由芬兰j e t i c o 公司开发,与p g p d i s k 、s t r o n g d i s k 等一样是一个应用 广泛的磁盘加密系统。它采用虚拟磁盘技术,使用高强度密码算法对用户敏感信 息进行保护。 由于具备高安全性、高性能、良好的算法可扩性和易用性等特点,t r u e c r y p t 磁盘加密软件正被越来越多的用户接受和使用,可以说是目前最为流行的磁盘加 密软件。本文的研究目的是通过对t r u e c r y p t 磁盘加密软件所采用的主要安全机 制的研究发现该软件在使用中的安全漏洞,进而提出若干使用方面的安全性建 议。 1 3 论文组织结构 本文紧扣t r u e c r y p t 磁盘加密软件的安全机制这个主题,共分五章,依次分别 兰州人学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 是 第一章为绪论,主要介绍了磁盘加密软件安全机制的研究背景和研究意义, 简要介绍了几种目前使用较广泛的磁盘加密软件。给出了本论文的研究内容和总 体结构。 第二章重点介 t r u e c r y p t r d 受盘加密软件的基本思想、总体架构、工作流程 和使用方法。 第三章通过对该软件的主程序使用包括反汇编在内的逆向分析手段,着重研 究分析并搞清了t m e c r y p t 磁盘加密软件的加密流程、数据格式、核心密码算法( 包 括:数据加密算法、数字摘要算法、密钥生成算法、随机数生成算法、口令认证 算法等) 并给出了安全性分析。 第四章给出了基于口令猜证的攻击方法,给出了口令正确性的验证条件, 并给出了攻击实例。 第五章对t r u e c r y p t 磁盘加密软件的总体安全性进行了分析和评价,提出了若 干使用方面的安全性建议。 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 第二章t r u e c r y p t 磁盘加密软件概览 2 1t r u e c r y p t 磁盘加密软件介绍 目前,我们通常将各种电子文档保存在所使用计算机的磁盘上,其中包括很 多重要而机密的文档以及含有敏感信息的文档。如果有攻击者非法进入计算机系 统,就可以轻易获得这些重要的文档。在计算机丢失、通过网络非法进入你的计 算机、他人获得口令、计算机留在办公室等情况下,都存在重要文档被非法泄露 的可能。随着越来越多的用户( 个人公司企业) 对个人敏感信息或公司保密信 息的安全性( 包括存储和传送) 逐渐重视,希望通过一个便捷的工具来达到这个 目的。 t r u e c r y p t 磁盘加密软件是一款由t r u e c r y p t 工作组开发的免费软件,它利用 目前该类软件普遍采用的虚拟磁盘技术和o t f e ( o n - t h e f l ye n c r y p t i o n ) 技术 来完成对数据的快速、自动加解密。该软件可以创建加密的虚拟磁盘分区,然后 安全地在加密的虚拟磁盘分区上存储用户的机密数据。所有的数据均经过高强度 加解密算法的加密,但是其加解密过程对用户和其它应用程序是完全透明的,在 虚拟磁盘j 下确装载后用户完全可以象访问标准的磁盘分区一样访问它们,包括格 式化、创建目录、文件、拷贝、粘贴,甚至安装完整的软件。在创建虚拟磁盘的 过程中,用户需要设定该虚拟磁盘的装载口令。虚拟磁盘在未被装载时以文件的 形式存贮在文件系统内,这就是所谓的“容器文件”( 该文件可以是任意的文件名 和扩展名) ,虚拟磁盘在被装载后拥有相应盘符( 前提是该盘符没被其它系统设 备占用) 。容器文件可以被复制、移动到其它存储设备( 比如光盘、网络硬盘) 中进行使用。 o t f e ( o n t h e f l ye n c r y p t i o n ) 技术使得该软件的加解密过程对用户完全透 明,虚拟磁盘在卸载或装载时自动完成对数据的加解密操作而不需要用户的干 预。文件和数据从普通磁盘复制到加密虚拟磁盘时将被自动加密,反之将被自动 解密,所有的加解密操作都在内存中进行后台处理。用户可象操作普通电脑分区 一样,方便地对其进行读写操作。 t r u e c r y p t 磁盘加密软件具有如下特点: ( 1 ) 、简单易用,无需改变用户使用习惯; 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 ( 2 ) 、加解密过程完全透明: ( 3 ) 、加解密速度快; ( 4 ) 、容器文件可以保存在多种存储设备上; ( 5 ) 、无需系统管理员权限; ( 6 ) 、支持在虚拟磁盘中创建隐藏分区; t r u e c r y p t 磁盘加密软件从2 0 0 4 年开发成功后产品不断更新换代,可应用于 w i n d o w s 2 0 0 0 删2 0 0 3s e r v e r x p x p x 6 4 v i s t a 、m a c o sx 和l i n u x 等操作系统, 目前最新的开发版本为2 0 0 8 年3 月1 7 日发布v e r s i o n 5 1 a ,本文的研究以2 0 0 7 年5 月3 日发布v e r s i o n 4 3 a 为对象。 2 2t r u e c r y p t 磁盘加密软件的使用 2 2 1 创建和使用t r u e c r y p t 容器 ( 1 ) 、启动t r u e c r y p t 软件,点击“c r e a t ev o l u m e ”按钮 ( 2 ) 、选择“c r e a t eas t a n d a r dt r u e c r y p tv o l u m e ”选项后点击“n e x t ”按钮。 ( 3 ) 、容器文件与普通文件一样能够被移动、复制、删除,指定容器文件的 存储位置后点击“n e x t ”按钮。 ( 4 ) 、指定该容器所使用的数据加密算法和数字摘要算法。 ( 5 ) 、指定容器文件所要装载的虚拟磁盘容量。 ( 6 ) 、为新容器设置口令,软件要求口令长度不超过6 4 字节。该软件还可 以使用一个或多个密钥文件作为容器的口令。该密钥文件可以是计算机中任何类 型的文件,也可以通过软件自动生成。 ( 7 ) 、格式化容器,完成创建过程。容器的可用空间将被随机数据完全填充 以便增加安全性。 ( 8 ) 、容器创建成功,点击“e x i t ”按钮。 t r u e c r y p t 的数据加解密过程其实就是容器文件和虚拟磁盘的转换过程,这 是通过容器文件的装载和卸载实现的。在装载容器文件时,启动软件后如图2 1 所示,首先在列表中选择盘符,然后点击“s e l e c tf i l e ”按钮指定容器文件,最 后点击“m o u n t ”按钮。弹出口令认证窗口,输入j 下确口令后完成虚拟磁盘的装载。 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 图2 1 装载容器文件 完成虚拟磁盘的装载后,我们可以象使用普通磁盘一样对它进行操作。其内 部数据的加解密操作对用户完全透明,只是由于该磁盘事实上并不存在,因此称 之为“虚拟磁盘”,如图2 2 。加密过程非常简单,用户只需把待加密数据移动 或复制到安装好的虚拟磁盘中,数据将被自动加密,解密过程也是一样。 瞒e 撮v j e wf _ e v o r i l :e s t _ o o l s l p 雾; 。,。i j 。,一。t 。一i 缁、 ” 。黧j r e h e s h a d d r e s s 晤面丽焉 | n a n l e “ ,妒s y s t e m 【c :】 潮l o c a ld i s kl d :】 q l o c a id i s kf f :1 1 卫巳曼苎 l o c a id i s k l o c a l d i s k l o c a id i s k f r e es p a c e :0 9 7 b | 0 酞一 m y c o m p u t e r一 图2 2 虚拟磁盘 2 2 2 创建和使用t r u e c r y p t 隐藏容器 t r u e c r y p t 和其它磁盘加密软件相比的一个特点是增加了隐藏容器功能。何 谓“隐藏容器”? 既然即使获取了用户的容器,由于不知道安装口令,攻击者还是 难以获取容器内部数据,为什么还要增加这一功能呢? 隐减容器技术是指把。个容器嵌套进另一个容器罩,使入侵者无法得知外部 容器内是甭还有其它容器隐臧的技术。在以后的章节罩,我们称外部容器为“宿 6 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 主容器”,内部容器为“隐藏容器”。隐藏容器与其宿主的内容可以完全不同,而 且t r u e c r y p t 要求二者的装载口令不能相同。否则,软件在装载容器时无法判断 装载何种容器。 在某些情形里,容器主人可能被迫要说出容器的口令( 比如受到暴力威胁 时) ,此时,用户当然希望把敏感数据放在一个别人在其使用的计算机上根本无 迹可寻的容器里。t r u e c r y p t 依靠容器嵌套技术实现这一目的,这一技术类似于 一般的隐写术,只是选用的隐写载体是另一容器,而不是一般隐写术经常采用的 图形或影音文件,这是因为普通隐写术有以下缺点: ( 1 ) 、降低了系统运行速度; ( 2 ) 、必须有较大的隐写载体,一般是要隐藏数据体积的2 到4 倍; ( 3 ) 、太大的图象或影音文件容易引起怀疑。 相比之下,容器嵌套技术拥有以下优点: ( 1 ) 、操作隐藏容器与操作普通容器在流程上没有本质差别,因此,二者对 系统运行速度的影响差别微乎其微; ( 2 ) 、因为宿主容器本身加密存放,所以入侵者难以发现宿主容器内是否存 在隐藏容器。 t r u e c r y p t 磁盘加密软件所创建的隐藏容器建立在外部容器的闲置空间,即使 外部容器被装载也无法判断该容器内是否存在隐藏容器,因为所有容器的闲置空 间都被随机数据填充。宿主容器与隐藏容器的文件结构如图2 3 所示: 普通容器 普通容器文件头 宿主容器 占用空间空闲空间 隐藏容器数据空间隐藏容器文件头 幽2 3 容器文件鲜抖勾 隐减容器的创建与普通容器类似,可以选择在已经存在的外部容器中创建, 也可以重新创建外部容器并创建其中的隐藏容器。步骤如下: 兰州大学硕士论文t r u e c r y p t 磁盘加密软件安全机制分析 ( 1 ) 、启动软件选择创建虚拟磁盘并选择“c r e a t eah i d d e nt r u e c r y p tv o l u m e ” 选项。 ( 2 ) 、选择创建一个外部容器并在其内创建一个隐藏容器。当然,也可以在 一个已经存在的外部容器内创建隐藏容器。 ( 3 ) 、创建外部容器的过程于创建普通容器的过程完全一样。在设定外部容 器的数据加解密算法、数字摘要算法、容器的容量及其装载口令后完成其创建过 程。 ( 4 ) 、开始创建隐藏容器并选择数据加密算法和数字摘要算法。 ( 5 ) 、设定隐藏容器的容量,其容量不能超过外部容器的容量。 ( 6 ) 、设定隐藏容器的装载口令或者密钥文件,二者不能与外部容器的口令 或者密钥文件相同。 ( 7 ) 、格式化隐藏容器,完成创建过程。隐藏容器的可用空间将被随机数据 完全填充以便增加安全性。 ( 8 ) 、隐藏容器创建完毕,可以装载使用。 隐藏容器的安装和卸载过程和普通容器的安装、卸载过程没有任何区别。要 安装隐藏容器,用户不是先安装宿主容器,再安装隐藏容器,而是执行和安装宿 主容器时一样的操作,此时,如果在口令输入窗口输入宿主容器口令,则安装宿 主容器,如果输入隐藏容器的口令,则t r u e c r y p t 提示用户安装了隐藏容器,如 图2 4 所示,给用户的感觉是宿主容器似乎并不存在。 盈b 卅搿# 槲。删删一n 咿翻铆睁聊”_ 一料洲舯- = r 。一 。“缔锄镪 瞻瑚岫皇柑- r p 勘蛐呻蜘幢蛳 晰w ,_妇目_ h i _ 瓣 - z 蛐e 弭曲弹由_ 岫竹“岬$ 0p , i i 5 越n q 0 i 口e 啦v a h 膳如- m 叩f 瞻 目:篡= 一o 幽2 4 狄绒隐藏容器 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 2 3t r u e c r y p t 磁盘加密软件相关密码算法 2 3 1 数据加密算法 t r u e c r y p t 磁盘加密软件使用a e s 算法及其候选算法s e r p e n t 算法和t o w f i s h 算法对数据进行加解密操作。该软件同时也支持使用上述三种算法使用不同密钥 对数据进行层叠加密。所有加解密算法均采用2 5 6 比特密钥对1 2 8 比特的数据分 组进行l r w 模式的加解密。 1 9 9 7 年1 月,美国标准与技术协会( n i s t ) 开始在全球范围内遴选数据加 密标准( d a t ae n c r y p t i o ns t a n d a m d e s ) 的替代者,并称之为高级加密标准 ( a d v a n c e de n c r y p t i o ns t a i i d a m 一a e s ) 。美国标准与技术协会要求a e s 具有 1 2 8 比特的分组长度,支持1 2 8 、1 9 2 和2 5 6 比特的密钥长度。这一过程以其公 开性和国际性闻名,经三次大会评选,比利时学者d a e m e n 和r i j m e n 提出的 r i j n d e a l 算法因集安全性、高性能、高效率、可实现性和灵活性于一体,从2 1 个待选算法中脱颖而出并最终当选。 最终确定的其它候选算法还包括s e r p e n t 算法、t w o f i s h 算法、r c 6 算法和m a r s 算法。 r i j n d a e l 算法是一种对称密钥分组密码算法,它的设计原理不同于一般的对 称加密算法,它并未采用f e i s t e l 网络,而是采用s p ( s u b s t i t u t i o n & p e r m u t a t i o n , 代替和置换) 结构。r i j n d a e l 算法提供1 2 8 比特、1 9 2 比特和2 5 6 比特等三种长 度的密钥和明文分组的加密,加密运算的轮数也是可变的,它由密钥长度和分组 长度共同确定。 s e r p e n t 算法是一个3 2 轮的分组密码,它作用于分组长度为1 2 8 比特的明 文,产生1 2 8 比特的密文分组。该算法所使用的密钥可变至2 5 6 比特。但是, 如果密钥小于2 5 6 比特,则在其最高有效比特的术端填充一个比特的1 ,然后 再填充适当数量的0 使得填充后的密钥长度的最终长度为2 5 6 比特。该算法是 由r o s sa n d e r s o n 、e l ib i h a m 和l a r sk n u d s e n 于1 9 9 8 年发布的一种对称分组 加密算法。作为a e s 的候选算法它的安全性高于3 - d e s ,甚至被认为还要高 于r i j n d a e l 算法,而它的速度却与d e s 算法相当。 t w o f i s h 算法是一个1 6 轮密码,它使用1 2 8 比特的分组k 度并接受可以k 至 2 5 6 比特的变长密钥。该算法由b s c h n e i e r 、j k e l s e y 、d w h i t i n g 、d w a g n e r 、 9 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 c h a l l 和n f e r g u s o n 为c o u n t e r p a n ei n t e r a c ts e c u r i t y 公司设计并代表该公司参加 过a e s 竞选,并最终成为最后一轮5 个候选算法之一。象b l o w f i s h 一样,t w o f i s h 在国际上享有较高的声誉。 t r u e c r y p t 磁盘加密软件所使用的密码算法及其组合如表2 1 所示: 表2 1 密码算法表 密码算法算法设计者密钥长度( 位)分组长度( 位)模式 a e s j d a e m e n ,v r i j m e n 2 5 61 2 8u r w r a l d e r s o n , s e r p e n t 2 5 61 2 8u r 、v e b i h a m ,l k n u d s e n b s c h n e i e r ,j k e l s e y , d w h i t i n g ” 1 1 l o f i s h2 5 6 1 2 8u r 、 , d w a g n e r ,c h a l l , n f e r g u s o n a e s 1 w o f i s h2 5 6 - 2 5 61 2 8u r w a e s t w o f i s h s e r p e n t 2 5 6 2 5 6 2 5 61 2 8l r w s e r p e n t - a e s 2 5 6 2 5 61 2 8l 】r w s e r p e n t - t w o f i s h - a e s 2 5 6 2 5 6 - 2 5 6 1 2 8l 】r w t w o f i s h s e r p e n t 2 5 6 - 2 5 61 2 8u 州 2 3 2 数据加解密模式 随着密码技术发展和对数据存储安全的重视,为了对抗暴力穷尽攻击,密码 研究人员引入了一种针对“窄”存储块设计的加解密操作模式u 涮模式。 t r u e c r y p t 磁盘加密软件所采用的所有加解密算法均使用这种模式完成对数据的 加解密处理。为了进一步解释该软件l r w 模式的加解密过程,我们以a e s 算法 为例先定义如下标识: k e y l : 3 2 字节主密钥; k e y 2 : 1 6 字节次主密钥; l :1 6 字节分组索引; 1 0 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 o :异或运算; 。: 模x 1 2 8 + x 7 + x 2 + x + 1 的多项式乘法运算; t :次主密钥与分组索引进行多项式乘法运算后的结果; p : 一个明文分组; c :一个密文分组; a e s e i l c l r 也y l :以k e y l 为密钥用a e s 算法加密数据; a e s d e c l ( c y l : 以k e y l 为密钥用a e s 算法解密数据; 每个分组的加解密过程如图2 5 所示: 图2 5 l r w - a e s 加解密流程 2 3 3 数字摘要算法 数字摘要算法也叫做散列算法或者哈希算法,就是把任意长度的输入( 又叫 做预映射,p r e i m a g e ) ,通过单向散列函数,变换成固定长度的输出,该输出就 是散列值也叫哈希值。这种转换是一种压缩映射,也就是说散列值的空间通常远 小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯 一的确定输入值。其数学表述为:h = h ( m ) ,其中h ( ) 为单向散列函数,m 为任意长度明文,h 为固定长度散列值。 在信息安全领域中应用的数字摘要算法还需要满足其它关键特性: ( 1 ) 、单向性( o n e w a y ) 。从预映射,能够简单迅速的得到散列值,而在计 算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应 的m - - h 1 ( h ) 不可行( h 。为单向散列函数的逆函数) 。这样,散列值就能在统 计上唯一的表征输入值。因此,密码学上该散列值义被称为“消息摘要( m e s s a g e d i g e s t ) ”,也就是要求能方便的将“消息”进行“摘要”,但在“摘要”中无法得到比“摘 兰州大学硕士论文 t m e c r y p t 磁盘加密软件安全机制分析 要”本身更多的关于“消息”的信息。 ( 2 ) 、抗冲突性( c o l l i s i o n r e s i s t a n t ) 。即在统计上无法产生2 个散列值相同 的预映射。给定m ,计算上无法找到m ,满足h ( m ) = h ( m ) ,即弱抗冲突 性,计算上也难以寻找一对任意的m 和m ,使满足h ( m ) = h ( m ) ,即强抗 冲突性,之所以要求“强抗冲突性”主要是为了防范“生日攻击( b i r t h d a ya t t a c k ) ”0 所谓“生日攻击”是指在一个1 0 人的团体中,你能找到和你生日相同的人的概率 是2 4 ,而在同一团体中,有2 人生日相同的概率是1 1 7 。类似的,当预映射 的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到“相同生日” 的人。 ( 3 ) 、映射分布均匀性和差分分布均匀性。散列结果中,为“0 ”的比特和为“1 ” 的比特其总数应该大致相等。输入中一个比特的变化,散列结果中将有一半以上 的比特改变,这又叫做“雪崩效应( a v a l a n c h ee f f e c t ) ”。要实现使散列结果中出 现一比特的变化,则输入中至少有一半以上的比特必须发生变化。其实质是必须 使输入中每一个比特的信息,尽量均匀的反映到输出的每一个比特上去。输出中 的每一个比特,都是输入中尽可能多比特的信息一起作用的结果。 d a m g a r d 和m e r k l e 定义了所谓“压缩函数( c o m p r e s s i o nf u n c t i o n ) ”,就是将一 个固定长度输入,变换成较短的固定长度的输出,这对散列函数的设计产生了很 大的影响。散列函数就是被设计为基于通过特定压缩函数的不断重复“压缩”输入 的分组和前一次压缩处理的结果的过程,直到整个消息都被压缩完毕,最后的输 出作为整个消息的散列值。尽管还缺乏严格的证明,但绝大多数业界的研究者都 同意,如果压缩函数是安全的,那么以上述形式散列任意长度的消息也将是安全 的。这就是所谓d a m g a r d m e r k l e 结构。 任意长度的消息被分拆成符合压缩函数输入要求的分组,最后一个分组可能 、 需要在木尾添上特定的填充字节,这些分组将被顺序处理,除了第一个消息分组 将与散列初始化值一起作为压缩函数的输入外,当前分组将和f j 一个分组的压缩 函数输出一起被作为这一次压缩的输入,而其输出又将被作为下一个分组压缩函 数输入的一部分,直到最后一个压缩函数的输出,将被作为整个消息散列的结果。 t r u e c r y p t 磁盘加密软件所使用的数字摘要算法包括w h i r l p o o l 算法、s h a 1 算法和r i p e m d 1 6 0 算法。数字摘要算法里用到的压缩函数可以分为两类:专为 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 散列函数设计的函数或对称分组密码。安全散列算法( s h a ) 和w h i r l p o o l 算法 分别是这两种方法的例子。 w h i r l p o o l 算法由于其高强度的安全性被列入了i s o 标准。w h i r l p o o l 算法使 用了和a e s 加密标准相类似的转化技术。w h i r l p o o l 算法的输出为5 1 2 比特散列 值。为了加快计算速度,该算法所使用的所有表格都已经预先计算完毕。w h i r l p o o l 在历史上共有3 个版本,分别是w h i r l p 0 0 1 0 、w h i r l p 0 0 1 t 和w h i r l p o o l 。根据最 新的2 0 0 3 年版本,我们把目前的w h i r l p o o l 算法叫做w h i r l p o o l3 0 。 s h a 算法( s e c u r eh a s h a l g o r i t h m ,安全散列算法) 由美国国家标准和技术 协会( n i s t ) 提出的,并作为联邦信息处理标准( f i p sp u b1 8 0 ) 在1 9 9 3 年公布。 s h a 基于的设计原则与m d 4 非常相似,并且模仿了m d 4 算法,但它产生1 6 0 比特的散列值。1 9 9 5 年n i s t 又发布了一个修订版f i p sp u b1 8 0 - 1 ,通常称之为 s h a 1 。s h a 1 对s h a 做了改进,使得抗攻击的能力更强。s h a - 1 设计时基于 和m d 4 相同原理,并且模仿了该算法。因为它将产生1 6 0 比特的散列值,因此 它有5 个参与运算的3 2 位寄存器字,消息分组和填充方式与m d 5 相同,主循环 也同样是4 轮,但每轮进行2 0 次操作,非线性运算、移位和加法运算也与m d 5 类似,但非线性函数、加法常数和循环左移操作的设计有一些区别。 r i p e m d 算法是m d 5 算法的变形,它实际上包含两个并行的m d 5 算法。 它是再欧共体的r i p e ( r a c ei n t e g r i t yp r i m i t i v ee v a l u a t i o n ) 计划框架中开发出来 的。r i p e m d 1 6 0 算法则是r i p e m d 算法的改进版,其输出为1 6 0 比特散列值。 该算法由h a n sd o b b e r t i n 、a n t o o nb o s s e l a e r s 和b a r tp r e n e e l 于1 9 9 6 年研制成功。 该算法共有4 个标准r i p e m d 1 2 8 、r i p e m d 1 6 0 、r i p e m d 2 5 6 和r i p e m d 3 2 0 , 其对应输出长度分别为1 6 字节、2 0 字节、3 2 字节和4 0 字节。但是r i p e m d 的 设计者们并没有真正设计r i p e m d 2 5 6 和r i p e m d 3 2 0 这2 种标准,他们只是 在r i p e m d 1 2 8 和r i p e m d 1 6 0 的基础上,修改了初始参数和s b o x 来达到输 出为2 5 6 位和3 2 0 位散列值的目的。所以,r i p e m d 2 5 6 的强度和r i p e m d 1 2 8 相当,而r i p e m d 3 2 0 的强度和r i p e m d 1 6 0 相当。 信息鉴别码( 即m a c ,m e s s a g ea u t h o r i t yc o d e ) 是一个与数字摘要算法密 切相关的名词,它能够证明消息的有效性。但是无法对消息提供者进行任何验证, 为了解决这一问题,密码研究人员设计了h m a c 认证码。h m a c 认证码是一种 兰州大学硕士论文 t r u e c r y p t 磁盘加密软件安全机制分析 经过加密的散列消息验证码,是一种使用加密散列函数和密钥计算出来的一种消 息验证码。不同于普通的信息鉴别码,h m a c 认证码可以对信息或数据的完整 性和真实性进行同步检查。任意的迭代加密散列函数无需更改都可以用于h m a c 认证码的计算。例如,使用r i p e m d 1 6 0 算法和密钥得到信息鉴别码的算法就被 称为h m a c r i p e m d 1 6 0 。为了清楚地描述计算h m a c 认证码的原理定义如下 标识: m - 用于鉴别的消息; b :消息m 的字节长度; h : 加密散列函数; l : 加密散列函数输出的字节长度; k : 作用加密散列函数的密钥; i p a d :内部固定填充,长度为b 字节的0 x 3 6 ; o p a d :外部固定填充,长度为b 字节的0 x 5 c ; 由于密钥k 的长度可以是小于等于消息长度b 的任何正整数值,如果密钥k 的长度大于b ,则首先用使用散列函数h 作用于密钥k ,然后用h 输出的l 长度 字符串作为实际使用的密钥。一般情况下,推荐的最小密钥k 长度是l 个字长。 计算h m a c 认证码的步骤如下: ( 1 ) 、在密钥k 后面添加“0 ”来创建一个长度为b 的字符串; ( 2 ) 、将长度为b 的密钥k 与i p a d 做异或运算; ( 3 ) 、将消息m 填充至第二步的结果字符串中; ( 4 ) 、用h 作用于第三步生成的数据; ( 5 ) 、将第一步生成的长度为b 的密钥k 与o p a d 做异或运算; ( 6 ) 、再将第四步的结果填充进第五步的结果中; ( 7 ) 、用h 作用于第六步生成的数据流,输出最终结果; 也可以用公式h ( k o p a d ,h ( k “i p a d ,m ) ) 表示其计算流程,如图2 6 所 示。h m a c 的安全性依赖于所用的加密散列函数的安全性。如果h 是强抗碰撞 的,则h m a c 也是强抗碰撞的。 1 4 兰州人学硕士论文 t r u e c r y p t 磁盘加密软什安全机制分析 图2 6 h m a c 计算流程 t r u e c r y p t 磁盘加密软件主要使用h m a c r i p e m d 1 6 0 ,h m a c s h a 1 , h m a c w h i r l p o o l 算法通过用户口令和盐生成导出密钥。具体的密钥生成算法将 下一章详细描述。 兰州大学硕七论文 t r u e c r y p t 磁盘加密软件安全机制分析 第三章t r u e c r y p t 磁盘加密软件安全机制 研究 3 1 容器文件认证流程 t r u e c r y p t 磁盘加密软件在装载容器文件前需要通过用户的i :1 令进行认证, 以便保证虚拟磁盘上数据的存储安全。通过阅读大量的相关资料并编写代码进行 验证,同时对t r u e c r y p t 软件的主程序进行反汇编分析后,提取了容器文件的i z l 令认证流程: ( 1 ) 、软件读取容器文件头5 1 2 字节数据到内存中,记为v o l u m e h e a d e r 。 其中前6 4 字节数据为不加密

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论