Re: OT: how to securely produce a large data file for "one time tape" encryption input
- Posted by ghaberek (admin) Aug 18, 2015
- 2123 views
Please go read these threads then come back here and tell us why you still want to roll your own cryptography:
- Why shouldn't we roll our own [encryption]?
- Lessons learned and misconceptions regarding encryption and cryptology
- Techniques for Writing Encryption Algorithms (Exclusively For Personal Use)
You should instead rely on industry experts who know what they're doing. I realize that it may be hard to trust third-party software, but there are several free and open source options for strong encryption that are much better than you could ever do yourself:
I can help you with wrapping the relevant C APIs of most any library if that is the case; I would be glad to do it if it means we can add some security to Euphoria programs.
I see some additional downsides to your approach as well:
- I think it would be incredibly burdensome on your users to require that they A) have a DVD drive, B) put a DVD into a drive to access their own data, and C) not lose that DVD for fear of losing their data. I, for one, would avoid your software like the plague if that were the case. If you want to require a physical key, you might be better off with something like KeyLok.
- Are you providing the same blob of random data to all users? If Alice knows Bob and Carol both use FizzPopSoft, Alice only has to acquire a copy of Bob's DVD to decrypt Carol's data. Your security relies on the lowest common denominator. Once your shared secret is out in the wild, your encryption is effectively moot. This was the problem with the HDCP master key.
- Let's assume everything is perfect for the moment, but six months from now you find a Fatal Flaw™ in your algorithm that makes it a trivial process to reverse the encryption. How do you update the algorithm such that you can A) still decrypt the existing data, B) encrypt new data without this flaw, and C) provide your users with an updated copy of the DVD key that works on the data for both A and B?
I'm not trying to cut you down, but I do see you wading into territory best left unexplored.
-Greg