I am a self taught front-end developer and I am just trying to get my cryptography terminologies straight. I will make some statements. Can someone correct my mistakes?
Question 1
I read that cipher is an algorithm used for encrypting and decrypting data. Did I misunderstand?
Question 2
I found these regarding RSA:
C = M^e mod N # encrypt a message
M = C^d mod N # decrypt a message
Where:
M is original message
C is encrypted message
ed = 1 mod (p - 1)(q - 1)
N = pq
p is a large prime number
q is a large prime number
Is it correct to call C = M^e mod N
and M = C^d mod N
asymmetric ciphers because it uses public private key encryption algorithms? When I search the web, I'm not finding the terms RSA and asymmetric ciphers mentioned in tandem, so that's why I feel like I've misunderstood something more fundamental.
Question 3
I read in some places that RSA is a block cipher. And I read in some places that block ciphers are symmetric. Because I am stuck on Question 2, and keep thinking of RSA as an asymmetric cipher, I am having difficulty understanding how it is symmetric as well. Can someone help me clarify the confusion?
Question 4
If I run these two commands:
openssl genrsa -out key.pem 1024
openssl rsa -in key.pem -pubout -out pub.pem
Am I effectively finding values that satisfy these relationships of the RSA system described in Question 2?
ed = 1 mod (p - 1)(q - 1)
N = pq
p is a large prime number
q is a large prime number