文章18
标签6
分类2

蒙哥马利模乘及其IP核设计

蒙哥马利模乘

蒙哥马利模乘最主要的贡献就是提供了一种给定输入$T$,快速计算$TR^{-1}\bmod N (R>N)$的模约减方法。为了描述方便将该模约减方法记为$TR^{-1}\gets REDC(T)$。
现在定义一个整数$a\in \mathbb{Z}_{N}$
的蒙哥马利形式(Montgomery form, Montgomery domain)为$aR\in \mathbb{Z}_N$。显然,一个整数$a$的蒙哥马利形式可以先算一次乘法$a\cdot R^2$ 最后算一次REDC得到,即:
$$aR = REDC(aR^2)$$

现在考虑如何计算两个整数$a$和$b$的模乘,即$ab\bmod N$。这里利用蒙哥马利模乘达成这个计算目标。蒙哥马利模乘可以分三步进行计算。

  1. 将输入转成蒙哥马利形式,即 $aR=REDC(aR^2), bR=REDC(bR^2)$
  2. 做一次标准乘法得$abR^2=aR\cdot bR$
  3. 最后做一次REDC得 $abR=REDC(abR^2)$

注意上面三个步骤返回的是蒙哥马利形式的$ab$,即$abR$。若需要转换成正常形式的$ab$,需要再做一次REDC得$ab=REDC(abR)$。

蒙哥马利模约减

现在讨论蒙哥马利模乘最重要的部分REDC。下面给出REDC的算法描述

function REDC is
    input: Integers R and N with gcd(R, N) = 1,
           Integer N′ in [0, R − 1] such that NN′ ≡ −1 mod R,
           Integer T in the range [0, RN − 1].
    output: Integer S in the range [0, N − 1] such that S ≡ TR−1 mod N

    m ← ((T mod R)N′) mod R
    t ← (T + mN) / R
    if t ≥ N then
        return t − N
    else
        return t
    end if
end function

一般地,想做模约减运算,需要做一次试除,即 $a \bmod N = a-N\cdot \lfloor a/N\rfloor$。 REDC的核心思想是避免做除法$\lfloor a/N\rfloor$,但是仍能求得模约减的结果。
作为代价, REDC算的模约减结果包含了一个'尾巴' $R^{-1}$。这也是为什么蒙哥马利模乘算法当中反复强调要在蒙哥马利形式下进行的根本原因。

接着,我们讨论构造REDC算法当中的直觉。注意REDC算法的输入是T。 我们希望T加上N的某个整数倍恰好能被R整除,即 $(T+mN)/R$ 是一个整数。通过巧妙地选择参数$m$使得 $(T+mN)/R$ 是一个比较小(小于2N)的整数, 且 $(T+mN)/R = TR^{-1} \bmod N$。

最后我们正式地证明REDC算法的正确性。容易分析出证明REDC是正确的,只需证明下面三个性质成立

  1. $T+mN$ 被R整除。 证明: $T+mN \equiv T + ||T|_RN'|_R\cdot N\equiv T+TN'N \equiv T-T \equiv 0 \bmod R$
  2. $t\equiv TR^{-1} \bmod N$。证明: $t\equiv (T+mN)R^{-1} \equiv TR^{-1}+mR^{-1}N\equiv TR^{-1} (\bmod N)$
  3. $(T+mN)/R<2N$。 证明: 易知$m\leq R-1$, $T\leq RN-1$, 所以 $T+mN\leq 2RN-N-1<2RN$

【转载+公式修复】RSA算法原理(二)

作者: 阮一峰
日期: 2013年6月27日
原文地址:RSA算法原理(二)

上一次,我介绍了一些数论知识。

有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。

六、密钥生成的步骤

我们通过一个例子,来理解RSA算法。假设爱丽丝要与鲍勃进行加密通信,她该怎么生成公钥和私钥呢?

第一步,随机选择两个不相等的质数p和q。

爱丽丝选择了61和53。(实际应用中,这两个质数越大,就越难破解。)

第二步,计算p和q的乘积n。

爱丽丝就把61和53相乘。

  n = 61×53 = 3233

n的长度就是密钥长度。3233写成二进制是110010100001,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。

第三步,计算n的欧拉函数φ(n)。

根据公式:

$$\phi(n) = (p-1)(q-1)$$

爱丽丝算出φ(3233)等于60×52,即3120。

