在RFC5647,NIST SP 800-38D等中,||用于表示串联。

在大多数编程语言中,||表示“或”,+表示串联,而加密文本只是将其混合在一起的事实似乎很容易使人困惑。 />

评论

不记得它是如何开始出现在文章中的,但是,如果您不仔细看一下文章的符号,使用加号会与数学加号混淆。

我认为使用怪异符号的是编程语言。据我所知,逻辑或的符号始终是$ \ lor $。因此,实际上没有任何混乱。

#1 楼

起源是集合论而不是编程语言。在密码学的背景下,我可以将一个
$$ x_1 \ parallel x_2 \ parallel \ dots \ parallel x_n $$
的集合描述为
$$描述的系列的串联\ parallel_ {i = 1} ^ n x_i。$$
此外,值得注意的是,对数学家来说+表示它是可交换的,根据集合的不同可能并不正确(因为我们可以有一个功能集)。

评论


$ \ begingroup $
虽然我同意表示法来自数学,但是我不确定您所说的“是一个串联总和”的含义。我已经看到$ \ | $用来表示字符串或元组的串联,这样,如果$ a =(1,2)$和$ b =(3,4,5)$,则$ a \,\ | \,b =(1,2,3,4,5)$,当然可以自然地将其概括为一组字符串或元组,但是我不确定这是否就是您的意思。或有理数与这两者有什么关系(如果有)。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
18/12/24在21:29

$ \ begingroup $
@IlmariKaronen好点,我将更新答案以反映这一点。我很懒,因为这是一个假期。真正的数字笔记只是我指的是密码学使用数字。我的作品通常具有一组功能串联。但是,该集合是有界的,因此我不能仅在没有超出范围的情况下使用通用语句。
$ \ endgroup $
–b degnan
18/12/25在2:26

#2 楼

诸如PL / I和Oracle Database SQL之类的某些语言确实使用||进行字符串连接。 'OR'的数学符号将插入符号$ \ lor $反转,而独有的'OR'(通常称为'XOR')是带圆圈的加号\\ oplus $。认为将+用于字符串连接是有特定原因的。如果有的话,我想有人早用了它,然后就习惯了,直到它成为加密的标准。