当前位置:神舟问>生活百科>什么是数字签名

什么是数字签名

2024-03-26 22:23:55 编辑:join 浏览量:632

什么是数字签名

数字签名科技名词定义

中文名称:数字签名英唱画万的临位倍叶文名称:digitalsignature定义:以电来自子形式存在于数据信息之360问答中的,或作为其附件的或逻辑上与让价急系留垂之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可。应用学科:通信科技(一级学科);网络安全(二级学科)以上内容由全国科盐另王红双改艺印让步学技术名词审定委员会审定公布

求助编辑百科名片

数字签名的流程数字签名(又称公钥数字签名、电子签章滑敌曲)是一种类似写在纸上的普通的物星落米造知急若到理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

目录

基本育钟威交欢坏具否下介绍

主要功能

签名过程

个人安全邮件证书

用数字签名识别病毒

原因分析

使用方法

原理特点鉴权

完整性

不可抵赖

如何实现

Java数字签名步骤基本介绍

主要功能

签名过程

个人安全邮件证书

用数字签名识别病毒

原因分析

使用方法

原理特点鉴权

完整性

不可抵赖

如何实现Java数字签名步骤展开编辑本段基本介绍

  数字签名不是指将你的签名扫描成数字图像,视识或者用触摸板获取的签名,更不是你的落款。  数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。  数黄想字签名是非对称密钥加密技术与经稳顺夫原示数字摘要技术的应用。期苗贵终况诉评  数字签名了的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),越并氧贵往生而且数字签名具有不可抵赖性(不需要笔迹专家来验证)。  简单地说,所谓数字占款而签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并制保护数据,防止被人(例如接收者)进行伪造。它是对电子形式况矿的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体普歌半保激液措打看制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。  数字签名(DigitalSignature)技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。

编辑本段主要功能

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

编辑本段签名过程

  “发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。  数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”这报文鉴别的描述!数字签名没有那么复杂。  数字签名:  发送方用自己的密钥对报文X进行E运算,生成不可读取的密文Esk,然后将Esx传送给接收方,接收方为了核实签名,用发送方的密钥进行D运算,还原报文。

编辑本段个人安全邮件证书

  具有数字签名功能的个人安全邮件证书是用户证书的一种,是指单位用户收发电子邮件时采用证书机制保证安全所必须具备的证书。个人安全电子邮件证书是符合x.509标准的数字安全证书,结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。具有数字签名功能的个人安全邮件证书中包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(CA)以及颁发者对该证书的签名。个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。目前,MSOutlook、OutlookExpress、Foxmail及CA安全电子邮件系统均支持相应功能。使用个人安全邮件证书可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性。

编辑本段用数字签名识别病毒

  如何区分数字签名攻击呢?有两个方法:  1.查看数字签名的详细信息,我们应该查看该数字签名的详细信息,点击“详细信息”按钮即可。  我们会发现正常EXE和感染(或捆绑木马)后的EXE数字签名的区别  正常EXE的数字签名详细信息  被篡改后的EXE数字签名信息无效  方法2,使用数字签名验证程序sigcheck.exe(可以百度一下找这个工具,著名系统工具包SysinternalsSuite的组件之一。)  数字签名异常的结果为:  C:\DocumentsandSettings\litiejun\??\modify.exe:  Verified:Unsigned  Filedate:15:462008-5-23  Publisher:n/a  Description:n/a  Product:n/a  Version:n/a  Fileversion:n/a  数字签名正常的结果为:  C:\DocumentsandSettings\litiejun\??\che.exe:  Verified:Signed  Signingdate:16:282008-4-29  Publisher:n/a  Description:n/a  Product:n/a  Version:n/a  Fileversion:n/a

编辑本段原因分析

  1,精心设计的感染  当EXE被感染时,是很容易破坏文件的数字签名信息的,如果攻击者感染或破坏文件时,有意不去破坏EXE中有关数字签名的部分,就可能出现感染后,数字签名看上去正常的情况。但认真查看文件属性或校验文件的HASH值,你会发现该EXE程序已经不是最原始的版本了。  2.该软件发行商的数字签名文件被盗,攻击者可以把捆绑木马或感染病毒后的EXE程序,也打包上数字签名,这种情况下就更严重了。企业如果申请了数字签名证书,一定要妥善保管,否则后患无穷。

编辑本段使用方法

  你可以对你发出的每一封电子邮件进行数字签名。这不是指落款,普遍把落款讹误成签名。  在我国大陆,数字签名是具法律效力的,正在被普遍使用。2000年,中华人民共和国的新《合同法》首次确认了电子合同、电子签名的法律效力。2005年4月1日起,中华人民共和国首部《电子签名法》正式实施。

编辑本段原理特点

  每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。  在通讯中使用数字签名一般基于以下原因:

鉴权

  公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。  鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。

完整性

  传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b3),这样他就立刻变成百万富翁了。

不可抵赖

  在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。

编辑本段如何实现

  数字签名算法依靠公钥加密技术来实现的。在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。  普通的数字签名算法包括三种算法:  1.密码生成算法;  2.标记算法;  3.验证算法。

编辑本段Java数字签名步骤

  1、将applet的class文件打包成*.jar(不会的可以在命令行中输入jar查看帮助)  2首先我们要生成一个keystore否则在签名的时候报如下错误  jarsigner错误:java.lang.RuntimeException:密钥库装入:C:\DocumentsandSettings\ij2ee\.keystore(系统找不到指定的文件。).(这边的ij2ee是我当前系统用户名)  生成keystore的语句:keytool-genkey-alias别名你可以自己写-keyalgRSA-keystore.keystore  比如我的就是keytool-genkey-aliasij2ee-keyalgRSA-keystore.keystore  下面是会出现的数字签名的一些步骤操作:  输入keystore密码:  再次输入新密码:  您的名字与姓氏是什么?  [Unknown]:ij2ee  您的组织单位名称是什么?  [Unknown]:mtk  您的组织名称是什么?  [Unknown]:mtk  您所在的城市或区域名称是什么?  [Unknown]:suzhou  您所在的州或省份名称是什么?  [Unknown]:jiangsu  该单位的两字母国家代码是什么  [Unknown]:cn  CN=jeson,OU=mtk,O=mtk,L=suzhou,ST=jiangsu,C=cn正确吗?  [否]:y  输入<sfcs>的主密码  (如果和keystore密码相同,按回车):  这时候会在jdk的bin目录下生成.keystore。把这个.keystore文件移动到C:\DocumentsandSettings\当前系统用户的目录下面。  3、创建一个数字证书  在命令行中输入如下指令,peakCA和peakCALib自己起名字好了,3650是有效天数,就是10年左右,在创建证书的的时候,需要填写证书的一些信息和证书对应的私钥密码。这些信息包括CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx,都是中文,一看就懂的  keytool-genkey-aliaspeakCA-keyalgRSA-keysize1024-keystorepeakCALib-validity3650  4、将证书导出到证书文件中  在命令行中输入如下指令,peakCA和peakCALib自己起名字好了,******是你输入的密码  keytool-export-aliaspeakCA-filepeakCA.cer-keystorepeakCALib-storepass******-rfc  5、授权jar文件,在命令行中输入如下指令  jarsigner-keystorepeakCALibmyapplet.jarpeakCA

标签:数字签名

版权声明:文章由 神舟问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.shenzhouwen.com/life/310208.html
热门文章