首页 > 其他分享 >RSA加密解密签名验签

RSA加密解密签名验签

时间:2025-01-09 16:29:25浏览次数:3  
标签:加密 字节 0x00 RSA 明文 模数 解密 验签

NOTE

  1. RSA算法是块运算,分块大小为模数N的字节数
  2. RSA算法输出的密文和签名长度与模数N一致
  3. 加密时可接受的明文长度受限于模数N长度以及所选填充方式
  4. 如果待加密明文长度大于可接受长度时,需要进行分块处理
  5. 以下功能依赖openssl实现

加密解密

  • 加密过程
  1. 进行一些参数判断,如明文不为空,密钥不为空等
  2. 计算模数N字节数RSA_size,RSA1024是128字节,RSA2048是256字节,RSA4096是512字节
  3. 根据模数字节数以及选择的Padding方式判断明文长度是否合适。以RSA2048为例,pkcs1Padding时,明文长度最大为256-11=245个字节;oaepPadding时,明文长度最大为256-41=215个字节。
  4. 公钥加密 RSA_public_encrypt
  • 解密过程
  1. 必要参数判断,密钥不为空等
  2. 计算模数字节数RSA_size
  3. 判断输入的密文是否和模数字节数相等
  4. 私钥解密RSA_private_decrypt

签名验签

  • 签名过程
  1. 必要入参判断
  2. 计算hash值。EVP_DigestInit、EVP_DigestUpdate、EVP_DigestFinal
  3. 签名RSA_sign
  • 验签过程
  1. 必要参数判断
  2. 计算hash值
  3. 验签RSA_verify

Padding

  • noPadding 高位填充0x00
  • pkcs1Padding      格式 0x00 || 签名加密标识 || 填充,至少8字节 || 0x00 || 明文或者原文
  1. 签名 0x00 || 0x01 || 重复0xFF || 0x00 || 原文
  2. 加密 0x00 || 0x02 || 非零随机数 || 0x00 || 明文
  • oaepPadding最优非对称加密填充-----待补充

标签:加密,字节,0x00,RSA,明文,模数,解密,验签
From: https://blog.csdn.net/summermeet/article/details/145033660

相关文章

  • go语言RSA分段加密V2501
    go语言RSA分段加密V2501,GOLANG,RSA/ECB/PKCS1Padding。 加密解析://假设私钥长度为1024,1024/8-11=117。//如果明文的长度小于117,直接全加密,然后转base64。(data.Length<=maxBlockSize)//如果明文长度大于117,则每117分一段加密,publicKey.Size()刚好是(私钥长度/8)。privateKey.......
  • rsarsa-给定pqe求私钥对密文解密
    题目:Mathiscool!UsetheRSAalgorithmtodecodethesecretmessage,c,p,q,andeareparametersfortheRSAalgorithm.p=964842302901051567659055174001042653494573763923573980064398935203985250729849139956103500916342705037010757073363335091169128......
  • 【解密三大AI:感知、增强与生成智能的未来】探讨Perceptive AI、Enhancive AI与Generat
    【解密三大AI:感知、增强与生成智能的未来】探讨PerceptiveAI、EnhanciveAI与GenerativeAI的核心概念、应用及未来影响(二)【解密三大AI:感知、增强与生成智能的未来】探讨PerceptiveAI、EnhanciveAI与GenerativeAI的核心概念、应用及未来影响(二)文章目录【解密三大A......
  • python 代码实现了一个条件生成对抗网络(Conditional Generative Adversarial Network,C
    importtensorflowastfimportnumpyasnpimportpandasaspdimportosimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromtensorflow.keras.layersimportAdd,BatchNormalizationos.environ["KMP_DUPLICATE_LIB_O......
  • ES 新特性全解密!这 25 个特性让你的代码效率飙升 50%
    分享25个能显著提升编程效率的ES新特性,让我们的代码更简洁、更优雅、更高效。1.可选链操作符(OptionalChaining)告别繁琐的空值检查,用简单的 ?. 优雅处理对象属性访问。//之前的写法conststreet=user&&user.address&&user.address.street;//现在的写法const......
  • MasterSAM downloadService存在任意文件下载漏洞(CVE-2024-55457)
    免责声明:本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在使用本......
  • Seed Lab实验:RSAPublic-Key Encryption and Signature Lab
    RSAPublic-KeyEncryptionandSignatureLab1.推导RSA私钥importgmpy2p=0xF7E75FDC469067FFDC4E847C51F452DFq=0xE85CED54AF57E53E092113E62F436F4Fe=0x0D88C3n=q*pphi=(p-1)*(q-1)d=gmpy2.invert(e,phi)print("publickey:("+hex......
  • navicat密码解密
    '''pipinstallcryptography'''fromcryptography.hazmat.primitives.ciphersimportCipher,algorithms,modesfromcryptography.hazmat.primitivesimportpaddingfromcryptography.hazmat.backendsimportdefault_backendimport......
  • 某苏人社异步JS逆向加解密分析(sm2+sm3+sm4)
    前期准备网址:aHR0cHM6Ly9ycy5qc2hyc3MuamlhbmdzdS5nb3YuY24vaW5kZXgv目标:接口请求内容加密和响应内容解密请求头加密参数Web-Encrypt-Response-Encrypt-Key和Web-Encrypt-Sign涉及内容:jsworker多线程通信axios网络请求库国密sm2、sm3、sm4Axios网址:Axios这......
  • 计算机网络•自顶向下方法:网络安全、RSA算法
    网络安全网络安全的通用定义:网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠地运行,网络服务不中断。网络中的通信安全机密性:报文内容的机密性:仅发送方和希望的接收方能够理解报文的内容通信......