您现在的位置是: 首页 > 句子大全 句子大全

简述数字签名原理,举例说明_简述数字签名原理,举例说明

ysladmin 2024-05-24 人已围观

简介简述数字签名原理,举例说明_简述数字签名原理,举例说明       简述数字签名原理,举例说明的今日更新是一个不断发展的过程,它反映了人们对生活品质的不断追求。今天,我将和大家探讨关于简述数字签名原理,举例说明的今日更新,让我们一起感受它带来的高品质生活。1

简述数字签名原理,举例说明_简述数字签名原理,举例说明

       简述数字签名原理,举例说明的今日更新是一个不断发展的过程,它反映了人们对生活品质的不断追求。今天,我将和大家探讨关于简述数字签名原理,举例说明的今日更新,让我们一起感受它带来的高品质生活。

1.��������ǩ��ԭ��,����˵��

2.数字签名技术(保证数据完整性与身份认证)

3.数字签名的原理

4.数字签名

简述数字签名原理,举例说明_简述数字签名原理,举例说明

��������ǩ��ԭ��,����˵��

        区块链使用Hash函数实现了交易信息和地址信息的不可篡改,保证了数据传输过程中的完整性,但是Hash函数无法实现交易信息的 不可否认性 (又称拒绝否认性、抗抵赖性,指网络通信双方在信息交互过程中, 确信参与者本身和所提供的信息真实同一性 ,即所有参与者不可否认或抵赖本人的真实身份,以及提供信息的原样性和完成的操作与承诺)。区块链使用公钥加密技术中的数字签名机制保证信息的不可否认性。

        数字签名主要包括签名算法和验证算法。在签名算法中,签名者用其私钥对电子文件进行签名运算,从而得到电子文件的签名密文;在验证算法中,验证者利用签名者的公钥,对电子文件的签名密文进行验证运算,根据验证算法的结果判断签名文件的合法性。在签名过程中,只有签名者知道自己的私钥,不知道其私钥的任何人员无法伪造或正确签署电子文件;在验证过程中,只有合法的签名电子文件能有效通过验证,任何非法的签名文件都不能满足其验证算法。

        常用的数字签名算法包括RSA数字签名、DSA数字签名、ECDSA数字签名、Schnorr数字签名等算法。

        ? 我们以RSA数字签名来介绍:可能人们要问RSA签名和加密有什么 区别 呢?加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说, 加密 是为了 防止信息被泄露 ,而 签名 是为了 防止信息被篡改 。

        ? 例子:A收到B发的消息后,需要进行回复“收到”-- RSA签名过程 :

        ? 首先: A生成一对密钥(公钥和私钥),私钥不公开,A自己保留。公钥为公开的,任何人可以获取。

        ? 然后: A用自己的私钥对消息加签,形成签名,并将加签的消息和消息本身一起传递给B。

        ? 最后: B收到消息后,在获取A的公钥进行验签,如果验签出来的内容与消息本身一致,证明消息是A回复的。

        在这个过程中,只有2次传递过程,第一次是A传递加签的消息和消息本身给B,第二次是B获取A的公钥,即使都被敌方截获,也没有危险性,因为只有A的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带签名的回复给B,防止了消息内容的篡改。

        综上所述,来源于书本及网络,让我们了解的有直观的认识。

