如何加密電子招標(biāo)系統(tǒng)

電子招標(biāo)投標(biāo)系統(tǒng)是一個(gè)以網(wǎng)絡(luò)技術(shù)為基礎(chǔ),招標(biāo)、投標(biāo)、評(píng)標(biāo)、合同等業(yè)務(wù)全過(guò)程實(shí)現(xiàn)數(shù)字化、網(wǎng)絡(luò)化、高度集成化的系統(tǒng),它能提高國(guó)內(nèi)廠商的競(jìng)爭(zhēng)意識(shí)與生存能力,為國(guó)內(nèi)廠商的提供更多參與國(guó)際競(jìng)爭(zhēng)的機(jī)會(huì),讓他們更多了解國(guó)際市場(chǎng)行情和國(guó)際技術(shù)標(biāo)準(zhǔn)、國(guó)際競(jìng)爭(zhēng)方式,能提高國(guó)內(nèi)廠商的國(guó)際競(jìng)爭(zhēng)水平,提高國(guó)內(nèi)企業(yè)的整體水平,提高國(guó)產(chǎn)設(shè)備在國(guó)際市場(chǎng)的競(jìng)爭(zhēng)能力。但由于建設(shè)工程的標(biāo)底巨大,怎樣保證招標(biāo)人、投標(biāo)人在一個(gè)公開(kāi)公正公平的系統(tǒng)環(huán)境中進(jìn)行招投標(biāo)活動(dòng)是電子招標(biāo)系統(tǒng)實(shí)施的關(guān)鍵。因此在招標(biāo)文件、投標(biāo)文件的傳遞過(guò)程中如何防止泄密、保證文件在傳遞過(guò)程中一致性是系統(tǒng)的重中之重。

為此在分析比較當(dāng)前較為流行的加密算法的基礎(chǔ)上,針對(duì)建設(shè)工程施工電子招標(biāo)系統(tǒng)的實(shí)際應(yīng)用,提出了對(duì)于電子招標(biāo)系統(tǒng)的兩種不同的加密方案。

一、加密體系

數(shù)據(jù)加密作為一項(xiàng)基本技術(shù)是所有通信安全的基石。網(wǎng)絡(luò)安全的實(shí)現(xiàn)很大程度上依賴(lài)于各種密碼學(xué)算法,包括對(duì)網(wǎng)絡(luò)通道上傳輸?shù)臄?shù)據(jù)進(jìn)行加密、解密處理以及散列處理等。

