傳感器

微軟應用編程接口在柔性加工單元中的運用

ainet.cn   2008年06月29日
1、密碼學的基本概念
  數(shù)據(jù)加密或稱數(shù)據(jù)編碼就是給定初始值利用某種算法把明碼文本轉換成一種編碼文件,編碼文件只有通過解碼之后才能閱讀。數(shù)據(jù)加密的實現(xiàn)手段則稱為加密技術或編碼技術。給定的初始值也稱為密鑰。根據(jù)密鑰的特點,密碼體制分為對稱和非對稱密碼體制。
  對稱密碼體制也稱私鑰或傳統(tǒng)密碼體制,微軟密碼接口技術中也稱會話密鑰(Session Key)。該體制中加密密鑰和解密密鑰是一樣的,其算法快,但需要找到一種安全傳送密鑰的通道。非對稱密鑰體制也稱雙鑰或公鑰密碼體制,該體制中加密密鑰和解密密鑰是不一樣的。每個用戶都有兩把密鑰:加密密鑰和解密密鑰。其中加密密鑰公開,解密密鑰由自己保存。用戶A若要向B發(fā)送明文,只要利用B的公開密鑰對明文加密。而B收到密文后利用只有他掌握的解密密鑰解密就可得到明文。其中私鑰密碼體制根據(jù)對明文加密方式的不同可分為流密碼和分組密碼。流密碼算法利用密鑰流的第i個元素對明文的第i個字符加密。分組密碼算法則將明文分成n組有m個字符的數(shù)組,每組明文在同一個密鑰流的控制下變換成p個字符的密文組。由于兩種體制下算法復雜度不同,在軟件實現(xiàn)中,私鑰流密碼DES(數(shù)據(jù)加密標準)大約比公鑰RSA(1977年由Rivest、Shamir和Adleman提出)算法快100倍。
  數(shù)字簽名是公鑰密碼體制下的一個重要應用。數(shù)字簽名是綁定在明碼上的一段消息串,其表現(xiàn)手段不同于手寫簽名或印簽,但它們的作用基本一致。即都能保證明碼發(fā)送后的完整性和驗證簽名者。應用RSA公鑰體制進行數(shù)字簽名時,若A要向B送去信息m,A可用A保密的解密密鑰DA對m進行加密得到DA(m),再用B的公開密鑰EB對DA(m)進行加密得最終密文,B收到密文后先用他自己掌握的解密密鑰DB對密文進行解密得到中間密文DA(m),再用A的公開密鑰EA對中間密文DA解密得到明文。由于最終密文只有A才能產(chǎn)生,B無法偽造或修改密文,所以A不能抵賴,這樣達到簽名認證的目的。

2、密碼應用編程接口編程模式與微軟密碼系統(tǒng)
2.1 密碼應用編程接口編程模式
  密碼應用編程接口工作模式類似于Windows圖形設備接口GDI工作模式。密碼應用編程接口提供了一組獨立于密碼服務提供商(Cryptographic Service Provider)的標準密碼指令集,在應用程序與密碼服務提供商之間提供一個環(huán)境外殼,負責應用程序的密碼服務要求與執(zhí)行密碼應用程序系統(tǒng)中的密碼功能之間的轉換。所有加密操作均由密碼服務提供商來完成,包括加密數(shù)據(jù)或數(shù)字簽名和用戶私鑰保護等。密碼服務提供商與圖形設備驅動程序類似,是可根據(jù)需要進行增刪的獨立模塊。密碼應用編程接口的外殼模式將應用程序分隔成了用戶態(tài)與核心態(tài)。應用程序在用戶態(tài)下禁止直接與密碼服務提供商通信,而是交給作為操作系統(tǒng)部分的密碼應用編程接口核來完成。

2.2 微軟信息密碼系統(tǒng)
  微軟信息密碼系統(tǒng)結構由三部分組成,它們分別是密碼應用程序、操作系統(tǒng)和密碼服務提供商(CSP)。如圖1所示。


圖1 微軟信息密碼系統(tǒng)體系結構

  圖中密碼服務提供商是真正完成密碼工作的獨立模塊。理想的CSP應完全獨立于具體應用程序,這樣任何給定應用能運行在多種CSP上。一種CSP最少由動態(tài)連接庫和簽名文件組成。簽名文件保證操作系統(tǒng)識別CSP。操作系統(tǒng)定期認證簽名確保CSP沒被篡改過。而動態(tài)連接庫中包含了一系列密碼服務程序的具體實現(xiàn)。例如微軟RSA基本服務提供商提供的動態(tài)庫文件為和一個簽名文件,它是和視窗操作系統(tǒng)綁定在一起的。當安裝新的CSP時,服務提供商的安裝文件將自動修改系統(tǒng)的配置文件,同時該CSP的密碼應用編程接口的配置信息將存儲在注冊表的本地機器位置。每一個密碼服務提供商都負責管理自己的密鑰庫,該密鑰庫可作為CSP為每個用戶創(chuàng)建的永久性密鑰的倉庫。每個密鑰庫可有一個或多個存儲特定用戶所有密鑰對的密鑰容器(container)。絕大多數(shù)的CSP通常為用戶提供兩組公鑰/私鑰對。一組密鑰對又叫密鑰交換對,通常用于加密會話密鑰,這樣會話密鑰可以安全存放或與其它用戶交換。另一組又叫數(shù)字簽名密鑰對,通常用于創(chuàng)建數(shù)字簽名。在用戶與服務提供商建立聯(lián)系之前,用戶必須有一個密鑰庫,該密鑰庫存儲在注冊表的當前用戶位置。操作系統(tǒng)成功安裝某種CSP并創(chuàng)建密鑰庫后,就可以與應用程序取得連接。應用程序通過CSP名稱調用CSP聯(lián)系指令。一旦連接成功,由操作系統(tǒng)將CSP裝入內(nèi)存,其密碼服務功能將成為操作系統(tǒng)核部分運行。

