This is a part of my Daj się poznać / Get Noticed! 2017 series. It is for a contest where I have to write a blog post twice a week abd create a open source project. Read more about it here.
Obviously, I have much less time for my DSP project, than I would like to have. Even less than I thought I would have. And most of the time I do have, I’m spending on reading and filling my knowledge gaps.
Until now, I realized that I would probably have to limit my project to support only RSA encryption. I wanted to add ed25519, which I’m a fan right now for my SSH keys, but the support for it is pretty bad and limited only to signatures. Also, OpenSSL, which I use, does not support it (and does not plan to). I could change, but on the other hand OpenSSL seems to be the only one that has decent RSA support (and RSA is a must).
I have also been giving some thought about file format. At the beginning I intended to simply encrypt a file using proper key and treat it as output/input for my application. Right now I’m leaning towards something more complex.
As we all know, asymmetric cryptography is order of magnitude slower than its symmetric counterpart. This comes with an obvious cost - you have to transmit the key somehow. So why not use best parts of both worlds? In my current approach I want to create a random secure key for symmetric crypto (probably AES), encrypt the file with it (faster than RSA) and then encrypt only a much shorter key with RSA. Then, after combining files together, I could have some file with, let’s say,
.ble extension. And it could be opened on double click…
But that’s the future. Right now I’m concentrating on learning Rust and preparing CLI version of Bletchley.