?? readme.txt
字號:
密聊源程序
密聊是文件密使的一部份,為了保護通訊的安全,為此文件密使新添加了即時安全通訊工具密聊,
"密聊"采用 2048bit 的 RSA 數據加密算法對數據進行加密和數字簽名。在此公開源程序并希望
對信息安全有興趣的朋友進行改進,或提供寶貴的意見。希望密聊能成為一個穩定、安全、公開
的通訊工具。
程序內容:
1. 通訊程序用的是MFC Socket,監聽套接字類CListenSocket,服務器類CServiceSocket,
客戶端類CClientSocket。CSecretChatDlg::SendData發送消息包。
2. public_key和private_key是對實現RSA功能的封裝類:
private_key::create()是創建私有密鑰和公開密鑰的函數
public_key::encrypt(vlong& plain)對一個小于m的大整數plain進行加密
private_key::decrypt(vlong &cipher)對一個小于m的大整數cipher進行解密
其他的參數是分別對消息塊MessageDollop和消息包MessagePackage進行處理的封裝
public_key::vlong_to_PK(PK &pk)是將公開密鑰轉化成PK結構,這樣才能保持下來
public_key::PK_to_vlong(PK pk)把PK結構的公鑰轉化到vlong類型的公鑰
private_key::vlong_to_SK(SK &sk)是將私有密鑰轉化成SK結構,這樣才能保持下來
private_key::SK_to_vlong(SK sk)把SK結構的私鑰轉化到vlong類型的私鑰
3. MessageDollop和MessagePackage結構是分別是消息塊和消息包,他們是重要的數據處理對象。
它們的定義有詳細的說明;PK和SK是為了將公開密鑰和私有密鑰變成可以存儲的結構體;
SecretKey是私鑰或公鑰文件結構;__DWORD128類對128bit信息進行處理
處理流程:
1. 連接成功后,就會安裝用戶的私有密鑰和好友的公開密鑰
2. 加密消息
用TextToMessagePackage函數將要加密的文本消息轉換成消息包,
用用戶私有密鑰對消息包進行簽名m_private_key_send.decrypt,
之后用對方公開密鑰對消息包再進行加密m_public_key_send.encrypt,
他們在while循環中,是為了使得要加密的數據必須要小于m;
3. 解密消息
用接收方的私有密鑰解密m_private_key_receive.decrypt
用發送方的公開密鑰解密簽名m_public_key_receive.encrypt
用MessagePackageToText函數將要消息包轉換成可讀的文本消息
────────────────
主頁:http://www.wjmshome.com
BBS: http://wjmshome.ok100.net
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -