[摘要] 本文介紹了電子印章的生成和驗證的幾個重要環節的實現思想,沒有采用目前流行的對稱和非對稱等加密技術,而是通過模糊化、無用序列等思想實現了數據的干擾和擴散。
[關鍵詞] 電子印章 干擾 擴散 不可逆 模糊化 無用序列
一、概述
在信息產業高速發展的中國,互聯網正在改變著人們的工作和生活,人們每時每刻都可以感受到信息技術對傳統行為和習慣的沖擊。計算機和互聯網使人和人之間的溝通與協作變得比以往任何時候都要輕松和迅捷,信息可以傳遞到遠遠超過你想象的地方,突破國界也不在話下。而在中國,截至2003年年底,我國網民人數已達到八千萬,居世界第二位,計算機達到三千萬臺,信息技術已經具備了突破和擴展現實世界的條件了。網絡上的現實世界漸漸浮現。在這種條件之下,電子政務、電子商務和電子社區開始并肩闖進了人們的視野。
電子政務和電子商務利用互聯網來傳遞信息固然快捷方便,但是人們如何才能判定合同或公文是誰發的呢?是否被第三者修改過了呢?這一點對社會信用的基礎尤為重要。在傳統的政府公文以及民間商業往來中,人們通常的做法是相關人員在文件或書信上親筆簽名或印章。它們起到認證、核準、生效的作用。事實上,手寫簽名和印章都是可以被偽造的,而且除手寫簽名的仿造還具有一定難度外,印章的仿造已經變成一件小學生都可以輕而易舉完成的事情了。因此,替代傳統印章的電子印章應運而生了。電子印章通過先進的加密技術和Web服務,使得印章的偽造和仿冒變得極為困難。
二、特點
電子印章已經從很多方面與傳統印章劃清了界限。它不再千篇一律,針對每一個文檔甚或多媒體文件,它都會對應一個電子印章。它同時使用了多種加密技術,并且加密過程是不可逆的,因此要想仿造電子印章是極為困難的。它通過Web服務來提供電子印章的生成和驗證,實現了黑匣子,從而保證了算法的保密和安全。它還具有較強的魯棒性,即在文檔經過某種改動后,比如在傳輸、JPEG壓縮、濾波,圖像的幾何變換如平移、伸縮、旋轉、剪裁等處理下,數字印章不會被破壞。下文我們將逐步探討電子印章的這些特點,并闡述一些獨特的實現思想。
三、技術分析及實現思想
我們首先對需要附加電子印章的文檔進行取樣,取樣得來的信息用來確定文檔的內容和一些其他的信息,然后對取樣得來的信息進行加密,并生成電子印章——一串字母和數字組成的固定長度的字符。電子印章的生成和驗證都在印章管理部門提供的Web服務內實現。
1.取樣
我們要在印章中保存文檔的相關信息以確定該印章是針對該文件有效的,所以需要對文檔進行取樣。
取樣的原則是提取全部重要信息、抽取部分二進制碼。重要信息包括:文檔的大?。ㄗ止潝担?、文檔生成時間、最后修改時間、所屬人等;抽取的二進制碼是為了提高電子印章被仿造的難度,按照一定規則,如斐波納奇數列、質數列、某一數字(例如2)的冪值列等,及其這類數列的任意組合。這些規則是保密的,并且可以由印章管理部門隨意組合并被封裝在Web服務內,這樣既達到了獲取文檔關鍵信息以防止被其他文檔冒用印章,又可以大大減小取樣的信息量,使生成的電子印章限制在一定長度范圍內。
在得到取樣的信息以后,我們還要利用一些現有的摘要算法,然后再對取樣信息和摘要算法結果進行組合,來增強電子印章對文檔的確認能力。比較常見的摘要算法有MD5、SHA-2以及DES等,并且隨著加密技術的不斷進步,可以不斷吸收先進的摘要算法,為我所用。
在得到了摘要算法結果和根據自主規則取樣的信息以后,我們就可以憑借這些信息完全確定這個文檔和根據這些信息生成的電子印章是否對應了。
然后我們就可以根據這些信息進行加密,以生成印章。
2.加密
傳統的加密方式都是利用了計算的高速運算性能,對要加密的信息進行多次移位和替換以達到干擾和擴散的目的。但是計算機是以高速和精確為基準的運算機器,隨著計算機主頻速率的提高,128位、256位甚至512位加密都只是時間游戲,破解是遲早的事情。下面對加密的算法提出了一些新的思路,希望起到拋磚引玉的作用。
既然計算機是以精確運算為基準的運算機器,那我們就要在由原始信息到生成的電子印章之間的運算過程中故意出現一些誤差,令計算機無法發現從信息到印章的道路,實現印章生成過程的保密,這里稱之為模糊化。
模糊化的簡單原理就是在不出現大的偏差的前提下,主動放棄數據的微小部分。
為了防止模糊化之后生成的電子印章與某些文檔(比如絕大部分內容與之相似的文檔)生成的電子印章出現偶然的相同(概率很小,而且下面的無用序列也可以防止這種情況的出現),我們要對信息進行放大。對信息進行一定程度的放大以后,我們就可以排除相似文檔出現相同印章情況的出現了。
這里建議采用非線性的放大算法(如平方、立方等),也可以是印章管理部門定制的特定的放大算法。
在經過非線性放大以后,我們就可以使用模糊化來混淆破解過程的跟蹤和窮舉了。最簡單的模糊化的例子就是現實生活中的四舍五入:四舍五入以后,你是無法依據結果數值來推斷原始數值的。印章管理部門依據自己設定的特定規則來進行放大算法結果的模糊化運算。這樣得到的加密后的信息是無法被推斷還原的,因此電子印章的生成過程是不可逆的,印章和文檔不存在任何意義上的相等,只是相似。
3.生成
文檔的信息經過取樣和加密,最終將要生成印章,追加在電子文檔上。為了保證電子印章有較強的魯棒性,建議使用數字和字母組合作為電子印章的表現形式,并且要把容易混淆的字母和數字剔除,如2和Z、1和i、8和B、0和O等。
將加密后的信息根據特定的轉換規則,轉換為字母數字列,就成為了電子印章。
4.驗證
由于電子印章的生成過程不可逆,所以電子印章的驗證過程就是根據需要驗證的文檔重新生成一個印章,由于算法保密但不變,兩次生成的印章相同即可判定原印章有效。驗證的過程同樣封裝在印章管理部門的Web服務上,實現算法的黑匣子。
四、一點補充
從取樣、加密到電子印章的生成,每一步都有特定規則在發揮著作用,就是為了提高電子印章的安全性。還有一些可行的方法,簡單但卻很有效:
加密的增強。信息經過了放大和模糊化以后,就提高了安全性,能夠在一定程度上有效防止被跟蹤和窮舉,我們還可以采用不同的規則進行多次放大和模糊化,這樣安全性就可以大大提高了。
無用序列。在平地上,你站到的只是很小一塊土地,你沒站到的地方就可以說沒用么?在萬丈懸崖邊上,也給你足夠你站的一小塊地方,你卻未必敢站在上面。無用的東西也可以有用,我們在生成的電子印章上,按照特定規則加入無用的隨機序列,就可以大大提高電子印章的熵值,提高破解的難度。
關鍵信息保留。在電子印章中,可以把關鍵的信息如文檔發布人、發布時間等用明文的形式記錄下來,這樣可以起到關鍵的法律作用。
客戶端。針對一些較大的多媒體文檔,把整個文檔上傳取樣會浪費帶寬,而我們只需要取樣一小部分信息,因此可以給用戶提供一個下載的客戶端,客戶端來生成摘要信息和取樣重要信息(以及一些無用信息)上傳給Web服務即可。
五、展望
加密技術在不斷發展,Web服務漸成主流,我們要不斷地吸收新的技術、新的思路,融合自己的思想,做出有自身特色的電子印章??萍疾粩噙M步,如同逆水行舟,不進則退。面對高速發展的科技和世界,我們只有不斷努力,不斷提高科技水平,才能夠在信息技術時代為經濟發展保駕護航、推波助瀾。
摩爾定律至今仍推動著信息產業的車輪飛速前進。1981年,比爾·蓋茨說“640K對任何人來說都足夠了(“640k ought to be enough for anybody.”, Bill Gates)”。今天,512M內存、120G硬盤已成主流。爆炸式的增長,這樣的說法決不夸張。
面對這樣的世界,我們不敢稍有懈怠。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。