• Breaking News

    Tuesday, March 5, 2019

    Cryptography What are the most common requirements for secure handshakes?

    Cryptography What are the most common requirements for secure handshakes?


    What are the most common requirements for secure handshakes?

    Posted: 04 Mar 2019 04:26 AM PST

    Hi,

    I'm currently working on Monokex, a handshake generator inspired from Noise. A bit like the Noise Explorer, only with many features missing. I'll use it to write a set of protocols (with code and documentation), selected for a well defined set of use cases.

    The end goal is to compete with Noise. Noise is an exquisite research platform, but as a standard to use in production, it is a bit bloated. The specifications are a bit unapproachable to a newbie who just wants to implement a particular pattern, and there are way too many patterns to chose from.

    My generator already solves the first problem: the specification for each pattern is less than 50 lines long, and the generated C code is not much longer. (100 lines of prelude, 70 more lines per pattern, and it all looks like it was hand written.) The second problem however is a bit more delicate: among all those Noise patterns, which are the most useful, and why?

    I already have a couple use cases in mind:

    (reminder about Noise patterns: X means we transmit our public key during the handshake, N means we're anonymous, K means the other party already know our key. For instance "NK" means the initiator is anonymous, and the respondent's key is already known to the initiator. The numbers mean we delay some key exchanges, mostly for anonymity purposes.)

    • Peer to peer communication, where the initiator already knows the respondent's identity. (The most common use case in my opinion.) For this, the XK1 pattern looks best.
    • Client server communication, where the initiator may be redirected to an unknown endpoint. For this, we need XX. (And perhaps a PKI infrastructure as well, but that's a separate problem from the handshake itself.)
    • Client server communication, where protecting the server is for some reason of utmost importance (preventing DoS attacks, protecting the server's anonymity, performance requirements…) For this there is the IK pattern. (Which do be honest I'm still not sure I should endorse.)
    • Anonymous communications, where the initiator is anonymous. For this there's the NK pattern, and maybe NX.
    • One way authenticated messages, where you don't have any infrastructure (like Signal's) to ensure forward secrecy. For this we have the X pattern.
    • Anonymous one way messages: the N pattern (though this time we could just use NaCl's crypto_box() or Monocyper's crypto_key_exchange())

    This basically lists the use cases I'm aware of. If you have others, I would be grateful.

    Another thing: what about protocol negotiation? Noise has provisions for it, by letting users authenticate a prelude. But… is protocol negotiation even useful? My intuition tells me it's just another bug prone complication, but, maybe it has uses beyond protocol versioning?

    (Edit: err, guys? I appreciate the joke, but so far (march/05, 8AM-UTC), we only have 2 relevant comments out of 9…)

    submitted by /u/loup-vaillant
    [link] [comments]

    OpenSSL AES-256-CTR - Can I change CTR val without re-init?

    Posted: 04 Mar 2019 12:01 PM PST

    Currently once I initialize my cipher context, using the following.

    EVP_EncryptInit_ex(ctx, EVP_aes_256_ctr(), nullptr, key, iv)

    Eventually I would like to change my counter value to a preferred value after a certain amount of time.

    Is it possible to update the CTR value or IV without having to run the EVP_EncryptInit_ex function again?

    submitted by /u/galaxamania
    [link] [comments]

    Help with factorizing large integers

    Posted: 04 Mar 2019 10:08 AM PST

    Looking for tips to solve factorization of large integers(like up to 100 digits). I tried running the fermet's method Java example from https://github.com/eduardolundgren/rsa-prime-factorization but the program has been running for almost 5 days without any end in sight for a 72 digit integer

    submitted by /u/notholdingbackcc
    [link] [comments]

    Total newb here

    Posted: 04 Mar 2019 09:03 AM PST

    Hi everyone,

    I'm an IS healthcare major taking a security class right now. We have an assignment to encrypt a message using the vigenere cipher. Simple enough, but I'm a tad confused. The key to the cipher that we are supposed to use has spaces in between. The key is "this is a key" and I've tried looking online for how this works, but I havent been able to find anything. How does a key work when it has spaces?

    Thanks in advance.

    submitted by /u/Senarin21
    [link] [comments]

    No comments:

    Post a Comment