Rabin算法是一種基於模平方和模平方根的非對稱加密算法。
0x01 加密過程
設私鑰p、q為兩素數,公鑰n=p*q。對於明文m和密文c,定義以下加密過程(公鑰加密過程):

0x02 解密過程
根據以下公式計算出m
p和m
q:

根據以下公式推導出一個可用的y
p和y
q:

根據以下公式計算最終結果:
可以證明每一個密文對應四個原文,而真正的原文一般需要根據驗證碼來對應。