[摘 要] 本文將RSA公鑰簽名體制引入到財務軟件設計中,解決了密鑰分發(fā)和管理中的難題,提高了財務管理系統的安全性,使得非法操作有處可查。
[關鍵詞] RSA算法;數字簽名;財務軟件;加密狗
[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2008)01-0019-02
一、引 言
與財物安全問題相比,存儲在計算機中的財務數據安全問題更為重要,同時也更加難以保護防范。目前幾乎所有財務管理軟件都實現了密碼控制、角色管理和用戶權限控制,不同用戶使用自己的密碼登錄系統后,可做的操作以及對數據的訪問方式不同。用戶除了可以對財務數據進行訪問,還可以更改自己的密碼。這樣通過提高密碼強度和采取保密措施(例如對密碼進行加密以及物理保密不泄露密碼)可以在一定程度上保證財務系統的安全。但是,通過高超的破譯技術以及數據庫系統或軟件設計的漏洞非法獲得用戶密碼是完全可能甚至是很容易的。在大多數財務用戶的安全防范意識不夠強的情況下,增加一道保護措施以進一步提高財務管理系統安全性就顯得尤為重要。
二、RSA算法原理
RSA是一種典型的非對稱密鑰密碼體制,即從加密密鑰和解密密鑰中的任何一個推導出另一個在計算上是不可行的。RSA的安全性建立在“大數分解和素性檢測”這一已知的著名數論難題的基礎上。公鑰對可以完全公開,不需要進行保密,但必須提供完整性檢測機制以保證其不被篡改;而私鑰由用戶自己保存。通信雙方無需實現交換密鑰就可以進行保密通信。
RSA密碼體制算法如下:
(1)由用戶選擇兩個互異并且距離較遠的大素數p和q;
(2)計算n=pq以及f(n)=(p-1)(q-1), f(n)表示小于n的自然數中與n互質的數的個數。
(3)選擇正整數e,使其與f(n)的最大公約數為1,即gcd(e, f(n))=1;然后計算正整數d,使得ed對f(n)的余數為1,即ed≡1 mod f(n),最后銷毀p和q。
經過以上步驟,得出公鑰對(n,e)和私鑰對(n,d)。設M為明文,C為對應的密文,則加密變換為:C=Memod n;解密變換為:M= Cdmod n。
舉一個簡單的例子,假設用戶選擇p=3,q=7,則n=21, f(n)=12,選擇e=5,計算出d=17,則公鑰對為(21,5),私鑰對為(21,17)。設要加密的明文為M=2,則使用C=Memod n加密得到密文為C=11,使用M=Cdmod n進行解密變換得到M=2。
由于公鑰系統中生成簽名的密鑰只存儲于用戶的計算機中或由用戶秘密保存,不存在密鑰分發(fā)與管理的問題,減少了密鑰泄露的可能性,也就減少了簽名被篡改、偽造和否認的可能性,其安全系數更大。Microsoft、IBM、Sun、Macintosh等多個公司都分別與RSA數據安全公司簽訂了許可協議以在其生產線上加入類似的簽名機制。
基于RSA密碼體制的簽名算法基本與RSA密碼算法類似,只是把變換M=Cemod n修改為S=Memod n,其中S是簽名;而變換M=Cdmod n則演變?yōu)轵炞C過程Verk(M,S)為真等價于M≡Sdmod n。RSA簽名過程如圖1所示。

