標題:《未然看碼》
前記
從《易經》開始:
宇宙萬物,道法陰陽,陰陽未分為混沌,混沌即無極,演而有序,化為太極。
易有太極,是生兩儀,兩儀生四象,四象演八卦,八卦演萬物。
陰陽術創造了一個世界,炊煙裊裊,鳥語花香。
二進制創造了另一個世界,有一個小男孩,已經醒來。
0×01 編碼的故事
ASCII
一個神秘組織為了融入人類的語言符號,將二進制的單元八位一組,建立了一套符號對應關系表(例如 A=> 01000001),即 ascii 表,它是符號表的始祖。PS:標準 ascii 表的第一位都是 0,因此只有128 個字符。
一句話總結:所有編碼的爸爸。
gb2312/gbk/gb18030
聰明的天朝人民也想融入自己的文字。由于標準 ascii 字符首位為 0,他們用兩個首位為 1 的字節(我=> 1100111011010010)組合來表示漢字。為了慶祝這種機智的做法,命名為 gb2312;加入繁體字后,發現還是不夠用。讓后面一個字節的首位也可以為 0 ,這樣又可以多編碼一倍的漢字,這種方案叫 gbk;再后來,加入少數民族文字,就有了 gb18030。
天朝另一個小區域一直在用繁體字,他們發明了 Big5 漢字編碼。
一句話總結:中國特色的編碼。
Unicode
“你們不可能每個人都這么亂搞一套編碼吧?你們互不相懂,唧唧歪歪,互相傷害,還能好好做朋友嗎?”另一個神秘組織終于忍不住了,“你們不是嫌 ascii 編碼不了你們的文字么?那簡單,我用 2個字節,把全世界所有的符號都統一編碼起來。”這樣就出現了 Unicode。最初用 2 個字節想表示所有字符的方案,叫做 UCS-2,這樣最多能表示 65536個字符。突然有一天,這位小哥發現 2 個字節根本不可能編碼世界上所有的字符,就有了后面的 UCS-4,用 4 個字節來統一編碼總夠了吧……
一句話總結:別鬧了都聽哥的。
utf-7/8/16/32
這樣編碼是好,然而傳輸呢?按照 UCS-2 方案,所有字符都需要兩個字節來傳輸,例如要發送一個A,就要發送 0000000001000001 這么多位,很浪費有木有?而且在實際傳輸中,數字和字母這樣的字符占絕大多數。機智的人們又想搞事情了,引用哈弗曼編碼的思想,出現頻率越高的字符用更短的編碼傳輸,頻率低的字符就用多一點的編碼傳輸。
utf-8,即每次傳輸 8 位一組。
所以發送 A,傳輸時一組就夠了,實際傳輸 01000001。
而發送“漢”,則需要三組才行, 實際傳輸 111001101011000110001001。其中藍色 8 位是 Unicode編碼的第一個字節,綠色 8 位是第二個字節。
utf-7,utf-16,utf-32 也是一樣的道理。utf-7 期初是用于電子郵件,郵件以字母為主,ascii 實質也是7 位一組。后面 16 和 32 這兩種分組沒有流行起來。
PS:utf-8 傳輸簡體漢字時,是按照 3 個字節傳輸的,這就有了 utf-8 是 3 個字節這樣的說法。實際上在 UCS-2 下 utf-8 傳輸字符,用 1-3 都是有可能的哦^_^
另外經常寫和字符有關程序的小伙伴,一定有這樣一個經驗,想要讓 gbk 和 utf-8互轉,都是先要轉到 Unicode 哦。
一句話總結:按頻率傳輸,節省流量。
0×02 更少的編碼
前面這一小段故事講完了,我們先休息一下,馬上進入更有意思的話題。
話說天下大勢,分久必合,合久必分。字符的編碼由簡入繁,勢必也會化繁為簡。那么如何用更少的字符去表示所有編碼呢?
Quoted-printable 編碼
ascii 有 127 個字符,而且很多符號甚至是不可打印的,那怎么才能讓他們都能顯示呢?這個簡單,對于不可打印字符,就用“=XX”表示,其中 XX 是該字符的 ascii 編碼。例如換頁符(ascii 為 0C),就可以表示成=0C。只需要=和0-F 這17個字符哦^_^
一句話總結:即使不可打印,也要可見。
Base64/32/16 編解碼
Base 家族原理類似,就是用少量字符表示更多字符,但是也不像二進制那么少。Base64 即用64 個字符來表示所有ascii,怎么做到的呢?
大寫字母集 W={A,B,C…Z} 共 26 個
小寫字母集 w={a,b,c…z} 共 26 個
數字集 d={0,1,2…9} 共 10 個
符號集 s={+,/}
這 64 個字符對應數字 0-63,轉化成二進制則是 6 位。而 ascii 是用 8 位,6 和 8 的最小公倍數是 24=3 * 8=4 * 6,所以將3 個ascii 字符就能轉化成4 個base64 字符。
ascii 的 ABC-> 010000010100001001000011 ->010000 010100001001000011 ->QUJD
同理 base32 是用 32 個字符即 5 位表示,5 * 8=8 * 5,所以 base32 會把 5 個 ascii 字符變成 8 字符哦。
PS:如果字符數不是3 的倍數,怎么辦?看一下操作你就知道了。
A -> 01000001-> 01000001 0000-> QQ==所以你會看到 base64 串后面有1或2個=。
另外有些不專業的銷售,會說他們的產品是用 base64 加密的,客戶就會立刻質疑他的產品!base64只是一種編碼,它的實質還是明文,你說用它來加密,不是掩耳盜鈴??
另外依照這種理論,那么我們的二進制是不是可以理解成 base2?ascii 就是 base128 嘛。
一句話總結:用我們常用的字符表示所有字符。
XX 編碼,UU 編碼
它們實質跟 base64 是一樣的,也是用 64 個字符來表示,只是選取的字符和編排方式不同罷了,其實它們才是base64 的前身,慢慢演進,漸漸被base64 取代了。
一句話總結:長江后浪推前浪。
URL,HTML 編碼
URL編碼
采用“%+ascii”的方式對字符進行編碼,比如:
http://www.wr.com?file=../../passwd -> http://www.wr.com?file=%2e%2e%2f%2e%2e%2fpasswd
HTML編碼
采用“&#+十進制數字”或“&#x+十六進制數字”的方式對字符進行編碼,比如:
<p>ab</p> -> <p>ac</p>
一句話總結:新瓶裝舊酒。
說了這么多,下面畫個編碼家族的家譜圖:
0×03 古典密碼
從這些編解碼演化的過程中,相信各位看官也會感受到勞動人民的智慧。前面的只是熱身,下面將進入今天的重頭戲,密碼學。
還是回到開頭那句話,任何一種思想或者想法,都一定是為了解決實際問題而設計的。字符編碼的故事,是為了解決字符的表示、顯示和傳輸的問題。那么密碼學是為了啥子呢?
相信 Bob,Alice 和 Ted 斗智斗勇的故事大家都看過,沒有看過的可以百度一下,挺有意思的。數據傳輸的安全性包括以下三個性質:
機密性:數據被偷了,小偷不知道是啥。
完整性:數據被改了,接受方能夠發現。
可用性:純屬廢話,不能用還要你何用?
下面主要介紹密碼學在前兩條性質中的作用。
先來幾個不算是密碼的密碼算法。為啥這樣說呢,因為這些算法剛發明時,別人不知道是怎么計算的,因此無法根據“密文”還原出原來的信息,可以算作加密。后來被普及了,大家就都會算了,這時候你還說你加密了,你是不是當我傻?
凱撒密碼
引用一句話 I came,I saw, I conquered. 多么霸氣啊。這個以帝國霸主名字命名的密碼學確實如此樸素。凱撒密碼有兩種模式:
(1)位移密碼,就是講明文每位都移動特定位數,例如 AbC 右移 4 位就變成 Efg.
那么我(I)想對你說:M pszi csy.
(2)查表密碼,指定一張明文和密文對應的關系表,然后對著這個表進行加解密。例如:
Hello加密之后就變成 Axeeh,那么Ixkyxvm.
維吉尼亞密碼
我理解它是一種升級版的凱撒密碼,它引入一張 26*26 的密碼表盤,可以設定一個密鑰,然后按照查表的方式進行加解密。由于操作簡單,不過多敘述。
ROT5/13/18/47
ROT13 就是右移 13 位的凱撒密碼,后面的數字是移動位數,這種加密方法不限定在數字或字母上,也可以拓展到所有 ascii。
摩爾斯密碼
.. … – .. .-.. .-.. .-.. — …- . -.—– ..-
當鋪密碼
這種密碼感覺還是很有意思的,就是看漢字露出的筆畫數,決定這個數字是幾,例如“十”,上下左右四處漏出,所有他就是數字 4 。
告訴你一句表白:大中口由人甲工
豬圈密碼,柵欄密碼等,其原理差不多,就是通過一張事先約定好的密碼表,然后將明文進行查表加解密。
PS :這些密碼算法實現簡單,只是對原始字符做了一種替換編碼,想到即解決。因此這些算法深受考腦洞的 CTF 賽友的青睞,也只適合出現在比賽和游戲中。
0×04 現代密碼算法
好了終于把這一段樸素的古典密碼啰嗦完了,下面這一段介紹現代密碼學。還是從機密性和完整性這兩條性質展開,來介紹一下密碼學算法是如何解決這些問題的。
先來說說機密性,密碼學的機密性算法,都是含有密鑰的。理論上來講,一份數據在網絡上傳播,被誰獲取都是有可能的,如果它的主人只希望“對的人”才能理解它,所以必須有密鑰機制才能保障。
含有密鑰的加密算法有兩類,對稱加密和非對稱加密。
對稱加密算法
加解密的雙方使用同一個密鑰,一般是加解密雙方以一種不可告人的方式偷偷約定好一個密鑰。所有需要傳遞的消息都用這個密鑰加密成暗號,接收方用這個密鑰解密得到原始消息。
目前的對稱加密有“流加密”和“分組加密”。
流密碼算法:將明文按字符逐位(逐比特)地、對應地進行加密的一類對稱密碼算法。
分組密碼算法:將明文分成固定長度的分組,如64bit 或 128bit 一組,用同一密鑰和算法對每一個分組加密,輸出也是固定長度的密文。
流加密算法相對簡單,你可以把明文串和密鑰串看成兩條長長的水管,遇到對齊的位就做一個約定好的運算。目前有代表性的算法有RC4和 GSM。
舉個栗子,一個異或的流加密過程如下:
知道了加密過程,解密也自然思路清晰:
由于流加密原理簡單,其算法結構存在著弱點,另外密鑰流有一般會多次重用,泄露局部的明文就可能讓攻擊者嗅探出密鑰。另外,由于流加密是按位進行加密的,攻擊者如果只是修改了密文中幾個bit,不會破壞原消息的結構,這樣接受者就會接受錯誤的信息。
PS :目前所有的流機密算法,都被認為是不安全的,重要消息不要用流加密哦^_^
分組加密算法內部實現復雜,每一塊加密,都有幾十輪運算,這里我不打算過多地介紹其實現過程。其代表算法有DES 和 AES。
目前 DES 已經被證明是不安全的,但是 3 重 DES 當三次的密鑰都不相等時,是安全的。AES 密鑰長度在 128 以上的算法,目前都是安全的。
分組模式其實還有很多,我主要介紹一下 ECB 和 CBC 模式。
ECB 模式:每組是獨立和密鑰進行運算的:
CBC 模式:每組先和上一組密文運算后,再跟密鑰運算:
我們拍拍腦袋想想就知道CBC 模式更加安全,因此強烈建議使用 CBC 模式,下面再來張圖,看看兩種模式加密之后的效果:
一句話總結:對稱加密就是用同一把密鑰進行加解密。
非對稱加密算法
座山雕:天王蓋地虎!
楊子榮:寶塔鎮河妖!
眾金剛:么哈?么哈?
楊子榮:正晌午時說話,誰也沒有家!
座山雕:臉紅什么?
楊子榮:精神煥發!
座山雕:怎么又黃啦?
眾匪持刀槍逼近楊子榮。
楊子榮(鎮靜地):哈哈哈哈!防冷涂的蠟!
這個故事就用到了多組非對稱密鑰,環環相扣,一組密鑰錯誤,就會丟了小命。
非對稱加密相比對稱加密就都要復雜的多,雖然對稱加密背后也有一套數學理論,但是非對稱加密背后的數學理論就更加深厚。小編不才,只能請了一個密碼學專業的童鞋用一句描述了兩個算法背后的數學難題:
RSA:大數分解問題。
ECC:橢圓曲線上的離散對數問題。
言多必失,為了不誤導大家,我就不分析具體算法了。我只講講這兩個算法的效果。
經過一系列復雜運算后,非對稱密碼算法會產生一對密鑰:
公鑰:一般較短,可以公開。
私鑰:一般較長,作者保留。
這兩個密鑰有如下性質:
(1)公鑰和私鑰都能進行加密和解密。
(2)用公鑰加密后的內容,只有用對應的私鑰才能解開。
(3)用私鑰加密后的內容,也只有用對應的公鑰才能解開。
(4)以上三條其實都是廢話。
除了用在加解密用來保證數據的機密性,那么這種非對稱密碼算法,還有什么作用呢?
簽名:用私鑰加密一條消息發出去,證明是我。
數字證書(CA):將簽名和公鑰一起打包發出去,任何人都可以通過公鑰解密簽名的方式來證明是我。
PS :一般非對稱加密算法速度慢,對于大文件或長消息的加密都用對稱加密。
一句話總結:非對稱加密有兩把不同的鑰匙哦。
哈希算法
以上加密算法,主要是保證消息的機密性,那如果消息被修改了,該怎么辦呢?
下面再介紹幾個算法,使得消息一旦被篡改,接受者就能察覺到。
這時你可能會想到幾個名詞:
消息摘要,數字指紋,單向散列
額,他們的實質都是一樣的,他們用到的技術,都是密碼學中的 Hash 算法。Hash 算法有以下幾個美好的特性:
(1)固定長:不管你輸入多長,輸出都是固定的,而且很短。
(2)唯一性:對于不同的輸入,基本可以認為輸出是不同的。
(3)不可逆:正向運算可行,反向運算不可能!
上面這些名詞只是對 Hash算法某個特性的偏重。消息摘要,就是利用固定長的性質;數字指紋用到的是唯一性,單向散列則用到不可逆性。不管一個人長得啥樣,都可以用一個小小的指紋來代表他,消息的摘要也是一樣,這就是 Hash 算法的魅力。目前用的最多的hash 算法是 MD5,SHA-1 和 SHA-2。
盡管 MD5 和 SHA-1 已經被碰撞了,證明是不安全的,但是這幾年他們還不會消失;SHA-2 其實不是某一種算法,它是一個大家族, SHA224/256/384/512 全部屬于 SHA-2。當你下載軟件時,是不是經常會看到以下信息?它們就是該軟件的指紋。
MD5 指紋:
SHA-1 指紋:
SHA-2 指紋:
Hash 算法里的“唯一性”并不是真正唯一的,找到兩條不同的消息,使得他們有相同的指紋,叫做碰撞。Hash 算法之所以管用,是因為它們碰撞的概率極低的。現在的科技也說明人類的指紋也存在碰撞,所以要引入虹膜。其實虹膜也存在碰撞,只是它碰撞的概率比指紋要更低。
Hash 算法里的“不可逆”是真正的不可逆。從算法本身的數學原理來講,通過 Hash 值來直接倒推原始輸入,是不可能的。要分清兩個概念,碰撞和可逆是不一樣的哦。既然不可逆,那么我們有沒有方法來復原明文呢?
方法有是有,不過這是概率性的,就跟之前一些公司宣傳“概率性”恢復被加密的文件是一個概念,下面我介紹完,大家自然就明白“概率性”是啥意思了。
第一種方案是爆破,通過循環來構造不同字符的組合,然后正向計算 Hash 值,如果發現跟目標值一樣,就認為找到了。這種方法對于那些簡單且很短字符串 Hash 值的爆破是非常有效的,因此設置密碼要長一點,且多弄幾種奇奇怪怪的字符哦。
另一種方案就是彩虹表,它的實質跟第一種方案是一樣的。它會實現計算好很多“常規”字符串的Hash 值,然后建立一張很大的表把它們存起來,這種表就叫做“彩虹表”,對于要破解的目標值,只需要查一下表就可以了。它的特點是速度快,有則有,無則無,不啰嗦,不掙扎。
那么怎么應對這些蠻不講理的破解呢?還是有兩種方法,我只說說它們是怎么做的,相信大家就知道防爆破的原理了。
加鹽:計算 Hash 值時,加入一個隨機數,叫做鹽值。
PBKDF2:迭代多來幾輪 Hash ,味道不好也可以加點鹽。
當然為了防止被消息被篡改,還有一部分較弱的校驗算法,它們一般把校驗碼直接放到消息中,它們的保護能力很弱,攻擊者只需要跟著把校驗位修改,即可繞過。
Luhn 校驗算法
我們知道,公民的身份證是18 位,而最后一位就是校驗位。喜歡玩游戲的小伙伴一定都有這樣的經歷,游戲需要實名認證,而有時候也不想泄露自己的身份證信息。有時候就會隨便輸入一個身份證,系統就能馬上判斷出你的身份證是無效的。怎么做到的呢?
把前 17 位分別乘上以下系數,然后相加:
然后把相加的結果模除 11,得到的余數只可能是0-10。余數再按照下表做一次變換,就可以得到最后一位:
當余數是2時,經過上面變換后就是X,這也說明了為什么有些人的身份證最后一位是 X。如果當時是模除 10,是不是就能避免出現 X 這樣的數字了呢^_^
像一些銀行卡、社保卡等也都是用的 Luhn算法,只是系數表不一樣而已。
CRC 校驗(BCC,LRC)
當然身份證校驗碼相對簡單,系數也都是固定的。CRC 校驗碼原理其實也相似,只是去乘以一個多項式而已,在此就不過多敘述。
一句話總結:你可以改,但我也可以拒收。
MAC 算法(帶密鑰的摘要算法)
看到這里,消息的機密性和完整性,也算是差不多說完了。聰明的小伙伴可能會有這樣的想法:如果攻擊者在修改了密文消息的同時,把后面的消息摘要也相應修改了。那么接受方是不是還是無法判斷?
沒錯,想法很好,實際這種做法之前就發生了,為了解決這個問題,就又要引入下一個更加牛逼的完整性算法。有問題就總有對策,技術就是在解決問題的基礎上發展的。
回憶一下我們怎么保證機密性的?就是通過密鑰嘛。那么我在做消息摘要時,也帶上一個密鑰,這樣攻擊者就沒辦法修改消息摘要了嘛。基于這種思想實現的算法,就是MAC 算法。當然,如果其中的摘要算法是用 Hash 函數實現的,那么就叫 HMAC 啦。 HMAC 算法一般是采用對稱密鑰,事先約定好。至于摘要那種算法倒是可選的,所有就有了 HMAC-MD5,HMAC-SHA1 等等。
一句話總結:密鑰 + 指紋,更安全。
DH,ECDH(密鑰協商算法)
最后一個問題了,說到消息傳輸,可以用密鑰來加密,那么問題來了,密鑰怎么傳輸呢?你可能會想到用另一個密鑰加密,那么另一個密鑰怎么傳輸呢?如果是周圍的朋友,你可以直接去他家里,然后告訴他。既然你都可以去他家里了,消息你也可以直接告訴他,干嘛還要通過網絡呢,呵呵。
所以最后一個算法是關于密鑰協商的,這跟密鑰傳輸還不是一個概念。
以前看了一篇小說,里面有個情節:在一個小玻璃瓶里,有一根比瓶口粗得多的樹干,大家都不明白這根樹干是怎么放進去的。小伙伴也可以想想哦。
其實在剛開始的時候,在玻璃瓶里種了一棵樹種子,里面有水有土壤,種子就一直在玻璃瓶里生長。當它長出樹枝時,小主人就把剪刀伸入瓶口剪掉樹枝,移出瓶外。就這樣當樹干長到一定粗度,小主人就倒出水和土壤,讓樹木干死。就形成了如今這個局。這是一篇不錯的推理小說,這個謎的原理就跟我們今天的主角 DH 算法有點類似。DH 算法并非事先產生一個密鑰,而是在雙方的對話中,根據對方的信息,來生成密鑰。密鑰期初是一棵種子,在雙方的交互中不斷生長。即使攻擊者收集了雙方所有的對話內容,也無法知道密鑰是啥。
通過兩個人說一堆奇奇怪怪的話,然后密鑰就在這些奇怪的暗語中產生了,怎么做到的呢?
一次密鑰協商,涉及到 2 個人和 7 個數據。
人物:男主角1,女主角2
公開數據:質數a,質數p,y1,y2
私密數據:x1,x2
密鑰:Key
場景1:
質數 a,p 是公開的,可以隨便確定,p 需要是大質數。
場景2:
然后男1和女2 各想一個幸運數字 x1和x2。
男1計算 y1=a^x1 mod p,并把 y1 告訴女2;
女2計算 y2=a^x2 mod p,并把 y2 告訴男1;
場景3:
男1計算 Key=y2^x1 mod p
女2計算 Key=y1^x2 mod p
下面簡單證明一下男1計算得到 Key1 和女2計算得到的 Key2 是相等的。
Key1=y2^x1 mod p=(a^x2)^x1 mod p=a^(x2*x1)mod p
Key2=y1^x2mod p=(a^x1)^x2 mod p=a^(x1*x2) mod p:
這個算法的神奇之處在于,即使對方也無法知道自己手里的幸運數字,但能計算出共同的密鑰。它的數學原理是基于離散對數問題和求模公式,也涉及到一些質數的性質。
ECDH 算法就是將 ECC 算法和 DH 算法一起使用協商密鑰。
一句話總結:談笑間,密鑰應運而生。
加密的最佳實踐—信封加密:
將對稱密鑰加密后放到消息中,一起發生。是不是與 WannaCry 勒索病毒加密方式類似?
0×05 結語
終于可以長吁一口氣了,辛苦各位看官了。下面總結一下都講了啥:
(1)編碼的故事講了字符編碼的發展史
ASCII捏造了常規字符;
gb系列融入了漢字;
Unicode統一編碼;
UTF進行省流量傳輸;
XXUU,Base定義更少字符編碼
(2)密碼學系列介紹了密碼算法的作用:
古典密碼算法思路簡單,以查表加解密為主,安全性弱。
現代密碼學旨在保證數據的機密性和完整性。
機密性算法涉及到密鑰,對稱首選AES,非對稱有RSA和 ECC。
完整性算法優選是哈希,定長唯一不可逆,MD5,SHA-1不安全,SHA-2家族杠杠的。
校驗算法計算簡單,校驗位存留在信息自身,Luhn和 CRC應用廣泛。
為防止數字指紋被修改,引入帶密鑰的哈希算法HMAC,帶密碼的指紋更安全。
高冷的簡短的對話,密鑰應運而生,密鑰協商我只認DH。
在習近平新時代中國特色社會主義思想指引下——新時代新作為新篇章·習近平總書記關切事)
故紙堆里捧出“金娃娃”——古籍典藏溫“故”知“新”的故事
海報制作:陳婕
新華社北京5月24日電 題:故紙堆里捧出“金娃娃”——古籍典藏溫“故”知“新”的故事
新華社記者劉亢、蔣芳
歷經13年辛苦編撰,《江蘇歷代方志全書》近日在南京首發。這一全國體量最大的省域舊志整理工程,是我國對古籍保護利用重視程度不斷提升的縮影。
習近平總書記不久前在中國人民大學考察時強調,要運用現代科技手段加強古籍典藏的保護修復和綜合利用,深入挖掘古籍蘊含的哲學思想、人文精神、價值理念、道德規范,推動中華優秀傳統文化創造性轉化、創新性發展。
今年以來,“加強文物古籍保護利用和非物質文化遺產保護傳承”首次被寫入政府工作報告,中共中央辦公廳、國務院辦公廳還印發了《關于推進新時代古籍工作的意見》。新華社記者近期在多地調研,探尋古籍保護利用在新時代如何溫“故”知“新”。
讓沉寂的典籍“動”起來
走進陜西師范大學圖書館古籍閱覽室,香樟木的味道讓人寧心靜氣。打開書柜,一冊冊線裝書籍排列整齊。
如今,借助數字化技術,隨時隨地查閱古籍早已不是難事。2016年9月,“中華古籍資源庫”開通運行,累計發布古籍及特藏數字資源10萬部(件),查閱近乎“零門檻”。
2021年以來,陜西師范大學歷史文化學院研發了中文古籍光學字符識別(OCR)系統,點校整理古籍的效率大幅提高。
“從卷帙浩繁的古籍中找資料耗時耗力,最大程度發揮文獻價值,數字化工作還要加快。”陜師大圖書館館長沙武田教授說。
古籍修復師武棟在陜西師范大學紙質文獻修復與保護研究室里修復古籍。新華社記者 蔡馨逸 攝
技術賦能,珍貴的不可再生文物不僅可以永駐云端,甚至可以“七十二變”。
一幅橫向流動的《千里江山圖》上,標注了“涑水”“濂溪”“玉山”等地名,數百個衣袂飄飄的儒生正在“趕路”。他們從一地挪到另一地的軌跡,代表其求學歷程和所屬學派。這是北京大學可視化與可視計算實驗室學生馬源等向首屆“北京大學數字人文作品展”提交的展品——用JavaScript完成的H5習作,取名為“宋元學案傳承可視化系統”。
“如果不是專業研究,幾乎沒人會有興趣翻閱《宋元學案》這樣的大部頭。我們想通過類游戲界面,吸引年輕人了解古籍。”馬源說。
技術賦能,古籍不僅能像游戲一樣動起來,更能讓研究者如虎添翼。
打開浙江大學“智慧古籍平臺”,點擊文中的陌生地名,地理定位立即跳出;點擊年號、干支等傳統紀年,對應的現代公歷日期立即換算;遇到古代官職、典故及疑難詞語,后臺工具書隨即關聯、顯示。
“智能技術支持下的古典文獻研究,是未來古籍研究的重要方向之一。有助于培養跨學科人才,推動學術成果轉化為大眾共享的文化資源。”浙江大學中國古代文學與文化研究所徐永明教授介紹說。
浙江大學“智慧古籍平臺”網頁截圖。(受訪者提供)
讓冷門絕學“熱”出圈
紀錄片《但是還有書籍》的熱播,帶火了南京圖書館的沈燮元老先生——一位99歲高齡,仍然每天要工作八九個小時的古籍版本目錄學家。面對突如其來的“人氣”,老先生一時還頗難適應。
沈燮元在辦公室對《士禮居題跋》書稿進行二校。新華社記者 季春鵬攝
沈燮元曾是《中國古籍善本目錄》的子部主編,也是慧眼如炬的版本鑒定專家。在南圖幾十年,沈燮元采購數千種古籍善本,“鎮館之寶”十大珍品古籍中有兩部都是他買回的。
如今,這位九旬老翁,仍在爭分奪秒。不久前,沈燮元完成了八十多萬字的《士禮居題跋》,這本書囊括了他從世界各地搜集到的800多個書影,以及新發現的數十則“黃跋”。接下來,他還要整理黃丕烈詩文集和年譜。
近年來,許多古籍研究者的事跡“火”起來。東巴文化研究院院長李德靜搶救翻譯并整理東巴古籍;國家圖書館的古籍修復專家杜偉生等人修復《永樂大典》;浙江大學敦煌學研究中心主任張涌泉將分散于世界各地的敦煌碎片殘卷進行拼接、綴合。越來越多的年輕人也在抖音、B站等社交平臺,圍繞這些古籍展開二次創作,讓冷門題材有了“破圈”的熱度。
作為沈燮元的后輩,南圖的年輕人也在創新。從2020年暑假起,該館歷史文獻部館員韓超、史星宇,把清代《隨園食單》里的文字“翻譯”成一道道活色生香的菜肴,梨炒雞、豬里肉、蔣侍郎豆腐等等,吸引人們在線“催更”。
“吃貨眼中的古籍別有魅力。”史星宇說,例如,南宋時期以菜蔬食譜為主的《山家清供》,適宜當下的輕食愛好者;清代《食憲鴻秘》中的食譜側重養生,適合當下愛泡枸杞的“養生咖”。
古籍經典正引發新的關注,激蕩著更多青年的靈感。
讓千年古籍“典”亮未來
今年4月,住房和城鄉建設部主辦的“中國傳統村落數字博物館”上線,其中“高遷數字記憶”項目受到關注。
浙江省臺州市仙居縣高遷村是中國歷史文化名村,歷代書香傳承。中國人民大學信息資源管理學院馮惠玲教授研究團隊挖掘散落的家譜和地方志,編纂了10個具有中國傳統價值觀念的故事,圍繞傳統村落文化精神采集多媒體,構建了一個古村落文化的數字化全景。
“從平面閱讀到數字空間閱讀,傳統文獻學也要進行數字轉型,借助各種媒介增強人們對文化的理解和感知。”中國人民大學數字人文教研室主任梁繼紅說。
面向未來,千年典藏承擔新使命,面臨新課題。
——培養更多跨界人才。
醫學著作《本草綱目》至今仍是中醫案頭必備,百科全書《天工開物》被翻譯成多種文字……中國古籍擁有龐大且復雜的知識體系,有豐富治理經驗,也包含中藥、養生、服飾、飲食等生活智慧。
“古籍研究、保護缺人才,更缺跨界人才。”北京大學古典文獻學專業學生杜怡然等人建議,加快整合相關學科資源,打破研究壁壘,培養古籍事業的綜合性人才。
——進一步打破資源封閉。
過去,不同典藏機構“井水不犯河水”。如今,古籍數字化、公共化不僅惠及社會,更能促進傳承。
徐永明希望“智慧古籍平臺”能改變古籍整理個體作業的范式,讓世界各地的專業人士在線合作。“《全明詩》《全明文》這樣浩大的工程,按傳統模式,我們這一代人很難看到它完成,利用眾包技術才有希望。”
陜西師范大學圖書館珍藏的古籍善本。(受訪者提供)
——更大范圍共享。
近年來,一批散落海外的中國古籍實現數字化回歸。例如四川大學、中國國家圖書館、美國加州大學伯克利分校等機構合作開展“漢典重光”項目,首批即完成20萬頁古籍的數字化、公共化工作。
“不僅整理國故,而且古為今用,要讓更多中國古籍走進大眾視野,促進中華文化與世界文化交流互鑒。”陜西省古籍整理出版專家委員會主任周天游說。(參與記者:魏夢佳、馮源、蔡馨逸)
者 劉森 遼寧古生物博物館展覽部主任6600萬年前,一顆直徑10公里的小行星劃過天際撞向地球,結束了恐龍對陸地的統治。
災難之后,廢土之上,劫后余生的動物們開始了漫長的恢復。其中,哺乳動物憑借自身結構上的優勢迅速發展,體型逐漸增大,成為地球生物中新的統治者。
5000萬年前的始新世,尤因它獸的體長超過4米,體重達到3噸。3600萬年前的漸新世,埃及重腳獸肩高超過2.5米,體長4米,重達4噸。1700萬年前的中新世,非洲恐象肩高超過4.5米,體重達到驚人的15噸。然而,這些橫行一時的巨獸們,在巨犀面前,一個個都相形見絀。
2021年6月17日,古生物學家在《通訊:生物學》雜志上發表了巨犀的一個新種——臨夏巨犀,被認為是地球歷史上曾經生活過的、最大的陸生哺乳動物。化石證據表明,臨夏巨犀肩高可達5米,頭高超過7米,比最高的長頸鹿還要高出2米,體重更是超過24噸,比4頭非洲象加起來還要重。
巨犀為何進化出了如此巨大的體型?它們最終又為何在歷史上銷聲匿跡?答案都在自然演化史中。
穿越青藏高原的巨犀家族
巨犀是地球歷史上生存過的最大陸地哺乳動物,生活在距今4200萬~2100萬年前,演化出6個不同的屬。在這6個屬中,巨犀屬分布范圍最廣,它們的化石散落在東亞、南亞、中亞和東歐的許多地方,記錄著流散的足跡。但長期以來,巨犀屬各個成員之間的演化關系一直模糊不清。
2015年,中國古生物學家在青藏高原東北緣甘肅臨夏盆地距今約2650萬年前的漸新世晚期地層中,發現了巨犀屬的一個新種——臨夏巨犀的化石,包括一個長度超過一米的完整頭骨及部分頸椎化石。
古生物學家根據化石推斷,臨夏巨犀比巨犀屬的其他種更進步,體型也更大,是地球歷史上曾經生活過的最大陸生哺乳動物。而與巨犀伴生的動物群表明,如今的中國西北地區曾是一片開闊疏林地帶。因此,臨夏巨犀可能是像長頸鹿一樣,在疏林中取食樹冠的葉片。
研究人員進一步結合大量頭骨、牙齒和頭后骨骼性狀,對巨犀屬進行了新的系統發育分析,幫助巨犀家族修“族譜”,確認了各個成員之間的逐步進化序列:蒙古高原的葛氏巨犀經由蘭州盆地的黃河巨犀、哈薩克斯坦的亞洲巨犀、巴基斯坦的布格蒂巨犀,最終到新疆的美麗巨犀和甘肅的臨夏巨犀。
通過巨犀屬化石發現的地點,我們會發現,巨犀成員先是從蒙古高原擴散到南亞的巴基斯坦,然后巴基斯坦巨犀的后代又返回新疆和甘肅,演化出新疆美麗巨犀和臨夏巨犀。也就是說,這期間它們曾兩次穿越現在的青藏高原地區!難道巨犀這樣巨大的生物可以翻越世界屋脊?
研究人員推斷,真相更可能是,在2000多萬年前,青藏高原還沒有隆起,并不是像現在這樣山脈縱橫,而是密布著大量海拔不超過2000米的谷地。巨犀可以沿著這些較為低矮的地區實現穿越。
巨獸的養成
在地球歷史進入新生代以后,曾有無數哺乳動物出現在大地之上。動物們體型越長越大,甚至出現巨犀這樣的超級巨獸。可是,巨犀為何進化出了如此巨大的體型?
其實,包括動物體型在內的身體結構變化都是在適應自然環境變化的過程中產生的,也就是面對“環境選擇壓力”出現的適應。巨犀最初也是一群體型并不那么夸張的植食性動物,比如迄今發現的最早的巨犀科成員——沙拉木倫始巨犀,肩高只有兩米,長得像一只被拉長了脖子的馬。
隨著整個地球環境在始新世末期由濕潤轉為干旱,全球范圍內的雨林開始轉變成大量的稀樹林地。少了茂密樹木的羈絆,巨犀的體型于是開始增加。這次發現的臨夏巨犀當時就生活在一片開闊的林地,平坦的地勢和豐富的食物資源足以支撐巨犀們一直”逛吃逛吃“。
同時,巨犀的身體結構也在適應環境的過程中發生改變,為了夠到它們的主要食物——樹上的嫩葉,巨犀的脖子不斷伸長,頸椎也變得越來越強壯,用來支撐巨大的頭部。
古生物學家還在臨夏巨犀的頭骨上發現了很深的鼻切(鼻子位置向頭后的凹槽),這一結構顯示臨夏巨犀可能長有一個類似現生貘類動物的加長鼻子,可以幫助將嫩葉卷進嘴里,增加進食效率。
巨犀巨大的體型在其生活的開闊樹林地帶具有天然的防衛優勢,可以防止肉食動物的侵擾和獵殺。當時最大的肉食動物是體長4米的鬣齒獸,體型上的巨大差距讓它們很難對成年巨犀造成威脅。所以只要巨犀不斷長大,就會成為無敵的存在。這也成為促進巨犀體型不斷增大的一個動力。
巨獸的消亡
既然巨犀已經進化成“當世無敵”般的存在,為什么后來在歷史上卻銷聲匿跡了呢?為什么如今的地球上,看不到巨犀那般巨大的哺乳動物呢?
其實答案仍然在于自然演化。動物的演化發展受自然環境變化的選擇壓力影響,曾經的環境變化讓巨犀擁有了巨大的體型,那么下一個環境改變也可能造成它的消亡。
2000多萬年前,不斷隆起的青藏高原使得周邊地區的環境變得越來越干旱,稀樹森林變成草原,進而形成荒漠。巨犀家族無法面對持續惡劣的環境和日益減少的食物資源,最終走向了滅亡。
迄今發現的巨犀家族最后的成員,是生活在距今2100萬年前的吐魯番巨犀。此后這個曾經無上輝煌的巨獸家族永遠消失在演化的歷史長河中。
事實上,像巨犀滅絕這樣的場景在30多億年的生命演化史上不斷上演:無論是10米長的鄧氏魚、7米長的迅猛鱷,還是30多米長的恐龍巨無霸,在環境的巨變面前都變得脆弱不堪。
大規模火山噴發、長時間降雨、氣溫上升和下降,甚至地球磁場的變化,都可能成為生物大滅絕的“兇手”。
除了不可測的自然力量,懂得使用火和制造工具的人類的到來,也標志著大型動物噩夢的開始。
據科學家考證,在距今7萬年前,陸地上超過50公斤的動物有200個屬,這些動物中的50%在約1萬年前人類農業革命發生時已經滅絕。而且,它們滅絕的時間和智人走出非洲、到達各大陸的時間基本一致。
當智人到達澳大利亞之后,當地體重超過50公斤的動物從24個屬減少到現在的1個,永遠消失了的包括2噸重的雙門齒獸、三米長的大袋鼠、兇猛的袋獅等,留下的那一個則是如今的袋鼠。
人類踏足美洲之后,大型哺乳動物中,北美洲47個屬中的34個和南美洲60個屬中的50個完全消失,包括4米高的大地懶、3噸重的雕齒獸、強壯的劍齒虎等。
雖然這些動物的滅絕有著自然因素的影響,但人類的獵殺及放火燒荒等活動造成自然環境的破壞很可能起到了“幫兇”的作用。
尤其近四百年來,隨著工業革命帶來的全球范圍環境破壞,世界上非洲以外地區的大型陸生動物已經消失殆盡,里海虎、巴巴里獅子、原始牛、西非黑犀牛、斑驢……這個滅絕動物的名單長得令人不忍讀下去。
地球的環境變化難以預測,很難改變,但作為人類,只希望今后我們能更加愛護野生動物,讓子孫后代依然能夠欣賞到大型動物的壯麗。
參考資料:
[1]https://www.nature.com/articles/s42003-021-02170-6
[2]http://www.ivpp.ac.cn/xwdt/ttyw/202106/t20210617_6113919.html
[3]《中國新近紀犀牛》鄧濤著,上海科技出版社2015年12月
[4]《人為何物:進化的邏輯》王一江著,中信出版2021年1月
[5] https://www.smithsonianmag.com/science-nature/what-happened-worlds-most-enormous-animals-180964255/
來源: 科普中國網
*請認真填寫需求信息,我們會在24小時內與您取得聯系。