`

三种加密算法介绍

 
阅读更多
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法。

对称加密算法 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES和IDEA等。美国国家标准局倡导的AES即将作为新标准取代DES。

不对称加密算法不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙―公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。

不可逆加密算法 不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。
分享到:
评论

相关推荐

    OpenSSL对称加密算法中如何添加新算法

    三、添加 IDEA 加密算法 IDEA 加密算法是一个常用的对称加密算法。下面我们将介绍如何添加 IDEA 加密算法: #ifndef NO_IDEA EVP_add_cipher(EVP_idea_ecb()); /* 添加 EBC 加密模式 */ EVP_add_cipher(EVP_idea_...

    字符串加密算法

    本文将深入探讨两个常见的对称加密算法:AES(高级加密标准)和BlowFish,并结合Qt框架介绍如何实现它们的加密和解密功能。同时,我们将讨论如何将这些算法封装成动态库以便于使用。 AES(Advanced Encryption ...

    java常用几种加密算法

    本文将详细介绍几种常用的Java加密算法及其应用实例,包括MD5、SHA及RSA。 #### 1. MD5加密 **简介**:MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据转换成一个固定长度...

    常用的加密算法名称及介绍

    常用的加密算法名称及介绍 在信息安全领域中,加密算法是保护数据安全的重要手段。常用的加密算法有对称加密算法、非对称加密算法、散列算法和Base64加密算法等。 一、对称加密算法 对称加密算法是指加密和解密...

    21种加密算法

    以下是21种常见的加密算法及其简要介绍: 1. **DES(Data Encryption Standard)**:一种古老的对称加密算法,使用56位密钥,因其安全性较低,现在主要作为教学示例。 2. **3DES(Triple DES)**:为增强DES的安全...

    RSA加密算法实验报告.pdf

    本实验报告主要介绍了RSA加密算法的实现和原理,包括密钥对的产生、加密和解密过程、数字签名等。下面是该实验报告的详细知识点总结: 一、RSA加密算法的原理 RSA加密算法是基于大数分解问题的安全性,公钥和私钥...

    加密算法工具类

    本文将详细介绍标题中提到的"加密算法工具类",包括MD5、DES3、DES、AES、BASE64以及SHA这七种常见的加密算法,并讨论它们在Java环境中的应用。 首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数...

    JAVA 加密算法(很好的算法,经典摘要)

    以上是Java加密算法的基本介绍,实际应用中,开发者应根据具体需求选择合适的加密算法,并确保遵循最佳实践,以保障数据的安全。在使用过程中,可以参考Java提供的API文档和示例代码,以便更好地理解和实现这些算法...

    散列函数,对称加密算法,公钥密码算法的加密算法原理

    DES 加密算法可以分为三个阶段:初始置换、计算函数 F 的 16 次迭代和逆置换。计算函数 F 是 DES 加密算法的核心,使用 48 位的子密钥 Ki 和 32 位的比特串 Ri-1 通过扩展函数 E、置换函数 P 和 S 盒计算出 32 位的...

    C# Desc加密算法

    **DESC 加密算法**(即 Data Encryption Standard Cipher)是一种对称加密算法,它采用相同的密钥进行加密和解密操作。DESC 是 DES(Data Encryption Standard)的一个变体,通常指的是 DES 在某些特定模式下的应用...

    java 加密算法及原理.jar

    以下将详细介绍几种常见的Java加密算法及其工作原理。 1. **对称加密算法** 对称加密算法使用相同的密钥进行加密和解密,速度快,效率高,适合大量数据的处理。Java中内置了DES(Data Encryption Standard)、3DES...

    java加密算法实现

    本文将详细介绍Java中常见的加密算法的实现,以及如何在JDK 1.8环境下进行操作。 1. **对称加密算法** 对称加密是最基础的加密方式,使用相同的密钥进行加密和解密。Java中提供了`javax.crypto`包来支持此类算法,...

    c#常用加密算法.pdf

    根据提供的文件信息,本文将详细解析C#中几种常用的加密算法,包括MD5、RC2以及RSA,并重点介绍这些加密算法的基本概念、应用场景及其在C#中的具体实现方式。 ### 一、MD5加密算法 #### 1.1 概述 MD5(Message-...

    常用加密算法演示

    在这个“常用加密算法演示”中,我们主要探讨了三种常见的加密算法:SHA256加盐加密、AES ECB加密以及AES CBC加密。下面将详细介绍这些加密算法及其特点。 首先,SHA256是一种广泛使用的哈希函数,用于生成固定长度...

    python之des加密算法

    根据提供的文件信息,本文将重点介绍Python中的DES加密算法,并简要提及MD5加密算法。同时,文中还将涉及Python中的图形界面编程库Tkinter的基本用法。以下是对这些知识点的详细解析。 ### 一、Python中的DES加密...

    Java实现的对称加密算法AES定义与用法详解

    下面我们将详细介绍Java实现的对称加密算法AES的定义、特点、用法及使用场景。 一、AES的定义 AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,使用同一个密钥进行加密和解密。AES算法的...

    RSA加密算法介绍原理及安全性分析

    RSA 加密算法介绍原理及安全性分析 RSA 加密算法是基于大数分解难题的公钥加密算法,由 Ron Rivest、Adi Shamir 和 Leonard Adleman 三人在 1978 年提出的。RSA 算法的安全性基于两个大素数的乘积难以分解的难题上...

    椭圆曲线加密算法及实例分析

    本文将详细介绍椭圆曲线加密算法的基本原理,并通过一个具体实例来展示其工作过程。 #### 二、椭圆曲线 ##### 2.1 椭圆曲线定义 椭圆曲线是一种特殊的代数曲线,通常定义在一个有限域上。椭圆曲线可以通过...

    常用加密算法DLL库

    本文将详细介绍标题中提到的几种常见加密算法,以及如何在VC++6.0环境下使用DLL库进行操作。 首先,我们来看看标题中涉及的五种加密算法: 1. **AES(Advanced Encryption Standard)**:高级加密标准,是目前最...

Global site tag (gtag.js) - Google Analytics