On the History of the Square and Multiply Algorithm:一项关于算法史学的范式重构与知识谱系学重建 ——ArXiv 2606.00958 深度解读与批判性分析 📋 论文基本信息 标题:On the History of the Square and Multiply Algorithm 作者:Nuh Aydin(肯特州立大学数学系,计算代数与密码学史专家)、Mohammad K. Azarian(中佛罗里达大学数学史学者,专精伊斯兰数学手稿考据)、Omid Khormali(伊朗谢里夫理工大学科学史中心,波斯语科技文献译释权威)、Ghaya Mtimet(突尼斯迦太基大学阿拉伯科学史研究员) ArXiv ID:2606.
On the History of the Square and Multiply Algorithm:一项关于算法史学的范式重构与知识谱系学重建
——ArXiv 2606.00958 深度解读与批判性分析
math.HO(History and Overview of Mathematics)为主类,cs.CR(Cryptography and Security)为交叉类SAM算法是现代公钥密码学的基石性算子:RSA密钥生成、Diffie-Hellman密钥交换、椭圆曲线标量乘(EC scalar multiplication)乃至后量子密码中的同源计算(isogeny-based crypto)均依赖其O(log n)时间复杂度实现高效模幂运算。在OpenSSL、LibTomCrypt、BoringSSL等主流密码库中,BN_mod_exp()函数的核心即SAM变体(如滑动窗口、Montgomery ladder等)。然而,这一“现代性”遮蔽了其漫长的前现代演化轨迹。
长期以来,SAM算法的历史叙述存在三重断裂:
(1)西方中心主义叙事惯性:标准教材(如Knuth《计算机程序设计艺术》Vol.2 §4.6.3)将SAM归功于19世纪“现代算法思想”的萌芽,或模糊指向“古代中国/印度算法”,却未提供可验证的原始文献链;
(2)概念史混淆:将“使用平方操作”(如求√2近似值)与“基于二进制展开的系统性指数分解”混为一谈,导致al-Uqlidisi(10世纪)的十进制开方术、al-Khwarizmi(9世纪)的代数演算被误读为SAM先驱;
(3)技术史与思想史脱节:现有研究多聚焦算法复杂度分析(如Brent–Kung并行化),却忽视其作为“计算思维范式转移”的认识论意义——即从“过程导向”(procedural)向“表示导向”(representational)的跃迁:指数不再被视为连续迭代次数,而被解构为位串(bit-string),运算逻辑由数字表示本身驱动。
本文动机直指这一知识真空:以严格文献学方法重建SAM的概念谱系,回答三个根本问题:
① 何时首次出现“将指数二进制展开→逐位决定是否乘入当前幂”的显式操作规则?
② 谁首次将其抽象为独立于具体数值的通用算法(algorithm in the medieval sense)?
③ 从Pingala的韵律符号到al-Kashi的代数公式,其间经历了怎样的认知中介与技术转译?
此非单纯“溯源”,而是对算法本质的历史哲学界定:当且仅当满足“输入-输出明确性”“步骤有限性”“机械可执行性”“一般性适用”四条件时,方可称为“算法”。本文以此为判准,重绘SAM的诞生图谱。
论文采用三阶文献考古法(Tripartite Philological Archaeology),突破传统科学史的单线叙事:
作者团队历时7年,系统梳理全球12个机构收藏的17份关键手稿:
“设欲求 a^n,先将 n 写为二进制:n = Σ ε_i 2^i(ε_i ∈ {0,1}),依次计算 a^{2^0}, a^{2^1}, a^{2^2}, ..., a^{2^k}(每步平方),再将所有 ε_i=1 对应的 a^{2^i} 相乘。”
此为现存最早完整算法描述(含输入表示、迭代规则、终止条件、合成逻辑),且al-Kashi自述:“此法吾新创,前人未尝道也”(hādhā al-ṭarīqat al-jadīdah allatī lam yushtaqilhā aḥad min al-mutaqaddimīn)。
作者构建历史算法状态机模型(HASM),将各文本中的计算实践映射为五元组〈S, I, O, δ, F〉:
据此,Pingala的韵律算法(pratyaya)仅有S={韵律长度}、I={音节序列}、δ=递归组合规则,但无显式二进制展开与条件乘法,故属“前算法”(pre-algorithmic);al-Uqlidisi的开方术有S={当前近似值}、δ=平方+校正,但I为十进制数,**无指数分解意识**;唯al-Kashi版本完整满足HASM全部要素,确立其算法地位。
提出**“符号-计算-制度”三重传导假说**:
此框架拒绝“传播论”(diffusionism)或“独立发明论”(independent invention)的二元对立,强调知识在跨语境转译中的创造性重构。
需强调:本文为纯人文科学研究,无传统“实验”,但设计了三项严谨的实证检验:
对al-Kashi《Miftāḥ》的4个存世抄本(撒马尔罕、伊斯坦布尔、开罗、德黑兰)进行碳14测年(样本取自装订线纤维)与墨水成分光谱分析(XRF),确认其主体内容成于1427±2年,排除后世增补可能。同时,比对其与al-Biruni手稿中相同天文计算(如月球黄经)的误差模式,证实al-Kashi算法使计算精度提升2个数量级(从10^{-3}至10^{-5}弧度)。
作者用Python实现三阶段算法:
构建“SAM思想流”有向图(节点=文献,边=确证引用/抄录关系),使用Gephi分析:
首次确立al-Kashi为SAM算法的正式发明者
超越“谁最早用平方”的浅层考据,以算法哲学标准(Turing/Church定义雏形)证明:al-Kashi是首位将二进制指数分解、迭代平方、条件乘法三要素整合为可脱离具体问题的通用计算程序者。此结论已获国际科学史学会(DHST)2025年共识声明采纳。
提出“算法发生学”(Algorithmic Genesis)新范式
将Piaget发生认识论引入技术史,揭示SAM并非突然“发明”,而是经历:
符号潜能(Pingala韵律)→ 计算实践(al-Uqlidisi开方)→ 理论抽象(al-Kashi代数化)→ 制度固化(帖木儿天文台标准流程)的四阶演化。此范式可推广至欧几里得算法、高斯消元法等经典算法史研究。
破解“二进制思维”的跨文明起源之谜
证实二进制表示法(binary representation)与二进制算法(binary algorithm)存在千年时滞:Pingala有二进制符号系统,但无二进制运算逻辑;al-Kashi有完整二进制算法,但未提出二进制数制理论。二者统一要待莱布尼茨(1703)——本文厘清了这一关键区分,修正了“Leibniz受《易经》启发发明二进制”的流行误读。
建立首个中世纪算法手稿数字语料库(MAMC)
公开包含37部手稿的OCR文本、语法标注、算法段落定位(GitHub: /medieval-algo-corpus),支持跨语言关键词检索(如梵文“dvikrama”、阿拉伯文“murabbaʿ”、波斯文“chahār-gūnah”),为算法史量化研究奠基。
重构密码学史的深层时间维度
揭示现代密码学依赖的“计算可行性”(computational feasibility)概念,其思想源头可溯至15世纪对“手工计算资源约束”的自觉——al-Kashi强调“此法省力”(yuqallil al-mashāqqah),正是现代复杂度理论中“资源有界性”的前现代回响。此发现迫使密码学史重写“前图灵时代”章节。
未来方向:拓展至中国《九章算术》“开方术”与日本和算“累遍法”的比较研究;利用NLP挖掘拜占庭希腊文手稿中的潜在算法线索;构建“全球算法演化树”(Global Algorithmic Phylogeny)。
本文以惊人的文献功力与深刻的哲学洞察,完成了对SAM算法史的“去神话化”与“再语境化”。其最大贡献在于:将算法从技术工具升华为文明认知范式的载体——al-Kashi的“省力”诉求,本质是对人类计算理性的自觉;Pingala的韵律符号,则揭示了抽象符号系统如何先于形式逻辑而孕育计算思维。
局限性亦值得深思:
改进建议:
① 启动“东亚算法手稿国际编目计划”,联合中科院自然科学史所、京都大学人文科学研究所,共建东亚算法语料库;
② 开发“算法史仿真引擎”(AHSE),在虚拟环境中重现15世纪撒马尔罕天文台的计算工作流,量化评估不同算法对观测精度的实际影响;
③ 将HASM嵌入密码学协议验证工具(如ProVerif),探索历史算法思想对形式化安全证明的启发。
当我们在TLS 1.3握手时毫秒级完成2048位模幂,我们不仅调用着现代密码学的精密齿轮,更在无意识中延续着1427年撒马尔罕星图室里的那支芦苇笔——它划过的不是羊皮纸,而是人类理性在时间维度上刻下的第一道算法年轮。
(全文统计:4820字)