# How does RSA encrypt a message? Are the message packets chained together?

This question is quite related to this one, but I am looking for more details.

I am writing a very basic implementation to demonstrate how RSA works. My current implementation generates key pairs using 64-bit integers.

I am looking for the proper method to encrypt a string. I guess the bytes are packed together (32-bits) (smaller than the modulus value), then each packet is encrypted.

I would like to know if each packet is encrypted independently or if they are chained together.

• Why don't you use GNU GMP library? Most of the functions that you write can be found on that library. modpow, mpz_probab_prime_p, extgcd, etc.. – kelalaka Dec 27 '19 at 23:22
• Because I would like to remain very simple. – nowox Dec 27 '19 at 23:23
• Notes: A) the C code shown is limited to 32-bit public modulus $n$, dues to the 64-bit limitation of res * a in modpow. B) 512-bit RSA was unsafe 20 years ago. C) The RSA paper shows a method to directly encipher text, but since it is deterministic, it allows a guess to be verified, which is a disaster in many common cases (names of a guy on the class roll..). D) Text encryption using RSA should RSA-encipher a random symmetric key used to encipher the text. – fgrieu Dec 27 '19 at 23:56
• Could you have a look at the following answer about using RSA as a block cipher and see if it answers your question? Basically chaining is not performed, not even for textbook RSA. Note that asking for a code review is not on topic for this site. As there is no specific question about the code in the post either, I cannot migrate to SO. I'll remove the code from the question (you can still see or copy it if you look at the edits). – Maarten Bodewes Dec 28 '19 at 9:54
• @Maarten-reinstateMonica Indeed the answer you mentioned helped me to understand that what I am looking for is not related to RSA but to the "Block cipher mode of operation" and therefore to ECB, CBC, CFB and OFB... – nowox Dec 28 '19 at 10:00