三、加密狗技術原理
加密狗(dongle)經常被認為是硬件保護,它是一個可被附加在計算機并口、串口或USB上的小插件,它包含廠家燒制的EPROM或定制的專用集成電路甚至一段特殊數據。dongle保護的原理就是軟件開發(fā)者在程序里檢查dongle中的內容(該內容無法通過常規(guī)方法讀取或修改)并對比返回值,以此來決定軟件的啟動和運行情況。加密狗主要擁有以下功能:(1)許可證管理技術:擁有靈活的許可證管理和發(fā)放機制,軟件開發(fā)商可以完全、靈活、有效、數字化地控制用戶使用軟件的方式,包括使用時間、次數以及模塊等,同時,開發(fā)商可以方便、快捷地進行許可證的遠程升級;(2)硬件虛擬機:具有自主產權的硬件虛擬機,使得受保護的核心代碼可以在加密狗硬件內解釋、執(zhí)行;(3)數據交換隨機噪聲技術:獨有的隨機噪聲技術,有效地對抗邏輯分析儀的分析和各種調試工具的攻擊;(4)迷宮技術:在程序入口和出口之間包含大量判斷跳轉干擾,動態(tài)改變執(zhí)行次序,提升抗跟蹤能力;(5)AS技術:內嵌式加密(API)與外殼加密(SHELL)相結合的方式,能夠達到極高的加密強度,即使外殼被破壞,加密程序仍然不能正常運行;(6)加密算法:軟件開發(fā)商可以自選加密算法,并可自定義加密算法因子。
四、RSA密碼體制和加密狗在財務管理軟件設計中的應用
軟件安裝時,根據用戶隨機選擇的p和q,計算出公鑰,隱藏注入于系統中;私鑰加密后存儲于加密狗中。加密狗一旦制作不能更改,不能復制。加密狗中的私鑰和系統中的公鑰一一對應,用來驗證系統的完整性和加密狗的合法性。
加密狗可以用普通軟盤或U盤代替,也可以專門制作。
用戶登錄時,除提供用戶名和密碼外,還要提供加密狗,三者都通過驗證才允許用戶登錄。軟件在用戶登錄時驗證加密狗內容,并在用戶登錄成功以后定期(如10分鐘)檢查加密狗的合法性,一旦發(fā)現異常,立刻關閉軟件。
加密狗生成與驗證模塊設計如下:
(1)軟件第一次安裝時,根據用戶提供的p和q值計算得到公鑰對(n,e),隱藏存儲于系統中;計算得到私鑰對(n,d),寫入加密狗中。
(2)軟件的完整性和加密狗的合法性驗證有兩種方式:用戶登錄時,軟件隨機產生一個大數,用系統中的公鑰變換后送至加密狗,用加密狗中的私鑰變換后再與原始隨機數比較,若相同則通過驗證(圖2中method 1);用戶登錄時,軟件隨機產生一個大數,送至加密狗用私鑰變換后,再用系統中的公鑰變換后與原始隨機數比較,若相同則通過驗證(圖2中method 2)。如果軟件被非法修改、加密狗被破壞、公鑰或私鑰被修改,則系統無法通過驗證,從而保證數據的安全,避免非法訪問。

(3)在不使用軟件時,把軟件關閉,并取出加密狗,在需要使用軟件時再插入加密狗,并且要保證加密狗的安全,防止別人非授權使用。
五、應用前景預測
財務數據是每個單位經營過程和結果的數據化體現,是該單位所有數據的核心部分,在辦公自動化、信息化時代的今天,如何加強財務管理系統的安全,避免財務數據的損壞、丟失、外泄是十分重要的。傳統的財務軟件只考慮使用用戶口令來保證系統的安全,但這樣使得用戶口令成為財務系統安全的瓶頸,一旦密碼被破譯,造成的損失將是不可估量和無法挽回的。財務軟件如果配合使用加密狗,在增加少量成本的情況下,會大幅度提高整個財務管理系統的安全性,有效地彌補財務數據安全的漏洞,為財務數據安全建立起新的防線。可以預見,采用加密狗技術的財務軟件系統將更安全、更可靠且更加實用,加密狗技術的應用前景廣闊。
主要參考文獻
[1] 賴溪松,韓亮,張真誠. 計算機密碼學及其應用[M]. 北京:國防工業(yè)出版社,2001.
[2] 吳世忠,祝世雄,張文政. 應用密碼學——協議、算法與C源程序[M]. 北京:機械工業(yè)出版社,2004.
[3] 李輝. 計算機安全學[M]. 北京:機械工業(yè)出版社,2005.
[4] 劉光. C++Builder程序設計導學[M]. 北京:清華大學出版社,2002.