一種基於信息識別碼非電磁信號的信息交互安全傳輸方法及系統與流程
2024-01-31 11:11:15
本發明涉及一種信息交互安全傳輸方法及系統,特別是涉及一種基於信息識別碼非電磁信號的信息交互安全傳輸方法及系統。
背景技術:
二維碼是某種特定的幾何圖形按一定的規律在平面分布的黑白相間的圖形記錄數據符號信息的。二維碼作為一種全新的信息存儲、傳遞和識別技術,目前已應用到公安、外交、軍事等各個領域證件管理中,同時正在廣泛應用在生活的方方面面,如移動辦公、支付交易、優惠促銷、會員管理等。
在實際部署和應用中,很多應用通過將上網地址、名片信息、電話信息等信息存儲在二維碼中,用戶在手機安裝二維碼識別客戶端,並使用手機拍攝和識別相應的二維碼信息,從而觸發瀏覽器瀏覽相應網址、調用相應應用打開名片信息或撥打電話等。然而在一些需要傳遞敏感信息的領域,簡單地將信息存儲在二維碼中可能導致未被授權的訪問而導致敏感信息的洩露。
技術實現要素:
本發明要解決的技術問題是提供一種能夠基於二維碼等信息識別碼的非電磁信號的信息交互安全傳輸方法及系統,能解決基於二維碼等信息識別碼的非電磁信號在信息傳遞過程中信息的機密性、完整性和不可抵賴性等問題,從而保證信息在不安全信道傳輸時不被未授權的攻擊者訪問或偽造。
本發明採用的技術方案如下:一種基於信息識別碼非電磁信號的信息交互安全傳輸方法,具體方法步驟為:
s1、發送方隨機產生對稱加密密鑰key;
s2、發送方使用接收方的公鑰對key加密產生密文信息c1,並使用key對明文信息p進行加密,產生密文信息c2;
s3、發送方對密文信息c1+密文信息c2的信息進行消息摘要m;
s4、發送方使用自身私鑰對消息摘要m進行數字籤名,產生密文信息c3;
s5、發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入信息識別碼,作為信息識別碼所承載能直接讀取的信息;
s6、接收方收到密文信息c,分離出密文信息c1、c2和c3;
s7、接收方使用發送方的公鑰,驗證發送方對密文信息c1+密文信息c2信息摘要的數字籤名c3,如果驗證失敗,則說明信息被篡改或偽造,如果驗證通過,則進入下一步;
s8、接收方使用自身私鑰解密密文信息c1得到對稱加密密鑰key;
s9、接收方使用解密得到的對稱加密密鑰key解密密文信息c2得到明文信息p。
所述步驟s3中,消息摘要m採用哈希算法獲得或採用sha1摘要算法獲得。
所述步驟s5中,發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c的具體方法為:對報文進行base64編碼並使用分隔符拼接產生。
所述分隔符採用base64編碼不會產生的分隔符。
一種基於信息識別碼非電磁信號的信息交互安全傳輸系統,包括發送方和接收方,發送方包括處理髮送方處理器,適於實現各種發送方指令;以及發送方存儲設備,適於存儲多條發送方指令,所述發送方指令包括適於由處理器加載並執行:
s1、隨機產生對稱加密密鑰key;
s2、使用接收方的公鑰對key加密產生密文信息c1,並使用key對明文信息p進行加密,產生密文信息c2;
s3、對密文信息c1+密文信息c2的信息進行消息摘要m;
s4、使用自身私鑰對消息摘要m進行數字籤名,產生密文信息c3;
s5、將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入信息識別碼,作為信息識別碼所承載能直接讀取的信息;
接收方包括處理接收方處理器,適於實現各種接收方指令;以及接收方存儲設備,適於存儲多條接收方指令,所述接收方指令包括適於由處理器加載並執行:
s6、收到密文信息c,分離出密文信息c1、c2和c3;
s7、使用發送方的公鑰,驗證發送方對密文信息c1+密文信息c2信息摘要的數字籤名c3,如果驗證失敗,則說明信息被篡改或偽造,如果驗證通過,則進入下一步;
s8、使用自身私鑰解密密文信息c1得到對稱加密密鑰key;
s9、使用解密得到的對稱加密密鑰key解密密文信息c2得到明文信息p。
所述步驟s3中,消息摘要m採用哈希算法獲得或採用sha1摘要算法獲得。
所述步驟s5中,發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c的具體方法為:對報文進行base64編碼並使用分隔符拼接產生。
所述分隔符採用base64編碼不會產生的分隔符。
與現有技術相比,本發明的有益效果是:能夠保證存儲在二維碼中的敏感信息能夠在不安全的信道中進行傳輸,保證信息的機密性、完整性、不可抵賴性,達到了安全傳輸敏感信息又有效防止偽造、篡改、抵賴等行為的目的。
附圖說明
圖1為本發明其中一實施例的原理示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,並不用於限定本發明。
本說明書(包括摘要和附圖)中公開的任一特徵,除非特別敘述,均可被其他等效或者具有類似目的的替代特徵加以替換。即,除非特別敘述,每個特徵只是一系列等效或類似特徵中的一個例子而已。
以下二維碼為例進行具體說明,包含一個加密二維碼生成應用和一個手機app客戶端,採用的加密算法為rsa、aes和sha1,發送方和接收方擁有各自的公鑰和私鑰,實現離線環境、非安全信道中信息安全傳輸。
具體實施例1
如圖1所示,一種基於信息識別碼非電磁信號的信息交互安全傳輸方法,具體方法步驟為:
s1、發送方隨機產生對稱加密密鑰key;
s2、發送方使用接收方的公鑰對key加密產生密文信息c1,並使用key對明文信息p進行加密,產生密文信息c2;
s3、發送方對密文信息c1+密文信息c2的信息進行消息摘要m;
s4、發送方使用自身私鑰對消息摘要m進行數字籤名,產生密文信息c3;
s5、發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入信息識別碼,作為信息識別碼所承載能直接讀取的信息;
s6、接收方收到密文信息c,分離出密文信息c1、c2和c3;
s7、接收方使用發送方的公鑰,驗證發送方對密文信息c1+密文信息c2信息摘要的數字籤名c3,如果驗證失敗,則說明信息被篡改或偽造,如果驗證通過,則進入下一步;
s8、接收方使用自身私鑰解密密文信息c1得到對稱加密密鑰key;
s9、接收方使用解密得到的對稱加密密鑰key解密密文信息c2得到明文信息p。
在本具體實施例中:
發送方,應用系統通過隨機密鑰發生函數產生一個aes加密密鑰key,使用發送方的公鑰對key進行加密產生報文c1;使用key對明文信息p加密產生報文c2;對c1+c2產生消息摘要m並使用發送方的私鑰進行數字籤名產生c3,將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入二維碼發送給接收方。
接收方,手機app客戶端掃描收到的二維碼得到c,對報文c進行拆分解碼得到報文c1、c2、c3;驗證報文c1+c2的數字籤名c3,如果驗證成功則使用接收方私鑰對c1進行解密得到aes加密密鑰key;使用key對c2報文進行解密得到明文信息。
發送方每次發送信息隨機產生對稱加密密鑰對明文信息進行加密,有效提升抵抗已知明文分析的能力。發送方和接收方通過公鑰技術確保對稱加密密鑰的安全傳輸和發送信息的完整性和不可抵賴性。
具體實施例2
在具體實施例1的基礎上,所述步驟s3中,消息摘要m採用哈希算法獲得或採用sha1摘要算法獲得。在本具體實施例中,對c1+c2使用sha1數字摘要算法產生消息摘要m。
具體實施例3
在具體實施例1或2的基礎上,所述步驟s5中,發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c的具體方法為:對報文進行base64編碼並使用分隔符拼接產生。對應的,在接收方,通過分割符對報文c進行拆分並進行base64解碼得到報文c1、c2、c3。
具體實施例4
在具體實施例3的基礎上,所述分隔符採用base64編碼不會產生的分隔符如「-」;因為base64編碼不會產生該字符,便於接收方拆分報文。
具體實施例5
一種基於信息識別碼非電磁信號的信息交互安全傳輸系統,包括發送方和接收方,發送方包括處理髮送方處理器,適於實現各種發送方指令;以及發送方存儲設備,適於存儲多條發送方指令,所述發送方指令包括適於由處理器加載並執行:
s1、隨機產生對稱加密密鑰key;
s2、使用接收方的公鑰對key加密產生密文信息c1,並使用key對明文信息p進行加密,產生密文信息c2;
s3、對密文信息c1+密文信息c2的信息進行消息摘要m;
s4、使用自身私鑰對消息摘要m進行數字籤名,產生密文信息c3;
s5、將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入信息識別碼,作為信息識別碼所承載能直接讀取的信息;
接收方包括處理接收方處理器,適於實現各種接收方指令;以及接收方存儲設備,適於存儲多條接收方指令,所述接收方指令包括適於由處理器加載並執行:
s6、收到密文信息c,分離出密文信息c1、c2和c3;
s7、使用發送方的公鑰,驗證發送方對密文信息c1+密文信息c2信息摘要的數字籤名c3,如果驗證失敗,則說明信息被篡改或偽造,如果驗證通過,則進入下一步;
s8、使用自身私鑰解密密文信息c1得到對稱加密密鑰key;
s9、使用解密得到的對稱加密密鑰key解密密文信息c2得到明文信息p。
在本具體實施例中:
發送方,應用系統通過隨機密鑰發生函數產生一個aes加密密鑰key,使用發送方的公鑰對key進行加密產生報文c1;使用key對明文信息p加密產生報文c2;對c1+c2產生消息摘要m並使用發送方的私鑰進行數字籤名產生c3,將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c寫入二維碼發送給接收方。
接收方,手機app客戶端掃描收到的二維碼得到c,對報文c進行拆分解碼得到報文c1、c2、c3;驗證報文c1+c2的數字籤名c3,如果驗證成功則使用接收方私鑰對c1進行解密得到aes加密密鑰key;使用key對c2報文進行解密得到明文信息。
具體實施例6
在具體實施例5的基礎上,所述步驟s3中,消息摘要m採用哈希算法獲得或採用sha1摘要算法獲得。在本具體實施例中,對c1+c2使用sha1數字摘要算法產生消息摘要m。
具體實施例7
在具體實施例5或6的基礎上,所述步驟s5中,發送方將密文信息c1+密文信息c2+密文信息c3拼接產生的密文信息c的具體方法為:對報文進行base64編碼並使用分隔符拼接產生。對應的,在接收方,通過分割符對報文c進行拆分並進行base64解碼得到報文c1、c2、c3。
具體實施例8
在具體實施例7的基礎上,所述分隔符採用base64編碼不會產生的分隔符如「-」;因為base64編碼不會產生該字符,便於接收方拆分報文。