Skip to main content
fixed minor spelling mistakes, added paragraphs for (somewhat) better readability
Source Link
SEJPM
  • 46.4k
  • 9
  • 102
  • 210

When using structured data inside a plaintext (such as gzip headers, xml, etc.) Theythey generate known plaintext which may be useful in cracking the ciphertext. 

So I had these two ideas on how to make this known structure less useful to attackers while preserving the value to those with valid decryption keys. Firstly:

First, if we prepend zero use a random xor, when decrypting we can remove the first value and xor the remainder of the text by that value it may make decrypting the ciphertext somewhat more difficult as the known plaintext is somewhat varied. 

The second Ideaidea is to just rotate the start of the message by a random amount putting the known plaintext at a random place in the block (obviously less useful with streams). By prepending the coded plaintext with the offset with the original message can easily be recovered without introducing a known plaintext as the offset is a random number). 

Further these two methods can be combined. Obviously these would add no cryptographic value to texts without known substrings and are completely useless without being paired with a real cipher. 

The question is how useful would they be in mitigating a known plaintext attack?

When using structured data inside a plaintext (such as gzip headers, xml, etc.) They generate known plaintext which may be useful in cracking the ciphertext. So I had these two ideas on how to make this known structure less useful to attackers while preserving the value to those with valid decryption keys. Firstly if we prepend zero use a random xor, when decrypting we can remove the first value and xor the remainder of the text by that value it may make decrypting the ciphertext somewhat more difficult as the known plaintext is somewhat varied. The second Idea is to just rotate the start of the message by a random amount putting the known plaintext at a random place in the block (obviously less useful with streams). By prepending the coded plaintext with the offset with the original message can easily be recovered without introducing a known plaintext as the offset is a random number). Further these two methods can be combined. Obviously these would add no cryptographic value to texts without known substrings and are completely useless without being paired with a real cipher. The question is how useful would they be in mitigating a known plaintext attack?

When using structured data inside a plaintext (such as gzip headers, xml, etc.) they generate known plaintext which may be useful in cracking the ciphertext. 

So I had these two ideas on how to make this known structure less useful to attackers while preserving the value to those with valid decryption keys:

First, if we prepend zero use a random xor, when decrypting we can remove the first value and xor the remainder of the text by that value it may make decrypting the ciphertext somewhat more difficult as the known plaintext is somewhat varied. 

The second idea is to just rotate the start of the message by a random amount putting the known plaintext at a random place in the block (obviously less useful with streams). By prepending the coded plaintext with the offset with the original message can easily be recovered without introducing a known plaintext as the offset is a random number). 

Further these two methods can be combined. Obviously these would add no cryptographic value to texts without known substrings and are completely useless without being paired with a real cipher. 

The question is how useful would they be in mitigating a known plaintext attack?

Source Link
hildred
  • 101
  • 1
  • 1
  • 6

Request for review: known plaintext mitigation by rotation and xor encoding

When using structured data inside a plaintext (such as gzip headers, xml, etc.) They generate known plaintext which may be useful in cracking the ciphertext. So I had these two ideas on how to make this known structure less useful to attackers while preserving the value to those with valid decryption keys. Firstly if we prepend zero use a random xor, when decrypting we can remove the first value and xor the remainder of the text by that value it may make decrypting the ciphertext somewhat more difficult as the known plaintext is somewhat varied. The second Idea is to just rotate the start of the message by a random amount putting the known plaintext at a random place in the block (obviously less useful with streams). By prepending the coded plaintext with the offset with the original message can easily be recovered without introducing a known plaintext as the offset is a random number). Further these two methods can be combined. Obviously these would add no cryptographic value to texts without known substrings and are completely useless without being paired with a real cipher. The question is how useful would they be in mitigating a known plaintext attack?