As of May 31, 2023, we have updated our Code of Conduct.
64 votes
Accepted

Why do 5G, 4G, etc., use non-conventional algorithms?

These decisions are driven by silicon. Most specifications for hardware are built around a minimally viable CMOS implementation (ex: MPEG-1, lightweight cryptography via NIST 8114). This is ...
b degnan's user avatar
  • 4,524
57 votes
Accepted

Signal vs Telegram in terms of protocols?

Alright, I'll bite. First, let me propose bounding the discussion to just the core of the protocol. In particular, let's not get hung up on: Social engineering attacks How broadly the end-to-end ...
Joshua Warner's user avatar
55 votes
Accepted

One Encryption, Many Decryption Keys

This is known in the cryptographic literature as "traitor tracing". See, e.g., the following seminal paper: An efficient public key traitor tracing scheme. Dan Boneh and Matt Franklin. CRYPTO 1999....
D.W.'s user avatar
  • 36k
49 votes

Should we MAC-then-encrypt or encrypt-then-MAC?

Although there are already many answers here, I wanted to strongly advocate AGAINST MAC-then-encrypt. I fully agree with Thomas' first half of the answer, but completely disagree with the second half. ...
Yehuda Lindell's user avatar
35 votes

Is it easy to crack a hashed phone number?

No, it is not a good idea to hash phone numbers. There are only a limited number of phone numbers, so it is pretty easy for an adversary to try and hash all of them. Then you can simply compare the ...
Maarten Bodewes's user avatar
  • 90.2k
24 votes

Why is SSL on top of TCP?

why the SSL is not under the TCP ( Transport layer ) ? Because SSL can use TCP [1] to transport SSL records, and so SSL relies on TCP as a service. That is, SSL takes the user data stream, and ...
poncho's user avatar
  • 140k
18 votes
Accepted

Is it possible for Alice and Bob to both sign a message "simultaneously"?

This is one of the earliest questions that was asked in modern cryptography. There is a proof that you cannot achieve completely fair contract signing. However, there are some reasonable alternatives. ...
Yehuda Lindell's user avatar
17 votes
Accepted

Salary Negotiation Problem

Solutions to Yao's Millionaire's Problem should suffice for this computation. In that setup, there are two parties each with an input. The output reveals whose input is larger, and nothing else. So ...
mikeazo's user avatar
  • 38.3k
17 votes
Accepted

DRM simple clone

I heard of DRM but could not get a reliable implementation of DRM There is a good reason for this: DRM is a hard problem, and a solution to it could be leveraged to obtain incredible amounts of money....
Ella Rose's user avatar
  • 19.4k
14 votes
Accepted

Why do we implement a protocol?

I assume the question is related to academic work: why do we implement a protocol if we already know how efficient it is by a complexity analysis? The answer depends very much on the type of protocol. ...
Yehuda Lindell's user avatar
13 votes

How does a rolling code work?

It is worth pointing out that Samy Kamkar realized and implemented (in 2015) what is now forehead-slappingly obvious in retrospect - it's perfectly practical to have a radio TX+RX unit that snoops a ...
Richard Aplin's user avatar
13 votes
Accepted

How to use proof of lack of knowledge?

In general, you cannot prove lack of knowledge, because even if you did know something you shouldn't, you can always pretend that you don't know it and carry out the proof as if you didn't know it. ...
Ilmari Karonen's user avatar
13 votes

Is it easy to crack a hashed phone number?

It is always a bad idea to hash data that has a limited set of length or characters. A phone number in Germany for example has normally no more than 12 digits. The first digit is always a ...
dmuensterer's user avatar
12 votes
Accepted

Why does TLS do Authenticate-then-Encrypt instead of Encrypt-then-Authenticate?

SSL was designed long ago when encrypt-then-MAC wasn't that popular yet. Even TLS 1.2, published in 2008, is pretty old by now, and while encrypt-then-MAC was preferred by then, the practical risks ...
CodesInChaos's user avatar
  • 24.6k
12 votes
Accepted

Is there a formal language to define a cryptographic protocol?

