龙空技术网

DATx系列之三——加密机制

DotCUnitedGroup 110

前言:

此刻姐妹们对“下面加密算法属于私钥密码体制的是哪一项”大致比较关注,咱们都想要剖析一些“下面加密算法属于私钥密码体制的是哪一项”的相关内容。那么小编在网上搜集了一些有关“下面加密算法属于私钥密码体制的是哪一项””的相关资讯,希望我们能喜欢,各位老铁们快快来学习一下吧!

DATx,作为专注数字广告行业的革命性创新平台,由新加坡Cosima Foundation发起,是针对当前数字广告行业的革命性创新运动。旨在构建真正以用户为中心的区块链去中心化数据方案,建立一个创新性的未来智能广告生态环境。欲为整个数字广告生态系统打造良好的统一协议,建立一套完整的广告生态系统运行机制,实现一个高效的、安全的、良性发展的、经济利益最大化的广告生态系统。

DATx会通过区块链技术,构建归属于用户的账户体系和用户行为档案,并结合密码学信息加密技术构建用户专属的、保护信息安全的智能账户。

这些账户里面包括个人数据中心和数据集,个人数据中心包括用户自己的各个维度数据,比如用户在各个应用上的有序的行为数据、喜好数据、虚拟形象等等;在用户同意授权的前提下,能够聚合散落在区块链各应用的有序数据碎片。这些数据碎片构成的数据集是智能化分析很关键的数据来源。

一般情况下,当用户、媒体、广告主进入我们的广告生态系统后,我们会为进入生态系统的用户、媒体、广告主创建一个属于他们自己的用户档案——DATx账户,并生成唯一身份标识。DATx账户中包含了账户归属主体的行为信息,账户归属主体的信息将被写入区块链中,并为账户归属主体生成专属的档案,即DATx用户行为档案。

加密

区块链用密码学的方法解决了信任问题,并实现了安全和不可更改的特性。

区块链的应用和开发,数字加密技术是关键。一旦加密方法遭到破解,区块链的数据安全将受到挑战,区块链的不可篡改性将不复存在。

加密,简单而言就是通过一种算法手段将对原始信息进行转换,信息的接收者能够通过秘钥对密文进行解密从而得到原文的过程。按照加密方和解密方秘钥相同与否可以将加密算法大致分为三种子类型:

对称加密

对称加密的加密解密方使用相同的秘钥,这种方式的好处在于加解密的速度快,但是秘钥的安全分发比较困难,常见对称加密算法有DES,AES等。

非对称加密

非对称加密体系也称为公钥体系,加解密时加密方拥有公钥和私钥,加密方可以将公钥发送给其他相关方,私钥严格自己保留。例如银行的颁发给个人用户的私钥就存储在个人的U盾里;非对称加密中可以通过私钥加密,他人能够使用公钥进行解密,反之亦然;非对称加密算法一般比较复杂,执行时间相对对称加密较长;好处在于无秘钥分发问题。常见的其他非对称加密算法有RSA,ECC等。区块链中主要使用ECC椭圆曲线算法。

对称加密与非对称加密的结合

这种方式将加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。

DATx加密机制

DATx会构建归属于用户的账户体系和用户行为档案,并结合密码学信息加密技术构建用户专属的、保护信息安全的智能账户。DATx需要用到加密机制的应用场景主要包括:数字签名、DATx交易信息加密、DATx用户行为档案信息加密和登录认证等。现在将对主要的应用场景进行详细解读。

DATx数字签名

在DATx区块链的分布式网络里,节点之间进行通讯并达成信任,需要依赖数字签名技术,它主要实现了身份确认以及信息真实性、完整性验证。

DATx数字签名涉及到公钥、私钥和钱包等工具,它有两个作用:一是证明消息确实是由信息发送方签名并发出来的,二是确定消息的完整性。数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。整个过程如下所示。

DATx中的数字签名采用椭圆曲线数字加密算法(ECDSA),它是一种非对称加密算法。这里再次说明一下,非对称加密指为满足安全性需求和所有权验证需求而集成到区块链中的加密技术。非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥。

非对称密钥对具有两个特点:一是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开。二是公钥可向其他人公开,私钥则保密,其他人无法通过该公钥推算出相应的私钥。