3、信息密碼面向對象編程接口設計與應用
3.1 信息密碼面向對象編程接口設計
  應用面向對象方法,對密碼編程接口功能進行分析與封裝設計,將有效提高編程速度。信息密碼功能主要包括:l)創(chuàng)建密鑰。該功能根據(jù)提供的密鑰算法產(chǎn)生私鑰體制下的會話密鑰或公鑰體制下的公共/私鑰對。2)交換密鑰。該功能包括交換公鑰和交換會話密鑰。交換公鑰不需要加密可直接輸出。交換會話密鑰時必須通過對方的公鑰進行加密輸出。3)數(shù)據(jù)加密和數(shù)據(jù)解密。由于非對稱加密算法速度慢,信息密碼面向對象編程接口中的所有數(shù)據(jù)加密都使用對稱算法。而公共/私人密鑰算法則用以較少位數(shù)的數(shù)據(jù)加密,如對會話密鑰或數(shù)字簽名進行加密。數(shù)據(jù)解密利用會話密鑰對密文解密。4)數(shù)字簽名和簽名認證。數(shù)字簽名可用來驗證數(shù)據(jù)是否是真正由簽名方發(fā)送來的或數(shù)據(jù)在途中是否受到損壞。創(chuàng)建數(shù)字簽名的第一步是計算簽名數(shù)據(jù)的哈希值,然后用用戶的私鑰加密哈希值得到數(shù)字簽名。由于私鑰是秘密的,可以確保不知道密鑰的人無法偽造數(shù)字簽名。簽名認證第一步用用戶的公共密鑰解密數(shù)字簽名并計算哈希值,將收到的哈希值與自己計算的哈希值相比較來驗證數(shù)字簽名,由于只有真正的發(fā)送者才能創(chuàng)建匹配的哈希值,所以可以認證發(fā)送者的身份。在信息密碼面向對象編程接口實現(xiàn)中,創(chuàng)建密碼類,將上述四種密碼功能作為該類的成員函數(shù)。密碼類既可作成基類與應用程序一起進行編譯,也可作為窗口類的派生類,將密碼類作成動態(tài)庫由應用程序調用。下面是采用第二種方法列出的密碼類C++語言描述:
  Class CCryptography::CWnd
  {
  public:
  CString strSourceFile,
  CString strDestFile,
  CString strDescription;
  public:
  CCryptography::CCryptgraphy(Cstring
  sourcefile, Cstring destfile);
  BOOL CreateKeyContainer( ); //創(chuàng)建密鑰庫
  BOOL EncryptFile( ); //密碼文件
  BOOL DecryptFile( ); //解密文件
  BOOL SignaturetFile( ); //創(chuàng)建數(shù)字簽名
  BOOL VerifyFile( ); //驗證數(shù)字簽名
  }

3.2 密碼類在柔性加工單元信息安全中的應用
  柔性加工單元是有多品種小批量生產(chǎn)特點的制造系統(tǒng)。單元通常按照客戶定單組織生產(chǎn)。單元網(wǎng)絡環(huán)境加快了單元與外界交互信息的速度,同時也帶來了網(wǎng)絡信息安全問題。柔性加工單元網(wǎng)絡信息安全包括:1)交互信息加密。加工單元通過網(wǎng)上發(fā)布服務信息和表單的方式與客戶取得聯(lián)系。雙方交互具有許多不希望第三方知道的敏感信息,如客戶方要求的定貨名稱、數(shù)量和單位等信息,加工單元回復的產(chǎn)品設計、成本報價等信息;2)合同數(shù)字簽名。加工單元與客戶雙方利用網(wǎng)絡簽定合同時,傳統(tǒng)的手寫簽名或印簽方法是不適用的。這時需要借助數(shù)字簽名方法達到手寫簽名的不可否認、無法偽造和可仲裁的目的。下面是應用密碼類密碼應用程序的部分C++代碼:
  文件加密
  {//定義密碼類對象,調用密碼類加密成員函數(shù)
  ...
  CCryptography* m_crypto;
  m_crypto=new
  CCryptography(Sourcefile, Destfile);
  m_crypto->EncryptFile( );
  ...
  }

4、全文總結
  應用密碼類編寫密碼應用程序明顯提高了編程效率,而且也適應漸趨發(fā)展的面向對象編程方向。應用密碼類動態(tài)庫連接方式使應用程序與密碼編程接口進一步分離,從而使增刪密碼類功能不十分影響應用程序。應用密碼類的密碼應用程序的密碼速度雖比封裝前稍慢,但其效果還是令人滿意的。倘若密碼幾十兆字節(jié)的產(chǎn)品設計圖紙肯定存在速度太慢的問題,此時可考慮將圖紙分解密碼。當然產(chǎn)品設計圖紙的網(wǎng)絡傳輸本身也存在速度太慢的問題。

(轉載)

標簽:微軟 編程接口 運用 我要反饋 
泰科電子ECK、ECP系列高壓直流接觸器白皮書下載
優(yōu)傲機器人下載中心
億萬克
專題報道