RSA 1024 是指公钥及私钥分别是 1024bit,也就是 1024/8 = 128Bytes。

RSA 原理

RSA 算法密钥长度的选择是安全性和程序性能平衡的结果,密钥长度越长,安全性越好,加密解密所需时间越长。

1、非对称加密算法中 1024bit 密钥的强度相当于对称加密算法 80bit 密钥的强度;

2、密钥长度增长一倍,公钥操作所需时间增加约 4 倍,私钥操作所需时间增加约 8 倍,公私钥生成时间约增长 16 倍;
 
3、明文长度

一次能加密的明文长度与密钥长度成正比:

len_in_byte(raw_data) = len_in_bit(key)/8 -11,如 1024bit 的密钥,一次能加密的内容长度为 1024/8 -11 = 117 byte。

所以非对称加密一般都用于加密对称加密算法的密钥,而不是直接加密内容。

注:

明文长度小于等于密钥长度 128Bytes - 11 这个说法本身不太准确,会让人产生 RSA 1024 只能加密 117 字节长度明文的误解。

实际上,RSA 算法本身要求加密内容也就是明文长度 m 必须满足 0<m<n,也就是说内容这个大整数不能超过 n,否则就出错。

那么如果 m=0 是什么结果?

普遍 RSA 加密器会直接返回全 0 结果,如果 m>n,运算就会出错。

因此,RSA 实际可加密的明文长度最大也是 1024bits,但问题就来了:

如果小于这个长度怎么办?

就需要进行 padding,因为如果没有 padding 用户无法确分解密后内容的真实长度,字符串之类的内容问题还不大,以 0 作为结束符,便于区分。

但对二进制数据就很难理解,因为不确定后面的 0 是内容还是内容结束符。

只要用到 padding,那么就会占用实际的明文长度,我们一般使用的 padding 标准有 NoPPadding、OAEPPadding、PKCS1Padding 等。

其中 PKCS#1 建议的 padding 就占用了 11 个字节,于是才有 117 字节的说法。

如果大于这个长度怎么办?

很多算法的 padding 往往是在后边的,但 PKCS 的 padding 则是在前面的,此为有意设计,有意的把第一个字节置 0 以确保 m 的值小于 n。

这样,128字节(1024bits)- 11 字节正好是117字节,但对于 RSA 加密来讲,padding 也是参与加密的。

所以,依然按照 RSA 1024 实际的明文只有 117 字节。

关于 PKCS#1 padding 规范可参考:RFC2313 chapter 8.1。

我们在把明文送给 RSA 加密器前,要确认这个值是不是大于 n,也就是如果接近 n 位长,那么需要先 padding 再分段加密。

除非我们是“定长定量自己可控可理解”的加密则不需要 padding。

4、秘文长度

加密后密文的长度为密钥的长度,如密钥长度为 1024b(128Byte),最后生成的密文固定为 1024b(128Byte)

密文长度就是给定符合条件的明文加密出来的结果位长,这个可以确定,加密后的密文位长跟密钥的位长度是相同的,因为加密公式:

C=(P^e)%n

所以,C 最大值就是 n-1,所以不可能超过 n 的位数。

尽管可能小于 n 的位数,但从传输和存储角度,仍然是按照标准位长来进行的。

因此,即使我们加密一字节的明文,运算出来的结果也要按照标准位长来使用。

refer:

https://blog.csdn.net/lvxiangan/article/details/45487943
http://blog.sina.com.cn/s/blog_4fcd1ea301012o4q.html
————————————————
版权声明:本文为CSDN博主「简一商业」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liwei16611/article/details/83751851

