混淆的一般定义是模糊消息的过程(不一定是源代码)。有一种“严格”的混淆方法(不可区分的混淆、可提取的混淆)和不那么严格的方法(意大利面代码、反模式、很少使用的语言行为,.)。但是混淆是一种密码原语吗?
发布于 2019-10-01 21:48:32
我认为这不能用事实或定义来回答,所以这个答案只是我的观点:
如果您对某些密码安全属性(例如IO )有特定的混淆,并使用它构建其他内容:是的,是的。如果您只是将它作为一个通用术语来描述一些可能不是加密的东西(代码混淆等),那么它就不是。
一般来说,我认为“混淆”一词没有具体说明。所以第一个反问题应该是:你什么意思?至少在密码学的背景下,定义非常重要。如果有疑问:假设‘错误’的意思,并说“不,它不是”。
发布于 2019-10-01 16:27:00
维基百科给出:“密码原语是公认的、低级的密码算法,经常用于为计算机安全系统构建密码协议。”该语句的问题是,似乎很难区分算法、原语、方案和协议(没有特定的顺序)。这一点在上下文中是很清楚的。
然而,我认为我们可以证明混淆本身并不是一个包含两个参数的密码原语:
机密性也不是原始的,而是你想要实现的。另一方面,块密码是一个原语,因为它既是低级的,也是构建的。然而,“密码”可以是任何东西,它可能是对称的,也可能是不对称的,所以把密码看作是原语本身是没有用的;它需要澄清密码的含义是什么。
但是,在混淆领域中,可以将特定的混淆技术或算法看作是一个原语;它只需要作为一个更大协议的构建块来使用,并最终得到很好的描述。
实现安全系统可能很有用,但安全性不是密码学。混淆和加密都是安全领域的一部分,但这并不意味着其中一个是另一部分。即使使用它来实现安全性,它也可能不被视为密码学的一部分,就像数据的编码/解码不被视为密码学的一部分一样。
这并不是说这两个安全领域之间可能有一些重叠--当然,通常是这样的--我期待的答案包括使用加密技术或用作加密协议构建块的混淆技术。Squamish已经以不可区分的混淆为例,这似乎是密码协议中使用的混淆原语。因此,难以区分的混淆,这意味着一种特定的低层算法似乎是一个密码原语。
但是,最终没有人会争辩说,例如混淆源代码本身就是密码学的一部分。这是完全有可能混淆非密码源代码使用混淆技术毕竟。
发布于 2021-02-20 12:54:44
是的,它是一个密码原语,更好的是它是最通用的。
如果一个人可以对某些电路进行不可分辨的混淆,那么他也可以将其重新用于现有的每一个密码原语,包括同态加密、公钥加密和零知识证明。
https://crypto.stackexchange.com/questions/74735
复制相似问题