As I know, SSL/HTTPS is two stage, first stage is public key encryption/decryption which transfers key of the second stage which is symmetric. It is true we don't have key, but we can have some of plain data and guess key so (at least some of messages), do you agree it is possible so?


  • $\begingroup$ Your question may be on scope on Information Security but please check their guidelines before reposting. Your question is so elementary that it can probably be answered with a short web search, so your post may not be well-received as is. $\endgroup$ – Raphael Jan 11 '18 at 20:04
  • $\begingroup$ @Raphael The question is elementary, and I'm sure it would be a duplicate on Information Security and Cryptography, but this does not make it off-topic here. Cryptography is (at least for the most part) a branch of computer science, and this question is about a computer science aspect. $\endgroup$ – Gilles Jan 11 '18 at 20:07
  • $\begingroup$ @Gilles I got trapped at "SSL/HTTPS" which are not ontopic as such, missing that the core problem has a CS answer. My bad; reopening. $\endgroup$ – Raphael Jan 11 '18 at 20:42

No, it is not possible. Any modern encryption algorithm is designed so that even even if you have some ciphertext and part of the corresponding plaintext, it is unfeasible to find any information (other than the length) about the part of the plaintext that you don't know. This is true even if you get to choose all of the plaintext except one bit, and you get the corresponding ciphertext and you want to find the bit that you don't know. This property is called indistinguishability under chosen-plaintext attack (IND-CPA for short).

Unfeasible is a technical term, meaning that it requires an amount of computation that cannot be performed in practice. The theoretical definition is that the complexity of the attack is more than polynomial over the size of the key. In practice, key sizes are chosen so that it would take more than the total computational power available in the world for more than a lifetime to break the key (for example, it would take a billion PCs more than the age of the universe to break a 128-bit key).

Note that I simplified the definitions a bit; the actual definitions are fairly complex and subtle. If you want to understand them precisely, read a cryptography textbook.

In practice, this assumes that:

  • There is no flaw in the protocol, such as using the same key for different purposes or accepting invalid output, that could lead to the implementation acting as an oracle.
  • There is no flaw in the implementation, that could lead to secret information leaking directly or indirectly.
  • The algorithm genuinely has the IND-CPA property. It is in fact not known whether any encryption algorithm (apart from the very unwieldy one-time pad) has this property. In practice, people use algorithms that cryptographers have spent many years trying very hard to break, and failed.

In practice, most security flaws related to cryptography are due to implementation bugs. A minority are due to protocol weaknesses, and modern protocols tend to be designed with more attention than protocols designed 20 years ago. Flaws in modern encryption algorithms are extremely rare.


Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.