DH is not encryption system, it is a key exchange system. ElGamal (which is kind of similar to DH) is encryption system. DH is used for symetric key material exchange, however needs to be protected against MitM, typicaly by eliptic digital signatures. It cannot be directly used to encrypt anything
I tried implemeting toy RSA, however got stuck on casting strings into BigInts (the numeric part was actually pretty straightforward and simple). There is no obvious and simple way, how to interpret/encode string as bytes and neither there is obvious and simple way, how to cast/interpret bytes to BigInt. However, I am just a Julia fan and I am not using it on regular basis, so it can be just my incompetence
I also find this a bit annoying that there are no cast/interpret function for bytes into bigint. The best I found on the discourse is to convert bigint to hex and then from hex to bytes and vice versa.
@@JErdmanis Thanks, will look into it. However, I that the benefit of modules wont be much in the implementation, but in the API. DH and RSA are quite simple in nature, but providing good and usable interface is harder Ithink
DH is not encryption system, it is a key exchange system. ElGamal (which is kind of similar to DH) is encryption system.
DH is used for symetric key material exchange, however needs to be protected against MitM, typicaly by eliptic digital signatures. It cannot be directly used to encrypt anything
The Diffie Hellman key exchange can be interpreted as a key encapsulation mechanism as it is a one-shot protocol. I think the speaker meant that.
I tried implemeting toy RSA, however got stuck on casting strings into BigInts (the numeric part was actually pretty straightforward and simple). There is no obvious and simple way, how to interpret/encode string as bytes and neither there is obvious and simple way, how to cast/interpret bytes to BigInt. However, I am just a Julia fan and I am not using it on regular basis, so it can be just my incompetence
I also find this a bit annoying that there are no cast/interpret function for bytes into bigint. The best I found on the discourse is to convert bigint to hex and then from hex to bytes and vice versa.
@@JErdmanis Thanks, will look into it. However, I that the benefit of modules wont be much in the implementation, but in the API. DH and RSA are quite simple in nature, but providing good and usable interface is harder Ithink