数字签名技术(保证数据完整性与身份认证)

       加密可以帮助保护数据不被查看和修改,并且可以帮助在本不安全的信道上提供安全的通信方式。例如,可以使用加密算法对数据进行加密,在加密状态下传输数据,然后由预定的接收方对数据进行解密。如果第三方截获了加密的数据,解密数据是很困难的。

       在一个使用加密的典型场合中,双方(小红和小明)在不安全的信道上通信。小红和小明想要确保任何可能正在侦听的人无法理解他们之间的通信。而且,由于小红和小明相距遥远,因此小红必须确保她从小明处收到的信息没有在传输期间被任何人修改。此外,她必须确定信息确实是发自小明而不是有人模仿小明发出的。

       加密用于达到以下目的:

       保密性:帮助保护用户的标识或数据不被读取。

       数据完整性:帮助保护数据不更改。

       身份验证:确保数据发自特定的一方。

       为了达到这些目的,您可以使用算法和惯例的组合(称作加密基元)来创建加密方案。下表列出了加密基元及它们的用法。

       加密基元 使用

       私钥加密(对称加密) 对数据执行转换,使第三方无法读取该数据。此类型的加密使用单个共享的机密密钥来加密和解密数据。

       公钥加密(不对称加密) 对数据执行转换,使第三方无法读取该数据。此类加密使用公钥/私钥对来加密和解密数据。

       加密签名 通过创建对特定方唯一的数字签名来帮助验证数据是否发自特定方。此过程还使用哈希函数。

       加密哈希 将数据从任意长度映射为定长字节序列。哈希在统计上是唯一的;不同的双字节序列不会哈希为同一个值。

       私钥加密

       私钥加密算法使用单个私钥来加密和解密数据。由于具有密钥的任意一方都可以使用该密钥解密数据,因此必须保护密钥不被未经授权的代理得到。私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。

       通常,私钥算法(称为块密码)用于一次加密一个数据块。块密码(如 RC2、DES、TrippleDES 和 Rijndael)通过加密将 n 字节的输入块转换为加密字节的输出块。如果要加密或解密字节序列,必须逐块进行。由于 n 很小(对于 RC2、DES 和 TripleDES,n = 8 字节;n = 16 [默认值];n = 24;对于 Rijndael,n = 32),因此必须对大于 n 的值一次加密一个块。

       基类库中提供的块密码类使用称作密码块链 (CBC) 的链模式,它使用一个密钥和一个初始化向量 (IV) 对数据执行加密转换。对于给定的私钥 k,一个不使用初始化向量的简单块密码将把相同的明文输入块加密为同样的密文输出块。如果在明文流中有重复的块,那么在密文流中将存在重复的块。如果未经授权的用户知道有关明文块的结构的任何信息,就可以使用这些信息解密已知的密文块并有可能发现您的密钥。若要克服这个问题,可将上一个块中的信息混合到加密下一个块的过程中。这样,两个相同的明文块的输出就会不同。由于该技术使用上一个块加密下一个块,因此使用了一个 IV 来加密数据的第一个块。使用该系统,未经授权的用户有可能知道的公共消息标头将无法用于对密钥进行反向工程。

       可以危及用此类型密码加密的数据的一个方法是,对每个可能的密钥执行穷举搜索。根据用于执行加密的密钥大小,即使使用最快的计算机执行这种搜索,也极其耗时,因此难以实施。使用较大的密钥大小将使解密更加困难。虽然从理论上说加密不会使对手无法检索加密的数据,但这确实极大增加了这样做的成本。如果执行彻底搜索来检索只在几天内有意义的数据需要花费三个月的时间,那么穷举搜索的方法是不实用的。

       私钥加密的缺点是它假定双方已就密钥和 IV 达成协议,并且互相传达了密钥和 IV 的值。并且,密钥必须对未经授权的用户保密。由于存在这些问题,私钥加密通常与公钥加密一起使用,来秘密地传达密钥和 IV 的值。

       假设小红和小明是要在不安全的信道上进行通信的双方,他们可能按以下方式使用私钥加密。小红和小明都同意使用一种具有特定密钥和 IV 的特定算法(如 Rijndael)。小红撰写一条消息并创建要在其上发送该消息的网络流。接下来,她使用该密钥和 IV 加密该文本,并通过 Internet 发送该文本。她没有将密钥和 IV 发送给小明。小明收到该加密文本并使用预先商定的密钥和 IV 对它进行解密。如果传输的内容被人截获,截获者将无法恢复原始消息,因为截获者并不知道密钥或 IV。在这个方案中,密钥必须保密,但 IV 不需要保密。在一个实际方案中,将由小红或小明生成私钥并使用公钥(不对称)加密将私钥(对称)传递给对方。有关更多信息,请参见本主题后面的有关公钥加密的部分。

       .NET Framework 提供以下实现私钥加密算法的类:

       DESCryptoServiceProvider

       RC2CryptoServiceProvider

       RijndaelManaged

       TripleDESCryptoServiceProvider

       公钥加密

       公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以提供给任何人;公钥用于对要发送到私钥持有者的数据进行加密。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

       公钥加密算法使用固定的缓冲区大小,而私钥加密算法使用长度可变的缓冲区。公钥算法无法像私钥算法那样将数据链接起来成为流,原因是它只可以加密少量数据。因此,不对称操作不使用与对称操作相同的流模型。

       双方(小红和小明)可以按照下列方式使用公钥加密。首先,小红生成一个公钥/私钥对。如果小明想要给小红发送一条加密的消息,他将向她索要她的公钥。小红通过不安全的网络将她的公钥发送给小明,小明接着使用该密钥加密消息。(如果小明在不安全的信道如公共网络上收到小红的密钥,则小明必须同小红验证他具有她的公钥的正确副本。)小明将加密的消息发送给小红,而小红使用她的私钥解密该消息。

       但是,在传输小红的公钥期间,未经授权的代理可能截获该密钥。而且,同一代理可能截获来自小明的加密消息。但是,该代理无法用公钥解密该消息。该消息只能用小红的私钥解密,而该私钥没有被传输。小红不使用她的私钥加密给小明的答复消息,原因是任何具有公钥的人都可以解密该消息。如果小红想要将消息发送回小明,她将向小明索要他的公钥并使用该公钥加密她的消息。然后,小明使用与他相关联的私钥来解密该消息。

       在一个实际方案中,小红和小明使用公钥(不对称)加密来传输私(对称)钥,而对他们的会话的其余部分使用私钥加密。

       公钥加密具有更大的密钥空间(或密钥的可能值范围),因此不大容易受到对每个可能密钥都进行尝试的穷举攻击。由于不必保护公钥,因此它易于分发。公钥算法可用于创建数字签名以验证数据发送方的身份。但是,公钥算法非常慢(与私钥算法相比),不适合用来加密大量数据。公钥算法仅对传输很少量的数据有用。公钥加密通常用于加密一个私钥算法将要使用的密钥和 IV。传输密钥和 IV 后,会话的其余部分将使用私钥加密。

       .NET Framework 提供以下实现公钥加密算法的类:

       DSACryptoServiceProvider

       RSACryptoServiceProvider

       数字签名

       公钥算法还可用于构成数字签名。数字签名验证发送方的身份(如果您信任发送方的公钥)并帮助保护数据的完整性。使用由小红生成的公钥,小红的数据的接收者可以通过将数字签名与小红的数据和小红的公钥进行比较来验证是否是小红发送了该数据。

       为了使用公钥加密对消息进行数字签名,小红首先将哈希算法应用于该消息以创建消息摘要。该消息摘要是数据的紧凑且唯一的表示形式。然后,小红用她的私钥加密该消息摘要以创建她的个人签名。在收到消息和签名时,小明使用小红的公钥解密签名以恢复消息摘要,并使用与小红所使用的相同的哈希算法来散列消息。如果小明计算的消息摘要与从小红那里收到的消息摘要完全一致,小明就可以确定该消息来自私钥的持有人,并且数据未被修改过。如果小明相信小红是私钥的持有人,则他知道该消息来自小红。

       请注意,由于发送方的公钥为大家所周知,并且它通常包含在数字签名格式中,因此任何人都可以验证签名。此方法不保守消息的机密;若要使消息保密,还必须对消息进行加密。

       .NET Framework 提供以下实现数字签名算法的类:

       DSACryptoServiceProvider

       RSACryptoServiceProvider

       哈希值

       哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希计算都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。

       消息身份验证代码 (MAC) 哈希函数通常与数字签名一起用于对数据进行签名,而消息检测代码 (MDC) 哈希函数则用于数据完整性。

       双方(小红和小明)可按下面的方式使用哈希函数来确保数据的完整性。如果小红对小明编写一条消息并创建该消息的哈希,则小明可以在稍后散列该消息并将他的哈希与原始哈希进行比较。如果两个哈希值相同,则该消息没有被更改;如果值不相同,则该消息在小红编写它之后已被更改。为了使此系统发挥作用,小红必须对除小明外的所有人保密原始的哈希值。

       .NET Framework 提供以下实现数字签名算法的类:

       HMACSHA1

       MACTripleDES

       MD5CryptoServiceProvider

       SHA1Managed

       SHA256Managed

       SHA384Managed

       SHA512Managed

       随机数生成

       随机数生成是许多加密操作不可分割的组成部分。例如,加密密钥需要尽可能地随机,以便使生成的密钥很难再现。加密随机数生成器必须生成无法以计算方法推算出(低于 p < .05 的概率)的输出;即,任何推算下一个输出位的方法不得比随机猜测具有更高的成功概率。.NET Framework 中的类使用随机数生成器生成加密密钥。

       RNGCryptoServiceProvider 类是随机数生成器算法的实现。

