Ⅰ 电子合同中的数字签名防篡改,有什么原理
在公钥密码学中,密钥是由公开密钥和私有密钥组成的密钥对。数字签名就是用私有密钥进行加密,接收方用公开密钥进行解密。由于公开密钥不能推算出私有密钥,所以公开密钥不会损坏私有密钥的安全,公开密钥无需保密可以公开传播,而私有密钥必须保密。
因此,当某人用其私有密钥加密信息,能够用TA的公开密钥正确解密就可以肯定该消息是经过某人签字的,因为其他人的公开密钥不可能正确解密该加密信息,其他人也不可能拥有该人的私有密钥而制造出该加密过的信息。
就其实质而言,数字签名是接收方能够向第三方证明接收到的消息及发送源的真实性而采取的一种安全措施,其使用可以保证发送方不能否认和伪造信息。
数字签名的主要方式是:报文的发送方从报文文本中生成一个散列值(或报文摘要),发送方用自己的私有密钥对这个散列值进行加密来形成发送方的数字签名,然后这个数字签名将作为报文的附件和报文一起发送给报文的接收方,报文的接收方首先从接收到的原始报文中计算出散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密,如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。
Ⅱ 电子签名原理是什么
简单来说,电子签名是利用哈希算法与加密算法实现的电子文件上直接签字、盖章的技术。为了保障签署后的电子文件具备法律有效性,使用电子签名签署后的电子文件还需要具备签署身份可识别、签署内容不可篡改的特性。
但是,通过上述技术名词解释并不能直观、易懂的说明电子签名的原理,以下是通过还原电子签名签署的过程简介实现原理:
场景:由于业务需要,你和我需要签署一份合作协议。为方便起见,你将拟好的电子版合同文本在线发送给我签署。
怎样确保合同只有我可查看且不被他人恶意窃取?我又怎样才能确定文件的发送人就是你呢?
关键点1:公钥私钥登场
为了满足电子合同内容保密性和发送人认证的要求,我们了解到非对称加密的加密方式。
非对称加密:具有唯一对应的一对秘钥,一个公钥一个私钥,公钥所有人可见,而私钥仅自己可见。
非对称加密具有这样的特性:用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。
发送合同时,你将拟好的电子合同使用自己的私钥加密后发送;接收合同时,如果能够使用你的公钥解密,则说明这份文件就是你发送的。
但是,我怎么才能知道你的公钥呢?
关键点2:政府出了个CA来帮忙
我了解到,政府授权了一个权威机构叫CA,可以提供网络身份认证的服务。
CA(Certificate Authority):全称证书管理机构,即数字证书的申请、签发及管理机关。其主要功能为:产生密钥对、生成数字证书、分发密钥、密钥管理等。
数字证书:是由CA机构颁发的证明,它包含公钥、公钥拥有者名称、CA的数字签名、有效期、授权中心名称、证书序列号等信息,可以通俗为理解个人或企业在“网络身份证”。
我向CA机构申请获取你的公钥,使用它对电子合同解密,解密成功则说明发送人就是你。文件发送人的身份确认了,那怎么保障电子合同传输过程中未被篡改呢?
关键点3:哈希兄弟出场
有技术人员推荐了哈希算法(摘要算法),可以证明电子合同传输过程中是否被篡改。
哈希算法:通过加密算法将文本内容生成为一段代码,即信息摘要,其主要特征是加密过程不需要密钥,经加密的数据无法被反向还原。也就是说,只有两份完全相同的合同经过相同的哈希算法才能得到相同的摘要。
发送合同时,你将电子合同原文和经哈希运算的摘要一起发送给我接收合同时,通过对合同原文进行同样的哈希运算得到新的摘要,对比两组摘要是否一致即可证明我接收的文件是否被篡改
但是,如果传输过程中文件原文与摘要同时被替换了怎么办?
关键点4:对称加密来帮忙
除了上述的哈希算法、非对称加密、CA,为确保合同由发送到接收满足三个要求,即:由你发送、只能发给我、不能被篡改,我们还需要应用新的加密方式:对称加密。
对称加密:采用单钥密码系统的加密方法,信息的加密和解密只能使用同一个密码。
发送文件时:
1、你通过哈希运算得到原文摘要并使用私钥对其加密,得到你的数字签名,再将数字签名和合同原文进行对称加密,得到密文A——对原文加密
2、再通过CA获得我的公钥,对上述步骤中对称加密的秘钥进行非对称加密,即我的“数字信封”——对秘钥加密
3、将密文A和我的数字信封一起发送给我
数字签名:用哈希算法提取出源文件的摘要并用发送人的私钥进行加密后的内容。
数字信封:用接收方的公钥加密对称秘钥”,这就叫“给乙的数字信封。
接收文件时:
1、我使用自己的私钥解密数字信封得到对称秘钥——能解开,说明是发给我的
2、再使用对称秘钥解密密文A,得到带有你的数字签名的原文
3、使用你的公钥解密你的数字签名,得到签名中的原文摘要——能解开,说明发送者是你
4、使用相同的摘要算法获取原文摘要并与解密签名中的摘要对比——摘要一致,则说明原文没有被篡改
除了文件内容不可篡改,精确记录签署时间固定合同生效期限也十分重要,网络环境中怎样怎么确保合同签署时间不可篡改呢?
关键点5:时间戳来证明
我又请教了专家,原来我们国家还有专门确定时间的法定授时中心,它可以在我们签署的文件上加盖“时间印迹”,即时间戳。
时间戳(time-stamp):书面签署文件的时间是由签署人自己写上,而数字时间戳则由第三方认证单位(DTS)添加,以DTS收到文件的时间为依据,更精准、更有公信力。
至此,我们签合同的时间精准记录、合同内容不可篡改、双方身份也真实有效,这下没问题了!但是,签署完的电子合同怎么存储呢?不管是哪一方签署,日后产生纠纷都难免对合同存储期间的安全性产生质疑。
关键点6:找个权威第三方来存证
听说有专门的第三方电子数据存证机构,可以保存已签署的电子合同数据,当用户双方对合同内容产生争议时可申请出具具有公信力的证明。
合同签署的最后一个问题:存储问题也解决了!但唯一不足之处就是:签署过程太麻烦!为保障电子合同有效性,我们用到了非对称加密、哈希运算、时间戳等技术,还要CA机构、公证处等机构协助;
怎样更简单快捷地签一份有效的电子合同呢?
关键点7:选择可靠的第三方电子合同平台
根据《电子签名法》规定,使用可靠的电子签名签署的电子合同具备与手写签字或盖章的纸质合同同等的法律效力。
根据《电子签名法》规定,符合下列条件的,视为可靠的电子签名:
1)电子签名制作数据用于电子签名时,属于电子签名人专有
2)签署时电子签名制作数据仅由电子签名人控制
3)签署后对电子签名的任何改动能够被发现
4)签署后对数据电文内容和形式的任何改动能够被发现
结合上述电子合同签署过程,我们可归纳总结有效的电子合同应关注以下几个核心点:内容保密性、内容防篡改、明确签订身份、明确签订时间。
同时,为保障电子合同作为书面形式的证据能力,合同签署全程还应当由权威第三方机构存储公证。
商务部在《电子合同在线订立流程规范》指出:“通过第三方(电子合同服务提供商)的电子合同订立系统中订立电子合同,才能保证其过程的公正性和结果的有效性”。
综上,就是电子签名各个环节中需涉及的实现原理。
Ⅲ 数字签名的实现方法
数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。
普通的数字签名算法包括三种算法:
1.密码生成算法;
2.标记算法;
3.验证算法。
Ⅳ 数字签名的原理是什么
数字签名采用了双重加密的方法来实现防伪、防赖。其原理为:
1、被发送文件用SHA编码加密产生128bit的数字摘要。
2、发送方用自己的私用密钥对摘要再加密,这就形成了数字签名
3、将原文和加密的摘要同时传给对方
Ⅳ 简述数字签名和加密的基本原理及其区别 急!急!急!
数字签名主要经过以下几个过程:
信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要;
信息发送者使用自己的私钥签名信息摘要;
信息发送者把信息本身和已签名的信息摘要一起发送出去;
信息接收者通过使用与信息发送者使用的同一个单向散列函数(HASH函数)对接收的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。
数字加密主要经过以下几个过程:
当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;
信息发送者用信息接收者的公钥加密上述对称密钥;
信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;
信息接收者使用自己的私钥解密被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文。
数字签名和数字加密的过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的完整性、身份认证和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法,它能保证发送信息保密性。
Ⅵ 数字签名的基本原理是什么
数字签名是基于非对称密钥加密技术与数字摘要技术的应用,是一个包含电子文件信息以及发送者身份并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。
一段数字签名数字串包含了电子文件经过Hash编码后产生的数字摘要,即一个Hash函数值以及发送者的公钥和私钥三部分内容。
数字签名有两个作用,一是能确定消息确实是由发送方签名并发出来的。二是数字签名能确定数据电文内容是否被篡改,保证消息的完整性。数字签名的基本工作流程如下:
发送加密
1.数字签名用户发送电子文件时,发送方通过哈希函数对电子数据文件进行加密生成数据摘要(digest);
2.数字签名发送方用自己的私钥对数据摘要进行加密,私钥加密后的摘要即为数字签名;
3.数字签名和报文将一起发送给接收方。
接收解密
1.接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要;
2.接收方用发送方的提供的公钥来对报文附加的数字签名进行解密,得到一个数字摘要;
3.如果以上两个摘要相一致,则可以确认文件内容没有被篡改。
4.发送方的公钥能够对数字签名进行解密,证明数字签名由发送方发送。
以上过程逆向也可以进行,即当文件接受者想要回信时,可以先通过hash函数生成数字摘要,再用公钥加密即可起到文件加密的作用,收信人(数字签名拥有者)可以用私钥解密查看文件数字摘要。
函数加密原理
Hash函数又叫加密散列函数,其特点在于正向输出结果唯一性和逆向解密几乎不可解,因此可用于与数据加密。
正向输出容易且结果唯一:由数据正向计算对应的Hash值十分容易,且任何的输入都可以生成一个特定Hash值的输出,完全相同的数据输入将得到相同的结果,但输入数据稍有变化则将得到完全不同的结果。
Hash函数逆向不可解:由Hash值计算出其对应的数据极其困难,在当前科技条件下被视作不可能。
了解了数字签名,我们顺便来提一嘴数字证书的概念:
数字证书
由于网络上通信的双方可能都不认识对方,那么就需要第三者来介绍,这就是数字证书。数字证书由Certificate Authority( CA 认证中心)颁发。
首先A B双方要互相信任对方证书。
然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密钥的加解密可以提高效率。
Ⅶ 数字签名的原理
数字签名是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。
(7)加密原理实现数字签名扩展阅读:
实现方法
数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。
普通的数字签名算法包括三种算法:
1.密码生成算法;
2.标记算法;
3.验证算法。
Ⅷ 数字签名的加密方式是怎样的原理
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。
公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。
鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。
完整性。传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b3),这样他就立刻变成百万富翁了。
不可抵赖。在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。
Ⅸ 数字签名的原理和作用分别是什么
数字签名是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
在电子商务中,传送的文件是通过数字签名证明当事人身份与数据真实性的。数据加密是保护数据的最基本方法,但也只能防止第三者获得真实数据。数字签名则可以解决否认、伪造、篡改及冒充等问题。
要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。
数字签名的实现
目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的另一类应用。它的主要方式是:报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。
发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。这个数字签名将作为报文的附件和报文一起发送给报文的接收方。
报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),再用发送方的公用密钥来对报文附加的数字签名进行解密。
如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
加入数字签名和验证的文件传输过程如下:
发送方首先用哈希函数从原文得到数字签名,然后采用公开密钥体系用发送方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面;
发送一方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方;
发送方用接收方的公开密钥对密秘密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方;
接受方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文;
接收方用秘密密钥对文件进行解密,得到经过加密的数字签名;
接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文;
接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
Ⅹ 简述数字签名的原理
数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。
(10)加密原理实现数字签名扩展阅读:
数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。
因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。