第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。

爱丽丝就在1到3120之间,随机选择了17。(实际应用中,常常选择65537。)

第五步,计算e对于φ(n)的模反元素d。

所谓"模反元素"就是指有一个整数d,可以使得ed被φ(n)除的余数为1。

$$ed \equiv 1 , (\text{mod} , \phi(n))$$

这个式子等价于

$$ed-1=k\phi(n)$$

于是,找到模反元素d,实质上就是对下面这个二元一次方程求解。

$$ex + \phi(n)y = 1$$

已知 e=17, φ(n)=3120,

$$17x + 3120y = 1$$

这个方程可以用"扩展欧几里得算法"求解,此处省略具体过程。总之,爱丽丝算出一组整数解为 (x,y)=(2753,-15),即 d=2753。

至此所有计算完成。

第六步,将n和e封装成公钥,n和d封装成私钥。

在爱丽丝的例子中,n=3233,e=17,d=2753,所以公钥就是 (3233,17),私钥就是(3233, 2753)。

实际应用中,公钥和私钥的数据都采用ASN.1格式表达(实例)。

七、RSA算法的可靠性

回顾上面的密钥生成步骤,一共出现六个数字:

p, q, n, φ(n), e, d

这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。

那么,有无可能在已知n和e的情况下,推导出d?