数字签名的原理

       引言

       在当今数字化的世界中,数据的完整性和身份的认证变得至关重要。为了保证数据的完整性和身份的真实性,数字签名技术应运而生。数字签名技术通过使用加密算法和公钥密码学,可以确保数据在传输过程中不被篡改,并且可以验证数据的发送者身份的真实性。本文将详细介绍数字签名技术的原理、操作步骤以及应用场景。

       数字签名技术的原理

       数字签名技术基于公钥密码学的原理,使用了非对称加密算法。非对称加密算法包括公钥和私钥两个密钥,其中公钥可以公开,而私钥只能由签名者保留。数字签名技术的原理如下:

       1.签名者使用私钥对数据进行加密,生成数字签名。

       2.数字签名与原始数据一起传输给接收者。

       3.接收者使用签名者的公钥对数字签名进行解密,得到原始数据的散列值。

       4.接收者对接收到的原始数据进行散列运算,得到散列值。

       5.接收者比较解密得到的散列值和自己计算得到的散列值是否一致,从而判断数据的完整性和签名者的身份。

       数字签名技术的操作步骤

       数字签名技术的操作步骤如下:

       1.生成密钥对:签名者首先生成一对密钥,包括公钥和私钥。公钥可以公开,私钥需要妥善保管。

       2.加密数据:签名者使用私钥对原始数据进行加密,生成数字签名。

       3.传输数据:签名者将数字签名和原始数据一起传输给接收者。

       4.解密数据:接收者使用签名者的公钥对数字签名进行解密,得到原始数据的散列值。

       5.计算散列值:接收者对接收到的原始数据进行散列运算,得到散列值。

       6.比较散列值:接收者比较解密得到的散列值和自己计算得到的散列值是否一致,判断数据的完整性和签名者的身份。

       数字签名技术的应用场景

       数字签名技术在许多领域都有广泛的应用,以下是一些常见的应用场景:

       1.电子商务:数字签名技术可以用于确保在线交易的安全性和可靠性。通过对交易数据进行数字签名,可以防止数据篡改和身份伪装。

       2.文件传输:在文件传输过程中,数字签名技术可以确保文件的完整性和发送者的身份真实性。接收者可以通过验证数字签名来确认文件未被篡改,并且可以追溯到发送者的身份。

       3.软件更新:数字签名技术可以用于验证软件更新的真实性和完整性。用户可以通过验证软件的数字签名来确认软件没有被篡改,并且可以确信软件的来源可靠。

       4.电子合同:数字签名技术可以用于创建和验证电子合同。通过对合同数据进行数字签名,可以确保合同的完整性和签署者的身份真实性。

