网站首页 > 技术文章 正文
在对磁盘的加密中,通常一个扇区大小为512 Byte。加密时将要写入扇区的明文数据进行加密,然后存储到扇区上。解密时,希望能直接读取到一个扇区上的信息进行解密。
存储加密的基本要求是:(1) 磁盘加密希望密文不能有扩张,即不能有IV信息等额外的存储信息。(2) 便于随机访问。
IEEE标准化了一个P1619标准,IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices,见
http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4493431以及wiki页面
http://en.wikipedia.org/wiki/IEEE_P1619
XTS属于可调密码。可调密码和通常的密码相比,输入多了一个可以公开的tweak value。在具体操作中,tweak value与明文tweak后(比如做异或)将所得结果送入加密模块,加密后得到的密文再次与tweak value做一次 tweak后才得到输出密文(也可能没有加密后的tweak)。为什么需要此tweak value呢?主要原因在于:(1) tweak可以增加密文的多变性,不改变密钥只改变此值就可以改变密文;(2) 改变密钥的代价比改变tweak value大的多;(3) tweak value是公开的,不担心泄露。
XTS能满足磁盘加密存储的要求。在XTS中,tweak value通常是data unit所在位置,所以就不需要额外的空间存储tweak value。data unit内部类似CTR模式,data unit之间则是相互独立的,因此便于随机访问。
在XTS工作模式中对数据做了以下划分:各术语由大到小解释如下:
KeyScope:密钥的有效范围,在一个KeyScope里面包含了N多个DataUnit。同一个KeyScope内,所有DataUnit使用相同的密钥,且每个DataUnit的长度都是一样的(不同的KeyScope之间的DataUnit的长度可以不一样),每个DataUnit拥有各自的tweak value(比如使用其所在地址作为tweak value)。比如有如下KeyScope的例:<KeyScope>: KeyScopeStart =0, DataUnitSize = 4096, KeyScopeLength = 1083。这表示KeyScope从位置0开始,其中共有1083个DataUnit,每个DataUnit的大小都是4096字节,即这个KeyScope的长度为4096*1083 =4435968字节
DataUnit:由N个128-bit Block组成。
128-bit Block:是AES的分组大小。每个128-bit Block都有自己的这个DataUnit内部的编号(从0开始)。每个128-bit Block在进行AES加密前后都会与TweakValue的衍生值做一次XOR。
XTS-AES是可以随机访问的,其加密解密也是可以并行化的(类似于ECB或Counter模式)
XTS-AES需要5个输入,(k1,k2)是两个key, (t,i)标示第t个sector的第i个block, 和一个plaintext x.
对于某个sector #t 先用E(k2, t)产生一个数N,然后用下面过程得到ciphertext C.
C = E(k1, x ^ p(N,i)) ^ p(N,i)
猜你喜欢
- 2025-05-24 网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
- 2025-05-24 常见加密方式及Python实现
- 2025-05-24 pdf怎么加密
- 2025-05-24 aes256 加密 解密 (python3) 「二」
- 2025-05-24 深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 2025-05-24 Springboot实现对配置文件中的明文密码加密
- 2025-05-24 JavaScript常规加密技术
- 2025-05-24 信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 2025-05-24 SpringBoot与Jasypt整合,实现数据库字段自动加密解密功能
- 2025-05-24 安全性能爆表!Win10 TH2引入XTS-AES加密算法
你 发表评论:
欢迎- 05-24网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
- 05-24常见加密方式及Python实现
- 05-24pdf怎么加密
- 05-24aes256 加密 解密 (python3) 「二」
- 05-24深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 05-24Springboot实现对配置文件中的明文密码加密
- 05-24JavaScript常规加密技术
- 05-24信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)