Encryption 在linphone的SRTP中实现AES-CM

Encryption 在linphone的SRTP中实现AES-CM,encryption,aes,voip,linphone,Encryption,Aes,Voip,Linphone,我试图了解如何在linphone应用程序上实现srtp。当我在手机上激活srtp功能时,将使用AES-ICM加密方法保护数字数据通信。但我在它的实现中发现了一些有趣的东西 AES-ICM方法中的加密过程使用密钥流后缀和RTP数据包有效负载(明文)之间的异或操作来生成密文。加密密钥在aes操作中用于生成后缀密钥流。然后,该密文将从发送方发送到接收方 在SRTP的实现中,我显示了发送方和接收方使用或生成的明文、密钥和密文。我发现了发送方和接收方中每个数据包的密文和密钥之间的差异。当使用特定密钥对明文

我试图了解如何在linphone应用程序上实现srtp。当我在手机上激活srtp功能时,将使用AES-ICM加密方法保护数字数据通信。但我在它的实现中发现了一些有趣的东西

AES-ICM方法中的加密过程使用密钥流后缀和RTP数据包有效负载(明文)之间的异或操作来生成密文。加密密钥在aes操作中用于生成后缀密钥流。然后,该密文将从发送方发送到接收方

在SRTP的实现中,我显示了发送方和接收方使用或生成的明文、密钥和密文。我发现了发送方和接收方中每个数据包的密文和密钥之间的差异。当使用特定密钥对明文进行加密并在发送方、接收方、接收到的密文和使用的密钥中生成密文时,会产生差异。然而,我发现的一件奇怪的事情是,接收方的明文解密结果与发送方加密的明文相同。传达的声音到了,有人能解释为什么吗

显示文本的代码:

日志端点1:

日志端点2:

然后,我尝试使用srtp_protect_mki中的srtp_cipher_加密代码和srtp_unprotect_mki中的srtp_cipher_解密模块来停用加密功能。这难道不像实现空密码那样加密有效负载吗?然而,同样的发现是密文和明文,它们与发送者和接收者没有任何共同之处,而且扬声器上的声音含有噪音,无法识别发送的内容。有人能解释一下吗

例如,在端点1处用于加密的第一个明文是: “D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D……” 生成密文: “7c8fb6c2f783e5fdb34116bb5d5ce27475bf400b4……”

然后在充当接收器的端点2处,接收到第一个密文 “e2bd90a5275e44ac2d4fc332cfff138e743c39c80b……” 生成纯文本: “D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5……”


谢谢

我从另一个论坛找到了答案。在我的例子中,之所以会发生这种情况,是因为我正在使用Asterisk的VOIP服务器将解密每个传入的数据包,以便在将其发送回之前进行处理。在发送到最终目的地之前,该包将被星号重新加密。每个进入的数据包都将被解密,而退出星号的数据包将被重新加密。所以,在我的例子中,这是因为使用了voip服务器技术。

我从另一个论坛找到了答案。在我的例子中,之所以会发生这种情况,是因为我正在使用Asterisk的VOIP服务器将解密每个传入的数据包,以便在将其发送回之前进行处理。在发送到最终目的地之前,该包将被星号重新加密。每个进入的数据包都将被解密,而退出星号的数据包将被重新加密。所以,在我的例子中,发生这种情况是因为使用了voip服务器技术。

我真的不知道你在问什么,链接也帮不上忙。你说:……我发现的一件奇怪的事是,接收方的明文解密结果与发送方加密的明文相同。。。这就是加密和解密的工作原理。如果解密没有把原始的明文还给你,那就没有什么好处了。谢谢你的回复。是的,在加密机制中,发送方和接收方的明文必须相同。简单地说,我想问的是,为什么发送方和接收方的密文对于相同的明文是不同的?我所说的链接是指显示密文和明文,它们是两个不同的端点(发送方和接收方)。在这两个文件中,你可以找到相同的明文,但不同的密文。我真的搞不懂你在问什么,链接也帮不上忙。你说:……我发现的一件奇怪的事是,接收方的明文解密结果与发送方加密的明文相同。。。这就是加密和解密的工作原理。如果解密没有把原始的明文还给你,那就没有什么好处了。谢谢你的回复。是的,在加密机制中,发送方和接收方的明文必须相同。简单地说,我想问的是,为什么发送方和接收方的密文对于相同的明文是不同的?我所说的链接是指显示密文和明文,它们是两个不同的端点(发送方和接收方)。在这两个文件中,您可以找到相同的明文,但不同的密文。