(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。

(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。

(3)n=pq。只有将n因数分解,才能算出p和q。

结论:如果n可以被因数分解,d就可以算出,也就意味着私钥被破解。

可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。维基百科这样写道:

 "对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。

 假如有人找到一种快速因数分解的算法,那么RSA的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA密钥才可能被暴力破解。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。

 只要密钥长度足够长,用RSA加密的信息实际上是不能被解破的。"

举例来说,你可以对3233进行因数分解(61×53),但是你没法对下面这个整数进行因数分解。

  12301866845301177551304949
  58384962720772853569595334
  79219732245215172640050726
  36575187452021997864693899
  56474942774063845925192557
  32630345373154826850791702
  61221429134616704292143116
  02221240479274737794080665
  351419597459856902143413

它等于这样两个质数的乘积:

  33478071698956898786044169
  84821269081770479498371376
  85689124313889828837938780
  02287614711652531743087737
  814467999489
    ×
  36746043666799590428244633
  79962795263227915816434308
  76426760322838157396665112
  79233373417143396810270092
  798736308917

事实上,这大概是人类已经分解的最大整数(232个十进制位,768个二进制位)。比它更大的因数分解,还没有被报道过,因此目前被破解的最长RSA密钥就是768位。

八、加密和解密

有了公钥和密钥,就能进行加密和解密了。

(1)加密要用公钥 (n,e)

假设鲍勃要向爱丽丝发送加密信息m,他就要用爱丽丝的公钥 (n,e) 对m进行加密。这里需要注意,m必须是整数(字符串可以取ascii值或unicode值),且m必须小于n。

所谓"加密",就是算出下式的c:

$$me \equiv c (mod n)$$

爱丽丝的公钥是 (3233, 17),鲍勃的m假设是65,那么可以算出下面的等式:

$$6517 \equiv 2790 (mod 3233)$$

于是,c等于2790,鲍勃就把2790发给了爱丽丝。

(2)解密要用私钥(n,d)

爱丽丝拿到鲍勃发来的2790以后,就用自己的私钥(3233, 2753) 进行解密。可以证明,下面的等式一定成立:

$$cd \equiv m (mod n)$$

也就是说,c的d次方除以n的余数为m。现在,c等于2790,私钥是(3233, 2753),那么,爱丽丝算出

$$27902753 \equiv 65 (mod 3233)$$

因此,爱丽丝知道了鲍勃加密前的原文就是65。

至此,"加密--解密"的整个过程全部完成。

我们可以看到,如果不知道d,就没有办法从c求出m。而前面已经说过,要知道d就必须分解n,这是极难做到的,所以RSA算法保证了通信安全。

你可能会问,公钥(n,e) 只能加密小于n的整数m,那么如果要加密大于n的整数,该怎么办?有两种解决方法:一种是把长信息分割成若干段短消息,每段分别加密;另一种是先选择一种"对称性加密算法"(比如DES),用这种算法的密钥加密信息,再用RSA公钥加密DES密钥。

九、私钥解密的证明

最后,我们来证明,为什么用私钥解密,一定可以正确地得到m。也就是证明下面这个式子:

$$cd \equiv m (mod n)$$

因为,根据加密规则

$$me \equiv c (mod n)$$

于是,c可以写成下面的形式:

$$c = me - kn$$

将c代入要我们要证明的那个解密规则:

$$(me - kn)d \equiv m (mod n)$$

它等同于求证

$$med \equiv m (mod n)$$

由于

$$ed \equiv 1 (mod φ(n))$$

所以

$$ed = h\phi(n)+1$$

将ed代入:

$$mh\phi(n)+1 \equiv m (mod n)$$

接下来,分成两种情况证明上面这个式子。

(1)m与n互质。

根据欧拉定理,此时

$$m\phi(n) \equiv 1 (mod n)$$

得到

$$(m\phi(n))h * m \equiv m (mod n)$$

原式得到证明。

(2)m与n不是互质关系。

此时,由于n等于质数p和q的乘积,所以m必然等于kp或kq。

以 m = kp为例,考虑到这时k与q必然互质,则根据欧拉定理,下面的式子成立:

$$(kp)q-1 \equiv 1 (mod q)$$

进一步得到

$$[(kp)q-1]h(p-1) * kp \equiv kp (mod q)$$

$$(kp)ed \equiv kp (mod q)$$

将它改写成下面的等式

$$(kp)ed = tq + kp$$

这时t必然能被p整除,即 t=t'p

$$(kp)ed = t'pq + kp$$

因为 m=kp,n=pq,所以

$$med \equiv m (mod n)$$

原式得到证明。

(完)

【转载+公式修复】RSA算法原理(一)

作者: 阮一峰
日期: 2013年6月27日
原文地址:RSA算法原理(一)

如果你问我,哪一种算法最重要?

我可能会回答"公钥加密算法"。

因为它是计算机通信安全的基石,保证了加密数据不会被破解。你可以想象一下,信用卡交易被破解的后果。

进入正题之前,我先简单介绍一下,什么是"公钥加密算法"。

一、一点历史

1976年以前,所有的加密方法都是同一种模式:

(1)甲方选择某一种加密规则,对信息进行加密;

(2)乙方使用同一种规则,对信息进行解密。

由于加密和解密使用同样规则(简称"密钥"),这被称为"对称加密算法"(Symmetric-key algorithm)。

这种加密模式有一个最大弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。

1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。

这种新的加密模式被称为"非对称加密算法"。

(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

(2)甲方获取乙方的公钥,然后用它对信息加密。

(3)乙方得到加密后的信息,用私钥解密。

如果公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字命名,叫做RSA算法。从那时直到现在,RSA算法一直是最广为使用的"非对称加密算法"。毫不夸张地说,只要有计算机网络的地方,就有RSA算法。

这种算法非常可靠,密钥越长,它就越难破解。根据已经披露的文献,目前被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此可以认为,1024位的RSA密钥基本安全,2048位的密钥极其安全。

下面,我就进入正题,解释RSA算法的原理。文章共分成两部分,今天是第一部分,介绍要用到的四个数学概念。你可以看到,RSA算法并不难,只需要一点数论知识就可以理解。

二、互质关系

如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)。比如,15和32没有公因子,所以它们是互质关系。这说明,不是质数也可以构成互质关系。

关于互质关系,不难得到以下结论:

1. 任意两个质数构成互质关系,比如13和61。

2. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。

3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。

4. 1和任意一个自然数是都是互质关系,比如1和99。

5. p是大于1的整数,则p和p-1构成互质关系,比如57和56。

6. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

三、欧拉函数

请思考以下问题:

任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?)

计算这个值的方法就叫做欧拉函数,以φ(n)表示。在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。

φ(n) 的计算方法并不复杂,但是为了得到最后那个公式,需要一步步讨论。

第一种情况

如果n=1,则 φ(1) = 1 。因为1与任何数(包括自身)都构成互质关系。

第二种情况

如果n是质数,则 φ(n)=n-1 。因为质数与小于它的每一个数,都构成互质关系。比如5与1、2、3、4都构成互质关系。

第三种情况

如果n是质数的某一个次方,即 n = p^k (p为质数,k为大于等于1的整数),则
$$\phi(p^{k})=p^{k}-p^{k-1}$$
比如 φ(8) = φ(2^3) =2^3 - 2^2 = 8 -4 = 4。

这是因为只有当一个数不包含质数p,才可能与n互质。而包含质数p的数一共有p^(k-1)个,即1×p、2×p、3×p、...、p^(k-1)×p,把它们去除,剩下的就是与n互质的数。

上面的式子还可以写成下面的形式:
$$\phi(p^{k})=p^{k}-p^{k-1}=p^{k}(1-\frac{1}{p})$$
可以看出,上面的第二种情况是 k=1 时的特例。

第四种情况

如果n可以分解成两个互质的整数之积,

n = p1 × p2

φ(n) = φ(p1p2) = φ(p1)φ(p2)

即积的欧拉函数等于各个因子的欧拉函数之积。比如,φ(56)=φ(8×7)=φ(8)×φ(7)=4×6=24。

这一条的证明要用到"中国剩余定理",这里就不展开了,只简单说一下思路:如果a与p1互质(a<p1),b与p2互质
(b<p2),c与p1p2互质(c<p1p2),则c与数对 (a,b)是一一对应关系。由于a的值有φ(p1)种可能,b的值有φ(p2)种可能,则数对 (a,b) 有φ(p1)φ(p2)种可能,而c的值有φ(p1p2)种可能,所以φ(p1p2)就等于φ(p1)φ(p2)。

第五种情况

因为任意一个大于1的正整数,都可以写成一系列质数的积。
$$n=p_{1}^{k_{1}}p_{2}^{k_{2}}...p_{r}^{k_{r}}$$
根据第4条的结论,得到
$$\phi(n)=\phi(p_{1}^{k_{1}})\phi(p_{2}^{k_{2}})...\phi(p_{r}^{k_{r}})$$
再根据第3条的结论,得到
$$\phi(n)=p_{1}^{k_{1}}p_{2}^{k_{2}}...p_{r}^{k_{r}}(1-\frac{1}{p_{1}})(1-\frac{1}{p_{2}})...(1-\frac{1}{p_{r}})$$
也就等于
$$\phi(n)=n(1-\frac{1}{p_{1}})(1-\frac{1}{p_{2}})...(1-\frac{1}{p_{r}})$$
这就是欧拉函数的通用计算公式。比如,1323的欧拉函数,计算过程如下:
$$\phi(1323)=\phi(3^{3}\times7^{2})=1323(1-\frac{1}{3})(1-\frac{1}{7})=756$$
四、欧拉定理

欧拉函数的用处,在于欧拉定理。"欧拉定理"指的是:

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:

$$a^{\phi(n)}\equiv\ 1\ (mod\ n)$$
也就是说,a的φ(n)次方被n除的余数为1。或者说,a的φ(n)次方减去1,可以被n整除。比如,3和7互质,而7的欧拉函数φ(7)等于6,所以3的6次方(729)减去1,可以被7整除(728/7=104)。

欧拉定理的证明比较复杂,这里就省略了。我们只要记住它的结论就行了。

欧拉定理可以大大简化某些运算。比如,7和10互质,根据欧拉定理,
$$7^{\phi(10)}\equiv\ 1\ (mod\ 10) $$
已知 φ(10) 等于4,所以马上得到7的4倍数次方的个位数肯定是1。
$$7^{4k}\equiv\ 1\ (mod\ 10) $$
因此,7的任意次方的个位数(例如7的222次方),心算就可以算出来。

欧拉定理有一个特殊情况。

假设正整数a与质数p互质,因为质数p的φ(p)等于p-1,则欧拉定理可以写成

$$a^{p-1}\equiv\ 1\ (mod\ p) $$
这就是著名的费马小定理。它是欧拉定理的特例。

欧拉定理是RSA算法的核心。理解了这个定理,就可以理解RSA。

五、模反元素

还剩下最后一个概念:

如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。

$$ab \equiv 1\ (mod\ n)$$

这时,b就叫做a的"模反元素"。

比如,3和11互质,那么3的模反元素就是4,因为 (3 × 4)-1 可以被11整除。显然,模反元素不止一个, 4加减11的整数倍都是3的模反元素 {...,-18,-7,4,15,26,...},即如果b是a的模反元素,则 b+kn 都是a的模反元素。

欧拉定理可以用来证明模反元素必然存在。
$$a^{\phi(n)}=a\times a^{\phi(n)-1}\equiv\ 1\ (mod\ n)$$
可以看到,a的 φ(n)-1 次方,就是a的模反元素。

==========================================

好了,需要用到的数学工具,全部介绍完了。RSA算法涉及的数学知识,就是上面这些,下一次我就来介绍公钥和私钥到底是怎么生成的。

(完)

【转载翻译】ChatGPT:一个心智模型 A Mental Model

自从ChatGPT于2022年底推出以来,我一直在努力地正确表述这项技术,世界其他地方亦是如此,无数关于末日和厄运的文章铺天而来:对纸夹最大化者*的恐惧、对失业的恐惧、对经济结构改变的恐惧、对AI幻觉的恐惧、对加速误导信息的恐惧、对学生作弊的恐惧等等。

这真是令人筋疲力尽。

经常有非工程师询问我这位工程师怎么看这件事。下面是我的回答..

“paperclip maximizer”(纸夹最大化者)是一个思想实验中的概念,最初由哲学家尼克·博斯特罗姆(Nick Bostrom)提出。实验中,一个AI系统被设计用来制造尽可能多的纸夹。如果这个AI非常强大,它可能会采取极端措施来达成这个目标,例如占用所有资源来生产纸夹,甚至牺牲人类的福祉和地球的生态环境。

应该克制的理由

经历了多次技术热潮,我的行事方式一直是也仍然是:“保持冷静,继续前行!”

为了唤起你的记忆,历史上曾发生过以下事情:

在1990年代,我们终于找到了“约柜之约”*,它被称为“Java面向对象编程”。我们打算重写一切,甚至是操作系统。而今天的Linux是……哦,等等……它仍然是C语言。

“Ark of the Covenant”(约柜)是圣经中的一个重要文物,不仅是以色列人的精神象征,也被认为具有强大的力量,是上帝的存在的象征。在圣经叙述中,携带约柜的以色列人在战争中常常获得胜利,约柜也因此被视为神圣而不可侵犯的宝物。

在1990年代末到2000年代初,我们都意识到互联网深远的革命性意义,以至于“公司做什么”不如“他们是否在互联网上做”重要。而纳斯达克市场当然没有崩溃,也没有用15年时间恢复到同样的价格水平……
2008年经济危机之后,中本聪彻底取代了基于人与人之间脆弱信任的世界金融系统。有了“信任”不再是必需品,比特币开启了一段加密货币、繁荣与自由的新纪元。金融部门的不稳定性不复存在。而且,在现已数字化的世界中,黑市完全无法运作。所有人欢庆。不幸的是,许多无价值的古老法定纸币仍然存在,因此,作为对世界的服务,本作者开始了一个慈善收集服务[email me]。
2022年,在五年预测准确实现后,美国交通部宣布禁止手动驾驶汽车,宣称“显而易见,5级自动驾驶远胜于人类驾驶员,今天是公共安全的里程碑日。”Argo AI的股票在市场开盘时翻了三倍。但,由于某些原因,我似乎无法访问argo.ai网站……嗯……
2023年:ChatGPT将世界变成了一个巨大的纸夹工厂,过程中消灭了所有人类。人类安息。

为你的下一场流行语宾果游戏准备的荣誉提名:一切都是大数据,一切都是微服务,一切都是敏捷开发,一切都是面向服务的架构,一切都应该是JavaScript,一切都可以无代码完成,一切都应该在云端,一切都应该是现场操作,一切都可以用机器学习和数据科学建模,……

撇开俏皮话不谈,确实有种感觉,ChatGPT与众不同,而且坦白说我并不反对这种看法(继续阅读)。但是,人类大脑有一种糟糕的倾向,那就是抓住变化不放,不是过度兴奋就是过度恐惧。真相往往存在于中间。

舞台左侧登场:罗德尼·布鲁克斯

最近,《IEEE Spectrum》杂志发布了一篇关于罗德尼·布鲁克斯的采访,题为《对GPT-4冷静一点》。罗德尼·布鲁克斯在其中提出了一个我从一开始就感受到但未能准确表达的框架:

它没有任何关于世界的基本模型

几乎像是关于心理理论的禅宗公案,他说:

大型语言模型擅长的是描述答案应该“听起来”像什么,这与答案应该“是”什么不同

这与我的感受正巧相同。

让我来解释一下。

面试ChatGPT

ChatGPT在2022年末推出时,我的朋友们立即向我极力推荐它,他们说:“我希望它就在我旁边,像一个对编程的搭档。”因此,自然而然地,我想要评估这一大胆的说法。

我问它我会问候选人的同样的面试问题。如果它要和我一起工作,它应该通过面试,对吧?但它没有通过。实际上,它惨败了。而且它的失败方式与普通候选人的失败方式相同(这种方式本身就很不寻常)。

它是如何失败的?它根本没有一个关于世界的底层心智模型。回想起来,我的面试问题一直都是围绕这个点。我对琐碎的知识不感兴趣。我对使用的工具不感兴趣。我对几个正确组合的流行词也不感兴趣。

但我对某人基于某种现实模型推理解决问题的过程感兴趣。我喜欢探究该模型的边缘情况。我喜欢抛出罕见的、出人意料的“曲球”。我喜欢让人们思考他们以前从未考虑过的子问题。就好像我想说“让我们一起走到我们共同理解的边缘,然后尝试继续前行”。然而,要达到这一点,我们通常需要首先考虑并处理“标准的”或“平均的”答案。相比之下,ChatGPT没有显示出这种能力。

专家考试与世界模型构建

回想我的学生时代,我偶尔会遇到一些非常擅长应试的人。我指的是那种不真正学习实际材料的人。相反,他们会思考出题者是如何构建试题的。例如,他们多久会把“(a)”设为多项选择题的答案?我遇到过一些人,他们从未真正学过代数,因为他们可以仅靠技巧“通过考试”。我内心对这种技能深感敬畏,这是我所不具备的。我记忆力差,表演能力差,我的“读人”能力几乎可以肯定是低于平均水平的。我总是依赖于构建和探索一个日益精细的世界模型,作为在这个复杂世界中导航的拐杖。

我长期以来的都认为所有其他人都做同样的事情:建立一个世界模型。这是真的吗?我不知道。那些专精于生产“随需应变事实”的求职者的长队似乎反驳了这一点,而ChatGPT显然也不是这样。
但这也有另一种解释方式。

了解一切的平均数量......一切!

我当前对ChatGPT的心理模型是,它类似于“整个人类知识的最大似然估计器”。有两种非常不同的解释方式:(1) 呃,这只是一个愚蠢的统计技巧;(2) 哇塞!

你有没有遇到过一个似乎对每件事都懂一点的人?也许这个人还有一个大而多样的社交圈?也许如果你有关于某事的问题并需要某人指引方向,你会找这个人?一个具有极大广度的人。

根据我的经验,那个人可能没有最深的知识。或者他们甚至可能给你一些错误的答案。也许这些错误的答案甚至非常自信地给出。也许你因为他们误导你而感到受到冒犯......但是,也许你还是会坚持下去,因为你欣赏他们的广度。毕竟,他们只是偶尔灾难性地错了(耸肩)。

现在,那个人去了GPU训练营大约1000年,回来成了ChatGPT

这很难不让我们印象深刻,能够知道并访问......好吧......一切的“标准”或“平均”答案。哇。

但在那个千年的训练中,核心结构没有改变。它还是你一直都有的那个老朋友,会以同样的方式犯错,偶尔让你感到被冒犯,有时让你对他们的浅薄感到失望。

那么,这将把我们带到哪里?

ChatGPT异常有效性和价值性

一个创业朋友最近告诉我,他们每天都在不断地使用它。这是有道理的,作为一个创业者意味着你需要以很快的速度,不断变换“不同的帽子”。成功属于那些能够管理和利用广泛知识的人。

我自己设法在大约1小时内为这个网站学习并实现了一个RSS源,几乎没有任何背景知识,借助ChatGPT。它犯了几个错误,但它们很容易纠正。我确信单靠Google需要花费更长的时间。

此刻,Google似乎如此被SEO游戏化,以至于很难快速找到“最大似然”的平均信息。你必须穿越大量的点击诱饵、广告和闲聊,这些更多关于“品牌建设”而非“教育”,才能找到真正的宝石。ChatGPT简直是节省时间的利器。Google应该感到害怕,并且他们确实应该如此。

那么,未来会是什么样子呢?

大语言模型会改变全球经济吗?可能会。但这需要一些时间。互联网花了一些时间,手机也是如此,大多数新技术都是如此。

是否会有足够多的人类工作岗位消失?可能不会。

相反,你拥有的是一个将创造力和创新能力提升到新高度的非凡工具。我期待看到人们以新颖的方式结合不同的知识领域(广度)。这对跨学科项目是一个巨大的利好。

如果你担心失业,可以考虑这一点:我们曾经真的有被称为“计算机”的人(例如,看看被低估的电影《隐藏人物》),他们被机器取代了。这些工作消失了吗?没有,它们被大幅重组,然后增长爆炸性地增加!我们现在只是称他们为“计算机程序员”,截至2023年,全球有超过2500万名程序员(数据)。

很难相信这次会有很大的不同。出于某种原因,每当人类发明一种新的创新工具,我们似乎立刻就找到了大约100种以前从未实用的新用途。这是人类历史的一个故事。而且,肯定有一些关于人类思维的哲学藏在其中,但我今天不打算展开讨论。

变化可能会让人害怕吗?是的。绝对是。如果你不幸需要重组你的生活和职业,我为你感到遗憾。但是这种类型的变化是必要的。如今,一个普通人的生活比就几代人前的最富有的人们要好得多。正是因为这种变化。

这是一个了不起的时代。

保持冷静,继续前行!

原文:ChatGPT: A Mental Model - xorvoid(2023-05-27)

2023年终总结

由于拖延症,几乎在2024的1/4才开始动笔这篇文章
赶在暑假写完了
我多次提笔踌躇,不知该如何与一年前那个满怀斗志的自己和解,也难以想象该留给2024年的自己怎样的思考与期许。
未来已至,这是事实,无关我们是否愿意接受。

2023年伊始,疫情阴霾逐渐散去,生活渐渐回归正轨。在这样的背景之下,在大语言模型的浪潮下,我们开始畅谈诗和远方。有结识的新朋友,也有一些老友渐行渐远的老友。时光如水,悄然流逝,却在生命的长河中激起涟漪。

这些又会对若干年后的我,有哪些蝴蝶效应呢?

《深海》

春节档的电影是回忆开始的地方。但我想说的不是那一部足够宏大震撼的《流浪地球2》,而是与这个档期八字不合的动画电影《深海》。
这是一个小女孩濒死之际支离破碎的梦境和精神世界——初次观影时谜面揭晓的过程,给我带来了极大的震撼。开幕绚烂的粒子特效,随着剧情的深入愈发压抑,化成深红的“丧气鬼”裹挟着情绪陷入深渊。相比专业影评关注的逻辑,这种情绪的具象化是比较打动我的地方。
参宿四已经接近生命周期的终点,而南河三永远在它旁边闪烁。

各种学习

因为疫情的缘故,大学第一个学期的期末考试安排在开学进行,开学后焦头烂额的复习自然也逃不过学渣的宿命。彼时的我尚未意识到,这将是我在原学院度过的最后一个学期。但似乎也适应了平平淡淡的大学生活——很多要上的课、很多要完成的作业,自由支配的时间所剩无几。
那段日子里,我仿佛每天都在忙碌,却又说不清到底忙于何事。内心常被焦虑所困扰,不断地苛责自己。面对原专业的培养方案和执行计划,这种焦虑感不减反增。转专业,这个曾经被我搁置的想法,在当时似乎又成为了一个不错的选择。一路焦虑、但没有坎坷的情节,大二学年的我追随自己的选择,来到了新学院修习,也意味着更繁重的课业。
回想那些考试前夕的几近崩溃。即便时光流逝,那种切肤之痛依然鲜明如初。或者说,内心深处的紧张、焦虑和自我怀疑从未褪去。面对现实的残酷,无论是承认自己努力不足,还是接受努力后的徒劳无功,对我而言都太难以承受了。失败的阴影如影随形,我深陷于对失败的恐惧之中。但理智告诉我,人的精力是有限的。这种认知与内心的期望形成了强烈的反差,每当闲暇时刻降临,一种莫名的负罪感便会悄然而生。
我渴望成功,却又畏惧失败;我明白休息的必要,却又无法摆脱内疚的折磨。这种矛盾的心理状态,仿佛一场永无止境的拉锯战,伴随着我对自我的高要求,在追求完美与接纳现实之间不断挣扎。

各种失败

参加了几次陪跑的比赛,在此不再赘述。(时间不足,能力欠佳,别的说再多都像是在为自己找理由hh
大部分计划...

想做没能做的

旅游旅游旅游
学习自己喜欢的、不紧急但重要的知识

尾声