Cryptography In Pursuit of Clarity In Obfuscation |
- In Pursuit of Clarity In Obfuscation
- Which algorithm is safest if we exclude AES, Twofish, Serpent and Whirpool?
- Simplifying Noise protocol framework
- Is there a security problem in this system
In Pursuit of Clarity In Obfuscation Posted: 12 May 2019 03:44 PM PDT |
Which algorithm is safest if we exclude AES, Twofish, Serpent and Whirpool? Posted: 12 May 2019 05:38 PM PDT TLDR: Which algorithm is safest if we exclude AES, Twofish, Serpent and Whirpool? Full version: Hello, my threat model is archiving and backing up important and private files. Files will be stored in many places including clouds, so count them as publicly accessible. I plan to store them for the next upcoming 100+ years in the future. Of course, nobody can imagine what computers will look and work in 2100 - BUT at least I can try to mitigate security risks. Super strong and random password is a sure thing. So I encrypt those files with VeraCrypt using AES-Twofish-Serpent cascade, Whirpool as the hash. But in case that some day a flaw will be found in any given algorithm or in it's implementation (in VeraCrypt itself), I want to add an aditional layer of protection - another software and another algorithm. BCArchive seems like a great opinion. (Do you agree?) They state: "Compressed archive with strong encryption BCArchive utilizes the following encryption algorithms, standards and specifications: When I open advanced settings to modify it, I am given these options: https://i.imgur.com/32ymEvr.png My questions are:
[link] [comments] |
Simplifying Noise protocol framework Posted: 12 May 2019 02:54 PM PDT I started working on Monokex because I felt Noise was too complex. I've had many iterations, some of which even tried to do away with a general purpose hash. I'm fairly proud on my penultimate iteration, based on XCKDF, but I since realised that it makes payloads very difficult to work with. The API I was using was a nightmare, and unencrypted payloads were not authenticated at all. I needed that general purpose hash after all, so I redesigned the whole thing. Trevor Perrin had the right idea about using a state machine for Noise, but he failed to make it as simple as it could be. So I came up with my own. I think it is secure, but I may have missed a crucial detail or three. (Spoiler: I violate the cryptographic doom principle.) Monokex state machineThe state machine holds the following state: The hash is the main state of the state machine. Its first half is used as a chaining key, and its second half is used as an extra key (which is only used when the Initial state
State transitionsState transitions with the (I chose Blake2b, but we could use SHA3, HMAC, or HKDF instead. I believe it makes no difference, please tell me if you think it does.) Process messagesProcessing a message means processing all its tokens one by one, in order, then finalising the message thus:
Process message tokensFirst the keys (assuming
Then the keys (assuming
Then the exchanges:
When processing an exchange, we additionally set the "has_key" flag to "true". Possible security implicationsThe biggest differences, compared to Noise are the following:
Example protocol (XK1 pattern)Here's a complete example with the XK1 pattern (the server key is known in advance, the client key is transmitted over the network). The security goals are the same as Noise's XK1. Sender and recipient have the following X25519 key pairs (private half in lower case, public half in upper case):
Those key pairs are used to derive the following shared secrets:
Those shared secrets are hashed to derive the following:
Here's in graphic form: The messages contain the following:
The handshake proceeds as follows:
ConclusionCan anyone find any flaw? [link] [comments] |
Is there a security problem in this system Posted: 12 May 2019 02:18 PM PDT Hello, I'm sorry if this is not the right place to post this i didn't know were else to post it. Imagine if there is stream where every one posts a message using their public address. Once the message is posted every one can read it. Every user have a pair of public and privet keys, one of the public key is linked to the user and the other is used only for secret messages. Before posting on the stream the user encrypts the message which will contain his secret key, then encrypts it with N public keys and put it on the stream. Every user connected is constantly trying to decrypt messages using their privet key, If they succeed decrypting but the message is still crypted (because there is a multi layered encryption) they post the decrypted version on the stream. This way nor the sender or the receiver know where the message is coming from or where it is going. I was thinking of this being on top of a tchat, this can also be used on top of twitter or any public social media. Here is an example of the algorithm working with 3 steps: m1 = E(k1,m) k1 is the receiver public key m2 = E(k2, E(k1,m)) m3 = E(k3, E(k2, E(k1,m))) Than I write m3 on the stream k3 holder reads the message and knows that he can decrypt it so he posts this E(k2, E(k1, m)) then k2 holder reads the message and knows the result so he decrypts it and posts it to the stream at the end k1 wont know who is the original sender. in the message he will get the secret public key of the sender so he will encrypt his response using that key than with a random number of public keys. The only person who can decrypt the message is k1, if he is missing the message will keep encrypted. P.S: I know this look a lot like tor, but this system is still centralised and all of it is still on the visible web [link] [comments] |
You are subscribed to email updates from Cryptography news and discussions. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment