(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf_第1页
(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf_第2页
(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf_第3页
(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf_第4页
(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(电路与系统专业论文)文件口令认证机制中密钥导出算法安全性分析.pdf.pdf 免费下载

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

文档简介

摘要 文件的安全性主要是通过身份认证和文件加密实现,在身份认证和文件加密 密钥的产生中都会使用到密钥导出算法,所以密钥导出算法是文件安全机制中的 关键技术,其安全性分析也成为文件安全机制的重要内容。目前密钥导出算法的 安全性包括理论安全性与实际安全性。为此,本文以0 f f i c e 的安全性为例,证明 了其中密钥导出算法的理论安全性,并详细分析了0 f f i c e 的实际安全性。主要工 作成果如下: ( 1 )证明了0 f f i c e 中密钥导出算法在随机预言机模型下的理论安全性。在对 该密钥导出算法进行安全性定义的基础上,使用g 锄e p 1 a y i n g 技术界定了它 与理想随机函数的不可区分优势的上限为:lf cl ,ip 肜l + 产2 ”,其中t 为询 问次数,c 表示循环次数,lp w l 表示密钥空间,n 表示导出密钥的长度。通过 分析可知,当询问次数f clp 矿i 时,0 f f i c e 中口令认证机制是安全的,且循 环次数c 的引入将口令的有效长度扩展了l 0 9 2c - b i t 。 ( 2 )详细分析了o f f i c e 加密文档在并行口令穷举攻击下的实际安全性。首先 通过编程测试得到在c u d a 下g t x 4 8 0 与0 p e n c l 下h d 5 9 7 0 在1 秒钟内分别可计 算s 姒一1 函数4 3 亿次和1 3 6 3 亿次;然后以时间为代价,在不同的用户口令 长度和字符空间下详细论证了0 f f i c e 的安全性;最后通过分析得出,在使用 o f f i c e 文件加密时,用户口令最好选用全字符集,并且字符长度大于6 ,以保 证0 f f i c e 加密文档的安全性。 关键词:攻击者优势;密钥导出算法;随机预言机模型 a b s t r a c t 1 1 l ef i l es e c u r 时i sm a i 】:蚵p r o t e c t e db yl l s e ra u t l l e n t i c a t i o n 趾df i l e se n c r ) 嘶。玛 m ek c yd c r i v a t i o n 缸1 c t i o n ( k d f ) i su s e dt 0d e r i v ea u t l l e n t i c a t i o n 锄d 也ee n c 巧p t i o n k e y ,s ot l l el fi sm ek e yp o i n ti n 恤f i l es e c u r i 够m e c h a i l i s m h e n c e ,k d fs e c u r i 够 a n m y s i sh a sb e c o m ea ni i r l p o r t a n tp a r to ft h ef i l es e c 嘶m e c h 撕s m ,、7 i ,! h j c hi i l c l u c i e s 廿1 e 吐l e o r e t i c a ls e c 血t ) r 锄dp r a c t i c a ls e c u r i 够gn l es e c 砸哆o fo m c e 嬲 e x 锄p l e ,、ep r o v et 1 1 et 1 1 e o r e t i c a ls e c u r i 哆o ft 1 1 e ) f 趾da i l a l y s i s 吐屺p r a c t i c a l s e c u r i t ) ,o fo m c e t h em a i l lr e s u l t sa r e 嬲f o l l o w s : ( 1 ) p r o v et 1 1 et 1 1 e o 础c a l c u 衄o fn 圮e c m a 一3 7 6k e yd e r i v a t i o nf b i l c t i o n i i lt l 圯 r a r m o mo r a c l em o d e l b a s e do nt 1 1 es e c u r :时d e 丘i l i t i o no f 廿l i s ) f ,u s h 坞廿坨 g 锄e p 1 a y i n gt e c l l n o l o g y ,w eq 脚t i 母也eu p p e rb o u l l do fa d v e r s a r ) ,sa d v a n t a g e b 娟e e nt h ek d fa n di d e a lr 趴d o m 胁c t i o ns a t i s f i e s lf cl i p 形i + f 2 2 ”,w h e r e ti s t l l en u m b e ro fq u e r i e s ,a n dci 1 1 d i c a t e st h ei t e 枷o nc o m 如ip w i d e r l o t e s 也e p a s s w o r ds p a c e ,ni sm e1 e n 啦o f m ed e r i v e dk e y t h u s ,w cc a ng e tt h a tt h eo 伍c e o fp a s s v m r d 锄也e m i c a t i o nm e c h a i l i s mi ss e c u r e ,w h e nm m l b e ro fq u e r i e ss a t i s f i e s f c ip 形i ,a n dn l ei 钯r a t i o ncu s e di no m c ep a s s w o r db a s e da u t l l e n t i c a t i o n m e c h a n i s ms 吮t c h e sm ee f i e c t i v e1 e n 垂ho fm ek e yt 0l 0 9 2c _ b i t ( 2 ) d e 锄e d 锄1 y z et l l ep r a c t i c a ls e c u r i 锣o f 也eo 伍c ei 1 1p a 硼e lp 弱s w o r db n i t e - f o r c e a 伉a c k f i r s t ,p r o g r a ma i l dt e s tt 1 1 a t :屺g t x 4 8 0b 嬲e dc u d a a n dh d 5 9 7 0b a s e d o p e n c lc 趾r e s p e c t i v e l yc a j c u l a t es h a - 1 觚c t i o n4 3 0 l i l l i o n 觚i 3 6 3b i l l i o n t i n l e sp e rs e c o n d s ;血e n 锄m y z e 廿1 ep r a c t i c a ls e c u r i 哆o fo 伍c eu n d e rd i 丘 e r e n tu s e r p 嬲s w o r dl e n g l 强dc k 嘲脱e ro fs p a c ew 曲t i m e 嬲t l l ei i l d i c a :t o r ;b ya i l a l y z i n g o b t a i n e dt l l a tu s e rp a s s w o r di sm eb e s tc h o i c eo fam nc h a r a c t e rs e ta 1 1 dc l l a r a c t e r l e n g t l l 伊e a t e rt h a n6 ,i no r d e rt 0e 邶u r et h es e c u r i t ) ,o fo 伍c ee n c r y p t e dd o c u m e n t k e yw b r d s :a d v e r s a r y sa d v a n t a g e ;k e yd e 巾a t i o nf u n c t i o n ( k d f ) ;r a n d o m o r a c l e m o d e l m 第1 章绪论 1 1 研究背景和意义 第1 章绪论 随着个人p c 机的普及,计算机硬盘以及其他大容量存储介质逐步成为信息存 储的主要方式。因此,越来越多的重要数据以电子化的形式存储在用户终端设备 上。然而存储设备上的敏感数据的机密性却面临许多安全威胁和挑战,如恶意代 码、丢失或者被盗等。这些机密信息一旦泄露,将给个人、企业和国家带来极大 的损失。因此,如何保护存储设备上数据的机密性,越来越受设备商与信息安全 机构的关注。 在存储设备中,敏感信息的机密性主要通过数据加密和身份认证两种技术实 现 1 】。数据加密技术将敏感信息通过加密处理以密文形式存储,当合法用户需要 使用数据时再将数据解密为明文形式,从而有效的防止了敏感信息的泄露。数据 加密的实现分为软件实现和硬件实现两大类,在文件存储系统中,较多采用软件 实现数据加密的,比如目前主流的m i c r o s o f to f f i c e 2 、p d f 3 、w i n r a r 4 、 o p e n o f f i c e 5 等应用软件都包含了加密功能,以及p g pd i s k 6 、b e s t c r y p t 7 、 t r u e c r y p t 8 等专业存储加密软件。通过软件实现的数据加密可分为对称加密和 非对称加密两种方式,而对称加密算法比非对称加密算法具有更快的处理速度, 因此在存储加密系统中通常选用对称加密算法来对敏感数据内容进行加解密处理。 对称加密算法又可分为流加密算法和分组加密算法。在m i c r o s o f to f f i c e2 0 0 3 及p d f 的早期版本中使用r c 4 流加密算法,而w i n r a r 、p g pd i s k 、o p e n o f f i c e 与 t r u e c r y p t 中则采用a e s 、t w o f i s h 9 、b l o w f i s h 1 0 等分组加密算法。与流加密 算法相比,分组加密算法被更广泛的应用于存储加密系统的数据加密中。由于数 据加密技术中所使用的加密算法的密钥要求具备固定的长度和足够的信息熵且在 密钥空间呈随机均匀分布,往往需要使用密钥导出算法将密钥材料( 包括用户口 令,图片信息,系统产生的随机数等等) 进行特定的处理后,生成固定长度且随 机均匀分布的加密密钥。因此,数据加密技术中的密钥导出算法导出密钥的随机 性成为存储加密系统中数据加密安全的核心问题。 文件口令认证机制中密钥导出算法安全性分析 身份认证是保障存储加密系统中数据机密性的另一个重要技术。当前,身份认 证的基本方法可以分为三类 1 1 :( 1 ) 根据用户知道的信息( s 伽e t h i n gt h eu s e r k n o w s ) ,典型的代表为口令;( 2 ) 根据用户所拥有的东西( s o 皿e t h i n gt h eu s e rh a s ) , 如智能卡、令牌等 1 2 1 3 ;( 3 ) 根据用户的身体特征( s o m e t h i n gt h eu s e ri s ) , 如指纹、虹膜等 1 4 1 5 。这三种身份认证方法有各自的优缺点 1 6 1 7 1 8 1 9 。 相比于智能卡和生物特征认证,基于口令的认证方式由于实现简便且不需要额外 的硬件开销,在实际应用中被广泛使用。目前主流的m i c r o s o f t0 f f i c e 、0 p e n o f f i c e 、 p d f 、w i n r a r 等应用软件,以及t r u e c r y p t 、p g pd i s k 、b e s t c r y p t 等存储加密软 件都采用基于口令的身份认证,并将其作为主要的身份认证机制。基于口令的认 证机制的安全性依赖于口令,n i s ts p8 0 0 1 1 8 规范 2 0 对企业应用中口令的管理 做出了规定,而n i s ts p8 0 0 6 3 规范 2 1 也对口令认证机制中口令的信息熵和强 度给出了评估方法。由于口令通常是从一个相对较小的空间选取的,很容易受到 穷尽口令搜索攻击与字典攻击,所以通常在基于口令的密钥导出函数中进行特殊 的处理,增加穷尽口令搜索攻击与字典攻击的难度。因此,密钥导出函数对穷尽 口令搜索攻击的抵抗强度,成为评价存储加密系统中口令认证机制安全性的重要 指标。 综上所述,存储加密系统中的密钥导出算法即要能导出特定长度的随机均匀分 布的密钥又要有足够的强度抵抗穷尽口令搜索攻击与字典攻击,是整个存储加密 系统的必不可少的组成模块。存储加密系统的安全性主要取决于密钥导出算法, 因此密钥导出算法的安全性分析是存储加密系统中一个值得研究的方向。 目前针对密钥导出算法的安全性分析主要包括两方面的内容 2 2 ,第一是密钥 导出算法的实际安全性( p r a c t i c a ls e c u r i t y ) ,和具体的底层加密算法( h a s h 函 数或分组加密函数) 有关,分析算法在实际应用中对穷尽口令搜索攻击、字典攻 击等具体攻击的抵抗力,算法的实际安全性还与攻击者的计算能力有关;第二是 算法的理论安全性,与具体的底层加密算法无关,通常将底层加密算法看成是黑 盒,研究算法自身的安全性。且密钥导出算法的理论安全性是设计者应当考虑的 首要问题,它保证在工作模式这一层没有安全隐患。 在理论安全性证明方面,随着密码学中可证明安全性理论的不断丰富,特别 是在随机预言机( r a n d o mo r a c l e ) 2 3 模型提出之后,在该模型下逐渐出现了一 种统一的证明方法:g 锄e p l a y i n g 2 4 。它最早是由j o ek i l i a n a n d 和p h i l l i p 2 第l 章绪论 r o g a w a y 于1 9 9 6 年在文献 2 5 中提出的,当时是为了分析d e s x 的安全性,后来 被广泛地应用于各种密码学安全性分析中。例如在 2 6 中使用g a m e p 1 a y i n g 技术 证明了一种新的一阶段加密认证方案o x c b c 的理论安全性,得出当它所使用的底 层加密算法为伪随机函数的情况下,该方案具备私密性和认证性;在 2 7 中证明 了三重d e s 加密方案的理论安全性,得出当攻击者询问次数为2 7 8 时,他所获得的 优势也很小,并对g 锄e p 1 a y i n g 技术进行密码学安全性证明做了理论归纳与总结, 简要的证明了c b cm a c 密码方案的安全性;在 2 8 中v i c t o rs h o u p 使用 g 锄e p 1 a y i n g 技术分析了一种公钥密码方案,并得出在d i f f i e h e l l m a n 假设 2 9 下,该公钥密码方案在随机预言机模型下是安全的。因此,使用g 锄e p l a y i n g 技 术证明密钥导出算法的理论安全性是可行的。 在实际安全性方面,多核心处理器( 包括多核c p u ,计算机图形处理器( g p u ) 等) 以其强大的并行计算能力被广泛应用于口令穷举搜索攻击中,能够并发的对 多个数据进行处理,显著提高密码算法的处理速度,大大减少了口令穷举搜索攻 击的时间,对密钥导出算法的实际安全性构成巨大威胁。特别是g p u 以大大超过 摩尔定律的速度高速发展,以n v i d i ag p u 和i n t e lc p u 为例,如图1 1 所示,从 2 0 0 3 年开始g p u 浮点计算能力开始超过c p u ,随后g p u 的浮点计算能力迸一步加 强,至2 0 0 9 年n v i d i a 的g e f o r c eg t x5 8 0g p u 的单精度浮点计算能力已超过每 秒1 5 0 0 g f l o p s ,且t e s l ac 2 0 5 0 的双精度浮点计算能力也已超过5 0 0 g f l o p s 每秒, 而工n t e l 同年发布的3 2 n m 工艺的w e s t m e r e 六核c p u 的单精度浮点计算速度刚刚 超过每秒1 2 5 g f l o p s ,而其双精度浮点计算速度还不到每秒1 2 5 g f l o p s ,可见g p u 的浮点运算能力已遥遥领先c p u 。 文件l j 令认证机制中密钥导 j i 算法安全性分析 图1 1c p u 和g p u 浮点计算能力对比 3 0 随着并行处理器的硬件体系结构的发展,一些并行编程架构被提出以有效利 用处理器的并行计算能力,比如较早出现的支持多核c p u 的o p e n m p 3 1 ,随后各 设备商推出的仅支持各自g p u 的编程模型( 应用比较广泛的有n v i d i a 的c u d a 3 2 和a t i 的b r o o k + 3 3 ) ,k h r o n o s 组织针对不同的并行处理器平台提出统一的并 行编程架构一0 p e n c l 标准 3 4 。并行处理器的计算能力的快速发展以及并行编程架 构提供良好的编程环境,使其在各种密码运算,例如散列函数、对称密码算法、 公钥密码算法以及密码恢复技术中得到广泛的应用,严重威胁存储加密系统的安 全性。因此,分析存储加密系统中的密钥导出算法在并行穷尽口令搜索攻击下的 实际安全性也是很有必要的。 1 2 关键技术及其研究现状 理论安全性证明与实际安全性分析是密钥导出算法安全性分析的两个主要研 究内容,下面将分别介绍密钥导出算法在这两个方面的研究现状。 4 如 , 神 哪瑚 啪 啪 瞄 瑚 啪 抛 。翔 i h l l i i 第l 章绪论 1 2 1 密钥导出算法的理论安全性证明 目前常用的存储加密软件如m i c r o s o f t0 f f i c e 、p d f 、w i n r a r 等都通过密钥导 出算法产生加密密钥并且通过在密钥导出算法中加入特殊的处理以增加文件口令 认证机制对强力攻击的抵抗力。因此,密钥导出算法的理论安全性证明主要针对 其中加入的特殊处理部分的结构安全性,它保证密钥导出算法在工作模式层面没 有安全隐患。下面我们分别对密钥导出算法与密钥导出算法的理论安全性证明状 况进行介绍。 ( 1 )密钥导出算法 密钥导出算法一般要求将口令处理后生成特定长度且随机均匀分布的加密密 钥,且具有足够的强度抵抗强力攻击。为了减轻穷举口令搜索攻击与字典攻击等 强力攻击的威胁,文献 3 5 提出可以在密钥导出函数中引入模运算、除法等计算 复杂高的指令,以增加强力攻击的计算时间复杂度,从而提高口令认证机制的安 全性。在 3 5 3 6 3 7 中提出了在密钥导出函数中使用“m e m o r y h a r d ”函数( 比 如像r c 4 这一类存取操作密集型( m e m o r yi n t e n s i v e ) 的算法) ,运算过程中使用 较大的缓存空间,并频繁进行读取操作,导致存取操作的时间增大,从而限制实 现性能的提高,但这种方法对加密设备要求较高,兼容性较差。 因此,在 3 8 3 9 中均提出在密钥导出算法中引入循环次数( c ) 与盐( s a l t ) , 通过循环次数指定循环迭代计算基础密码算法的次数,以增加穷尽口令搜索攻击 的时间代价,循环次数c 越大,抵抗穷尽口令搜索攻击的能力越强;并通过盐与 口令结合以产生密钥,增加字典攻击的空间复杂度,s a l t 的长度越长,字典攻击 的空间复杂度越大。循环次数与盐以其简洁明了的实现方式及良好的兼容性,很 快在存储加密软件如m i c r o s o f to f f i c e 、p d f 、w i n r a r 和t r u e c r y p t 等中得到广 泛的应用。例如,在循环次数的选择方面:m i c r o s o f t0 f f i c e 2 0 0 7 及其后续版本 选用5 0 0 0 4 次的s h a l 循环迭代,w i n r a r 采用6 5 5 3 6 次的,而t r u e c r y p t 中的循 环次数等于2 0 0 0 ;在s a l t 的长度选择方面:m i c r o s o f to f f i c e 系列采用1 6 一b y t e 的,w i n r a r 采用8 一b y t e 的,而t r u e c r y p t 中的s a l t 的长度为6 4 一b y t e 。 此外,文献 4 0 还提出了一种新的密钥导出函数h l ( d f ,在h k d f 中算法的迭代 次数由用户指定,由于迭代次数的不确定,使得穷举攻击无法有效的进行,从而 提高口令认证机制的安全性。 文件口令认证机制中密钥导出算法安全性分析 ( 2 ) 理论安全性证明研究状况 在存储加密软件如m i c r o s o f t0 f f i c e 、p d f 、w i n r a r 和t r u e c r y p t 等中使用的 密钥导出算法里采用散列函数作为基础密码算法,比如0 f f i c e 2 0 0 3 与p d f 采用尬5 , w i n r a r 与0 f f i c e 2 0 0 7 中则采用s h a l ,而t r u e c r y p t 则采用r i p e m d 一1 6 0 作为基 础密码函数。在理论安全性证明中都认为这些散列函数与伪随机函数是可靠的, 它们的“极微本原 是可靠的,所以其安全性证明主要考虑密钥导出算法中迭代 结构以及随机数的引入的安全性。对于这两方面的理论安全性证明目前为止已经 进行了一定的研究,例如,1 9 9 6 年,j o ek i l i a n a n d 和p h i l l i pr o g a w a y 在 2 7 中在随机预言机模型下,证明了密码方案中引入k 1 与k 2 均为长度和f 的分块长 度相同的随机字符串,并按朋朋( x ) = 七2 0 疋( 七1 0 x ) ,将使得f x 的安全性比f 有明显提高,并求得f x 的有效密钥长度扩展了甩一l l o g ,l 比特,其中n 为f 的分 块长度,m 为攻击者可以获得f x 的明密文对个数;2 0 0 0 年,d a v i dw a g n e r 和i a n g o l d b e r g 在 4 1 里证明了u n i x 系统口令认证机制中的密钥导出算法 日( 尼) = d 霹5 ( o ) ,在d e s 为随机函数的假设下的理论安全性,其中2 5 表示循环次 数,k 是d e s 的密钥,证得日( i j ) 函数是( t ,p ) 一安全的,其中t 表示猜测口令的次 , 数, p ( 1 + 1 2 5 5 ) 去。2 0 0 4 年,y a o 等人在 4 2 里证明了形如: z p 8 k d f l = 日( 。( pi is 口缸) 的密钥导出算法的理论安全性,得出循环次数c 的引入使 得导出密钥的有效长度扩展了l o g c 比特,比特长度为s 的s a l t 的引入使得字典攻 击的空间复杂度提高了2 ,并且使得即使同口令产生的密钥也不会相同;2 0 0 6 年, m i h i rb e l l a r e 和p h i l l i pr o g a w a y 在 2 7 里证明了三重迭代结构: 翻如e ( 墨岛,彳) = 瓦:( ( ( x ) ) ) 的理论安全性,在基础密码算法e 为随机 函数的假设下,得出在此三重迭代结构中当攻击者的询问次数为2 7 s 时,所获得的 攻击优势也是可忽略的。2 0 1 2 年, c h u a hc h a iw e n ,e d w a r dd a w s o n 等在 2 2 中 总结了密钥导出算法的五种攻击方式,分别已知公共输入攻击( k p m ,k p s ) ,自 适应选择文本攻击( c c m ) ,自适应选择公共输入攻击( c p m ) ,由i ( r a w c z y k 提出的自 适应选择文本攻击( 1 ( r a w c z y k ) ;并在这五种攻击方法下,利用随机预言机模型分 析了p b k d f l 与p b k d f 2 的安全性。 6 第l 章绪论 1 2 2 密钥导出算法在并行口令穷举攻击的实际安全性 密钥导出算法的实际安全性则主要是针对“离线( o f f - l i n e ) 的口令穷举搜 索的安全性。并行处理器硬件结构的快速发展以及并行编程架构提供良好的编程 环境,使得并行计算在各种密码运算,例如散列函数和口令穷举搜索攻击中得到 广泛的应用,对密钥导出算法的实际安全性造成严重威胁,因此讨论密钥导出算 法在并行口令穷举攻击下的安全性是十分必要的。 在散列函数方面,s t a n l e yt z e n g 和l i y iw e i 利用n v i d 工ag e f o r c e8 8 0 0g t x 实现了m d 5 算法 4 3 ,当处理1 0 2 4 宰1 0 2 4 个像素点时,基于c p u 的实现耗时3 8 2 1 5 毫秒,而g p u 实现只需6 3 毫秒。在文献 4 4 中乐德广等使用4 张9 8 0 0g x 2 等同 于8 张g t x9 8 0 0 并行攻击5 算法,速度可达到3 0 亿次每秒以上。a 1 e k s a n d r o v i c h 比较了6 种不同的基于g p u 的m d 5 实现 4 5 ,其中最好的性能达到了每秒计算3 5 亿次m d 5 。文献 4 6 利用g p u 实现了n i s ts h a 一3 候选算法b 姗( b l u em i d n i g h tw i s h ) , 用以分析该算法的并行性。文献 4 7 在n v i d i a9 8 0 0 g t x 上实现了如4 、m d 5 和 s h a 一1 3 种散列算法,得出进行十亿次散列运算所需的时间分别为2 1 0 3 m s ,2 5 0 1 m s , 6 0 6 3 m s 。在 4 8 中使用目前主流g p u a t ih d 5 9 7 0 与n v i d i ag t x 2 6 0 ,1 秒钟分别 可计算2 3 0 0 m 次与1 7 5 m 的s 姒一1 运算。 在口令穷举攻击方面,j t r ( j o h nt h e r i p p e r ) 软件 4 9 通过m p i 和o p e n m p 等 并行编程模型,实现了基于多核c p u 的口令穷举攻击。文献 5 0 基于c u d a 编程模 型,在g p u 上实现了恢复w a p 口令的加速,在n v i d i ag t x 2 5 0 上处理十万个数据 c u d a 程序所用的时间仅为1 6 5 3 2 8 m s 。文献 5 1 里在g p u 平台上使用c u d a 编程 模型实现了多种存储加密系统的穷尽口令搜索攻击,速度较串行破解提高了7 1 4 0 倍。文献 5 2 里在多种并行处理器上使用o p e n c l 编程平台,实际了m s0 f f i c e , p d f 和w i n r a r 等应用软件的穷尽口令搜索攻击,得出破解字符集为数字( o 9 ) 和小写字母( a z ) 的字符长度为6 的口令,w b r d2 0 0 3 和p p t2 0 0 3 只需要8 分 钟左右,p d f 只需要1 4 个小时,o 伍c e2 0 0 7 则只需要5 3 小时。俄罗斯e 1 c o m s o f t 公司 5 3 开发出基于g p u 的并行口令穷举攻击加速软件,在a 佃和n v i d i a 的g p u 上均可运行,声称其中使用了“独家开发的g p u 加速技术”,而非c u d a ,b r o o k + 或0 p e n c l ,目前支持的常用文件格式有m so f f i c e ,p d f 和w i n r a r 等。 7 文件口令认证机制中密钥导出算法安全性分析 1 3 主要研究内容 基于上述背景,本文以m i c r o s o f t 公司的办公软件:o f f i c e 2 0 0 7 及其后续版 本为研究对象。为了分析其加密系统的安全性,我们使用g 锄e p l a y i n g 技术证明 了它所使用的e c m a 一3 7 6 密钥导出算法 5 4 的理论安全性,得出理论安全性结论: 最后结合目前主流的并行处理器的计算能力,以时间代价为指标,对o f f i c e 的实 际安全性进行详细的分析说明。为此,我们将进行以下两方面的具体研究工作: ( 1 )在对e c m a 一3 7 6 中密钥导出算法进行安全性定义的基础上,使用 g 锄e p l a y i n g 技术证明该密钥导出算法的安全性;在底层密码算法是随机函 数的假设下,界定该密钥导出算法与随机函数之间的不可区分优势的最大值; 最后,给出0 f f i c e 中密钥导出算法的理论安全性结论。 ( 2 )以e c m a 一3 7 6 中密钥导出算法在0 f f i c e 2 0 0 7 及其后续版本中口令认证机制 中的实际应用,目前对o f f i c e 的最有效的攻击为穷尽口令搜索攻击,通过测 试目前主流g p u 对基础散列函数的计算能力,并以时间为代价,详细论证 0 f f i c e 的实际安全性。 为了阐述上述的研究工作,本论文的具体章节和主要内容安排如下:本章为 论文的绪论部分;第二章:介绍本论文涉及到的相关理论和基础知识,如安全的 基本定义,随机预言机模型,不可区分性与g 鲫e p l a y i n g 技术,口令认证机制以 及密钥导出算法等;第三章:提出了e c m a 一3 7 6 密钥导出算法的安全性定义,使用 g 锄e p l a y i n g 技术界定了该密钥导出算法也随机函数的不可区分优势,并给出了 o f f i c e 2 0 0 7 及其后续版本中的口令认证机制的安全性结论;第四章:通过对0 f f i c e 中口令认证机制的分析,测试目前主流g p u 对o f f i c e 中使用的散列算法:s h a 一1 的计算能力,详细分析了o f f i c e 的实际安全性。第五章:总结与展望,总结本论 文所做的主要工作,并指出今后的进一步工作方向。 8 第2 章论文相关的理论和基础知识 第2 章论文相关的理论和基础知识 本章主要介绍本论文相关的理论和基础知识。首先对安全的基本定义、可证明 安全性理论、随机预言机模型和g 锄e p l a y i n g 技术进行了介绍;然后对文件口令 认证机制进行了介绍;最后对密钥导出算法做了介绍,此外还介绍了几种密钥导 出算法,包括p k c s # 5 里的p b k d f l 5 5 与p b k d f 2 5 6 ,以及e c m a 一3 7 6 里的密钥导 出算法。 2 1 安全的基本定义 可证明安全性理论是在一定的安全性定义下证明密码方案能够达到特定的安 全目标,因此,定义合适的安全目标、根据攻击者的攻击方法进行正确的安全性 定义是可证明安全性理论的前提条件。由于安全的定义在针对特定的攻击方法确 定的,在给出安全定义之前首先别介绍攻击的分类,然后给出口令认证机制中的 安全定义。 2 1 1 攻击的分类 如果攻击者能确定该密码方案正在使用的密钥,以至于他能像合法用户一样 拥有所有的权限,则称该密码方案是安全可破译的。如果攻击者仅能频繁地从所 获取的密文恢复出对应的明文,但他却不能发现密钥,则称该方案是部分可破译 的。一般而言,针对密码方案的两种安全性问题,破译现在的密码方案主要有下 面两种方法: 一种是强力攻击( b r u t ef o r c e ) ,是对一条密文用每种可能的密钥或它可能对 应的明文来尝试破译,直到获得了从密文到明文的一种正确变换为止。平均而言, 获得成功至少要尝试所有可能密钥的一半,强力攻击适用于所有密码方案。 另一种是密码分析,利用密码算法本身的弱点和明文的一般特征或某些明密 文对,对密码方案进行攻击。比如目前流行的差分密码分析,线性密码分析,相 关密钥分析,侧信道攻击,插值攻击等等。在密码分析学中,根据攻击者所拥有 的资源,密码攻击可以分为以下几种类型 5 7 : 9 文件口令认证机制中密钥导出算法安全性分析 ( 1 )唯密文攻击( k n o w n p l a i n t e x ta t t a c k ,k p a ) :攻击者仅知道一些密 文。 ( 2 )已知明文攻击( k n o w n c i p h e r t e x ta t t a c k ,k c a ) :攻击者知道一些明 文和相应密文。 ( 3 )选择明文攻击( c h o s e n p l a i n t e x ta t t a c k ,c p a ) :攻击者可以选择一 些明文,并得到相应的密文,加密所选的任何明文。 ( 4 )选择密文攻击( c h o s e n c i p h e r t e x ta t t a c k ,c c a ) :攻击者可以选择 一些密文,并得到相应的明文。 上述四种攻击的根本目的是导出用来加密的密钥或新的密文对应的明文,它 们的攻击强度依次增加,攻击者很容易具备前三种攻击的条件。此外,还有自适 应选择明文攻击( a d a p t i v e c h o s e n p l a i n t e x ta t t a c k ,a c p a ) 攻击,选择文本 攻击( c h o s e n t e x ta t t a c k ,c t a ) 和选择密钥攻击( c h o s e n k e ya t t a c k ,c k a ) 。 其中,a c p a 是选择明文攻击的特例,c t a 是选择明文攻击和选择密文攻击的结合, c k a 在实际应该中很少,它仅表示攻击者具有不同密钥之间的关系,并不表示攻击 者可以选择密钥。常见的差分密码分析与强力攻击属于选择明文攻击,而线性密 码分析是一种已知明文攻击法。 对于一个密码方案,攻击者在排除了密码方案本身没有弱点后( 若方案本身 有弱点,就无法保证它的安全强度,原则上该方案是不能使用的) ,通常攻击者只 能选择强力攻击。目前,强力攻击主要包括下面四种具体攻击方法, ( 1 )穷尽密钥搜索攻击:设k 是密钥长度,在唯密文攻击下的穷尽密钥搜 索攻击,攻击者依次试用密钥空间中所有2 t 个密钥解密一个或多个密文, 直到得到一个或多个有意义的明文块。在已知( 选择) 明文攻击下,攻击 者试用所有的密钥对一个已知明文加密,将加密结果同该明文对应的已知 密文比较,直到二者相等,然后再用其它几个已知密文对来验证该密钥的 正确性。暴力破解的复杂度平均为2 卜t 次加密。 ( 2 )字典攻击:攻击者将所有已知的明密文对编排成一个“字典 。攻击者 通过查“字典”找到相当密文对应的明文。如果n 表示分组加密的长度, 则字典攻击需要至少2 一个明密文对才能在不知道密钥的情况下加解密任 何消息。 ( 3 )查表攻击:查表攻击采用选择明文攻击,对一个给定的明文x ,用所 1 0 第2 章论文相关的理论和基础知识 有的密钥k ,计算其密文y ,组成一张包含数据对( y ,k ) 的表。因此, 对于给定的密文,攻击者只需从该表中查询对应的密钥k 即可。 ( 4 ) 时间存储折中攻击( t i m e m e m o r yt r a d e o f f ) :时间存储折中攻击属 于选择明文攻击,它由穷尽密钥搜索攻击和查表攻击混合而成,以时间换 取空间。因此它的时间复杂度比穷尽密钥搜索小,空间复杂度比查表攻击 小。 当然,密码方案的攻击方法绝不限于以上几种,不仅包含技术手段,也包含一 些非技术手段,比如攻击者可以通过购买、威胁、非法盗取等手段获得密码或者 其它相关信息,在一些特殊情况下,这些人工攻击往往是最难防范的,但也是最 有效的,所以也可以将攻击方法具体分为人工攻击和软件攻击。 2 1 2 安全的基本定义 文件口令认证机制中的密钥导出算法的安全性分为实际安全性与理论安全性, 下面分别介绍密钥方案中实际安全与理论安全定义。 ( 1 )实际安全定义 密码方案的实际安全性,指在目前的计算资源条件有限的情况下,或利用已有 的最好的攻击方法破译该密码方案所需要的代价超出了攻击者的能力( 诸如时间, 空间,数据等资源) ,因此该密码方案的安全性是暂时的,通常通过攻击密码方案 的复杂性衡量破译密码方案的代价 5 8 。对于不同的破译方法,攻击密码方案的 复杂性可通过由实施该攻击所需的时间复杂度( 即用于攻击密码算法所需的时间) , 空间复杂度( 即攻击密码方案所需的数据存储空间大小) 以及数据复杂度( 即用 于攻击密码算法所需的数据空间大小) 。由于目前信息技术的发展,存储空间已经 不在是计算瓶颈,所以一般仅考虑攻击者的时间复杂度和数据复杂度。这两部分 中的主要部分通常用来刻画该攻击的有效性。例如,在穷尽口令搜索攻击中,所 需要的数据量与计算时间相比是微不足道的,因此穷尽口令搜索攻击的有效性主 要通过时间复杂度衡量。在字典攻击中,实施攻击所需要的计算时间与所需的明 密文对的数量相比是比较小的,所以字典攻击中通过数据复杂度衡量攻击的有效 性。 本文中密钥导出算法的实际安全性仅考虑口令穷举攻击下的安全性,因此可通 文件口令认证机制中密钥导出算法安全性分析 过攻击密钥导出算法的时间复杂度衡量。如果当前使用最好的算法最快的处理器 破译一个密钥导出算法需要至少n ( n 是一个非常大的数) ,则可以暂时称该密钥 导出算法是安全的。 ( 2 )理论安全定义 在可证明安全理论中,通常使用优势( a d v a n t a g e ) 5 9 来度量一个算法和理想 的算法之间的差别,如果这个差别可忽略就认为该算法是安全的,通常也可称为 “攻击者优势 或“不可区分优势 ,本文将交替出现上面三个名词。在进行加密 方案的安全性证明前,我们先了解一些符号的含义及函数的不可区分性定义 5 8 6 0 。 定义这样的一个置换族:h :j 口,f 0 ,1 ) 一 0 ,1 ) 刀,其中s a l t 是有限集,并对 于一个特定的s a l t ,日( ,s 础) 是一个在集合 0 ,1 ) 上的置换。 n 瑚( 功表示 o ,l 乌 o ,l r 上所有置换的集合。 假定a 是一个具有预言机( 0 r a c l e ) 的攻击者,其攻击过程为,a 首先获得其 中一个置换所表示的预言机的访问权限,但是a 不知道它具体是哪一个置换,a 需 要通过对预言机进行询问后,再判断它是哪一个预言机,表示a 查询预言机0 , 考虑0 的两种不同的“环境( w o r l d ) ”: w o r l d0 :o 表示从n 册( ”) 里随机选择的一个置换,记为玎。 w o r l d1 :o 表示从置换族h 里随机选择的置换,记为日( ,j 口f ) 。 攻击者a 事先并不知道自己处于哪个“w o r l d ”,且“w o r l d ”的选择是在a 开 始询问前就被仿真者选定的,在询问过程中保持不变。a 的任务就是判断自己处于 哪个“w o r l d 中,a 可利用的资源是有权选择值x ,查询预言机0 并得到返回值 0 ( x ) ,经过一定数量的询问后,a 必须判断自己所处的“w o r l d ”。我们把判断处于 w o r l do 还是w o r l d1 的算法称为区分器( d i s t i n g u i s h e r ) ,它有权访问预言机o , 然后确定0 是否是随机预言机,我们通过下面的定义来精确模拟以上描述,当a 判断自己处于w o r l d1 ,则输出l 。 定义2 1 置换的不可区分性 在基础散列函数h 中,对一个特定的s a l t ,a 经过t 次询问后,获得的置换日( ,s 口厅) 与随机置换的不可区分优势定义为, 么磁1 3 f ) = p r 【彳片,础= 1 卜p r 彳刀。= 1 】 ( 2 1 ) 其中,彳o = 1 表示攻击者a 判断自己处于w o r l dl ,即判断0 为日( ,j 础) 预言 1 2 第2 章论文相关的理论和基础知识 机,p r m 日础) = 1 】表示a 实际处于w o r l dl 且输出l 的概率,则p r ( ) = 1 】表示 a 处于w o r l do 且最后输出l 的概率。若不可区分优势么咖矿( f ) 可忽略,则称置 换日( ,j 础) 与随机置换具有不可区分性。在安全性理论证明中一般都假定算法中 所使用的基础散列函数的彳咖轳( f ) 为可忽略的。 函数f = h 。( p ,砒) 表示映射 j 口厅,c o ,1 专 o ,l y ,其中 阳厅,c ) 为具有一 定分布的集合。对于每对特定的 阳厉,c ) ,f ( ,s 口厅,c ) = 日。( ,s 口厅) 就是一个从 0 ,1 ) 到 o ,1 一的函数。 朋刀d ( 母,咒) 表示所有从 o ,1 ) 到 o ,l y 的函数的集合。g ( ) 表示随机从 m ,z d ( 木,甩) 里选择的一个函数,也就是说对于任意的输入x ,g ( x ) 都是均匀的随 机的从 0 ,1 ”里选择的一个长度为n 的字符串。 定义2 2 函数的不可区分性 类似的,t 次预言机询问后,定义函数f 与随机 函数g ( ) 的不可区分优势为, 么碾o ) 爿

温馨提示

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

评论

0/150

提交评论