`
kaka99
  • 浏览: 52105 次
  • 性别: Icon_minigender_1
  • 来自: AC
社区版块
存档分类
最新评论

数字签名是怎么回事?

阅读更多

从根本上来说,数字签名是一种确保电子文档(电子邮件、电子表格、文本文件等)真实可靠的方法。“真实可靠”的含义是:您知道文档是谁创建的,并且知道在作者创建该文档之后,没有人对其进行过任何形式的修改。

数字签名依靠某些类型的加密技术来验证身份。加密是指获得一台计算机要发送给另一台计算机的所有数据,然后将其编码为只有后者才能解码的形式的过程。身份验证是指验证相关信息是来自可信来源的过程。这两个过程共同实现数字签名的功能。

要对人员或计算机上的信息进行身份验证,有多种方法:

  • 密码——用户名和密码的使用是最常见的身份验证方式。您在计算机提示下输入用户名和密码。计算机根据安全文件对二者进行核对并确认。如果用户名或密码中有一个不匹配,计算机就不允许您进行进一步访问。
  • 校验和——校验和也许是确保数据正确的最古老的方法之一,它也提供了一种身份验证方式,因为无效的校验和表明数据受到了某种形式的损坏。有两种方法可以用来确定校验和。假设数据包的校验和为1个字节长,意味着校验和可以包含的最大值为255。如果该数据包中其他字节的和是255或更小,则校验和将包含那个具体的值。但如果其他字节的和大于255,则校验和为总值除以256后得到的余数。请看以下示例:

    字节 1 字节 2 字节 3 字节 4 字节 5 字节 6 字节 7 字节 8 总值 校验和
    212 232 54 135 244 15 179 80 1151 127

    1151÷256=4.496(四舍五入为4)
    4x256=1024
    1151-1024=127

  • CRC(循环冗余码校验)——CRC在概念上与校验和类似,但它使用多项式除法来确定CRC的值,其长度通常为16或32位。CRC的优势在于它非常精确。如果有一个位不正确,CRC值就不匹配。在防止传输过程中发生随机错误方面,校验和与CRC都比较有效,但在防止针对数据的有意攻击方面,则几乎没有提供任何保护。下面讲到的加密技术则安全得多。
  • 私钥加密——私钥的含义,是指每台计算机都有一个密钥(代码),在它通过网络向另一台计算机发送信息包之前,可以使用该密钥对信息包进行加密。私钥要求您知道哪些计算机将互相通信,并在每台计算机上安装相应的密钥。私钥加密的原理与密码相同,即两台计算机必须互相认识,才能对信息进行解码。密码提供了对消息进行解码的密钥。可以这样理解:您创建了一条要发送给朋友的编码消息,其中每个字母都用它之后的第二个字母来代替。这样“A”变成了“C”,“B”变成了“D”。您告诉自己信任的朋友,代码是“后移两位”。这样您的朋友在收到消息时就可以进行解码,从而得知消息的内容。任何其他获得该消息的人看到的只是无意义的内容。
  • 公钥加密——公钥加密使用公钥和私钥相结合的方法。私钥只有您的计算机知道,而公钥由您的计算机告诉将要进行安全通信的所有计算机。要对加密消息进行解码时,计算机必须使用发送消息的计算机所提供的公钥和它自己的私钥。

    密钥基于散列值。这个值是使用散列算法,根据一个基本输入数字计算出来的。关于散列值的重要一点是,如果不知道用于创建散列值的数据,则几乎不可能推导出原始输入数字。下面是一个简单示例:

     

    输入数字 散列算法 散列值
    10667 输入数字乘以143 1525381

    毫无疑问,要判断出值1525381是10667和143相乘的结果会是多么困难。但如果知道乘数是143,那么便可以很轻松地计算出值10667。公钥加密远比这个示例复杂得多,但基本概念是一样的。公钥通常使用复杂的算法和非常大的散列值来进行加密,例如使用40位甚至128位的数字。128位的数字可能有2128种不同组合,这个组合数相当于270万个奥运会标准泳池中水分子的数量。即便是您能够想像出的最小的水滴,其中也包含数十亿个水分子!

  • 数字证书——要大规模(例如一个安全的Web服务器所需的规模)实施公钥加密,就需要另外的方法,而这正是数字证书的用途所在。从根本上说,数字证书是一小段信息,它声明Web服务器受到名为证书颁发机构的独立来源的信任。证书颁发机构扮演两台计算机都信任的中间人的角色。它确认每台计算机都确实具有所表明的身份,然后为每台计算机提供另一台计算机的公钥。

数字签名标准(DSS)是基于一种使用数字签名算法(DSA)的公钥加密方法。DSS是经过美国政府批准的数字签名格式。DSA算法由一个私钥和一个公钥组成,该私钥只有文档的发送者(签名者)知道。公钥包括四个部分,您可在此页上了解其相关信息。

下面是一些有趣的链接:

分享到:
评论

相关推荐

    代码签名数字证书(含私钥)_过期证书_过期数字签名强制签名工具_数字签名_证书

    本文将深入探讨过期证书、过期数字签名的处理、强制签名工具以及数字签名证书的相关知识。 首先,我们要理解什么是代码签名数字证书。这是一种由权威的证书颁发机构(CA)颁发的证书,用于验证软件的开发者身份和...

    20张图告诉你数字签名是什么?

    ### 数字签名基础概念 数字签名是一种用于验证电子信息的真实性和完整性的技术手段。它通过一套密码学算法确保信息不会在传输过程中被篡改,并且能够确认信息确实来源于声称的发送者。数字签名的核心机制涉及到了...

    数字签名和数字证书

    在IT安全领域,数字签名和数字证书是两个关键概念,它们在确保数据的完整性和身份验证方面发挥着至关重要的作用。本文将详细解释这两个概念,以及它们之间的关系,并结合C#编程语言,探讨如何实现证书和签名功能。 ...

    代码签名数字证书(含私钥),数字签名是使用自己的私钥签名,C,C++

    数字签名并非我们日常生活中手写的签名,而是通过一种加密算法,使用私钥对数据进行的一种特殊标记。这个过程类似于物理世界中的印章,但具有更高的安全性。在C或C++编程中,开发人员可以使用代码签名证书来为他们的...

    数字签名克隆工具

    数字签名在IT行业中扮演着至关重要的角色,尤其是在软件开发、安全验证和数据完整性保护方面。在深入探讨"数字签名克隆工具"之前,我们先理解什么是数字签名。 数字签名并非传统意义上的签名,而是一种用于验证电子...

    数字签名复制工具V1.0绿色版

    数字签名复制工具是一款功能强大、便捷实用的数字签名克隆工具,此款软件能够将一个有数字签名的文件中的数字签名克隆到另一个没有数字签名的文字上。软件方便简单,可复制多重签名,快来下载体验吧。 功能介绍 ...

    winform实现数字签名实例

    在IT领域,数字签名是一种用于验证数据完整性和发送者身份的技术。它在网络安全、软件发布以及电子文档签署等方面起着至关重要的作用。本实例将详细讲解如何使用C#语言和WinForm来实现数字签名功能。 首先,让我们...

    ,易语言软件的数字签名

    在IT行业中,数字签名是一种重要的安全机制,尤其在软件开发和分发领域。它主要用于验证软件的来源和完整性,防止恶意篡改。易语言作为一款中国本土的编程环境,也支持对编译后的软件进行数字签名,以提高软件的可信...

    如何对驱动进行数字签名和禁用数字签名强制

    在计算机和信息技术领域,数字签名是一种用于验证软件驱动程序完整性和来源的技术。它能够保证用户安装和使用的是经过认证、未经修改的驱动程序,增强系统的安全性。对于开发者来说,为驱动进行数字签名是一项重要的...

    数字签名文件,数字签名文件

    数字签名在我们当今的信息化时代扮演着极其重要的角色。它不仅与我们的个人数据安全紧密相关,也是整个互联网环境信任体系的基石之一。本文将对数字签名的概念、实现原理、潜在的风险以及在实际应用中的重要性进行...

    数字签名添加器,数字签名添加工具

    在IT行业中,数字签名是一种重要的安全机制,广泛应用于软件验证、文档签署以及网络通信等领域。数字签名添加器或工具是用来为文件添加这种安全签名的软件,确保数据的完整性和发送者的身份不可否认性。 首先,我们...

    给CAB文件加上数字签名

    #### 二、为什么要对CAB文件进行数字签名? 数字签名可以确保文件的完整性和来源的真实性,这对于ActiveX控件尤其重要。因为这些控件通常具有较高的系统权限,如果被篡改或替换,可能会导致严重的安全问题。通过...

    文件数字签名添加工具,数字签名复制工具

    在IT领域,数字签名是一种重要的安全机制,它用于验证文件的完整性和来源的可靠性。本文将深入探讨“文件数字签名添加工具”以及如何利用这样的工具进行数字签名的复制。 首先,我们来理解数字签名的基本概念。数字...

    数字签名添加器 数字签名添加器

    数字签名在IT行业中扮演着至关重要的角色,尤其是在软件开发、数据安全和电子交易等领域。它是一种先进的加密技术,用于验证文件或代码的完整性和发送者的身份。数字签名添加器是专门设计用来为软件或文档添加这种...

    XP数字签名工具用于数字签名

    在IT领域,数字签名是一种重要的安全机制,它在软件开发、数据传输以及系统安全中扮演着关键角色。本文将深入探讨“XP数字签名工具”及其在数字签名过程中的应用。 首先,我们需要理解数字签名的基本概念。数字签名...

    获取数字签名信息

    在IT行业中,数字签名是一种重要的安全机制,用于验证软件或数据的完整性和来源。当我们谈论“获取数字签名信息”时,通常是指通过编程接口(如DLL接口)来访问和解析包含在可执行文件或库中的数字签名数据。下面将...

    基于RSA算法的数字签名系统 C#实现

    在IT领域,数字签名是一种重要的安全机制,它用于验证数据的完整性和发送者的身份。这里我们聚焦于一个基于RSA算法的数字签名系统,该系统已用C#编程语言实现。RSA算法是公钥密码学中的基石,而数字签名则是其在确保...

Global site tag (gtag.js) - Google Analytics