專利名稱:通信系統和通信方法
技術領域:
本發明涉及包括兩個通信裝置的通信系統,這兩個通信裝置能夠對純文本形式(plaintext)的發送對象數據進行加密以使其成為經加 密數據,然后將其發送到另一端的通信裝置,也能夠對接收到的經加 密數據進行解密以使其成為所述發送對象數據。
背景技術:
上迷通信系統被用在有必要使在兩個通信裝置之間發送的發送 對象數據對于第三方保密的情形中。盡管提出并使用了各種加密技術 以保持發送對象數據的機密性,但是很難完全防止代碼的解密。通常,通過對發送對象數據加密而進行的通信是利用以下過程進 行的在發送者一側的發送和接收裝置上以預定的位數為單位切割發 送對象數據,對每一 片段的切割數據進行加密并將其發送到另 一端的 通信裝置,并在接收者一側的發送和接收裝置上對接收到的數據進行 解密。在執行這樣的加密的情況下,常常使用預定的算法和密鑰。該算 法是非常復雜的以防止代碼的解密,并且該密鑰在許多情況下也按預 定的時序改變。然而, 一旦算法和密鑰已知,相對而言就很容易利用 該算法和密鑰破解經加密數據,即使該算法很復雜或者密鑰是變化的 也是如此。本發明人對加密技術進行了多年的研究,并且先前已發明了一種 用于進行加密通信的技術,其中在發送一側和接收一側上的通信裝置 的每一個都配有用于連續生成用于執行加密和解密的算法和密鑰中的 至少一個的公共裝置,以便在連續改變用于加密和解密的算法和密鑰 中的至少一個的同時進行加密通信。
該技術連續生成用于進行加密和解密的算法和密鑰中的至少一 個。即使在算法或密鑰一旦已知的情況下,算法或密鑰或這兩者也會 在其后改變。因此,其力度遠高于傳統的加密技術。然而,關于該技術,有這樣的情形即如果某些過去的算法或密 鑰已知,則可以預測算法或密鑰或這兩者從現在開始如何改變。從而, 被第三方破解的可能性不絕對為0。本發明的目的是改進包括兩個通信裝置的通信系統,這兩個通信 裝置能夠對純文本形式的發送對象數據進行加密以使其成為經加密數 據,然后將其發送到另一端的通信裝置,也能夠對接收到的經加密數 據進行解密,使其成為發送對象數據,以便減小被第三方破解的可能 性。發明內容為了實現該目的,本發明人提出了下面描述的第一發明和第二發明。本申請的第一發明如下。第 一發明是一種包括第 一通信裝置和第二通信裝置的通信系統,為經加密i據,然后將其發送到i一端的通信裝置:也能夠對接收到 的經加密數據進行解密,使其成為發送對象數據。該通信系統的第一通信裝置和第二通信裝置都包括切割裝置, 用于以預定的位數為單位將發送對象數據切割成多個片段的發送對象 切割數據,也用于以經加密數據在被加密時被切割的相同位數為單位 將經加密數據切割成多個片段的經加密的切割數據;算法生成裝置, 用于順序地生成在第一通信裝置和第二通信裝置之間是/^共的算法; 加密和解密裝置,用于利用所述算法對發送對象切割數據進行加密以 使其成為經加密數據,并且利用在對經加密的切割數據進行加密時所 使用的算法對經加密的切割數據進行解密以使其成為發送對象切割數 據;連接裝置,用于連接解密后的發送對象切割數據以使其成為發送
對象數據;以及發送和接收裝置,用于發送和接收經加密數據。該通信系統的算法生成裝置在每次發送對象數據被加密或者經加密數據被解密時生成所述算法,并在生成算法時使用通過將過去解中的至少一個指派給解生成算法而獲得的預定解,并且還在不再有必要再次指派過去解時擦除這些過去解。該通信系統利用算法生成裝置連續地生成用于加密和解密的算法。算法生成裝置在生成所述算法時使用"解,,(solution )。如上所述,解是利用過去解生成的。此外,這些解一旦對于生成新的解不再必要時就被擦除。過去解在通信系統中被逐個擦除。由此,即使第三方可能知道在 該時間點處的解,他們也無法知道解在生成過程中經歷的路線。由于以上原因,通過該通信系統進行的加密通信可能被第三方破 解的可能性很小。解可以是偽隨機數。該通信系統按這樣的時序更新算法以利用對于第一通信裝置和 第二通信裝置來說相同的算法執行加密和解密。算法生成裝置可以在 每次發送對象數據被加密或者經加密數據被解密時生成算法。此外,時生成算法。在后一情況下,對于發送對象切割數據的每個片段利用不同的算 法執行加密,因此加密可能被解密的可能性變低。算法生成裝置根據過去解生成新的解。然而,它也可以通過將多 個過去解指派給解生成算法而獲得解。更具體而言, 一個或多個過去 解可以被指派給解生成算法以生成新的解。第一發明也可以通過以下方法實現。該方法被實施在包括第一通信裝置和第二通信裝置的通信系統 中,這兩個通信裝置能夠對純文本形式的發送對象數據進行加密以使 其成為經加密數據,然后將其發送到另一端的通信裝置,也能夠對接 收到的經加密數據進行解密,使其成為發送對象數據。該方法包括用于第一通信裝置和第二通信裝置中的一個的以下 步驟以預定的位數為單位將發送對象數據切割成多個片段的發送對 象切割數據;順序地生成算法;利用所述算法對發送對象切割數據進 行加密以使其成為經加密數據;以及將經加密數據發送到第一通信裝 置和第二通信裝置中的另一個,以及用于第一通信裝置和第二通信裝 置中的另一個的以下步驟以經加密數據在被加密時被切割的相同位據:順j地生成與第二通信裝置和第二通信裝置中的;斤述二個生成的相同的算法;利用在對經加密的切割數據進行加密時所使用的算法對 經加密的切割數據進行解密以使其成為發送對象切割數據;以及連接 解密后的發送對象切割數據以使其成為發送對象數據。根據該方法,第一通信裝置和第二通信裝置中的一個和另一個在 每次發送對象數據被加密或者經加密數據被解密時生成所述算法,并 在生成所述算法時使用通過將過去解中的至少一個指派給解生成算法 而獲得的預定解,并且還在不再有必要再次指派過去解時擦除這些過 去解。才艮據該申請的第二發明如下。第二發明是一種包括第 一通信裝置和第二通信裝置的通信系統, 這兩個通信裝置能夠對純文本形式的發送對象數據進行加密以^_其成 為經加密數據,然后將其發送到另一端的通信裝置,也能夠對接收到 的經加密數據進行解密,使其成為發送對象數據,其中第一通信裝置 和第二通信裝置都包括切割裝置,用于以預定的位數為單位將發送對象數據切割成多個片段的發送對象切割數據,也用于以經加密數據經加密的切割數據;密鑰生成裝置,用于順序地生成在第一通信裝置 和第二通信裝置之間是公共的密鑰;加密和解密裝置,用于利用所述 密鑰和一預定算法對發送對象切割數據進行加密以使其成為經加密數 據,并且利用在對經加密的切割數據進行加密時所使用的密鑰和與所 述算法相同的算法對經加密的切割數據進行解密以使其成為發送對象切割數據;連接裝置,用于連接解密后的發送對象切割數據以^使其成 為發送對象數據;以及發送和接收裝置,用于發送和接收經加密數據。該通信系統的密鑰生成裝置在每次發送對象數據被加密或者經 加密數據被解密時生成所述密鑰,并在生成所述密鑰時使用通過將過 去解中的至少一個指派給解生成算法而獲得的預定解,并且還在不再 有必要再次指派過去解時擦除這些過去解。根據第二發明的通信系統與第一發明具有共同的主旨。與第一發 明中連續生成算法不同的是,根據第二發明的通信系統連續地生成密 鑰。在生成密鑰的情況下,與第一發明中生成算法的情況一樣^:用過 去解,并且在其不再被使用時擦除過去解。因此,關于根據第二發明 的通信系統,通信可能被第三方破解的可能性很小。這一情況下的解也可以是偽隨機數。第二發明的密鑰生成裝置可以在任何時刻生成密鑰。例如,密鑰被解密時生成密鑰。密鑰生成裝置通過將過去解指派給解生成算法而獲得解。指派給 解生成算法的解的數目可以是一個或多個。第二發明也可以通過以下方法實現。第二發明是一種在包括第一通信裝置和第二通信裝置的通信系 統中實施的方法,這兩個通信裝置能夠對純文本形式的發送對象數據 進行加密以使其成為經加密數據,然后將其發送到另 一端的通信裝置, 也能夠對接收到的經加密數據進行解密,使其成為發送對象數據。第二發明包括用于第一通信裝置和第二通信裝置中的一個的以 下步驟以預定的位數為單位將發送對象數據切割成多個片段的發送 對象切割數據;利用所述密鑰和一預定的算法對發送對象切割數據進 行加密以使其成為經加密數據;以及將經加密數據發送到第 一通信裝 置和第二通信裝置中的另一個,以及用于第一通信裝置和第二通信裝 置中的另一個的以下步驟以經加密數據在被加密時被切割的相同位 數為單位將接收到的經加密數據切割成多個片段的經加密的切割數據;順序地生成與第一通信裝置和第二通信裝置中的所述一個生成的 相同的密鑰;利用在對經加密的切割數據進行加密時所使用的密鑰和 與所述算法相同的算法對經加密的切割數據進行解密以使其成為發送 對象切割數據;以及連接解密后的發送對象切割數據以使其成為發送 對象數據。第一通信裝置和第二通信裝置中的一個和另一個在每次發 送對象數據被加密或者經加密數據被解密時生成所述密鑰,并在生成 所述密鑰時使用通過將過去解中的至少一個指派給解生成算法而獲得 的預定解,并且還在不再有必要再次指派過去解時擦除這些過去解。
圖l是示出根據一個實施例的通信系統的整體配置的圖;圖2是示出包括在圖l所示的通信系統中的第一通信裝置和第二通信裝置的硬件配置的圖;圖3是示出包括在圖l所示的通信系統中的第一通信裝置和第二通信裝置的通信裝置的配置的框圖;圖4是示出在圖1所示的通信系統中執行的過程的流程圖;圖5是示出在圖l所示的通信系統的第一通信裝置中執行的加密過程的流程圖;以及圖6是示出在圖l所示的通信系統的第二通信裝置中執行的解密過程的流程圖。
具體實施方式
下文中將參考附圖描述本發明的優選實施例。根據該實施例的通信系統被粗略地配置為如圖1所示。該通信系 統包括經由網絡13相互連接的第一通信裝置11和第二通信裝置12。 第一通信裝置11和笫二通信裝置12相互進行加密通信。連接第一通信裝置11和第二通信裝置12的網絡13例如是因特 網。當然,也可以利用另一方式(例如內聯網或私有線路)配置網絡 13。
下面對第一通信裝置11和第二通信裝置12的配置給出描述。由 于根據該實施例第 一通信裝置11和第二通信裝置12具有相同的配置, 因此下面只描述第一通信裝置11的配置作為代表。圖2示出了第一通信裝置11的硬件配置。根據該實施例,第一通信裝置ll包括CPU(中央處理單元)21、 ROM (只讀存儲器)22、 HDD (硬盤驅動器)23、 RAM (隨機訪問 存儲器)24、輸入裝置25、顯示裝置26、通信裝置27和總線28。 CPU 21、 ROM 22、 HDD 23、 RAM 24、輸入裝置25、顯示裝置26和通信 裝置27可以經由總線28交換數據。ROM 22或HDD 23記錄有預定程序和預定數據(這可以包括作 為該實施例中的發送對象數據的數據,并且預定數據包括執行程序所 必需的數據)。CPU 21控制整個第一通信裝置11,并基于存儲在ROM 22或HDD 23中的程序和數據執行后面將描述的過程。RAM 24被用 作在CPU 21上執行過程時的工作存儲區。輸入裝置25由鍵盤、鼠標等等構成,并且被用于輸入命令和數 據。顯示裝置26可以由LCD (液晶顯示器)、CRT (陰極射線管) 構成,并且被用于顯示命令、輸入的數據、后面將描述的過程的狀態 等等。通信裝置27經由網絡13與第二通信裝置12進行通信。第二通 信裝置12的通信裝置27經由網絡13與第一通信裝置11進行通信。下面將對通信裝置27的配置給出描述。圖3示出了通信裝置27 的框圖。通信裝置27配置有接口部分31、預處理部分32、加密和解密部 分33、 >^共數據生成部分34、算法生成部分35、密鑰生成部分36、 通信部分37和連接部分38。接口部分31在總線28與加密和解密部分33之間交換數據。接 口部分31還有將數據從總線28發送到公共數據生成部分34并將數據 從連接部分38發送到總線28的功能。預處理部分32具有以下功能以預定的位數為單位切割經由接
口部分31從總線28接收的發送對象數據或經加密數據,并生成發送 對象切割數據或經加密切割數據以將其發送到加密和解密部分33。如 何切割發送對象數據和經加密數據將在后面描述。根據該實施例,預 處理部分32具有通過后面描述的方法將與發送對象數據沒有聯系的 啞數據包括在發送對象數據中的功能。加密和解密部分33具有以下功能從預處理部分32接收發送對 象切割數據或經加密的切割數據,在接收到發送對象切割數據的情況 下對其進行加密,或者在接收到經加密的切割數據的情況下對其進行 解密。該實施例的加密和解密部分33具有固定的基準位數作為在執行 加密和解密過程的情況下的處理單位。在該實施例中,基準位數是8 位,但是其并不限于此。加密和解密的細節將在后面描述。公共數據生成部分34順序生成公共數據,>^共數據是在第一通 信裝置11和第二通信裝置12之間公共的數據。該實施例的第一通信 裝置11和笫二通信裝置12的公共數據生成部分34順序生成公共數 據,從而使相同順序的公共數據變得相同。該實施例的公共數據是偽 隨機數,但并不總是如此。所生成的公共數據被發送到預處理部分32、 算法生成部分35和密鑰生成部分36。算法生成部分35基于接收自公共數據生成部分34的公共數據生 成算法。該算法被用在加密和解密部分33執行加密處理和解密處理 時。密鑰生成部分36基于接收自公共數據生成部分34的公共數據生 成密鑰。該密鑰被用在加密和解密部分33執行加密處理和解密處理 時。通信部分37與網絡13交換數據。通過在加密和解密部分33中 對發送對象切割數據進行加密而生成的經加密的切割數據由連接部分 38連接起來,并且經由通信部分37被發送到位于另 一端的通信裝置。 通信部分37從另 一端的通信裝置接收經加密的數據。經加密的數據被 從通信部分37發送到預處理部分32。連接部分38具有以下功能將通過在加密和解密部分33中對經
以使其成為 一組發送對象數據。發送對象數據被發送到接口部分31 , 并且在必要時經由總線28被發送到HDD 23或CPU 21。連接部分38 還有以下功能將通過在加密和解密部分33對發送對象切割數據進行 加密而生成的經加密的切割數據按原始順序連接以使其成為 一組經加 密數據。經加密數據被發送到通信部分37,并且被從通信部分37發 送到位于另 一端的通信裝置。連接部分38不必具有連接通過在加密和 解密部分33中對發送對象切割數據進行加密而生成的經加密的切割 數據的功能。在這種情況下,經加密的切割數據按照其被加密的順序 被順序發送到另一端的通信裝置。在連接部分38如上所述的情況下, 經加密的切割數據可以被直接發送到通信部分37而不經過連接部分 38。下面對在通信系統中執行的處理流程給出描述。 利用圖4描述概況,在通信系統中執行的處理流程如下。 首先,第一通信裝置11對發送對象數據進行加密以生成經加密 數據(S110)。隨后,第一通信裝置ll將經加密數據發送到第二通信 裝置12 (S120)。隨后,接收到經加密數據的第二通信裝置12對經 加密數據進行解密以將其變回發送對象數據(S130)。從而,在下面的描述中經加密數據被從第一通信裝置11發送到 第二通信裝置12。很明顯,即使與上述情形相反,即經加密數據被從 第二通信裝置12發送到第一通信裝置11,在處理內容上也不會有任 何差異。首先,參考圖5給出對上述步驟S110的詳細描述,其中第一通 信裝置11對發送對象數據進行加密以生成經加密數據。首先,讀取發送對象數據。發送對象數據可以是需要從第一通信 裝置11發送到第二通信裝置12的任何數據。根據該實施例,發送對 象數據被記錄在HDD 23上。在從例如輸入裝置25輸入用于將發送對 象數據發送到第二通信裝置12的命令的情況下,CPU 21從HDD 23 讀出發送對象數據,并將其臨時記錄在RAM24中。發送對象數據經
由總線28被從RAM 24發送到通信裝置27中的預處理部分32和接 口部分31 (S1101)。在預處理部分32中,以預定的位數為單位切割發送對象數據以 使其成為發送對象切割數據(S1102)。預處理部分32在必要時在發 送對象切割數據中包括啞數據。可能只有一種方法由發送對象數據生成發送對象切割數據。然 而,根據該實施例,發送對象切割數據是按照下面三種方法中的一種 由發送對象數據生成的A) 情形以比基準位數少的預定位數為單位將發送對象數據切 割成發送對象切割數據,并在各片段的發送對象切割數據的相應固定 位置處包括啞數據,所有片段的位數都比基準位數少;B) 情形以比基準位數少的預定位數為單位將發送對象數據切 割成發送對象切割數據,并在各片段的發送對象切割數據的不同位置 處包括啞數據,所有片段的位數都比基準位數少;C) 情形以與基準位數一樣多或比基準位數少的位數為單位將 發送對象數據切割成發送對象切割數據,并在位數比基準位數少的各 片段的發送對象切割數據中包括啞數據。關于上述三種方法中的哪一種應當被用于由發送對象數據生成 發送對象切割數據,這是由公共數據生成部分34所生成的公共數據決 定的。下面將首先對公共數據生成部分34如何生成公共數據給出描述。在接口部分31從總線28接收到發送對象數據的情況下,公共數 據生成部分34從接口部分31接收該信息。公共數據生成部分34利用這個機會開始生成公共數據。根據該 實施例,公共數據生成部分34在每次接口部分31接收到發送對象數 據時生成公共數據。該實施例的公共數據是具有8行和8列的矩陣 (X),但是其并不限于此。根據該實施例,公共數據生成部分34好像非線性轉換一樣連續 地生成公共數據,但是其并不限于這種情形。
為了好像非線性轉換一樣連續生成公共數據,有幾種可以考慮的 技術,例如(1 )在生成公共數據的過程中包括對過去>^共數據的指數計算,(2 )在生成公共數據的過程中包括對過去公共數據的兩個或更 多個片段的乘法,或者(1)和(2)的組合。根據該實施例,公共數據生成部分34具有被預定為初始矩陣的 第01解(Xm )和第02解(X。2)(例如,第01解和第02解被記錄 在預定存儲器中)。公共數據生成部分34將初始矩陣指派給解生成算法,并按以下 方式生成第1解(X》。第1解(Xt) =X02X01+a ( a=8行和8列的矩陣)這是最初生成的公共數據。隨后,在接口部分31從總線28接收到發送對象數據的情況下, 公共數據生成部分34按以下方式生成第2解(X2)。 第2解(X2) -XtX^+a類似地,每次接口部分31從總線28接收到發送對象數據時,公 共數據生成部分34按以下方式生成第3、第4…第N解。 第3解(X3) -XzX^a 第4解(X4 ) =X3X2+a第N解(XN)這樣生成的公共數據(即解)被發送到預處理部分32和算法生 成部分35,并且也被保持在公共數據生成部分34中。為了生成第N 解(XN),該實施例使用了第N-l解(Xjsm)和第N-2解(XN_2), 即緊鄰第N解之前生成的兩個解。因此,為了生成新的解,公共數據 生成部分34必須保持在過去生成的最近的前兩個解(或者,這兩個解 必須被某個其他部件保持)。相反地,在過去生成的比最近的前兩個 解更老的解不被用于生成從今往后的新解。從而,該實施例總是在公 共數據生成部分34中保持兩個過去的解。然而,該實施例從預定存儲 器等中擦除由于生成新的解現在是第三最近的在先解,但在此之前都 是第二最近的在先解的一個解,其中這樣的解原本記錄在所述預定存 儲器等當中。這樣生成的解在非線性轉換中是混亂的(chaotic),并且也是偽 隨機數。為了進行非線性轉換,可以考慮使用下面的公式而不是上述公 式第N解(XN ) = Xr^XN-2+a。 例如(a )第N解(XN) = (Xnj)p(b )第N解(XN ) = (Xn-0P(Xn—2)Q(Xn-3)R(Xn-4)s(c )第N解(XN ) = (Xn-!)p+(Xn-2)QP、 Q、 R和S分別是預定的常數。公共數據生成部分34在使用 公式(a)或(c)的情況下具有兩個初始矩陣,在使用公式(b)的情 況下具有四個初始矩陣。上述a是常數。然而,它也可以是特定變化的環境信息。環境信 息是隨著時間流逝按順序自然生成的信息,并且通常可以在遠處獲得, 例如基于特定區域的天氣確定的信息,基于在特定時間廣播的TV臺 的TV廣播的內容確定的信息以及基于特定體育比賽的結果確定的信 息。可以通過連續地創建上述a并生成公共數據來進一步提高通信的 機密性。當然,還可以將a (可以根據環境信息生成)添加到公式(a)到 (c)的右側。如上所述,已接收到公共數據(即,上述解)的預處理部分32 決定上述方法A) 、 B)和C)中的哪一個應當被用于生成發送對象 切割數據。根據該實施例,發送對象切割數據在將構成8行8列的矩 陣的數相加的總和除以3余數為0的情況下由方法A)生成,余數為 1的情況下由方法B)生成,而在余數為2的情況下由方法C)生成, 但是其并不限于這種情形。在通過方法A)生成發送對象切割數據的情況下,預處理部分32 從頭部開始按順序以比基準位數少的預定位數(在該實施例中是7位) 為單位切割從接口部分31接收的發送對象數據,以生成發送對象切割 數據。預處理部分32在發送對象切割數據的固定位置處嵌入啞數據。 用于嵌入啞數據的發送對象切割數據的位置可以是可變的或固定的。 在后一情況下,啞數據被嵌入的位置可以是發送對象切割數據的頭部 或尾部或諸如第二位或第三位之類的預定中間位置。啞數據可以是任 何數據,只要它是與發送對象數據無關的數據即可。例如,可以考慮 這樣的過程,例如恒定地嵌入數據0或數據1,或嵌入數據l,或交替 地嵌入數據1和0。又例如,可以基于上迷公共數據決定要嵌入哪些 啞數據。例如,如果構成作為公共數據的8行8列矩陣的數相加后的 總和被9除其余數為0,則可以繼續0,例如0、 0、 0、 0…。如果余 數為1,則可以交替放入l,例如0、 1、 0、 1…。如果余數為2,則可 以每三個位置放入l,例如O、 0、 1、 0、 0、 l...。同樣地,如果余數 為3則可以每四個位置放入1,余數為4則每五個位置放入1,余數為 9則每十個位置放入l。在通過方法B )生成發送對象切割數據的情況下,預處理部分32 以比基準位數少的預定位數(例如是7位)為單位切割發送對象數據, 以使其成為發送對象切割數據,并且在各片段的發送對象切割數據的 不同位置處包括啞數據,其中所有片段都具有比基準位數少的位數。 在這種情況下,啞數據被嵌入的位置可以是可以是固定的或有規則改變的,例如按第一位、第二位、第三位.....第八位、第一位、第二位.....第八位的順序移動,或者對于每一片段的發送對象切割數據隨機改變。在啞數據被嵌入的位置隨機改變的情況下,這些位置可以 例如基于公共數據決定。關于使用公共數據來決定用于嵌入啞數據的基準位數的方法,可 以例如執行以下的過程。如果構成作為公共數據的8行8列矩陣的數 相加后的總和被8除其余數為0,則啞數據被交替嵌入在各片段的發 送對象切割數據的頭部和尾部。如果余數為1,則在頭部嵌入有啞數
布置為每隔二個位置。如果余數為2,則在頭部嵌入有啞數據的發送 對象切割數據和在尾部嵌入有啞數據的發送對象切割數據被布置為每 隔三個位置。如果余數為7,則在頭部嵌入有啞數據的發送對象切割 數據和在尾部嵌入有啞數據的發送對象切割數據被布置為每隔八個位 置。還可以進一步移動啞數據被嵌入的位置,例如頭部和尾部,而不 是固定位置。
在通過方法C)生成發送對象切割數據的情況下,發送對象數據 被切割成基準位數或比基準位數少的位數。這一切割可以通過將發送 對象數據切割為比8位短的隨機長度來執行。例如,如果構成作為公 共數據的8行8列矩陣的數相加后的總和被8除其余數為0,則在該 時間點處發送對象數據的頭部可以以8位為單位切割。如果余數為1, 則在該時間點處發送對象數據的頭部可以以l位為單位切割。如果余 數為2,則在該時間點處發送對象數據的頭部可以以2位為單位切割。 ...如果余數為7,則在該時間點處發送對象數據的頭部可以以7位為 單位切割。在這樣生成的發送對象切割數據中,預處理部分32在位數 比基準位數少的每一片段的發送對象切割數據中嵌入啞數據。在這種 情況下,啞數據的嵌入位置可以是特定位置,諸如頭部或尾部或例如 由公共數據指定的預定可變位置。
在任何一種情況下,這樣生成的發送對象切割數據都按生成的順 序以流式方式被發送到加密和解密部分33。
與發送對象切割數據的生成相并行地,算法生成部分35生成在 對發送對象切割數據進行加密時使用的算法。
算法生成部分35基于公共數據生成算法。
根據該實施例,算法生成部分35按以下方式生成算法。
該實施例的算法被定義為"在8位數據的發送對象切割數據是1 行8列的矩陣Y的情況下,其是通過將作為公共數據的8行8列矩陣 X升至a次冪然后順時針方向旋轉nx90。后乘以Y而獲得的"。
這里,存在a是預定常數的情形。然而,根據該實施例,它是基 于公共數據改變的數。更具體而言,該實施例的算法基于公共數據改
變。例如,a可以被定義為在將通過相加包括在公共數據中的作為矩 陣元素的所有數而獲得的數除以5的情況下的余數,其中公共數據是 8行8列的矩陣(假定在余數為0的情況下a-l)。
上述n是由密鑰定義的預定數。如果密鑰是常數,則n固定。然 而,如下所述,密鑰基于公共數據改變。更具體而言,根據該實施例 這一 n也基于公共數據改變。
還可以決定另一算法。
根據該實施例,算法生成部分35在每次它從公共數據生成部分
34接收到公共數據時生成算法,并將算法發送到加密和解密部分33。 與發送對象切割數據的生成并行地,密鑰生成部分36生成在對
發送對象切割數據進行加密時使用的密鑰。
密鑰生成部分36基于公共數據生成密鑰。
根據該實施例,密鑰生成部分36按以下方式生成密鑰。該實施例的密鑰是通過相加包括在公共數據中的作為矩陣元素
的所有數而獲得的數,其中公共數據是8行8列的矩陣。因此,根據
該實施例,密鑰基于公共數據改變。 還可以決定另一密鑰。
根據該實施例,密鑰生成部分36在每次它從公共數據生成部分 34接收到公共數據時生成密鑰,并將該密鑰發送到加密和解密部分 33。
加密和解密部分33基于接收自算法生成部分35的算法和接收自 密鑰生成部分36的密鑰,對接收自預處理部分32的發送對象切割數 據進行加密(S1103)。
如上所述,該算法被定義為"在8位數據的發送對象切割數據是1 行8列的矩陣Y的情況下,其是通過將作為公共數據的8行8列矩陣 X升至a次冪然后順時針方向旋轉nx90。后乘以Y而獲得的",并且作 為密鑰的n是上述數字。
在a為3而n為6的情況下,加密是通過將8行8列的矩陣乘以 發送對象切割數據而進行的,其中所述8行8列的矩陣是通過使對X
求三次方而獲得的8行8列矩陣順時針旋轉6x90° = 540。而獲得的。 這樣生成的數據是經加密的切割數據。
經加密的切割數據被發送到連接部分38。連接部分38將經加密 的切割數據連接成一個整體,并生成經加密數據(S1104)。在這種情順序。
因而,第一通信裝置11對發送對象數據進行加密以生成經加密 數據的S110步驟完成。
經加密數據被發送到通信部分37,然后經由網絡13被發送到第 二通信裝置12。
已接收到經加密數據的第二通信裝置12執行步驟S130,對經加 密數據進行解密,并將其變回發送對象數據。 下文中將詳細描述這一解密步驟。
被發送到第二通信裝置12的經加密數據被第二通信裝置12的通 信部分37接收(S1201)。
通信部分37將經加密數據發送到預處理部分32。
預處理部分32以預定的位數為單位切割接收的經加密數據,并 生成經加密的切割數據(S1202)。
在切割經加密數據并生成經加密的切割數據的情況中,預處理部 分32執行與第一通信裝置11的連接部分38所執行的相反過程。更具 體而言,從頭部開始以8位為單位切割經加密數據,以將其劃分成多 個片段的經加密的切割數據。
隨后,經加密的切割數據被發送到加密和解密部分33,在加密和
解密是按照與第一通信裝置11的加密和解密部分33所執行的過 程相反的過程執行的。因此,笫二通信裝置12需要在第一通信裝置 11上執行加密時所需要的算法和密鑰。
用于解密的算法和密鑰是在第二通信裝置12內部生成的。下面 將描述其工作.
第二通信裝置12的通信部分37接收到經加密數據的信息被從通 信部分37發送到公共數據生成部分34。已接收到該信息的公共數據 生成部分34利用這個機會在每次它接收到該信息時生成公共數據。
由第二通信裝置12的公共數據生成部分34執行的公共數據的生 成是通過與第一通信裝置11的公共數據生成部分34所執行的相同的 步驟執行的。第二通信裝置12的公共數據生成部分34具有與第一通 信裝置11的公共數據生成部分34相同的初始矩陣和解生成算法。因 此,由第二通信裝置12生成的公共數據與由第一通信裝置11生成的 公共數據相同(如果拿相同生成順序的數據相比較的話)。
所生成的公共數據被從公共數據生成部分34發送到預處理部分 32、算法生成部分35和密鑰生成部分36。
算法生成部分35在每次其接收到公共數據時基于接收到的公共 數據生成算法。第二通信裝置12的算法生成部分35生成算法的步驟 與第一通信裝置11的算法生成部分35生成算法的步驟相同。所生成 的算法被從算法生成部分35發送到加密和解密部分33。
密鑰生成部分36在每次其接收到公共數據時基于接收到的公共 數據生成密鑰。第二通信裝置12的密鑰生成部分36生成密鑰的步驟 與第一通信裝置11的密鑰生成部分36生成密鑰的步驟相同。所生成 的密鑰被從密鑰生成部分36發送到加密和解密部分33。
關于該通信系統,每次在第一通信裝置11上執行加密時在第一 通信裝置11上生成新的公共數據,并且每次在第二通信裝置12上執 行解密時也在第二通信裝置12上生成新的公共數據。如上所述,由第 二通信裝置12生成的公共數據與由第一通信裝置11生成的公共數據 相同(如果拿相同生成順序的數據相比較的話)。因此,在第一通信 裝置11上對某些發送對象數據進行加密時生成的所有公共數據以及 基于該公共數據生成的算法和密鑰總是與在第二通信裝置12上生成 的公共數據以及基于該公共數據生成的算法和密鑰(當對利用該公共 數據以及基于該公共數據生成的算法和密鑰所生成的經加密數據進行 解密時)相匹配。即使是在第二通信裝置12上執行加密并且在第 一通
信裝置ll上執行解密時,這些情形也是相同的。
如上所述,加密和解密部分33利用接收自算法生成部分35的算 法執行解密處理。更詳細地說,加密和解密部分33基于接收自算法生 成部分35的算法(被定義為"在8位數據的發送對象切割數據是1行 8列的矩陣Y的情況下,經加密的切割數據是通過將作為公共數據的 8行8列矩陣X升至a次冪然后順時針方向旋轉nx90。后乘以Y而獲 得的")生成用于執行解密處理的算法(被定義為"在經加密的切割數 據是1行8列的矩陣Z的情況下,發送對象切割數據是通過將作為公 共數據的8行8列矩陣X升至a次冪然后順時針方向旋轉nx90。后的 逆矩陣乘以Y而獲得的,,),并利用密鑰根據上述定義執行計算,借 此執行解密處理。因而,加密和解密部分33對以流式方式一個接一個 地提供自預處理部分32的經加密的切割數據進行解密以便生成發送 對象切割數據。
隨后,加密和解密部分33按需要從發送對象切割數據中去除啞 數據(S1204)。如上所述,由公共數據生成部分34生成的公共數據 被發送到預處理部分32。該公共數據是當確定在第一通信裝置11的 預處理部分32中啞數據如何被嵌入在發送對象切割數據中的時候所 使用的。更具體而言,在該時間點處由第二通信裝置12的預處理部分 32保持的公共數據指示啞數據是如何被嵌入在由第二通信裝置12的 加密和解密部分33完全解密(或正在進行解密或剛剛要解密)的經加 密的切割數據(更精確地說,在使經加密的切割數據受到加密之前的 發送對象切割數據)中的。
預處理部分32向加密和解密部分33發送關于啞數據被嵌入在由 加密和解密部分33解密的發送對象切割數據中的何處的信息。
加密和解密部分33利用該信息從發送對象切割數據中去除啞數據。
這樣生成的發送對象切割數據被發送到連接部分38。連接部分 38將接收到的發送對象切割數據連接成一個整體,并將其變回處于在 第一通信裝置ll上加密之前的原始狀態的發送對象數據(S1205)。
這樣,第二通信裝置12對經加密數據進行解密并將其變回發送 對象數據的步驟130完成。
所生成的發送對象數據被從連接部分38發送到接口部分31,然 后經由總線28被發送到例如HDD 23以存儲在其中。 《變形例》
在上述通信系統中,每次接口部分31接收到發送對象數據時或 者每次通信部分37接收到經加密數據時,公共數據生成部分34生成 公共數據。在這種情況下,由發送對象數據的一個片段生成的發送對 象切割數據的所有片段是按照同 一算法加密的。
與此不同,公共數據生成部分34可以在每次加密和解密部分33 接收到發送對象切割數據時或者在每次加密和解密部分33接收到經 加密的切割數據時生成公共數據。在這種情況下,對于由發送對象數 據的一個片段生成的發送對象切割數據的每個片段,利用不同的算法 和密鑰進行加密。
在這種變形例中,在執行加密的情況下,公共數據、算法和密鑰 按以下方式生成。
首先,將描述執行加密的情形。
如果接口部分31接收到發送對象數據,則關于該效果的信息被 從接口部分31發送到公共數據生成部分34。在接收到該信息時,公 共數據生成部分34按照上述實施例中的情形生成公共數據。公共數據 被發送到預處理部分32、算法生成部分35和密鑰生成部分36。在接 收到公共數據時,預處理部分32按照上述實施例中的情形通過切割發 送對象數據開始生成發送對象切割數據。算法生成部分35基于接收到 的公共數據生成算法,并將所生成的算法發送到加密和解密部分33。 密鑰生成部分36基于接收到的公共數據生成密鑰,并將所生成的密鑰 發送到加密和解密部分33。
加密和解密部分33利用接收到的算法和密鑰對接收到的發送對 象切割數據進行加密以生成經加密的切割數據的第一片段。
隨后,公共數據生成部分34在發送對象切割數據的第二片段被
從預處理部分32發送到加密和解密部分33之前生成^^共數據以i更將 其發送到算法生成部分35和密鑰生成部分36。在接收它后,算法生 成部分35生成與用于生成經加密的切割數據的第一片段的算法不同 的算法,并將其發送到加密和解密部分33。類似地,密鑰生成部分36 生成與第一密鑰不同的密鑰,并將其發送到加密和解密部分33。加密 和解密部分33使用該算法和密鑰,利用發送對象切割數據的第二片段 生成經加密的切割數據的第二片段。
這一步驟被重復以對經加密的切割數據的每個片段執行不同的加密。
在該變形例中,公共數據的在前的第二片段只被發送到算法生成 部分35和密鑰生成部分36。然而,公共數據的在前的第二片段也可 以被發送到預處理部分32。在這種情況下,可以針對發送對象切割數 據的每個片段改變生成發送對象切割數據的方法。
下面將描述執行解密的情形。
如果通信部分37接收到經加密數據,則關于該效果的信息被從 通信部分37發送到公共數據生成部分34。在接收到該信息后,^S共 數據生成部分34按照上述實施例中的情形生成公共數據。公共數據被 發送到預處理部分32、算法生成部分35和密鑰生成部分36。在接收 到公共數據后,預處理部分32按照上述實施例中的情形生成關于發送 對象切割數據原先被如何生成的信息,并將其發送到加密和解密部分 33。算法生成部分35基于接收到的公共數據生成算法,并將所生成的 算法發送到加密和解密部分33。密鑰生成部分36基于接收到的公共 數據生成密鑰,并將所生成的密鑰發送到加密和解密部分33。該算法
鑰相同。預^理部分:32按照上述實施例中的情形將通過切割經加密數 據而生成的經加密的切割數據發送到加密和解密部分33。
加密和解密部分33利用通過使用接收到的算法生成的用于解密 的算法對接收到的經加密的切割數據進行解密,以便生成發送對象切 割數據的第一片段。加密和解密部分33根據接收到的關于發送對象切
割數據原先被如何生成的上述信息從所生成的發送對象切割數據中去 除啞數據。
隨后,公共數據生成部分34在發送對象切割數據的第二片段被 從預處理部分32發送到加密和解密部分33之前生成公共數據的下一 片段,以便將其發送到算法生成部分35,在接收到該片段后,算法生 成部分35生成與用于生成發送對象切割數據的第一片段的算法不同 的算法,并將其發送到加密和解密部分33。該算法與用于加密該發送 對象切割數據的算法相同。在接收到公共數據后,密鑰生成部分36 生成與用于生成發送對象切割數據的笫一片段的密鑰不同的密鑰,并 將其發送到加密和解密部分33。該密鑰與用于加密該發送對象切割數 據的密鑰相同。
加密和解密部分33利用這些算法和密鑰對經加密的切割數據的 第二片段進行解密以生成發送對象切割數據的第二片段。其還按照上 述實施例中的情形去除啞數據。
這一步驟被重復以利用不同的算法和密鑰對經加密的切割數據 的每個片段進行解密,以便一個接一個地生成發送對象切割數據。
在執行加密過程中,通過也將公共數據的在前的第二片段發送到 預處理部分32而針對發送對象切割數據的每個片段改變生成發送對 象切割數據的方法的情形中,在執行解密時>^共數據的在前的第二片 段也被發送到預處理部分32。從而,預處理部分32針對經加密的切 割數據的每個片段生成關于發送對象切割數據原先被如何生成的信 息。每次經加密的切割數據被加密和解密部分33解密時,這樣生成的 上述關于發送對象切割數據原先被如何生成的信息被發送到加密和解 密部分33。加密和解密部分33使用該信息來通過不同方法安全地去 除嵌入在發送對象切割數據的每個片段中的啞數據。
權利要求
1.一種包括第一通信裝置和第二通信裝置的通信系統,這兩個通信裝置能夠對純文本形式的發送對象數據進行加密以使其成為經加密數據,然后將其發送到另一端的通信裝置,也能夠對接收到的經加密數據進行解密,使其成為所述發送對象數據,其中所述第一通信裝置和所述第二通信裝置都包括切割裝置,用于以預定的位數為單位將所述發送對象數據切割成多個片段的發送對象切割數據,也用于以所述經加密數據在被加密時被切割的相同位數為單位將所述經加密數據切割成多個片段的經加密的切割數據;算法生成裝置,用于順序地生成在所述第一通信裝置和所述第二通信裝置之間是公共的算法;加密和解密裝置,用于利用所述算法和預定密鑰對所述發送對象切割數據進行加密以使其成為所述經加密數據,并且利用在對所述經加密的切割數據進行加密時所使用的算法和與所述密鑰相同的密鑰對所述經加密的切割數據進行解密以使其成為所述發送對象切割數據;連接裝置,用于連接解密后的發送對象切割數據以使其成為所述發送對象數據;以及發送和接收裝置,用于發送和接收所述經加密數據,并且所述算法生成裝置在每次發送對象數據被加密或者經加密數據被解密時生成所述算法,并且在生成算法的情況中使用通過將過去解中的至少一個指派給解生成算法而獲得的預定解,并且還在不再有必要再次指派過去解時擦除這些過去解。
2. 如權利要求l所述的通信系統,其中 所述算法生成裝置在每次發送對象切割數據被加密或者經加密的切割數據被解密時生成所述算法。
3. 如權利要求l所述的通信系統,其中所述算法生成裝置通過將多個過去解指派給解生成算法而獲得 解。
4. 一種在包括第一通信裝置和第二通信裝置的通信系統中實施 的通信方法,所述兩個通信裝置能夠對純文本形式的發送對象數據進 行加密以使其成為經加密數據,然后將其發送到另 一端的通信裝置, 也能夠對接收到的經加密數據進行解密,使其成為所述發送對象數據, 所述方法包括用于所述第一通信裝置和所述第二通信裝置中的一個的以下步臘.以預定的位數為單位將所述發送對象數據切割成多個片段的發 送對象切割數據;順序地生成算法;利用所述算法對所述發送對象切割數據進行加密以使其成為所 述經加密數據;以及將所述經加密數據發送到所述第一通信裝置和所述第二通信裝 置中的另一個,以及用于所述第 一通信裝置和所述第二通信裝置中的另 一個的以下步驟以所述經加密數據在被加密時被切割的相同位數為單位將接收 到的經加密數據切割成多個片段的經加密的切割數據;順序地生成與所述第一通信裝置和所述第二通信裝置中的所述 一個生成的相同的算法;利用在對所述經加密的切割數據進行加密時所使用的算法對所 述經加密的切割數據進行解密,以使其成為所述發送對象切割數據; 以及連接解密后的發送對象切割數據以使其成為所述發送對象數據,并且所述第一通信裝置和所述笫二通信裝置中的所述一個和所迷另 一個在每次所述發送對象數據被加密或者所述經加密數據被解密時生 成所述算法,并且在生成算法的情況中使用通過將過去解中的至少一 個指派給解生成算法而獲得的預定解,并且還在不再有必要再次指派 過去解時擦除這些過去解。
5. —種包括第一通信裝置和第二通信裝置的通信系統,這兩個 通信裝置能夠對純文本形式的發送對象數據進行加密以使其成為經加 密數據,然后將其發送到另一端的通信裝置,也能夠對接收到的經加 密數據進行解密,使其成為所述發送對象數據,其中所述第 一通信裝置和所述第二通信裝置都包括 切割裝置,用于以預定的位數為單位將所述發送對象數據切割成 多個片段的發送對象切割數據,也用于以所述經加密數據在被加密時 被切割的相同位數為單位將所述經加密數據切割成多個片段的經加密 的切割數據;密鑰生成裝置,用于順序地生成在所述第一通信裝置和所述第二 通信裝置之間是公共的密鑰;加密和解密裝置,用于利用所述密鑰和預定的算法對所述發送對 象切割數據進行加密以使其成為所述經加密數據,并且利用在對所述 經加密的切割數據進行加密時所使用的密鑰和與所述算法相同的算法 對所述經加密的切割數據進行解密以使其成為所述發送對象切割數 據;連接裝置,用于連接解密后的發送對象切割數據以使其成為所述發送對象數據;以及發送和接收裝置,用于發送和接收所述經加密數據,并且 所述密鑰生成裝置在每次發送對象數據被加密或者經加密數據被解密時生成所述密鑰,并且在生成密鑰的情況中使用通過將過去解中的至少一個指派給解生成算法而獲得的預定解,并且還在不再有必要再次指派過去解時擦除這些過去解。
6. 如權利要求5所述的通信系統,其中 所述密鑰生成裝置在每次發送對象切割數據被加密或者經加密的切割數據被解密時生成所述密鑰。
7. 如權利要求5所述的通信系統,其中 所述密鑰生成裝置通過將多個過去解指派給解生成算法而獲得
8. —種包括在如權利要求1或5所述的通信系統中的通信裝置。
9. 一種在包括第一通信裝置和第二通信裝置的通信系統中實施 的通信方法,所述兩個通信裝置能夠對純文本形式的發送對象數據進 行加密以使其成為經加密數據,然后將其發送到另一端的通信裝置, 也能夠對接收到的經加密數據進行解密,使其成為所述發送對象數據, 所述方法包括用于所述第 一通信裝置和所述第二通信裝置中的一個的以下步以預定的位數為單位將所述發送對象數據切割成多個片段的發 送對象切割數據;順序地生成密鑰;利用所述密鑰和預定的算法對所述發送對象切割數據進行加密, 以使其成為所述經加密數據;以及將所述經加密數據發送到所迷第一通信裝置和所述第二通信裝 置中的另一個,以及用于所述第一通信裝置和所述第二通信裝置中的另一個的以下以所述經加密數據在被加密時被切割的相同位數為單位將接收 到的經加密數據切割成多個片段的經加密的切割數據;順序地生成與所述第一通信裝置和所述第二通信裝置中的所述 一個生成的相同的密鑰;所述算法相同的算法對所述經加密的切割數據進行解密,以使其成為 所述發送對象切割數據;以及連接解密后的發送對象切割數據以使其成為所述發送對象數據,并且所述第一通信裝置和所述第二通信裝置中的一個和另一個在每 次所述發送對象數據被加密或者所述經加密數據被解密時生成所述密 鑰,并且在生成密鑰的情況中使用通過將過去解中的至少一個指派給 解生成算法而獲得的預定解,并且還在不再有必要再次指派過去解時 擦除這些過去解。
全文摘要
本發明改進了一種包括兩個通信裝置的通信系統,以便減小其通信被第三方解密的可能性。該通信系統包括第一通信裝置和第二通信裝置,其中這兩個通信裝置之一對發送對象數據進行加密,并將所生成的經加密數據發送到另一個通信裝置,該另一個通信裝置對接收到的經加密數據進行解密。通信裝置中的每一個在每次執行加密或解密時生成用于加密的算法。在這種情況下,通信裝置中的每一個通過將過去解指派給解生成算法從而生成新的算法,借此生成算法。過去解在不再使用時被擦除。
文檔編號H04L9/08GK101103588SQ20068000192
公開日2008年1月9日 申請日期2006年1月4日 優先權日2005年1月7日
發明者中村貴利 申請人:恩克利普特株式會社