Intro
Rabin cryptosystem is a public-key cryptosystem proposed by Michael O. Rabin in 1979.
It achieves security based on the hardness of integer factorization of large numbers and features a core mechanism where, given a plaintext mmm, the encryption operation is performed in the form .
Historical Background
Emergence of Public-Key Cryptography and Subsequent Developments
What is public-key cryptography?
Public-key cryptography is a branch of cryptography in which the sender and the receiver use different keys for encryption and decryption. Unlike traditional symmetric-key cryptography, public-key cryptography employs a “public key” that is disclosed to everyone and a “private key” known only to its owner. While anyone can use the public key to encrypt a message, only the holder of the private key can decrypt it, significantly reducing the burden of securely exchanging keys in advance.
For more details, see Asymmetric key encryption.
- In 1976, Diffie and Hellman first introduced the concept of “public-key cryptography” to the world.
- In 1978, Rivest, Shamir, and Adleman proposed RSA, which quickly gained prominence.
- Shortly thereafter, in 1979, Michael O. Rabin introduced the Rabin cryptosystem, which, while similar to RSA, incorporates a distinct mathematical structure.
Mathematical Background
Difficulty of Factoring Large Integers
As with most public-key cryptosystems, the Rabin cryptosystem also relies on the hardness of factoring a large integer .
- During key generation, two large primes and are selected, and then $n= is computed.
- Because it is believed to be very difficult to find and given only , this serves as the basis for security. and
Modular Squaring and Modular Square Roots
- In the Rabin cryptosystem, the ciphertext is formed as .
- Decryption then involves solving the equation .
- Although finding without knowing the factorization of is hard, the private key holder (who knows and ) can compute it efficiently using the Chinese Remainder Theorem (CRT).
Chinese Remainder Theorem (CRT)
- During decryption, given and , compute and , and then find and .
- Finally, use the CRT to combine these results and recover the decrypted plaintext .
Rabin Algorithm
Unlike the RSA cryptosystem, which typically selects a public exponent for encryption, the Rabin cryptosystem fixes the public exponent at . As a result, its encryption process can be faster than RSA due to the smaller exponent.
Key Generation
- Choose two distinct primes and of the form ,for some integer .
- Compute .
- The private key is , and the public key is .
In summary, the key elements in the Rabin cryptosystem are:
- Public Key:
- Private Key:
Encryption
- Given a plaintext and the public key .
- Compute the ciphertext:
Decryption
- Using the private key , compute:
- Solve the corresponding quadratic congruences for and :
- Use the Chinese Remainder Theorem (CRT) to combine these results:
- One of the values among is the actual plaintext.
Comparison of Rabin Cryptosystem and RSA
The Rabin cryptosystem appears structurally similar to RSA—indeed, one might view Rabin as a special case of RSA where the public exponent is . However, because 2 is not coprime to , the Rabin cryptosystem is not formally a subset of RSA.
While the security of Rabin is equivalent to the integer factorization problem, RSA’s security has only been shown to be no harder than factorization (i.e., it is not proven to be exactly equivalent).
Moreover, unlike RSA—which produces a unique output during decryption—the Rabin cryptosystem can yield up to four possible plaintext candidates. Thus, an additional step is required to identify the correct plaintext among those four candidates.
Another key difference lies in the vulnerability to chosen-ciphertext attacks. Under such an attack, it is theoretically possible for an adversary to recover the entire private key in Rabin. In contrast, for textbook RSA, while an attacker can learn a given plaintext, no known attack fully recovers the private key.
In conclusion, although Rabin has a clean theoretical underpinning that attracts academic interest, it has seen comparatively less adoption in industry and standardization than RSA. The practical limitations—chiefly the need to handle multiple decryption outputs and the associated complexity of secure padding—mean it is not widely deployed in production environments.