首页天道酬勤数字密码学(解析学)

数字密码学(解析学)

admin 11-30 23:20 297次浏览

免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星金融官方立场。

边肖:记得要注意

来源:微众银行区块链

标题:如何应用密码学原语?分析密码学独特的数据编解码器。

隐私保护方案的工程实现与学术论文中的公式符号有何关联?在密码学工程中,有哪些独特的数据编码和解码方法,存在哪些认知错误和注意事项,需要克服哪些限制和挑战?

作为支撑隐私保护方案的核心技术,如何利用数据编解码将密码学论文中抽象的数学符号和公式可视化为商业中具体的隐私数据,是学术成果转化为产业首先要跨越的门槛。

学术论文中使用的数学语言和工程中使用的代码编程语言有很大的区别。许多容易在数学中定义的属性和过程对于在工程中提供有效的实现是具有挑战性的。如果实施不当,甚至有可能破坏学术方案中的安全假设,最终导致方案失败和隐私数据泄露。

常见的密码算法有多种标准化的编码和解码方法,可以应用于隐私保护方案中分别解决相应的问题。下面将一一展开。

应用问题:实现类型错配工程的途径:数据映射

在实际业务中,隐私数据可以用各种数据类型来表示,通常不满足密码学协议的具体类型要求,不能直接使用。这是我们需要解决的第一个问题:数据类型不匹配。

例如,在商业系统中,交易量是长整数,并且普通的密码算法可能要求输入是有限循环组中的元素。如果直接使用长整数的值,它可能不在相应的有限循环群中。在椭圆曲线系统中,单个数值需要转化为曲线上各点的坐标,一个数值需要转化为两个数值的坐标。

为了解决上述问题,在密码学工程的实现中,通常使用数据映射进行类型转换。具体来说,就是通过一定的方法将用户的私有数据转换成特定密码协议所需的数据类型。

这里以密码学中椭圆曲线的加解密为例,介绍一种常用的数据映射方法。

椭圆曲线可以简单地理解为定义特定点的集合。例如,下面的公式定义了一种常见的椭圆曲线:

满足公式的点(x,y)都在椭圆曲线上。椭圆曲线密码通过在有限点集上定义相关的点运算来实现加密和解密功能。

在椭圆曲线加解密过程中,首要问题是“如何将待加密的数据嵌入到椭圆曲线中,通过点运算完成加密操作”。这需要将明文数据M映射到椭圆曲线上的特定点M(x,y)。

数据编码方法是将明文数据M用十进制转换为椭圆曲线上某一点的X坐标值,然后计算M ^ 3am ^ B的完整平方数得到Y,从而将M转换为点M(x,Y)。

数据解码方法很简单。将明文数据点M解密还原后,读取M的X坐标值,再通过十进制转换还原为明文信息M。

然而,密码椭圆曲线是在有限域上定义的,即曲线是一组离散的点。这将导致计算出的完全平方数不一定存在,即如果X在椭圆曲线上没有对应的Y,那么部分明文数据就无法转换为椭圆曲线上的点,从而导致部分数据无法直接加密。

在实际工程方案中,为了保证椭圆曲线加解密的可用性,还会增加其他更复杂的扩展编码机制来应对明文数据转换失败的情况。

一般来说,密码协议中定义的类型要求越多,数据映射的工程实现就越复杂。没有高效的数据编码和解码算法以及支持的硬件优化

具体的数据映射涉及很多过程细节和算法参数。一旦出现细微差别,不匹配的编码算法产生的数据很大概率不会被解码,导致隐私数据丢失和业务中断。

因此,在具体项目的实施中,数据映射应严格遵循现有工程标准的实施要求。以米国SM2为例,可以参考GM/T0009-2012 《SM2密码算法使用规范》、GM/T0010-2012 《SM2密码算法加密签名消息语法规范》等一系列相关技术标准。

应用问题:数据太长。项目实现方式:数据分组

除了类型不匹配,密码协议中使用的核心算法往往对输入数据的长度有一定的要求。但在实际应用中,很难从不同的业务需求出发限制私有数据的长度,数据长度会超出核心算法的处理长度是不可避免的。

例如,对称加密算法AES-128和AES-256显示,使用的密钥位数分别为128位和256位,但加密过程中单核密码操作处理的数据固定为128位。

针对上述问题,在密码学工程的实现中,一般采用数据分组的方式进行处理,即将整个数据拆分成若干部分,将长数据分割成若干个满足长度要求的短数据块。

典型的例子是块加密,如AES、DES等。分组加密,顾名思义就是将输入数据分组为固定长度的数据块,然后对数据块进行加密和解密,作为核心密码算法的处理单元。

为了保持数据分组后方案的安全性,数据分组技术不仅简单地对数据进行划分,还需要引入额外的流程操作。

以AES 256位密钥加密为例介绍

其中典型的分组加密模式ECB、CBC和CTR。

ECB模式 (Electronic Code Book)

ECB是最简单的分组加密模式,也是不安全分组模式的典范。

假定有1280位待加密的数据,ECB模式将其平均分为10个128位数据块。每个数据块使用相同的密钥单独加密生成块密文,最后块密文进行串联生成最终的密文。

ECB模式的加密特点是在相同的明文和密钥情况下,其密文相同,因此泄露了明文数据与密文数据之间的关联性,不推荐用于任何隐私保护方案中。

CBC模式 (Cipher Block Chaining)