Disclaimer: I use Coq on daily basis... About the tools As you are looking for a formal verification, I would advise you to take a look at Coq. Even though mainly used by Academics, it provides a ...
Biv's user avatar
  • 9,909
12 votes

Why is SSL on top of TCP?

The Secure Socket Layer is as the name suggests build on sockets, which provide error free, ordered stream of data. TLS is the differently named successor to SSL; TLS 1.0 succeeds SSL 3. TLS likewise ...
Maarten Bodewes's user avatar
  • 90.2k
12 votes

Is it easy to crack a hashed phone number?

In the general sense, The problem is known as the small input space on the hash functions, and in short simple hashing won't be secure. If you hash data ( here a phone number) and an attacker tries to ...
kelalaka's user avatar
  • 46k
11 votes

Equal sign with a "c"

To quote the paper Two probability ensembles... are said to be computationally indistinguishable, denoted $X\stackrel{c}{\equiv}Y$, if... This is found in section 2.
mikeazo's user avatar
  • 38.3k
11 votes
Accepted

Obfuscating functions that are mostly zero

I provide a summary below of what is currently known (to my knowledge) regarding obfuscation of various class of "mostly-zero" functions. From Indistinguishability Obfuscation What we can obfuscate: ...
Geoffroy Couteau's user avatar
11 votes
Accepted

Examples of protocols that are insecure when run concurrently

Consider the function $f : \{L,R\} \times \{ U,D \} \to \{0,1,2\}$ defined by the following table: $$ \begin{array}{c|cc} f & L & R \\ \hline U & 0 & 0 \\ D ...
Mikero's user avatar
  • 11.2k
10 votes

Why do we implement a protocol?

Do we implement it for proof of concept? Absolutely. It's very easy to miss vital points if no implementation exists. W3C for instance doesn't even allow protocols to be standardized without ...
Maarten Bodewes's user avatar
  • 90.2k
10 votes

Why is SSL on top of TCP?

While the other answers are good, I think they're missing the core point: TCP is what's there. You can't just define arbitrary new layer-4 protocols on top of IP and expect existing operating systems ...
R.. GitHub STOP HELPING ICE's user avatar
10 votes
Accepted

Why does the SSH protocol generate two keys: an encryption key for client to server communication and server to client communication?

There's a line of thought in crypto when it comes to keys: one usage, one key. That gives a first level of rationale towards using separates keys in each direction: each direction is a different usage ...
fgrieu's user avatar
  • 134k
9 votes
Accepted

Is it usual for a signed message to contain the public key of the signer?

I'd say that most of the time the signature is accompanied by the certificate of the signer. This certificate contains the public key. Most container formats such as CMS (used in S/MIME, also known as ...
Maarten Bodewes's user avatar
  • 90.2k
9 votes

Signal vs Telegram in terms of protocols?

Besides Joshua Warner's excellent answer, I do also want to point out that someone has to "roll their own crypto" at some point for there to be any designs and implementations at all. On that front, ...
Stephen Touset's user avatar
9 votes

Exchanging encrypted messages, and decrypting without a public key?

You're describing a form of three-pass protocol, which is a communication mechanism where neither party needs to know each other's secret key. Wikipedia describes a helpful metaphor using a box that ...
dimo414's user avatar
  • 190
9 votes

One Encryption, Many Decryption Keys

I can't really prevent "bad" recipients from the leaking the key (or the plaintext, for that matter), but I would like to be able to distribute unique keys to each recipient so that if a key is leaked,...
Luis Casillas's user avatar
9 votes
Accepted

Can I use a HMAC for Replay Attack protection?

An old but excellent paper on this topic is Tuomas Aura's Strategies against Replay Attacks. The simplest version of the "Hashed Full Information" method would be to include the MAC of the ...
joveian's user avatar
  • 345
9 votes

Is there any protocol for proving that a message was written at a certain time?

In general, no. You can prove a message was written no later than time T by hashing the message with a collision-resistant hash, and communicating the hash to some trusted third party that records it ...
lacker's user avatar
  • 191

Only top scored, non community-wiki answers of a minimum length are eligible