Security 确定这些位是否已加密?

Security 确定这些位是否已加密?,security,encryption,network-programming,public-key-encryption,password-encryption,Security,Encryption,Network Programming,Public Key Encryption,Password Encryption,假设我正在监听一个网络,我获得了一些比特,但我想知道是否有办法确定比特是加密的?存在什么方法或算法?我的意思是,如果比特是无意义的,它意味着加密,但是否有更多的技术方法或算法来确定从比特 假设我有0101010100001011001100001001,如果这是加密的,你怎么知道呢?一般来说,你不能。几乎在所有情况下,加密数据都无法与随机或严重压缩的数据区分开来 在某些情况下,可能有间接证据表明您看到的数据是加密的。例如,它可能包含TLS或SSH特征的报头,也可能在通常用于加密数据的端口上传输(

假设我正在监听一个网络,我获得了一些比特,但我想知道是否有办法确定比特是加密的?存在什么方法或算法?我的意思是,如果比特是无意义的,它意味着加密,但是否有更多的技术方法或算法来确定从比特
假设我有0101010100001011001100001001,如果这是加密的,你怎么知道呢?

一般来说,你不能。几乎在所有情况下,加密数据都无法与随机或严重压缩的数据区分开来


在某些情况下,可能有间接证据表明您看到的数据是加密的。例如,它可能包含TLS或SSH特征的报头,也可能在通常用于加密数据的端口上传输(例如,443用于HTTPS)。然而,这完全是猜测——如果你不识别数据,它可能是任何东西。

一般来说,你不能。几乎在所有情况下,加密数据都无法与随机或严重压缩的数据区分开来


在某些情况下,可能有间接证据表明您看到的数据是加密的。例如,它可能包含TLS或SSH特征的报头,也可能在通常用于加密数据的端口上传输(例如,443用于HTTPS)。然而,这完全是猜测——如果你不识别数据,它可能是任何东西。

一般来说,你不能。几乎在所有情况下,加密数据都无法与随机或严重压缩的数据区分开来


在某些情况下,可能有间接证据表明您看到的数据是加密的。例如,它可能包含TLS或SSH特征的报头,也可能在通常用于加密数据的端口上传输(例如,443用于HTTPS)。然而,这完全是猜测——如果你不识别数据,它可能是任何东西。

一般来说,你不能。几乎在所有情况下,加密数据都无法与随机或严重压缩的数据区分开来

在某些情况下,可能有间接证据表明您看到的数据是加密的。例如,它可能包含TLS或SSH特征的报头,也可能在通常用于加密数据的端口上传输(例如,443用于HTTPS)。然而,这完全是猜测——如果你不识别数据,它可能是任何东西。

你不能

考虑以下简单示例(python):

这是一个简单的异或密码,可在一次性PAD中使用。显然没有什么问题,但是如果你打印
密文
,你会得到:
“一些明显的随机输出”
。 秘密消息已正确加密,但输出内容看起来根本没有加密

我通过xoring消息和示例输出选择了键;-)但这样的密钥基本上是随机的,可以是任意随机数生成器的结果

你永远不能仅仅通过查看位来判断数据是加密的、编码的、压缩的、屏蔽的还是其他的,因为这些位看起来像是未加密的,即使它们是。这也是OTP无法强制执行的原因,因为您永远无法判断强制执行的明文是否正确:

你自己试试吧:

Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def xor(s1, s2): return ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1, s2))
...
>>> key = '\x07\x07\x04\x16\x00\x1b\x12N\x17\x1a\x0eHO\x14T\x03\x10\x17R\n\x16V\x04\n\x06\x00\r\x1e'
>>> message = 'this is such a secret message'
>>> ciphertext = xor(message, key)
>>> print ciphertext
some random output obviously
你不能

考虑以下简单示例(python):

这是一个简单的异或密码,可在一次性PAD中使用。显然没有什么问题,但是如果你打印
密文
,你会得到:
“一些明显的随机输出”
。 秘密消息已正确加密,但输出内容看起来根本没有加密

我通过xoring消息和示例输出选择了键;-)但这样的密钥基本上是随机的,可以是任意随机数生成器的结果

你永远不能仅仅通过查看位来判断数据是加密的、编码的、压缩的、屏蔽的还是其他的,因为这些位看起来像是未加密的,即使它们是。这也是OTP无法强制执行的原因,因为您永远无法判断强制执行的明文是否正确:

你自己试试吧:

Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def xor(s1, s2): return ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1, s2))
...
>>> key = '\x07\x07\x04\x16\x00\x1b\x12N\x17\x1a\x0eHO\x14T\x03\x10\x17R\n\x16V\x04\n\x06\x00\r\x1e'
>>> message = 'this is such a secret message'
>>> ciphertext = xor(message, key)
>>> print ciphertext
some random output obviously
你不能

考虑以下简单示例(python):

这是一个简单的异或密码,可在一次性PAD中使用。显然没有什么问题,但是如果你打印
密文
,你会得到:
“一些明显的随机输出”
。 秘密消息已正确加密,但输出内容看起来根本没有加密

我通过xoring消息和示例输出选择了键;-)但这样的密钥基本上是随机的,可以是任意随机数生成器的结果

你永远不能仅仅通过查看位来判断数据是加密的、编码的、压缩的、屏蔽的还是其他的,因为这些位看起来像是未加密的,即使它们是。这也是OTP无法强制执行的原因,因为您永远无法判断强制执行的明文是否正确:

你自己试试吧:

Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def xor(s1, s2): return ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1, s2))
...
>>> key = '\x07\x07\x04\x16\x00\x1b\x12N\x17\x1a\x0eHO\x14T\x03\x10\x17R\n\x16V\x04\n\x06\x00\r\x1e'
>>> message = 'this is such a secret message'
>>> ciphertext = xor(message, key)
>>> print ciphertext
some random output obviously
你不能

考虑以下简单示例(python):

这是一个简单的异或密码,可在一次性PAD中使用。显然没有什么问题,但是如果你打印
密文
,你会得到:
“一些明显的随机输出”
。 秘密消息已正确加密,但输出内容看起来根本没有加密

我通过xoring消息和示例输出选择了键;-)但这样的密钥基本上是随机的,可以是任意随机数生成器的结果

你永远不能仅仅通过查看位来判断数据是加密的、编码的、压缩的、屏蔽的还是其他的,因为这些位看起来像是未加密的,即使它们是。这也是OTP不能b的原因