它的理论基础是椭圆曲线密码学(ECC),而ECC存在的理论基础是点倍积(pointmultiplication)算式Q = dP中的私钥d (几乎)不可能被破译。ECC相对于基于大质数分解的RSA,在提供相同安全级别的情况下,仅需长度更短的公钥。

DATx中调用的椭圆曲线数字签名算法实现,来自己libsecp256k1库,这是一个针对特定椭圆曲线secp256k1的、经过优化的C++库。

DATx中的使用的Address类型,比如每个账户的地址,均来自于椭圆曲线数字签名的公钥。

椭圆曲线数字签名算法(ECDSA)是数字签名算法(DSA)的变例之一,它基于椭圆曲线密码学。相比于基于RSA密码学的DSA,ECDSA在计算数字签名时所需的公钥长度可以大大缩短。比如,对于一项安全级别为80 bits的数字签名来说,ECDSA需要的公钥长度仅仅为安全级别的2倍,即160 bits(N bits的安全级别,意味着攻击者大约要经过2^N的运算才能获得本次加密用的私钥。安全级别所代表的bits越长,意味着安全性能越好,越难以被攻破),而同样安全级别要求下的RSA所需公钥长度至少为1024 bits;同时算法所生成的签名长度,不论是ECDSA还是RSA都大约是320 bits,这样一来,ECDSA相对于RSA在应用上的优势就很明显了。

1、数字签名的生成

下面来看一下ECDSA的签名生成过程。

假设要给Adam要给Bacon发一个经过数字签名的消息。

他们首先需要定义一组共同接受的椭圆曲线加密用参数。简单的,这组参数可表示为:

(CURVE,G,n)

其中,CURVE表示椭圆曲线点域和几何方程;G是所有点倍积运算的基点;n是该椭圆曲线的可倍积阶数(multiplicativeorder)。作为一个很大的质数,n的几何意义在于,nG = 0,即点倍积nG的结果不存在,而对于小于n的任何一个正整数 m = [1,n-1],点倍积mG都可以得到一个合理的处于该椭圆曲线上的点。

其次,Adam要创建一对钥,即一个私钥和一个公钥。

私钥来自于[1, n-1]范围内一个随机数:

dA=rand (1,n-1)

公钥来自私钥和基点的椭圆曲线点倍积:

QA=dA×G

假设Adam想要对消息m作数字签名,有以下步骤:

1、计算e=HASH(m),HASH是一个哈希加密函数,比如SHA-2,或SHA-3。

2、计算z,来自e的二进制形式下最左边(即最高位)L_n个bits,而L_n是椭圆曲线参数中的可倍积阶数n的二进制长度。注意z可能大于n,但长度绝对不会比n更长。

3、从[1, n-1]内,随机选择一个符合加密学随机安全性的整数k生成私钥。k 的选择,它不仅要满足加密学的随机安全性要求,要像私钥一样保护起来,更重要的是,在每次生成一个新的数字签名时,这个k必须每次都要更新。否则,通过上述数字签名过程中的算式相互换算,很容易从中破译出私钥!

4、计算一个椭圆曲线上点生成公钥:

(x1, y1 )=k × G

5、以下式计算 r 值, 如果r == 0, 则返回步骤3重新计算。

r=x1 mod n

6、以下式计算 s 值,如果 s == 0,则返回步骤3重新计算。

s=k^(-1) (z+rdA) mod n

7、生成的数字签名就是 (r, s)。

2、数字签名的验证

对于消息的接收方Bacon来说,他除了收到数字签名文件外,还会有一份公钥。所以Bacon的验证分两部分,首先验证公钥,然后验证签名文件(r, s)。

(1)公钥的验证

(1)公钥的坐标QA应是有效的,不会等于一个极限值空点O;

(2)通过公钥QA的坐标验证它必须是处于该椭圆曲线上的点;

(3)应有下式成立,即曲线的可倍积阶数 n 与公钥的点倍积不存在。

n×QA=O

(2)签名文件的验证

1、验证r和s均是处于[1, n-1]范围内的整型数;否则验证失败

2、计算e=HASH(n),HAHS()即签名生成过程步骤1中使用的哈希函数。

