Encryption 需要帮助了解这一点'||';AES加密中的操作

Encryption 需要帮助了解这一点'||';AES加密中的操作,encryption,aes,encryption-symmetric,Encryption,Aes,Encryption Symmetric,到目前为止,我从未真正深入研究过加密算法,但现在我被投入了一个需要一些加密算法知识的项目 我正在使用AES-CTR algo,真的需要了解这个操作的含义 例如:我有如下公式: message = AES-CTR<KEY>(SNONCE16||DNONCE16||SID16,NS14). message=AES-CTR(SNONCE16 | | | DNONCE16 | | SID16,NS14)。 基本上,key是加密密钥,snonce16是服务器端随机生成的16字节,dnonc

到目前为止,我从未真正深入研究过加密算法,但现在我被投入了一个需要一些加密算法知识的项目

我正在使用AES-CTR algo,真的需要了解这个操作的含义

例如:我有如下公式:

message = AES-CTR<KEY>(SNONCE16||DNONCE16||SID16,NS14).
message=AES-CTR(SNONCE16 | | | DNONCE16 | | SID16,NS14)。
基本上,key是加密密钥,snonce16是服务器端随机生成的16字节,dnonce16是从物联网设备接收的,SID16是其序列号,NS14是服务器端随机生成的加密nonce

我什么都知道,但这个操作“| |”意味着什么。我认为这是一个正常的“或”操作,但情况可能并非如此

真的需要专家的意见


谢谢。

在密码学中,| |运算通常意味着简单的连接。它是书面的,这使得管道字符更加狭窄,与其他用途更为不同

密码学网站上关于| |起源的相关文本被询问并回答。显然,它是从数学中的集合论中被采用的


请注意,(加密)nonce通常放在明文或密文之前,而不是最后一个参数,这让我有点吃惊。

谢谢Maarten,这真的很有帮助。我遵循的是一份官方文件,公式如上所述。所以,从代码的角度来看,如果我有3个纯文本,比如说“ab”,“cd”和“da”,你能告诉我在操作后我的最终值会是什么样子吗。谢谢。只是字符串连接,所以“abcdda”。无聊,不是吗?是的,非常无聊。我想,会有一个分隔符。但这是有意义的,因为所有参数都具有相同的字节大小。谢谢你,伙计!!有时,这种连接在协议中是危险的,因为没有长度指示或分隔符,所以您不知道哪个字节是由特定参数生成的。是“AB”| |“C”还是“A”| |“BC”?然而,它通常用于具有已知大小的参数,因为,为什么要使事情复杂化呢?可能是因为只有16位的nonce也没有太大意义。请注意,使用分隔符有点棘手。如果您的字节可以有任何值,则必须求助于重新编码或转义等丑陋的方法才能使用分隔符。使用长度指示器更有意义。