`
ldb19890624
  • 浏览: 243689 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

雷神的微软平台安全宝典---第二章 RSA和AES

 
阅读更多

RSA是一种非对称加密算法,这意味着它需要一个密钥加密数据,另一个不同的密钥解密数据。这种加密算法的计算量不容小视,通常会导致处理器资源紧张,而且使用相同长度的密钥加密和解密数据的速度也比对称加密算法慢。因此人们通常选择的策略是使用AES算法加密文件数据,RSA算法则被用来加密AES算法的密钥:用公有密钥加密AES密钥,用私有密钥解密AES密钥。每当一个用户被加入到拥有加密文件权限的用户列表中时,系统就会生成一个新的AES密钥,然后用每个用户的(RSA)公有密钥对这个AES密钥加密,得到对应这个用户的加密过的AES密钥,只有这个用户可以对这个加密过的AES密钥解密。

之所以采取这种策略,是因为目前RSA加密算法一次能加密的最大数据量受制于密钥长度。1024比特的密钥能够加密大约116字节的数据,这确实不够多,即使是使用2048比特的密钥也只能加密大约245字节的数据。当然,根本原因也正是RSA算法所要求的必须用公有密钥加密的数据才能被对应的私有密钥解密。AES算法则没有最大数据量的限制,AES密钥只用来加密数据分组,任意长度的文件都可以被AES加密算法分组、加密后写入到新的文件中。这种混合使用RSA和AES的模式会导致两种类型的攻击,一种是针对RSA密钥,另一种是针对AES密钥。如果能够破解AES密钥,则加密它的RSA密钥的强度就变得无关紧要,而这正是使用强密钥的原因。下面的例子就是一个256比特的AES密钥,经过2048比特的RSA密钥加密后再用base64编码:

f57O+Lw5e7ZPmrvAmM4j5ykL6vUbjoo8jWMAOXY4uRgtqVJBiKmAjbEzN
C7q21E5deKfjFkDt2sYqYDE6T0DRwUOS1wr1ivXqVVVkvyOS/62cBeLP
Eitl0FoVnGPKbhOfDlujTsp9yw1Z9N2APLwh/Zyzgp8GAK2nZvzBt6oE
Vjtvz1K1GxZYGg4QxZ7AWAIfAU2eXTpoHC/wuYSed3EV62or8pYnFHen
NF94sLdqZcOBmE2tatXhCTUN/mTgaMqZJuuTIPRd+dHVMBeVYDw8v4sD
oPN2DwjDJvSdAnu59rQohnYHEtHTb9ssW8fKVAWN+ZCDIaPC69dKq672
C6q4A==

实际密钥本身要比这个例子小的多,但是你要有正确的认识,简单使用bananadog做为密码生成AES密钥,要比不使用单词密码组合的强密钥更容易被暴力破解。2048比特的RSA密钥本质上是很难破解的,以下就展示了一个用base64编码过的2048比特私有密钥,对应的公有密钥可以用一个C#版本的RSA加密服务平台生成:

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
</EncPrivateKey><KeyHash>8k9pO0ZLN8zNUYkx7xH8zNdqctqXkn/
LV6EQLruN6JY=</KeyHash><KeyNaCl>MuIDM+EhC/21c1rzE6Y3nQ==

对这个密钥暴力破解需要花很长时间,这个时间基本上是个天文数字。即使考虑到硬件发展的“摩尔定律”,分解一个2048比特的RSA密钥仍然被认为是不可能的,可以想象,当这个密钥被破解的时候,我们每个人都可以在宇宙尽头的餐馆拥有一个靠窗的座位(《宇宙尽头的餐馆》是一部科幻小说,《银河系漫游指南》的姊妹篇,行文幽默,推荐阅读)。当然,这只是现在的情况,没有人知道将来会是什么情况。图 2.3 的示意图展示了这种模型,AES只是做为一种对称加密算法被列出,当然也可以配置成其它加密算法,比如椭圆曲线加密算法。我设计并实现了一个针对文件加密的公开平台,是一个免费的windows应用程序,我称之为 Thor’s Godly Privacy (TGP)。

提示:
因为种种原因,我不喜欢Gnu Privacy Guard标准,同样也不喜欢与之对应的商业版的Pretty Good Privacy(PGP),所以我写了TGP。TGP使用了不同的加密数据传递方法和密钥分发方式,关于TGP更多的细节可以访问这个网站:
www.hammerofgod.com/tgp.aspx

分享到:
评论

相关推荐

    《雷神的微软平台安全宝典》英文版章节

    ### 《雷神的微软平台安全宝典》英文版章节:第二章——互联网信息服务安全与文件访问控制 #### 概述 本章节深入探讨了在微软平台上如何利用一系列技术和工具来增强系统的安全性,特别是针对互联网信息服务(IIS)...

    rsa-aes-python-master_rsa_

    总之,"rsa-aes-python-master_rsa_"项目涉及了Python实现的RSA加密和解码技术,可能还包括AES加密的配合使用,以及可能的密钥管理策略,这些都是信息安全领域的重要知识点,对于理解加密原理和实现安全通信具有重要...

    rsa-aes.zip

    在"rsa-aes.zip"中,Base64可能用于将加密后的AES密文转化为可打印和传输的文本形式。 接下来,向量解析在加密领域中通常指的是初始化向量(IV)。在AES等块加密算法中,每个数据块都是独立加密的,而初始化向量...

    rsa-aes-java-master_rsa_

    这个“rsa-aes-java-master”项目可能是为了在Java环境中实现RSA算法的一个测试或示例。下面我们将深入探讨RSA算法及其在Java中的实现。 **RSA算法原理:** RSA是由Ron Rivest、Adi Shamir和Leonard Adleman三位...

    android开发RSA-AES-混合加密Demo

    总之,"android开发RSA-AES-混合加密Demo"是一个实用的教学实例,它展示了如何在Android应用中结合使用RSA和AES加密技术来保障用户数据的安全。通过学习和理解这个Demo,开发者能够更好地理解非对称加密和对称加密的...

    Android利用C++实现RSA-DES-AES-BASE64-MD5

    在Android平台上,开发人员经常需要处理加密和解密任务,以确保数据的安全传输和存储。本文将详细探讨如何使用C++通过JNI(Java Native Interface)在Android应用中实现RSA、DES、AES、BASE64和MD5算法。这些是信息...

    rsa与aes混合加密java实现

    这种方式称为RSA-AES混合加密。 具体步骤如下: 1. **生成密钥对**:使用RSA生成一对公钥和私钥。 2. **生成AES密钥**:创建一个随机的AES密钥。 3. **AES加密**:使用AES密钥加密原始数据。 4. **RSA加密AES密钥**...

    RSA和AES混合加密demo

    本"RSA和AES混合加密demo"旨在展示如何结合这两种算法,以提供更为强大的数据安全性。 RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它使用一对公钥和私钥进行加密和解密。公钥可公开,用于加密数据,而私钥...

    RSA+AES加密demo

    "RSA+AES加密demo"是一个示例项目,展示了如何结合使用RSA和AES两种强大的加密算法以增强数据的安全性。这种混合加密策略通常用于现代应用程序,特别是对于需要高度安全性的场景,如在线支付、数据传输或存储敏感...

    RSA-AES-SHA1-DES.rar_DES-SHA1_aes c_des aes_des aes_rsa

    这个名为"RSA-AES-SHA1-DES.rar_DES-SHA1_aes c_des aes_rsa"的压缩包包含了一系列C++实现的加密算法,包括AES(高级加密标准)、RSA(公钥加密技术)、SHA1(安全散列算法1)和DES(数据加密标准)。让我们逐一深入...

    RSA和AES工具

    RSA和AES工具是两种在信息安全领域广泛使用的加密算法,它们在Java、JavaWeb以及Android开发中都有着重要的应用。本文将详细介绍这两种加密算法及其在不同平台上的实现。 首先,RSA(Rivest-Shamir-Adleman)是一种...

    Python库 | hybrid_rsa_aes-0.2.10-py3-none-any.whl

    Python库`hybrid_rsa_aes-0.2.10-py3-none-any.whl`是一个用于加密和解密数据的工具,它结合了RSA和AES两种加密算法,以提供更安全的数据保护。在这个特定的版本0.2.10中,库是针对Python 3编写的,且适用于任何平台...

    AES和RSA加密学习Demo

    总之,通过这个Demo,开发者可以了解如何在Java和Android平台上集成AES和RSA加密,提升应用程序的安全性。同时,对于理解加密算法的工作原理和实际应用,也是很好的学习资源。在实际开发中,应根据需求和性能考虑...

    android AES rsa 混合加密

    `RSA-AES混合加密Demo`这个项目可能包含了一个示例程序,演示了如何在Android环境中进行AES和RSA的混合加密操作。在这个Demo中,可能会包括创建密钥对、加密和解密的步骤,以及如何在实际应用中使用这些功能。 5. *...

    stm32-cryp-lib 以及说明文档 加密库函数 RSA AES

    总的来说,STM32-CRYPLIB是一个强大的加密工具集,能够满足开发人员在STM32平台上进行数据加密和安全通信的各种需求。开发者需要熟悉各种加密算法的基本原理,并结合官方文档,才能充分利用这个库来增强系统的安全性...

    rsa-aes-md5-crypt.zip

    综上,"rsa-aes-md5-crypt.zip"这个压缩包可能包含了一个示例或工具,用于演示如何在JavaScript环境中利用jsrsasign库进行RSA公私钥生成、RSA加解密签名验签、AES加解密以及MD5哈希计算。开发者可以通过解压文件并...

    springboot-rsa-aes-demo:RSA和AES前端数据加密,对数据解密,以及返回参数加密,前端解密,完整原始文件,由于是城市表面常用的是这二种加解密方式,所以就写了这二种,每天会自动更换密关键字,后续我会陆续更新其他的加解密算法,技术点采用在新的spring-boot 2.3.1版本+ mybatisPlus + mysql数据库

    -springboot-rsa-aes-demo RSA和AES前端数据加密,对其进行数据解密,以及返回参数加密,前端解密,完整原始文件,由于是城市表面常用的是这二种加解密方式,所以就写了这二种,每天会自动更换密密钥,后续我会陆续...

    AES&RSA;加解密程序(java小白写的)

    加解密程序"指的是两种广泛使用的加密算法,即高级加密标准(AES)和 Rivest-Shamir-Adleman(RSA)算法,它们在信息安全领域中用于保护数据的隐私和安全。AES是一种对称加密算法,而RSA是一种非对称加密算法,它们...

    RSA和AES解密-js版.zip

    在给定的"RSA和AES解密-js版.zip"压缩包文件中,我们重点关注两种常见的加密算法:RSA和AES,并且它们在JavaScript环境中的实现。这两种算法在前端开发中常用于保护用户敏感信息,如密码、个人信息等。 **RSA算法**...

    RSA2048、AES方式加密后端数据demo

    这种方式称为“密钥封装”,可以兼顾速度和安全性。 总的来说,这个"RSA2048、AES方式加密后端数据demo"项目提供了一个很好的学习平台,展示了如何在SpringBoot环境中集成和使用这两种加密算法,以保护后端数据的...

Global site tag (gtag.js) - Google Analytics