Rabin加密算法

2023-10-19 16:59
文章标签 加密算法 rabin

本文主要是介绍Rabin加密算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

一、Rabin加密算法

Rabin算法是一种基于模平方和模平方根的非对称加密算法

(称a为x 的算术平方,称x为a的算术平方根)

(称a为x模m时的平方,称x为模m时的平方根)

 

1.加密

公式为:C=m2mod n ,其中C为密文,m为明文.随机取两个大素数p、q,满足p≡q≡3mod4 ,即这两个素数形式为4k+3,计算n=pq,以n作为公钥,p、q作为私钥。

            String sn = 442454454344642494;//明文BigInteger m=new BigInteger(sn);//取两个大素数,设置密钥p、q的值BigInteger p = new BigInteger("199999900000000099");BigInteger q = new BigInteger("199999900000000171");//算出n的值BigInteger n = p.multiply(q);//加密BigInteger f=m.pow(2);BigInteger c=f.mod(n);//得到密文String result=c.toString();

2.解密

解密:在已知私钥p和q时求密文,  , ,在p≡q≡3mod4 时,  ,接着根据辗转相除法得出   ,使其满足: ,最后根据孙子定理,最后计算出的明文为:

值得注意的是该加密函数并不是一个单射,对于任意的一个密文,有四个可能的明文与之对应,根据校验码可以在明文空间中取得真正的明文,或者在密文前面添加时间戳等方法进行明文校验。求解x2≡C mod n 与分解n是等价的,所以破译Rabin密码的困难程度等价于大整数分解的困难问题。


总结

Rabin加密算法的效率非常高,因为仅需一次mod平方运算,但是缺点是接收者需要从四种可能的情况下选择一个正确的明文,这种不确定问题可以通过预先增加定义原始明文消息冗余来解决(例如,复制对应的比特位在固定位置,或者在明文前面添加时间戳,或者添加特定字符串在固定位置)明文消息中仅有一个符合冗余规则,即可辨认原始明文消息,也可以解决一个密文对于多个明文的问题。解密所需的算法还有扩展欧几里得算法,以及孙子定理。

这篇关于Rabin加密算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/241134

相关文章

AES加密算法说明

首先,我们得了解AES加密算法的一些基本概念。AES是一种对称加密算法,所谓对称,是说它的加密、解密过程使用相同的密钥。还有非对称加密算法,例如RSA,加密解密使用的是公私钥对。 AES同时是一种分组加密算法,分组的长度一般是16字节(128bit)。分组是什么意思呢?假设我有一段很长的明文T,我没法用AES加密整个T,只能将T分成若干16byte的明文组,接着对这些明文组逐个进行加密,得到一堆密

【SM系列】简单说说SM2,SM3,SM4加密算法

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是SM2加密?2.1 应用场景2.2 与RSA算法的区别 三、什么是SM3加密?3.1 应用场景 四、什么是SM4加密?4.1 应用场景 五、最后 开篇说明 之前我们说过了几种常见加密算法,今天我

加密算法种类

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和哈希算法。 1. 对     称     加       密:加密和解密使用相同密钥的加密算法。     优          缺          点:对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。     常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。 2

python实现椭圆曲线加密算法(ECC)

目录 椭圆曲线加密算法(ECC)简介ECC的数学基础椭圆曲线的定义ECC的基本操作 ECC加密和解密流程Python面向对象实现ECC加密和解密代码解释场景应用:安全通信总结 椭圆曲线加密算法(ECC)简介 椭圆曲线加密算法(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学结构的公钥加密算法。ECC以其较高的安全性和较小的密钥长度而闻名

国际非对称加密算法

国际非对称加密 RSA算法原理 RSA算法是一种非对称加密算法,它的安全性基于大数分解的困难性。RSA算法的核心是选择两个大质数p和q,计算它们的乘积n=pq,然后选择一个整数e,使得1<e<φ(n)且e与φ(n)互质,其中φ(n)=(p-1)(q-1)。接着计算d,使得d*e mod φ(n)=1,d称为e的模反元素。公钥为(n,e),私钥为(n,d)。 非对称特征 非对称加密算法有两个密

对称加密算法DES、3DES和AES

学习交流关注微信公众号:钟渊博客 1、对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,

【加密算法】有关国密4加密算法的实现

今天在对接乐企的时候,需要用到国密4算法对入参进行加密 之后对出参进行解密,乐企平台提供了算法实现,具体如下: import org.apache.commons.lang3.ObjectUtils;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.pqc.math.linear

【转载】DES加密算法原理

DES算法理论 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼 (Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的「多重加密有效性理论」创立的,后於1977年由美国国家标準局颁布的数据加密标準。 DES密码实际上是Lucifer密码的进一步发展。它是一种採用传统加密方法的区组密码。它的算法是对称的,既可用於加密又

安卓文件加密 (File-Based Encryption, FBE) 加密算法--AES-256-XTS

标签: File-Based Encryption加密算法; AES-256-XTS; 安卓文件加密 (File-Based Encryption, FBE) 加密算法详解 1. 什么是文件加密(FBE)? 文件加密(File-Based Encryption, FBE)是Android在7.0(Nougat)及更高版本中引入的一种加密机制,它允许不同的文件使用不同的加密密钥进行

Bcrypt加密算法_案例_好处_资料下载地址

Bcrypt盐值加密 文章目录 Bcrypt盐值加密1.Bcrypt加密算法的好处2.案例代码3.jar包下载地址4.Bcrypt中密码对比的过程5.MD5中密码对比的过程 1.Bcrypt加密算法的好处 (1)Bcrypt对密码管理非常方便,采用hash+salt的方式,使用密码生成salt和hash,并将salt加入到hash里面去,从而使得salt不需要单独保存,同时嫌