如果加密算法的保密性是基于保持算法的秘密,這種加密算法稱(chēng)為受限制的算法。受限制的算法有很多缺陷:首先,大的或經(jīng)常變幻的用戶組織不能使用它們,因?yàn)槿绻粋€(gè)用戶離開(kāi)了這個(gè)組
織,其他的用戶就必須改換另外不同的算法。如果有人無(wú)意間暴露了這個(gè)秘密,所有人都必須改變他們的算法。另外,受限制的加密算法不可能進(jìn)行質(zhì)量控制或標(biāo)準(zhǔn)化。每個(gè)用戶組織必須有他們自己的唯一算法。這樣的組織不可能采用流行的硬件或軟件產(chǎn)品,因?yàn)楦`聽(tīng)者可以買(mǎi)到這些流行產(chǎn)品并學(xué)習(xí)算法,于是用戶不得不自己編寫(xiě)算法并予以實(shí)現(xiàn),如果這個(gè)組織中沒(méi)有好的密碼學(xué)家,那么他們就無(wú)法知道他們是否擁有安全的算法。

加密算法是用于加密和解密的數(shù)學(xué)函數(shù),通常情況下,有兩個(gè)相關(guān)的函數(shù):一個(gè)用作加密,另一個(gè)用作解密。

加密和解密的算法分為對(duì)稱(chēng)算法和不對(duì)稱(chēng)算法。

1、對(duì)稱(chēng)加密算法

對(duì)稱(chēng)加密算法是應(yīng)用較早的加密算法,技術(shù)成熟。在對(duì)稱(chēng)加密算法中,數(shù)據(jù)發(fā)信方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過(guò)特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。收信方收到密文后,若想解讀原文,則需要使用加密用過(guò)的密鑰及相同算法的逆算法對(duì)密文進(jìn)行解密,才能使其恢復(fù)成可讀明文。在對(duì)稱(chēng)加密算法中,使用的密鑰只有一個(gè),發(fā)收信雙方都使用這個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密,這就要求解密方事先必須知道加密密鑰。

常用的對(duì)稱(chēng)加密算法有:DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。

2、非對(duì)稱(chēng)加密算法

非對(duì)稱(chēng)加密算法(asymmetric cryptographic algorithm)又名“公開(kāi)密鑰加密算法”,非對(duì)稱(chēng)加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(publickey)和私有密鑰(privatekey)。對(duì)稱(chēng)加密體制中只有一種密鑰,并且是非公開(kāi)的,如果要解密就得讓對(duì)方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對(duì)稱(chēng)加密體制有兩種密鑰,其中一個(gè)是公開(kāi)的,這樣就可以不需要像對(duì)稱(chēng)密碼那樣傳輸對(duì)方的密鑰了。

常用的加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)。

二、如何加密電子招標(biāo)系統(tǒng)

密碼學(xué)除了提供機(jī)密性外,通常還有以下作用:

(1)鑒別 消息的接收者應(yīng)該能夠確認(rèn)消息的來(lái)源,入侵者不可能偽裝成他人;

(2)完整性 消息的接受者應(yīng)該能夠驗(yàn)證消息在傳送過(guò)程中沒(méi)有被修改,入侵者不可能用假消息代替合法消息;

(3)抗抵賴(lài) 發(fā)送者事后不可能虛假地否認(rèn)他發(fā)送的消息。

這些功能是通過(guò)計(jì)算機(jī)進(jìn)行安全交流敏感信息的至關(guān)重要的需求。針對(duì)電子招標(biāo)系統(tǒng)的要求,提出以下方案。

1、方案一:文件進(jìn)行加密處理

由于非對(duì)稱(chēng)算法比對(duì)稱(chēng)算法更難破解,同時(shí)由于解密密鑰是不公開(kāi)的,因此方案一中,我們?cè)O(shè)想在電子招標(biāo)系統(tǒng)中的招標(biāo)人、投標(biāo)人、招標(biāo)辦三方采用各自的數(shù)字證書(shū)對(duì)招標(biāo)文件和投標(biāo)文件進(jìn)行加密處理。

CA即Certification Authoritie8,作為第三方CA能保證數(shù)字證書(shū)的身份確認(rèn),對(duì)使用數(shù)字證書(shū)的用戶提供一個(gè)中介證明。另外在流程中用私鑰加密的部分,其實(shí)就是通常所說(shuō)的數(shù)字簽名,它能保證所得的加密文件確實(shí)由某個(gè)用戶發(fā)出,公鑰加密就確定了只有持有私鑰的用戶才能解密該加密包。在該方案中酌數(shù)字證書(shū)存儲(chǔ)采用了iKey(iKey是由RainBow公司提供的具有IC芯片的智能讀卡器)。

2、方案二:非對(duì)稱(chēng)算法與對(duì)稱(chēng)算法結(jié)合

采用非對(duì)稱(chēng)算法與對(duì)稱(chēng)算法結(jié)合的方式,在此方案中只需招標(biāo)辦向CA申請(qǐng)數(shù)字證書(shū),對(duì)稱(chēng)加密的密鑰拆分成兩個(gè),分別由招標(biāo)辦(key1)和投標(biāo)人(key2)形成。

此方案中用于對(duì)稱(chēng)加密的密鑰通過(guò)非對(duì)稱(chēng)加密算法進(jìn)行保護(hù),確保對(duì)稱(chēng)加密的密鑰不泄露,同時(shí)對(duì)稱(chēng)加密的密鑰是招標(biāo)辦和投標(biāo)人兩方持有的,保證了現(xiàn)場(chǎng)開(kāi)標(biāo)的公正性。

在上述兩個(gè)方案中,都滿足了整個(gè)電子招標(biāo)系統(tǒng)所需的公開(kāi)公平公正的原則。方案一應(yīng)該是加密與身份確認(rèn)最嚴(yán)格的系統(tǒng),但是處理速度較慢,而且參與三方均需向CA中心申請(qǐng)數(shù)字證書(shū)。方案=在加密與身份確認(rèn)上較方案一弱,但是該方案處理速度快,并且只有一方需向CA中心申請(qǐng)數(shù)字證書(shū)。另外安全接口層(SSL)建立服務(wù)器和瀏覽器之間的安全對(duì)話使用的就是方案二的工作方式。

3、基于.NET的加密實(shí)現(xiàn)

.NET將原來(lái)獨(dú)立的非托管的win32 Crypto API庫(kù)和SDK合并到一個(gè)框架中,這對(duì)于程序開(kāi)發(fā)人員非常有利。它將CryptoAPI改編進(jìn).NET相應(yīng)的名字空間中。使密碼服務(wù)擺脫了SDK平臺(tái)的神秘性,變成了簡(jiǎn)單的.NET名字空間的使用。由于隨著整個(gè)框架組件一起共享,密碼服務(wù)更容易實(shí)現(xiàn)了。

.NET Fnunework有3個(gè)密碼命名空間:

(1)System. Security. Cryptography——包含完成所有加密任務(wù)的核心類(lèi)。

(2)System. Security. Cryptography.Xml——包含可結(jié)合使用System. Security.Cryptography類(lèi),對(duì)Xml文檔部分內(nèi)容進(jìn)行加密和簽名的類(lèi)。

(3)System. Security. CrypLography. X509CertiflcaLes——包含允許檢索證書(shū)信息的類(lèi)。

System.Security.Cryptography中的核心加密類(lèi)分為3層。

第一層是一組抽象類(lèi),它們表示加密算法的類(lèi)型,用于完成特定的加密任務(wù),包括A8ymmetricAlgorithm(表示非對(duì)稱(chēng)加密)、SymmetricAlgorithm(表示對(duì)稱(chēng)加密)、HashAlgorithm(表示散列的生成和檢驗(yàn))。第二層包含表示特定加密算法的類(lèi),均由加密基類(lèi)派生而來(lái)。如DES算法類(lèi)由SymmetricAlgorithm派生而來(lái)。第三層就是一組加密實(shí)現(xiàn)方案。每種實(shí)現(xiàn)類(lèi)都由算法類(lèi)派生而來(lái)。如.NET Framework只提供了DES一個(gè)實(shí)現(xiàn)類(lèi)(DESCryp-toServieeProvider)。具體的類(lèi)方法可參見(jiàn)Microsoft MSDN。

如果加密密鑰長(zhǎng)度較大時(shí),需由高加密包支持。WindowsXP和WindoWs.Net Server不需要其他安裝,Windows 2000需安裝Service Pack 2或安裝Windows 2000 High Encryption Pack,Windows NT 4.0需安裝Sp6a,WindOW8 98或ME可以通過(guò)安裝IE5.5來(lái)獲取高加密包的支持。

小知識(shí)之.NET

.NET是 Microsoft XML Web services 平臺(tái)。XML Web services 允許應(yīng)用程序通過(guò) Internet 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語(yǔ)言。Microsoft .NET 平臺(tái)提供創(chuàng)建 XML Web services 并將這些服務(wù)集成在一起之所需。對(duì)個(gè)人用戶的好處是無(wú)縫的、吸引人的體驗(yàn)。