一种 公钥密码学 算法,它使用 素因数分解 作为 陷门单向函数。定义
(1)
|
对于 和
素数。 还要定义一个私钥
和一个公钥
使得
(2)
|
(3)
|
其中 是 欧拉函数,
表示 最大公约数 (所以
意味着
和
是 互质), 并且
是一个 同余。 令消息被转换为数字
。 然后发送者公开
和
并发送
(4)
|
为了解码,接收者(知道 )计算
(5)
|
因为 是一个 整数。 为了破解代码,必须找到
。 但这需要因式分解
因为
(6)
|
应该选择 和
,使得
和
可以被大的 素数 整除,否则 Pollard p-1 因式分解方法 或 Williams p+1 因式分解方法 可能会很容易地分解
。 最好
也很大并且可以被大的 素数 整除。
如果 的单元具有小的 域阶 (Simmons 和 Norris 1977, Meijer 1996),则有可能通过重复加密来破解密码系统,其中
是 0 到
之间的 整数环 在加法和乘法下 (模
)。Meijer (1996) 表明,对于以下 形式 的因子,几乎每个加密指数
都是安全的,不会通过重复加密被破解
(7)
| |||
(8)
|
其中
(9)
| |||
(10)
|
并且 ,
,
,
,
, 和
都是 素数。 在这种情况下,
(11)
| |||
(12)
|
Meijer (1996) 还建议 和
应该具有
阶数。
使用 RSA 系统,可以在不泄露其私有代码的情况下,将发送者的身份识别为真实的。