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.

  • $\begingroup$ 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.. $\endgroup$
    – kelalaka
    Commented Dec 27, 2019 at 23:22
  • $\begingroup$ Because I would like to remain very simple. $\endgroup$
    – nowox
    Commented Dec 27, 2019 at 23:23
  • $\begingroup$ 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. $\endgroup$
    – fgrieu
    Commented Dec 27, 2019 at 23:56
  • $\begingroup$ 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). $\endgroup$
    – Maarten Bodewes
    Commented Dec 28, 2019 at 9:54
  • $\begingroup$ @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... $\endgroup$
    – nowox
    Commented Dec 28, 2019 at 10:00


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.