我突然想到了一些事情,我想知道这是否是用于客户机-服务器通信的适当方法,以及这种方法是否被广泛使用。
在连接时,客户端生成种子,使用非对称算法(例如RSA)对其进行加密,并将其发送到服务器。
使用CSPRNG,客户机和服务器都生成随机字节数组(使用客户端和服务器已知的相同种子)。
当客户机/服务器通信时,它会根据偏移量向每个字节添加随机字节。
例如,自请求连接以来消息的第一个字节被添加到随机字节数组的第一个字节中。相反的客户机/服务器然后从消息字节中减去随机字节。
这是安全方法吗?它与使用非对称算法发送XTEA密钥和其余通信使用对称算法(XTEA)有什么不同?
发布于 2016-04-07 13:12:57
您所描述的内容称为流密码。
至于不同之处,可以引用链接文章,让您开始:
流密码器通常用于硬件和应用程序中实现的速度和简单性,在这些应用程序中,明文的长度不可知,就像安全的无线连接一样。如果在这种应用程序中使用块密码(不以流密码模式操作),则设计器将需要选择传输效率或实现复杂性,因为块密码器不能直接处理小于其块大小的块。例如,如果128位分组密码接收到单独的32位明文突发,那么传输的数据中有四分之三将是填充数据。块密码必须在密文窃取或剩余块终止模式中使用,以避免填充,而流密码器则通过自然地在可以传输的最小单元(通常为字节)上操作来消除此问题。在军事密码学中,流密码的另一个优点是,密码流可以在一个单独的盒子中生成,该盒子需要严格的安全措施,并被馈送到其他设备,例如无线电设备,这些设备将执行xor操作,作为其功能的一部分。然后,可以在不太严格的环境中设计和使用后一种设备。
https://security.stackexchange.com/questions/119769
复制相似问题