CBC模式通过前后数据块的数据串连避免ECB模式的缺点。

与ECB模式类似,CBC模式中,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每个数据密文的随机性,在第一个块中需要使用一个随机的数据块作为初始化向量IV。

CBC模式解决了ECB模式的安全问题,但也带来了一定的性能问题。其主要缺点在于每个密文块都依赖于前面的所有明文块,导致加密过程是串行的,无法并行化。

CTR模式 (CounTeR)

CTR模式的出现让分组加密更安全且并行化,通过递增一个加密计数器以产生连续的密钥流,使得分组密码变为流密码进行加密处理,安全性更高。

CTR加密和解密过程均可以进行并行处理,使得在多处理器的硬件上实现高性能的海量隐私数据的并发处理成为了可能,这是目前最为推荐的数据分组模式。

密码学协议中的数据分组与传统大数据处理中的数据分组有很大区别。理想情况下,数据分组不应该弱化隐私保护的强度,不能为攻击者获取未授权的信息提供可乘之机。这往往会涉及精心的数据分组方案设计,不能简单看作是数据分块之后的批处理。

业务应用难题:数据太短工程实现之道:数据填充

数据太长是个问题,数据太短往往也是问题。

在以上分组处理的过程中,最后一个数据块中数据长度不足,密码学协议中的核心算法也可能无法工作。

假定一个密码协议处理的数据块长度要求为6字节,待加密的隐私数据长度为7字节。用两个十六进制数代表一个字节数据,其示例如下:

b1 b2 b3 b4 b5 b6 b7

7字节长于数据块的处理长度6字节,因此该数据将被分组,且可以分为两个数据块。分组示例如下:

第一个数据块:b1 b2 b3 b4 b5 b6

第二个数据块:b7

其中第一个数据块刚好是6个字符,第二个数据块只有1个字节,这个数据块就太短了,不满足处理要求。

针对以上问题,密码学工程实现中一般通过数据填充进行处理,即将短的数据块填充补位到要求的字节长度。示例中第二个数据块需要进行数据填充,为其补上缺少的5个字节。

与数据分组类似,这里的数据填充也不是普通的数据填充,也应该满足一定的安全性要求。最常用的数据填充标准是PKCS#7,也是OpenSSL协议默认采用的数据填充模式。

PKCS#7填充

需要填充的部分都记录填充的总字节数。应用于示例中第二个数据块,则补5个字节都是5的数据,其填充效果如下:

b7 05 05 05 05 05

这里还存在一个问题:如果一个隐私数据的最后一个分组,刚好就是一个符合其填充规则的数据,在事后提取原始数据时,如何分辨是原始数据还是填充之后的数据?

避开这种歧义情况的关键是,任何长度的原始数据,在最后一个数据块中,都要求进行数据填充。

值得注意的是,对隐私数据加密时,按特定填充模式进行处理,那么填充的数据也将被加密,成为加密前明文数据的一部分。解密时,其填充模式也需要和加密时的填充模式相同,这样才可以正确地剔除填充数据,提取出正确的隐私数据。

在隐私保护方案的编解码过程中,以上提到的数据映射、数据分组、数据填充,都是保证隐私数据安全的必要环节。此外,在特定的合规要求下,实际业务系统还需要引入更多的相关数据预处理环节,如数据脱敏、数据认证等,使得数据在进入密码学协议前,尽早降低潜在的隐私风险。

正是:理论公式抽象赛天书,工程编码巧手点迷津!

学术论文的公式符号与隐私保护方案的可用工程实现之间,存在一条不小的技术鸿沟,而密码学特有的数据编解码,正是我们建立桥梁实现学术成果产业转化的基石。

安全高效的数据编解码技术,对于处理以5G、物联网为爆点的海量隐私数据应用意义重大,是隐私数据进出业务系统的第一道防线,其重要性不亚于其他密码学原语。

了解完数据编解码之后,接下来将进入具体应用相关的密码学原语,欲知详情,敬请关注下文分解。

---END---

《隐私保护周三见》

“科技聚焦人性,隐私回归属主”,这是微众银行区块链团队推出《隐私保护周三见》深度栏目的愿景与初衷。每周三晚8点,专家团队将透过栏目和各位一起探寻隐私保护的发展之道。

栏目内容含括以下五大模块:关键概念、法律法规、理论基础、技术剖析和案例分享,如您有好的建议或者想学习的内容,欢迎随时提出。

栏目支持单位:零壹财经、陀螺财经、巴比特、火讯财经、火星财经、价值在线、链客社区

往期集锦

第1论|隐私和效用不可兼得?隐私保护开辟商业新境地

第2论|隐私合规风险知几何?数据合规商用需过九重关第3论|密码学技术何以为信?深究背后的计算困难性理论

第4论|密码学技术如何选型?初探理论能力边界的安全模型

第5论|密码学技术如何选型?再探工程能力边界的安全模型第6论|密码学技术如何选型?终探量子计算通信的安全模型

第7论|密码密钥傻傻分不清?认识密码学中的最高机密

第8论|密钥繁多难记难管理?认识高效密钥管理体系

第9论|密码学原语如何应用?解析单向nqdts的妙用

上下滑动查看更多

Python内置logging的详细使用方法介绍资源过期回收和FAQVolley源码之使用方式和使用场景详解
上升沿和下降沿保持多久(plc中上升沿和下降沿怎么用) 内核同步原语(let’go美国同步英语书)
相关内容