3、计算z,来自e的最左边L_n个bits。

4、计算参数w:

w=s^(-1) mod n

5、计算两个参数u1和u2:

u1=zw mod n ,u2=r w mod n

6、计算(x1, y1),如果(x1, y1)不是一个椭圆曲线上的点,则验证失败:

(x1, y1) =u1×G+=u2×QA

7、如果以下恒等式不成立,则验证失败:

r≡(x1mod n)

以上就是椭圆曲线数字签名算法(ECDSA)的生成和验证的完整过程。

最后需要提及的是,在个别应用中,为了提升交易的安全性,DATx采用了多重签名,为了增强DATx隐私保护,还应用了环签名。

DATx交易信息加密

DATx交易信息加密的主要过程主要是由信息发送者(记为A)使用接受者(记为B)的公钥对信息加密后再发送给B,B利用自己的私钥对信息解密。这跟比特币交易的加密场景相似,比特币交易也属于此场景。

1.私钥的生成

在最开始DATx交易信息加密的设计中,DATx系统一般通过调用操作系统底层的随机数生成器来生成256位随机数作为私钥。DATx私钥的总量大,极难通过遍历全部私钥空间来获得存有DATx的私钥,因而密码学是安全的。为便于识别,256 位二进制形式的DATx私钥将通过SHA256哈希算法和Base58转换,形成50个字符长度易识别和书写私钥提供给用户。

2.公钥的生成

DATx的公钥是由私钥首先经过Secp256k1椭圆曲线算法生成65 字节长度的随机数。该公钥可用于产生DATx交易时使用的地址,其生成过程是首先将公钥进行SHA256和RIPEMD160双哈希运算生成20字节长度的摘要结果(即Hash160的结果),再经过SHA256 哈希算法和Base58转换形成33字符长度的DATx地址。公钥生成过程是不可逆的,即不能通过公钥反推出私钥。

DATx的公钥和私钥通常保存在DATx钱包文件,其中私钥最为重要。丢失私钥就意味着丢失了对应地址的全部DATx资产。值得一提的是,现在的DATx区块链系统中,根据实际应用需求已经衍生出更复杂的多私钥加密技术,以满足多重签名等更为灵活和复杂的场景。

DATx用户行为档案信息加密

DATx用户行为档案,它会将用户在数字世界的行为与在现实中的行为对应起来,这是区块链落地到现实应用中的关键。我们通过在数字世界中账户拥有者的行为档案,勾勒出用户在现实世界的画像,让其与现实的社会服务网站对接起来,实现更精准的个性化广告服务,从而打造更丰富的广告生态系统。

DATx用户行为档案信息加密的目的是在存储节点试图窥探、窃取、破坏数据时能保护数据的隐私性与安全性。在用户行为数据被上传至网络上之前,所有DATx用户行为档案数据都经过高度加密处理,而且解密过程不能再存储节点进行,只能在下载后才进行。存储节点在任何情况下都不能解密存储在其上的数据。

DATx用户行为档案信息加密场景中,用户需要生成个人的公私钥对,比如Adam首先需要生成公私钥对:

(sk , pk≔generateKeys ( keysize ))

sk私钥用户自己保留,pk公钥可以分发给其他人。

需要注意,DATx用户行为档案信息加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。

最后

DATx构建利润归属于用户的账户体系和用户行为档案,并结合密码学信息加密技术构建用户专属的、保护信息安全的智能账户。

为了让交易在无需第三方信任机构的参与之下安全进行,DATx系统采用了非对称加密的密码学技术。非对称加密算法承担了权威第三方的认证工作。

DATx系统中的私钥由随机生成器生成,再通过椭圆曲线、哈希函数等等单向、不可逆算法推导出公钥以及地址。所以说,即使将地址以及公钥公开在网络上,也无法借其推导出私钥,拥有私钥就等于拥有DATx钱包的所有权。

正因如此,DATx网络中的用户无须通过身份验证就能确保自身加密货币资产的所有权。用户使用私钥生成交易,矿工利用公开于网络的公钥进行信息验证,便能进行资产所有权的安全匿名转移。

标签: #下面加密算法属于私钥密码体制的是哪一项