加密与安全:非对称加密算法 RSA 1024 公钥、秘钥、明文和密文长度的更多相关文章

  1. Java进阶(七)Java加密技术之非对称加密算法RSA

    Java加密技术(四)--非对称加密算法RSA 非对称加密算法--RSA 基本概念 非对称加密算法是一种密钥的保密方法. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(priv ...

  2. Java加密技术(四)非对称加密算法RSA

    RSA      这样的算法1978年就出现了.它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作.也非常流行.算法的名字以发明者的名字命名:Ron Rivest, AdiShamir ...

  3. 非对称加密算法-RSA算法

    一.概述 1.RSA是基于大数因子分解难题.目前各种主流计算机语言都支持RSA算法的实现 2.java6支持RSA算法 3.RSA算法可以用于数据加密和数字签名 4.RSA算法相对于DES/AES等对 ...

  4. JAVA 非对称加密算法RSA

    非对称加密算法 RSA过程 : 以甲乙双方为例 1.初始化密钥 构建密钥对,生成公钥.私钥保存到keymap中 KeyPairGenerator ---> KeyPair --> RSAP ...

  5. 非对称加密算法RSA 学习

    非对称加密算法RSA 学习 RSA加密算法是一种非对称加密算法.RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Ad ...

  6. 非对称加密算法RSA使用注意事项

    原文:非对称加密算法RSA使用注意事项 第一个问题,也是最重要的一个——RSA无法对超过117字节的数据进行加密!切记!其实也勿需要求对更大数据的加密,虽然网上已经有相关解决方案,比如BigInteg ...

  7. JAVA的非对称加密算法RSA——加密和解密

    原文转载至:https://www.cnblogs.com/OnlyCT/p/6586856.html 第一部分:RSA算法原理与加密解密 一.RSA加密过程简述 A和B进行加密通信时,B首先要生成一 ...

  8. 非对称加密算法-RSA

    注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与D ...

  9. 第十二章 非对称加密算法-RSA

    注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与D ...

  10. openssl 非对称加密算法RSA命令详解

    1.非对称加密算法概述 非对称加密算法也称公开密钥算法,其解决了对称加密算法密钥分配的问题,非对称加密算法基本特点如下: 1.加密密钥和解密密钥不同 2.密钥对中的一个密钥可以公开 3.根据公开密钥很 ...

随机推荐

  1. 基于Wireshark的ARP协议分析和IP报文、ICMP报文的分析|网络数据抓包|课程设计|traceroute|ping|

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...

  2. ASP.NET Core 6.0+Vue.js 3 实战开发(视频)

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章或视频能成为你成长路上的垫脚石. 录制视频的体验 这是一个收费的视频,很抱歉,让您失望了. 我尝试做点收费的视频,不是因为我不 ...

  3. 小团队如何妙用 JuiceFS

    早些年还在 ENJOY 的时候, 就已经在用 JuiceFS, 并且一路伴随着我工作过的四家小公司, 这玩意对我来说, 已经成了理所应当不可或缺的基础设施, 对于我服务过的小团队而言, 更是实实在在的 ...

  4. ch57x/ch58x开启仿真

    本次使用的平台是MounRiver Studio,使用的是WCH的CH582m与WCH-LinkE 仿真之前确保LinkE处在Risc-V模式下  空闲时蓝灯常灭 Step1:首先通过ISP工具开启两 ...

  5. 阿里二面:SpringBoot可以同时处理多少个请求?当场懵了。。。。

    SpringBoot以其简洁高效的开发方式和强大的内嵌容器特性,为开发者提供了构建高性能后端服务的便利.然而,当面临高并发场景时,理解并合理配置Spring Boot应用以达到最佳的并发处理能力至关重 ...

  6. delphi 异常测试(我自己捕捉)

    由于最近的短信模块老是报SocketErorr错误,有的时候也不确定是哪里有问题,影响短信的销售,所以这里这样写,把出现的异常捕捉到显示出来.然后跳过这个不发送 ------------------- ...

  7. .NET 云原生架构师训练营(模块二 基础巩固 EF Core 介绍)--学习笔记

    2.4.2 EF Core -- 介绍 ORM Repository 仓储 UnitOfWork 工作单元 DB Context 与 DB Set EF Core快速开始示例 ORM ORM:obje ...

  8. 开启未来创新之门:.NET Conf China 2023 精彩回顾及资料下载

    2023年12月16日-17日,一年一度的 .NET Conf China 2023 中国 .NET 开发者大会在北京盛大举办!大会以第一天主会场 + AI..NET 8.云原生.IoT.前端& ...

  9. NC16591 [NOIP2010]关押罪犯

    题目链接 题目 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气 ...

  10. pip指定镜像安装

    清华大学开源软件镜像站