FPE格式保留加密

本篇是关于格式保留加密的涉猎文章

JavaPub 低调上线: http://javapub.net.cn/

前言

最近一个网友和我聊关于【格式保留加密】。科普一下这个概念。

格式保留加密常用于数据脱密领域,可以对敏感数据(如手机号码,银行卡号等)进行加密存储,可以有效降低黑客入侵导致敏感信息泄露。另外,由于FPE可以保持加密后数据的格式不变,在一定程度上可以替代传统基于掩码的数据遮蔽方案。

定义

FPE,Format-Preserving Encryption,格式保留加密,也称为保形加密。是一种特殊的对称加密算法。FPE可以保证加密后的密文格式与加密前的明文格式完全相同。

例如这样:

image

如上图使用FPE和AES加密后的消息对比,FPE加密前后格式完全相同,而直接使用AES的其他模式达不到此种效果。

https://www.infoobs.com/article/20211222/51689.html

FPE特征

数据不能被扩充。如当加密N为数字时,必须输出另外一个N位数字;

数据类型不能被改变。如一段只包含数据的内容加密后也只能是数据;

数据必须能被确定加密。如对数据库中作为索引值字段的数据加密,加密后保留其所在列索引值的特性。

对于短明文数据,安全性不会降低。

加密过程可逆,加密后的数据可以通过密钥解密还原原始数据。

FPE种类

NIST SP800-38G中定义了的FPE模式包括FF1,FF3,FF2 3种模式。

FF2模式仍在审批中。

FF3算法存在安全漏洞已于2019年2月更新为FF3-1,见SP800-38G Rev1。

FF1和FF3-1算法均以128bit AES为底层算法,在AES算法的基础上实现线性变换,FF1经过10轮迭代,FF3经过8轮迭代。因此FF3的性能高于FF1,但FF1的安全性更高。

FF1算法简介

备注:首字母F表示两种模式都是基于Feistel网络的FPE方法。

FF1和FF3算法定义的部分函数如下表,

image

通过字符到数字和数字到字符的映射函数的使用,一个明文可以被转换成一个无符号数存储。

具体实现细节参考文末

拓展

法定需要脱敏的数据

依据《GB/T 35273-2020 信息安全技术 个人信息安全规范》标准中对个人敏感信息判定参考如下:

个人敏感信息是指一旦泄露、非法提供或滥用可能危害人身和财产安全,极易导致个人名誉、身心健康受到损害或歧视性待遇等的个人信息。通常情况下,14岁以下(含)
儿童的个人信息和涉及自然人隐私的信息属于个人敏感信息。

  • 个人财产信息:银行账户、鉴别信息口令 、存款信息(包括资金数量、支付收款记录等)、房产信息、信贷记录、征信信息、交易和消费记录、流水记录等,以及虚拟货币、虚拟交易、
  • 游戏类兑换码等虚拟财产信息
  • 个人健康生理信息:个人因生病医治等产生的相关记录,如病症、住院志、医嘱单、检验报告、手术及麻醉记录、护理记录、用药记录、药物食物过敏信息、生育信息、以往病史、
  • 诊治情况、家族病史、现病史、传染病史等
  • 个人生物识别信息:个人基因、指纹、声纹、掌纹、耳廓、虹膜、面部识别特征等
  • 个人身份信息:身份证、军官证、护照、驾驶证、工作证、社保卡、居住证等
  • 其他信息:性取向、婚史、宗教信仰、未公开的违法犯罪记录、通信记录和内容、通讯录、好友列表、群组列表、行踪轨迹、网页浏览记录、住宿信息、精准定位信息等

参考

提供俩篇参考文章

  • https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38G.pdf
  • https://github.com/capitalone/fpe
  • https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38Gr1-draft.pdf
  • https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/FF1samples.pdf

image

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaPub-rodert

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值