`
8821249
  • 浏览: 68866 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

加密解密算法与通讯安全(五)

 
阅读更多

数字签名

以上三种算法都有防篡改的功能,但摘要算法、和对称加密算法若要防篡改,则需要交换密钥,这又是一件麻烦事儿。所以一般在单纯的防篡改的需求上,都是使用非对称加密算法。但若是对整个明文进行加密的话,加密过程势必消耗大量时间,所以就诞生了数字签名。

数字签名,本质上就是非对称加密算法,但出于解密运行效率的考虑,并是不对明文进行加密,而是对明文的摘要加密,生成“数字串”,并将“数字串”附在明文之后。

数字签名实际上是非对称加密算法的一个妥协方案,为了提高加解密的效率,舍弃了非对称加密算法对截获威胁的优势。

 

通讯模型

先来看非对称加密算法的第一种通讯模型,由客户端生成一堆密钥——公钥Gkey和私钥Skey,并使用Skey对明文data进行加密,获得密文C。将CGkey发送给服务器端,服务器端使用GkeyC进行解密。



 

这种通讯模型,只需要一次请求/响应过程,但却无法防范截获威胁,由于最后的密文C的解密用的是公钥Gkey,而Gkey在通过网络传递,所以攻击者可以很方便的对数据进行截获、解密,获得明文data

但这种通讯模型,对于数字签名的场景正合适,数字签名的场景并不准备防范“截获”威胁。

那么下面来看下完整的数字签名的通讯模型:服务器端生成一堆密钥,公钥Gkey和私钥Skey,在将明文data进行摘要,获得摘要串Z1,使用私钥对Z1加密,获得密文C,将CdataGkey发给服务器端,服务器端使用Gkey解密后获得Z1,重新根据data计算出摘要Z2,通过比较Z1是否等于Z2来判断数据是否被篡改。



 

以上的模型主要由两个步骤组成,摘要与非对称加密算法的应用。平常我们经常用到的签名算法,也是这两种算法的组合,比如:SHA1wthRSA,使用SHA1来做摘要,RSA做未对称加密;MD5withRSA,使用MD5做摘要算法,RSA做未对称加密;SHA1withDSADSAElGamal算法的一种改进。

  • 大小: 24.9 KB
  • 大小: 33.5 KB
分享到:
评论

相关推荐

    C语言实现DES加密解密算法

    DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 ...DES 加密解密算法的 C 语言实现需要理解字节与二进制转换、密钥处理、加密和解密操作以及基本操作等知识点。

    Java实现的RSA加密解密算法示例

    Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...

    300多种加密解密算法(C++)源代码

    300多种加密解密算法(C++)源代码 300多种加密解密算法(C++)源代码

    C语言实现加密解密算法

    本文将深入探讨如何使用C语言实现加密解密算法,并基于提供的文件信息进行讲解。 首先,C语言是一种底层编程语言,它允许直接操作内存,因此非常适合实现复杂的数学运算,如加密算法。常见的加密算法有对称加密(如...

    用C语言实现的AES加密解密算法

    AES,全称Advanced ...总之,C语言实现的AES加密解密算法是一个实用的工具,对于理解加密原理、开发安全软件或进行系统级编程都有很大的价值。然而,使用时应确保正确性,并结合适当的模式和协议来增强整体安全性。

    六个经典的PHP加密解密算法

    经典代码(带详解) 函数authcode($string, $operation, $key, ...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。

    java实现的RC4加密解密算法示例

    "java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...

    java实现MD5加密解密算法

    java实现MD5加密解密算法,java源代码~

    RSA 加密解密算法C语言 (含linux)

    总的来说,RSA加密解密算法在C语言中实现涉及到大整数运算、公钥私钥生成、加密解密过程等多个环节,结合适当的库可以构建出强大的安全工具。在Linux环境下,可以利用丰富的开源库来简化开发工作。通过深入理解这些...

    基于Logistic系统的图像模块混沌加密解密算法

    本文还对基于Logistic系统的图像模块混沌加密解密算法的安全性进行了分析。结果表明,该算法存在安全 weakness,即生成的密钥流对每个图像块保持不变,从而使得攻击者可以使用chosen plaintext attack来恢复等效密钥...

    .net加密解密算法demo

    这个" .net加密解密算法demo "提供了易于理解和使用的加密解密示例,特别适合初学者和开发者快速上手。源代码中包含了详尽的注释,使得自定义关键字成为可能,以满足不同场景下的安全需求。 首先,加密是将明文数据...

    文件加密解密算法研究与实现

    ### 文件加密解密算法研究与实现 #### 一、引言 随着信息技术的快速发展和互联网的普及,信息安全问题变得越来越重要。特别是在企业环境中,保护重要信息免受非法访问和泄露至关重要。《文件加密解密算法研究与...

    RSA 加密 解密 算法

    RSA加密解密算法,相当不错的例子,适合初学者参考

    AES加密解密算法

    实现的AES加密解密算法,高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥

    VB6加密解密算法,支持文件加密解密

    综上所述,VB6的这个加密解密程序是一个实用的工具,结合了DES和AES这两种强大的加密算法,支持用户自定义密钥,且具备文件级别的加密解密功能。它不仅提供了基本的数据安全措施,而且在VB6环境中易于理解和使用,...

    C++实现密码学 RSA加密解密算法

    RSA加密解密算法是密码学中一种常用的加密算法,以 Ron Rivest、Adi Shamir 和 Leonard Adleman 三人命名。该算法基于大数分解问题的困难性,使用公钥加密和私钥解密的方式来保护数据的安全。 该算法的基本原理是:...

    VB加密解密算法

    总之,VB加密解密算法在保护软件、数据安全方面起着重要作用。开发者应熟悉不同类型的加密算法,了解其优缺点,并能在VB环境中熟练应用,以确保信息的安全。在实际开发过程中,结合安全策略,合理使用加密技术,可以...

    c(c++)300多种加密解密算法

    此资源加密方式包括 MD2, MD5, SHA-1, HAVAL, Tiger, RIPE-MD160, MD5-MAC, HMAC, XOR-MAC, DES,IDEA, WAKE, 3-WAY, TEA, SAFER, Blowfish,SHARK, GOST, CAST-128, Square,Diamond2, Sapphire, RC2, RC5, RC6, MARS,...

    C#实现AES加密解密算法

    ### C# 实现 AES 加密解密算法 #### 概述 在计算机科学与信息安全领域,数据加密技术是一项至关重要的技术。AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称加密算法,用于保护敏感数据的...

    很强的Java加密解密算法源码.zip

    在这个"很强的Java加密解密算法源码.zip"中,我们可以深入学习如何在Java中实现3DES算法来加密和解密文件。 3DES算法是一种块加密算法,它通过三次应用DES密钥来增强安全性。基本流程如下: 1. **加密过程**:输入...

Global site tag (gtag.js) - Google Analytics