定义几个数学上的概念
可逆函数
是说从x可以运算出y(从左到右),也可以从y运算出x(从右到左),且难度级数相当。
示例:
从x可以得到f(x)
f(x)=2*x
我们也可以从f(x)很容易得到x
x = f(x)/2
单向函数
从x可以运算出y(从左到右),但是几乎不可能从右运算出左
示例:
f(x)=n%11 // 模数运算
陷门单向函数
陷门单向函数是有一个秘密陷门的一类特殊单向函数。它在一个方向上易于计算而反方向却难于计算。但是,如果你知道那个秘密,你也能很容易在另一个方向计算这个函数
首先是一个单向函数,从x可以运算出y(从左到右),但是在某种特定条件下,也可以很容易从y运算出x(从右到左),这种特定的条件很像程序中后门,它不需要尝试破解密码,而是绕过它。现实中很像有次去天坛公园,别人需要大热天买票排队,拥挤着进去,而你却认识里面的某个人,知道有另外一个小门可以进去,而且人也少。
单向函数的用途
某些单向函数是密码学的理论基础,比如非对称加密,就是利用了数论的陷门单向函数。
其实,单向函数更多可以用来进行哈希,进行身份鉴别,而非加密,因为它不可逆。
单向陷门函数和RSA加密
- 从左侧到右侧很容音,但是从右侧往左侧运算中则很难,但是仍是有解。
数学上比如两个大素数乘积容易计算,但是反过来很难分解。
物质世界有很多,比如盘子打碎容易,但是还原很难。纸张燃烧容易,但是从灰烬中重生很难。
深层现实意义
数学上的很多运算似乎都是可逆的,比如简单的乘法。但也有些看似单向的函数。
但是现实可能确实相反,现实物质世界,事物往往是单向的,比如时间的流失,比如事物的熵,一个镜子破碎很容易,但是破镜重圆很难。一张纸撕碎容易,但是拼起来很难。树叶会慢慢由青变绿变黄,但是我们几乎很难看到反过来的现象。也就是现实世界是一个矢量,没办法做到可逆。
思考
那么什么情况下,能让某些单向函数可逆呢?如果可以的话,那么这应该是下一个轰动的加密算法,因为我们可以这样:
对某个数n,利用单向函数加密得到N,假如单向函数可以通过一步或者步数m,对N运算,最后重新得到n。(其中m可以用来衡量陷门复杂度)
网友评论