数字签名

       数字签名的原理

       数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人进行伪造。

       它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。

       

扩展资料:

       实现方法

       数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。

       普通的数字签名算法包括三种算法:

       1.密码生成算法;

       2.标记算法;

       3.验证算法。

       

参考资料:

百度百科-数字签名

       简述数字签名的原理

       数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人进行伪造。

       它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。

       

扩展资料:

       数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。

       因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”

       数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

       百度百科-数字签名

       数字签名的基本原理是什么?

       数字签名是基于非对称密钥加密技术与数字摘要技术的应用,是一个包含电子文件信息以及发送者身份并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。

       一段数字签名数字串包含了电子文件经过Hash编码后产生的数字摘要,即一个Hash函数值以及发送者的公钥和私钥三部分内容。

       数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定数据电文内容是否被篡改,保证消息的完整性。数字签名的基本工作流程如下:

       发送加密

       1.数字签名用户发送电子文件时,发送方通过哈希函数对电子数据文件进行加密生成数据摘要;

       2.数字签名发送方用自己的私钥对数据摘要进行加密,私钥加密后的摘要即为数字签名;

       3.数字签名和报文将一起发送给接收方。

       接收解密

       1.接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要;

       2.接收方用发送方的提供的公钥来对报文附加的数字签名进行解密,得到一个数字摘要;

       3.如果以上两个摘要相一致,则可以确认文件内容没有被篡改。

       4.发送方的公钥能够对数字签名进行解密,证明数字签名由发送方发送。

       以上过程逆向也可以进行,即当文件接受者想要回信时,可以先通过hash函数生成数字摘要,再用公钥加密即可起到文件加密的作用,收信人可以用私钥解密查看文件数字摘要。

       函数加密原理

       Hash函数又叫加密散列函数,其特点在于正向输出结果唯一性和逆向解密几乎不可解,因此可用于与数据加密。

       正向输出容易且结果唯一:由数据正向计算对应的Hash值十分容易,且任何的输入都可以生成一个特定Hash值的输出,完全相同的数据输入将得到相同的结果,但输入数据稍有变化则将得到完全不同的结果。

       Hash函数逆向不可解:由Hash值计算出其对应的数据极其困难,在当前科技条件下被视作不可能。

       了解了数字签名,我们顺便来提一嘴数字证书的概念:

       数字证书

       由于网络上通信的双方可能都不认识对方,那么就需要第三者来介绍,这就是数字证书。数字证书由CertificateAuthority颁发。

       首先AB双方要互相信任对方证书。

       然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密钥的加解密可以提高效率。

       0、引言

       随着信息时代的到来,人们希望能通过网络信息传输对文

       件、契约、合同、信件和账单等进行数字签名来代替以往的手写

       签名。数字签名的目的是提供一种手段,使得一个实体把他的身

       份与某个信息捆绑在一起。一个消息的数字签名实际上是一个

       数,它仅仅依赖于签名者知道的某个秘密,也依赖于被签名信息

       本身。所以,将数字签名看成是一种证明签名者身份和所签署内

       容真实性的一段信息。

       1、RSA算法描述

       RSA算法是Rivest,Shamir和Adleman于1977年提出的比

       较完善的公钥密码系统。RSA算法是一个既能用于加密又能用

       于数字签名的公开密钥算法。RSA算法是基于这样一个数论事

       实:将两个大素数相乘十分容易,但是想分解它们的乘积却是困

       难的。

       RSA公钥加密的整个算法可以通过以下步骤来描述。

       1)生成两个大的素数p和q,p≠q;

       2)计算n=p×q,!(n)(p-1)(q-1);

       3)随机选择一个整数(公开的加密密钥),0<e<!(n),使得

       gcd(e,!(n))=1;

       4)计算满足下列条件(保密的解密密钥),ed=1mod!(n);

       5)对明文的加密运算是:c=E(m)=memodn;

       6)对密文的解密运算是:m=D(c)=cdmodn。

       此时公开(e,n)作为加密密钥E,自己保密(d,n)作为解密密钥

       D。隐藏p和q。

       2、RSA的保密性

       假设用户A获得了一对密钥变换(EA、DA),其中EA是可以

       公布于众的加密密钥,DA是由用户A自行秘密保管的解密密

       钥。当用户B要向用户A发送消息M时,B只需要找到EA,用它

       对消息M进行加密,C=EA(M),然后把密文C在公共信道上传

       送给A。当A收到密文C后,就用A秘密保管的解密密钥DA解

       密,DA(C)=DA(EA(M))=M,恢复出明文M。利用上述加密解密

       过程可使用户A和B之间达到保密传输。因为即使有窃听者获

       得了密文C,但是他没有解密密钥DA,所以不能恢复出明文M

       例如:

       如果用户A取p=7,q=71则n=pq=3337,!(n)(p-1)(q-1)=46×

       70=3220随机选取加密密钥e=79,则d=79-1。公开e和n,将d保

       密,隐藏p和q。设用户B要发给A的信息为m=688,用户B对m

       进行如下加密:c=68879mod3337=1570然后将密文c发给用户A

       用户A则利用保密的解密密钥进行如下解密:15701019mod3337=

       688=m。

       虽然这解决了用户A和B之间的保密传输,但是并没有解

       决可靠性,当A收到密文C时,并不能确定密文C就是用户B

       发来得。因为主动攻击的扰乱者也是知道用户A的加密密钥的

       因此扰乱者可以冒充B发一条假消息给A,这时A是无法判断

       该消息是否B发来的。这个问题可以利用数字签名来解决。

       3、RSA数字签名方案

       3.1公钥加密体制的数字签名原理

       其原理是:用户B用你的私钥来"加密"一组信息,用户A用公钥来解密,如果"解密"成功,说明这组信息就是用户B加密

       的,用户B无法否认这个事实,这就是数字签名。

       假设用户B获得了一对密钥变换(EB、DB),其中EB是可以公

       布于众的加密密钥,DB是由用户B自行秘密保管的解密密钥。

       当用户B要向用户A发送消息M时,如果用户B首先用自己保

       管的解密密钥DB作变换,C'=DB(M),然后把C'传送给A,当A

       收到密文C'后,可以用B的公开密钥EB作逆变换,EB(C')=EB

       (DB(M))=M,恢复出原始信息M。这样A就可以判断该消息一

       定是B发来的,因为只有B才知道秘密密钥DB,除B外,任何

       人都不能仿造信息C',因此C'可以作为用户B的数字签名,A可

       以通过EB来验证B的合法性,B对消息C'的确定性也是无法否

       认的。这样的应用只解决了消息的可靠性,可以防止第三者插

       入、伪造和篡改消息,但是并不能解决消息M的保密性,因为除

       了A以外,其他人也能收到,并恢复消息M。

       3.2保密性和可靠性的解决方案

       为了同时解决信息的保密性和可靠性这两个问题,我们可

       以对消息作如下处理:

       用户A和B分别获得了各自的密钥对(EA、DA)和(EB、DB),

       如果B要向A发送一条消息M,则可以先把消息M用B的秘

       密密钥DB处理,再用A的公开密钥EA加密,即C=EA(DB(M)),

       然后把C发送给A,A收到信息C后,先用自己的秘密密钥DA

       解C,再用B的公开密钥EB恢复,即

       EB(DA(C))=EB(DA(EA(DB(M))))=EB(DB(M))=M。

       把这两种方法如此地结合起来,用于加密信息,这样就可以

       到达人们预期的目的。使公共信道上传输的信息,即具有保密

       性,有具有可靠性,即可以防止第三者的被动窃取,又可以防止

       第三者的主动破坏,同时还具有认可和公证的能力。

       4、RSA安全性分析

       RSA的安全性依赖于大数分解的难度,目前因子分解速度

       最快的算法,其时间复杂性为exp(sqrt(n)1n1n(n))。若和为100位

       的十进制数,这样为200位十进制数,按每秒107次运算的超高

       速计算机,也要108年才能破解。因此,在一定有效期内,RSA数字

       签名是安全可靠的。2002年成功分解了158位的十进制数,故

       选取的素数p和q应该是长度为100的十进制数(相当于332

       位二进制数)。为了达到长期安全应该至少使用1024位。

       RSA的安全性受到的最大威胁就是整数素因子分解技术的

       发展,如果因素分解技术有了突破性发展,那么RSA的破解将会

       变得非常简单,可以直接计算出私钥。

       5、结束语

       数字签名有很多实现方法,目前广泛应用的主要有Hash签

       名,DSS签名,RSA签名,ElGamal签名。其中RSA签名是最流行

       的一种数字签名算法,尽管数字签名技术还不够完善,如签名后

       的文件可能被接收者重复使用,公开密钥加密算法的效率相当

       低,不易用于长文件的加密等。我们可以把RSA算法与其他算

       法(如DES算法)结合起来使用,既提高了他它的运行速度,又保

       证了一定的安全性。随着Internet的快速发展及其算法的不断改

       进和完善,其应用领域会日益广泛,有着广阔的发展前景。

       好了,今天关于“简述数字签名原理,举例说明”的话题就到这里了。希望大家通过我的介绍对“简述数字签名原理,举例说明”有更全面、深入的认识,并且能够在今后的学习中更好地运用所学知识。