復合時變密碼和時變式數據加密方法
【專利摘要】復合時變密碼和時變式數據加密方法,涉及信息和電子技術,主要提供一種“復合時變密碼”和一種“時變式數據加密方法”的原理方法。1、“復合時變密碼”它是對“時變密碼”的升級,是在基本密碼基礎上,融入包括時間變量、序列碼、附加碼在內的多種變量。使基本密碼與選定的變量相互間進行約定的運算,其約定的運算方法通過編碼定義,而且使這種運算可以多次循環(huán),以增加破解難度。該系統(tǒng)的構建成本費用低、安全性更強。2、“時變數據加密方法”是利用“復合時變密碼”的算法,進行數據的加密、解密的方法。它算法簡單,可靠性高。可以廣泛應用在日常生活、經濟、軍事等領域。
【專利說明】復合時變密碼和時變式數據加密方法
【技術領域】
[0001] 本發(fā)明涉及"復合時變密碼"和"時變式數據加密方法",是一種"動態(tài)密碼"的原 理方法和一種"數據文件加密"的原理方法,屬于信息技術和電子【技術領域】。
【背景技術】
[0002] 在信息社會,大量地存在著各類"求證"和"驗證"活動。"管理者"要對"客戶"進 行身份認證,往往以驗證"密碼"的形式進行。其過程一般由客戶提出"求證"申請,提交"密 碼";而管理者進行"驗證",則把客戶提交的"密碼",與預先存儲在于管理方的"密碼"相比 較,如果一致,則認可客戶身份的真實性,如果不一致則不認可。
[0003] 目前,社會上普遍使用的一般是"靜態(tài)密碼",其"密碼"是固定不變的,它易于記 憶,使用簡單方便,易于推廣;但缺點是安全性差,密碼容易被盜用。還有一種是"動態(tài)密 碼",是根據專門的算法生成一個不可預測的隨機數字組合,每個密碼只能使用一次,可以 有效保護交易和登錄的認證安全,"動態(tài)密碼"無需定期更換密碼,安全省心,目前也已經被 廣泛地應用;但這些"動態(tài)密碼"卻存在成本高和操作不便的兩大問題,它往往需要硬件支 持,使用攜帶不方便。
[0004] 為克服以上這些密碼的缺點,本人提出了 "時變密碼"的概念,并于2013年4月3 日進行了專利申請,名稱為《時變密碼和時變密碼鎖》(專利申請?zhí)枮?01310115701. 5)。
[0005] 但由于在《時變密碼和時變密碼鎖》的專利申請時,只對"時變密碼"的典型部分的 進行了權利要求和說明,有進一步升級、優(yōu)化的空間,其要求保護的權利范圍也過于狹窄。
[0006] 與此類似的,數據加密的活動也大量存在各類于通信過程中,其安全性問題也非 常突出。為此人們也使用了各種各樣的加密方法,如:替換加密法、換位加密法、回轉輪加 密法、多碼加密法,等等。也有很多標準,如:美國的數據加密標準DES,國際數據加密算法 IDEA,等等。這些加密方法和標準,在軍事、在商業(yè)等領域都有大量應用。
[0007] 為了加強數據加密的防破解能力,很多算法大多都采用復雜的函數,往往整個設 計過程不公開,使得人們會擔心破譯者利用函數的薄弱環(huán)節(jié)攻破,或者設計者有后門。所以 人們非常需要加密簡便而破解困難的密碼系統(tǒng)。
[0008] 在要此特別說明一下的是,由于在現實生活中,人們對"密碼"有兩種不同的理解, 容易混淆。或者說,"密碼"有兩種不同的含義:秘密的號碼,加密的代碼。
[0009] "秘密的號碼" 一般是指不對外公開的秘密的號碼,是一種特定的暗號、口令,它可 以是一組數字或字符。
[0010] "加密的代碼"一般是指經特別編制的可以公開的代碼(電碼、文件),但這些代碼 是通過一種變換手段加密了的,其本身含義是秘密的,需要解密才能有意義的,它可以是一 組數字或字符,也可以是整篇文件。這種"密碼"也稱為"密文",與之對應的稱為"明碼"或 "明文"。
[0011] 所以,在本專利系列文件中,為防止產生歧義,遵照俗定約成的,對兩種"密碼"作 如下闡說:
[0012] "密碼"專指秘密的號碼,是秘密的口令,一種特定的暗號、口令。
[0013] "密文"專指加密的代碼,是加密的數據(文件),是"明文"通過"加密方法"得出 的代碼。
【發(fā)明內容】
[0014] 為了進一步優(yōu)化"時變密碼"的發(fā)明,更加完善其權利要求的保護的范圍,本發(fā)明 提供升級的一種"復合時變密碼"的方法,它可以更加有效地防止密碼被盜,而且適用范圍 更加廣泛。
[0015] 同時,本發(fā)明還根據該"復合時變密碼"的原理,提供了一種新的數據加密方法,即 "時變式數據加密方法",它可以使人們對數據的加密,多一種安全、便捷的方法的選擇。
[0016] 為了達到上述目的,本發(fā)明為解決以上問題所采用的技術方案是:
[0017] -、本發(fā)明為其中的"復合時變密碼"系統(tǒng)所采用的技術方案如下。
[0018] 在基本密碼(基碼)的基礎上,融入變量"附屬碼"。"附屬碼"可以包括時間變量 (值)、序列碼(號)、附加碼等多種變量。(為敘述方便,把時間變量、序列碼、附加碼統(tǒng)一 歸納稱為"附屬碼"。)
[0019] 使"基碼"與選定的"附屬碼"相互間進行約定的運算,其算法由編碼定義,并且可 以使這種計算多次循環(huán),以增加破解難度。
[0020] 具體的就是,使該密碼系統(tǒng)具有"元始碼"、"附屬碼"、"時變碼"等,并具有"運算方 法""選算方法""自算方法"和"計次方法"。
[0021] 其中"元始碼"是由"基碼"、"運算碼"組成的,它們均可以為數字、字符。
[0022] 其中的"運算碼"除了定義"選算方法""運算方法"外,還可以定義"自算方法"。
[0023] "自算方法"是用于確定對"基碼"進行選擇、變換、運算的,其生成結果為"基衍 碼",
[0024] 其中的"選算方法"所針對的對象除"時間參數"外,還可以有"序列碼"和"附加 碼",也即通過"選算方法"可以對"時間參數"和"序列碼"、"附加碼"中的一種或者多種數 值進行選擇、變換、運算而生成"時衍碼"。
[0025] 通過"運算方法"對"基衍碼"(替代了 "基碼")和"時衍碼"間進行交互運算后, 其結果可以先生成"中間碼","中間碼"繼續(xù)分解為新的"基碼"和"運算碼",可以再定義相 應的計算方法,重復進行相應的運算,最后的"基衍碼"和"時衍碼"間進行交互運算結果才 生成"時變碼"。
[0026] 其中間的重復的次數也可以由"運算碼"定義確定。
[0027] 也即"運算碼"可以定義運算、選算、自算、計次(重復次數)各類運算方法。
[0028] "運算方法"特指:針對"基衍碼"和"時衍碼"間進行交互運算的算法。
[0029] "選算方法"特指:針對"時間參數"和"序列碼"、"附加碼"中的一種或者多種數值 進行選擇、變換、運算的算法。
[0030] "自算方法"特指:針對"基碼"進行選擇、變換、運算的算法。
[0031] "重復次數"特指:循環(huán)生成"中間碼"次數。
[0032] 這些算法都可以是的基本算術運算,也可以是邏輯運算。其名稱是為了敘述方便, 加以區(qū)別,人為的命名。
[0033] "時間參數"是指由時鐘產生的"時間值參數",或稱"時間值"。
[0034] "序列碼"是指"序列號"的編碼,當產生密碼或加密有若干次時,可記錄其序列。
[0035] 在專利申請?zhí)枮?01310115701. 5的《時變密碼和時變密碼鎖》申請文件中,對定 義算法的碼元,按功能命名"運算碼"、"選運碼"。所以,在本申請文件中,對定義算法的碼 元,擴展后也可以按功能命名"運算碼"、"選運碼"、"自選碼"、"計次碼"等,再對應各類算法。
[0036] 考慮到文章敘述的簡潔,本文件統(tǒng)一用"運算碼"概括,但變換計算過程是一樣的, 只是省略中間名稱的具體命名。
[0037] 二、本發(fā)明為其中的"時變式數據加密方法"系統(tǒng)所采用的技術方案如下。
[0038] 所謂的"加密方法"指的是雙方文件傳輸過程中進行加密所采取的方法。發(fā)送方 將"明文"在"密鑰"的控制下進行運算得到"密文",傳送到接收方,接收方將"密文"在"密 鑰"的控制下進行運算得到"明文"。
[0039] 它可以分為分組密碼和序列密碼。1、分組密碼,是發(fā)送方將"明文"劃分η比特的 數據組,然后在"密鑰"的控制下進行運算得到"密文",傳送到接收方,接收方將"密文"也 劃分η比特的數據組,然后在"密鑰"的控制下進行運算得到"明文"。2、序列密碼,又稱為 密鑰流密碼,是不分組的直接加密、解密。
[0040] "時變數據加密方法"是一種基于"復合時變密碼"的數據加密方法,它是利用"復 合時變密碼"(也可以是未升級前的"時變密碼")的算法,進行實施、進行加密、解密的。
[0041] 發(fā)送方把"密鑰"作為"元始碼",按其變換原理,先計算出"時變碼",然后把"明碼" 的數據進行分組,每組均與"時變碼"進行"異或",其結果作為"密文"傳送到接收方,
[0042] 接收方也將"密鑰"作為"元始碼",先計算出"時變碼",然后把接收的"密文"的數 據進行分組,每組均與"時變碼"進行"異或",(組合后)得出"明文"。
[0043] 當然,如果一旦"明碼"足夠短而"時變密碼"足夠長,加密、解密過程就不用分組。
[0044] 根據"異或"的邏輯運算法則,Α與Β異或后,其值再與Β異或,其結果仍為Α。艮Ρ, (A θ B) ? B = A。
[0045] 設發(fā)送方,使A為"明碼",B為由"密鑰"生成的"時變碼",則可得"密文"為 (Α θ B)。那么,接收方,就可以計算(Α θ Β) θ B,就重新得"明碼"A。
[0046] 由于發(fā)送(接收)方,是通過"密鑰"計算生成的B,是他人不可知、不可預測的,所 以(Α ? B)也就不可知、不可預測,作為"密文"安全性可以非常好。
[0047] 歸根到底,密碼是一種用來混淆的技術,它就是將正常的、可識別的信息轉變?yōu)闊o 法識別的信息。"時變數據加密方法"就達到了這樣的目的。
[0048] 三、本發(fā)明為其中的"復合時變密碼"及"時變式數據加密方法"系統(tǒng)所采用的技 術方案還可以如下。
[0049] 1、"運算碼"對運算方法、選算方法、自算方法、重復次數的定義,可以是合并混合 定義的。即"運算方法"、"選算方法"、"自算方法"、"重復次數"中的幾種算法捆綁在一起被 "運算碼"中某幾位定義,如"運算碼"中第一位的"01"代表著"運算方法"是加,"選算方法" 是減,"自算方法"乘2, "重復次數"是3次;"02"代表著"運算方法"是減,"選算方法"是 減,"自算方法"乘3,"重復次數"是1次。等等。
[0050] 2、"運算碼"對運算方法、選算方法、自算方法、重復次數的定義,也可以是分開的 按位各自對應定義的。即"運算碼"中某幾位定義"運算方法"、某幾位定義"選算方法"、某幾 位定義"自算方法"、某幾位定義"重復次數",相當于"時變密碼"中直接有"運算碼"、"選算 碼"等等,如"運算碼"中第一位的"1、2、3、……"分別代表"運算方法"的"+、_、*、……", 第二位的"1、2、3、……"分別代表"選算方法"的"+、_、*、……",第三位的"1、2、3、……" 分別代表"自算方法"的"+、_、*、……",等等??梢栽谧儞Q過程中變換后再分開定義,也 可以分開后的各自變換各自定義。
[0051] 3、"運算碼"碼元的位置在每一次重復運算過程中,可以是可以相同,也可以不同。 如某碼元第一次的位置在第一位,第二次的位置在第三位。
[0052] 4、運算碼"對運算方法、選算方法、自算方法的定義,在重復運算過程中,可以是每 一次可以相同,也可以不同。如第一次,1代表相加、2代表相減;而第二次1代表相減、2代 表相乘。
[0053] 四、其技術方案也還可以如下。
[0054] 1、"自算方法"對"基碼"進行選擇、變換、運算而生成的"基衍碼",其長度相對"基 碼"可以相同,也可以是變化的。這樣讓破譯者感到更加沒有規(guī)律。
[0055] 2、"基碼"也可以是直接從"元始碼"的多段碼元中選擇不同的一段,也即循環(huán)運算 過程中各次的"基碼"可以不一樣。這樣每一次的"基碼"可以不一定就是前面的"基碼", 相當于多個"元始碼"中選擇一個,也可以由隨機的"附加碼"定義選擇。如事先準備一長 串1000位的數,每次選擇其中的一段,運算碼對應的控制位是1,表示第一位開始的64位, 2表示表示第一位開始的64位……,13表示第3位開始的偶數的64位……,這樣運算不復 雜,但更加安全。
[0056] 3、"選算方法"對"時間參數"、"序列碼"、"附加碼"進行的選擇、變換、運算,其針對 的對象,可以全部的、也可以是其中一個的,在循環(huán)運算過程中各次可以是相同的、也可以 不同的。如第一次運算,選擇"時間參數"中的天、小時,又選擇"序列碼"但沒有"附加碼", 第二次運算選擇"時間參數"的周、分,有"附加碼",等等。
[0057] 4、附加碼可以每一次都不一樣,可以隨機產生,可以使得計算結果更加復雜。
[0058] 5、附加碼、序列、時間參數,可以由發(fā)送方和接收任何一方產生,而向對方傳送。作 為"附屬碼"可以統(tǒng)一由一方產生,也可以交叉?zhèn)魉?,時間參數和序列可以各自獨立產生。時 間參數可以雙方同步即可,不一定是標準時間。
[0059] 五、其技術方案也還可以如下。
[0060] 1、在"時變數據加密方法"中,序列碼可以是"明文"(或"密文")按位、或按字節(jié)、 或按字段、或按分組編碼的,可以從1開始計數,也可以從1以外的其他數開始,如150開 始,以增加破解難度。
[0061] 2、序列碼也可以是時間值的延續(xù),可以是在每一個時間段后序列重新計數的。
[0062] 六、其技術方案也還可以如下。
[0063] 1、附加碼、序列碼、時間參數等附屬碼可以與"復合時變碼"或"密文"在同一信道 上傳輸的,也可以相互間在不同的信道上傳送。無論是作為口令還是密文使用,相互間在其 他不同的信道上傳送,被截獲的概率更少安全性更強。
[0064] 2、附屬碼也可以是加在"密文"的信源內傳輸。在信源中傳送,相當于內容也參與 加密計算,破解更加困難。
[0065] 本發(fā)明的有益效果:
[0066] 本發(fā)明"復合時變密碼"的有益效果是,由于它是對"時變密碼"的升級,所以它具 備"時變密碼"的優(yōu)點,而且它不僅引進了時間值的運算,而且引進了序列碼、附加碼等動態(tài) 變量,引入循環(huán)運算,更加安全,而構建的成本費用也低,也更適合有軟件或微電腦的器件 上使用。
[0067] 本發(fā)明"時變式數據加密方法"的有益效果:
[0068] 由于是"時變數據加密方法"是一種基于復合時變密碼的數據加密方法,它是利用 "復合時變密碼"的算法,進行實施、進行加密、解密的,因而它簡單易行、安全可靠。
[0069] 1、算法簡單、直觀,不存"后門"。整個過程都是常規(guī)的變化,如:選擇(是數據選 擇其中幾段或者幾個位)、變換(說碼位的次序變換)、運算(是基本算術運算和邏輯運算) 等,不需要采用復雜的函數,對使用者來說都是可公開的,也不存在其他薄弱環(huán)節(jié)。
[0070] 2、計算變化是無規(guī)律的、發(fā)散的。它是以編碼定義算式,使編碼與各運算方法掛 鉤,是人為的、無規(guī)律的約定,這就使得整體的計算方法是人為定義的、發(fā)散的、無規(guī)律,要 破譯只有采用窮舉法。
[0071] 3、加密的成本低,而破譯的開銷非常大。普通基本的運算可以進行無限的變化約 定,如果密鑰是可以選擇的(密鑰多個選擇一個,或在一長串中選取一段)在密鑰長度一定 的情況下,窮舉法的開銷可以無限大。如果密鑰64bit,可設超長的6400bit元始碼,然后簡 單地進行選擇。
[0072] 如果算法定義不開放,雙方只是自己內部定義,而且隨時變化,變換法則可以完全 無限,外人根本無法破解。
[0073] 如果算法定義開放,一旦元始碼有足夠長度,外人也很難無法破解。
[0074] 即使元始碼萬一被盜,由于存在附屬碼,它可以在不同位置,在不同時間隨機加 入,也完全可以保護,使得外人難以破解。
【專利附圖】
【附圖說明】
[0075] 下面結合附圖和實施例對本發(fā)明作進一步說明。
[0076] 圖1是"復合時變密碼"的工作原理的一種流程框圖。
[0077] 圖2是常規(guī)使用的分組密碼體制的框圖。
[0078] 圖3是一種"時變數據加密方法"的工作原理的一種流程框圖。
[0079] 圖中,其數據變化的流程主要涉及各類數碼、算法、數據來源、流向、具體運算、"異 或"運算等幾部分。在圖中分別為:
【權利要求】
1. 復合時變密碼和時變式數據加密方法,一種動態(tài)密碼系統(tǒng)和一種利用其原理實現的 數據加密方法,復合時變密碼是對"時變密碼"的一種升級,"時變密碼"是指通過"元始碼" 結合時間參數進行運算而成的,"元始碼"中的"運算碼"定義著"選算方法"、"運算方法", 通過這些算法又使"元始碼"中的"基碼"與時間參數進行一系列運算而生成動態(tài)的"時變 碼",在此基礎上升級的復合時變碼,其特征是:其中的"運算碼"除定義"選算方法"、"運算 方法"外,還可以定義"自算方法","自算方法"是用于確定對"基碼"進行選擇、變換、運算 的,其生成結果為"基衍碼",其中的"選算方法"所針對的對象除"時間參數"外,還可以有 "序列碼"和"附加碼",也即通過"選算方法"可以對"時間參數"和"序列碼"、"附加碼"進 行選擇、變換、運算而生成"時衍碼",通過"運算方法"對"基衍碼"和"時衍碼"間進行交互 運算后,可以生成"中間碼","中間碼"繼續(xù)分解為新的"基碼"和"運算碼",可以再定義相 應的算法,重復進行相應的運算,最后的"基衍碼"和"時衍碼"間進行交互運算結果才生成 "時變碼",其中間的重復的次數也可以由"運算碼"定義確定。
2. 根據權利要求書1所述的復合時變密碼和時變數據加密方法,其中的"加密方法"指 的是,發(fā)送方將"明文"在"密鑰"的控制下進行運算得到"密文",傳送到接收方,接收方將 "密文"在"密鑰"的控制下進行運算得到"明文","時變數據加密方法"其特征是:該加密方 法是利用"復合時變密碼"的算法原理進行實施的,發(fā)送方把"密鑰"作為"元始碼"而計算 出"時變碼",把"明碼"的數據進行分組,每組均與"時變碼"進行"異或",結果作為"密文" 傳送到接收方,接收方也將"密鑰"作為"元始碼"而計算出"時變碼",把接收的"密文"的 數據進行分組,每組均與"時變碼"進行"異或",得出"明文"。
3. 根據權利要求書1或2所述的復合時變密碼和時變式數據加密方法,其特征是:"運 算碼"對運算方法、選算方法、自算方法、重復次數的定義,可以是合并混合定義的,也可以 是分開的按位各自對應定義的,碼元的位置在每一次重復運算過程中,也可以是不同的, "運算碼"對運算方法、選算方法、自算方法的定義結果,在重復運算過程中,每一次也可以 是不同的。
4. 根據權利要求書1或2所述的復合時變密碼和時變式數據加密方法,其特征是:"自 算方法"對"基碼"進行選擇、變換、運算而生成的"基衍碼",其長度相對"基碼"而言也可以 是變化的,"基碼"也可以是直接從"元始碼"的多段碼元中選擇一段,也即循環(huán)運算過程中 各次的"基碼"可以不一樣,"選算方法"對"時間參數"、"序列碼"、"附加碼"進行的選擇、變 換、運算,其針對的對象,可以是其中一個的、也可以是多個或全部的,在循環(huán)運算過程中各 次定義的算法也可以是不同的,附加碼、序列、時間參數,可以由發(fā)送方和接收任何一方產 生,而向對方傳送,附加碼也可以每一次都不一樣。
5. 根據權利要求書1或2所述的復合時變密碼和時變式數據加密方法,其特征是:在 "時變數據加密方法"中,序列碼可以是"明文"或"密文"按位、或按字節(jié)、或按字段、或按分 組編碼的,序列碼也可以是時間值的延續(xù)。
6. 根據權利要求書1或2所述的復合時變密碼和時變式數據加密方法,其特征是:附 加碼、序列碼、時間參數與"復合時變碼"或"密文",相互間也可以在不同的信道上傳送的, 附加碼、序列碼、時間參數也可以是加在"密文"的信源內傳輸的。
【文檔編號】H04L9/16GK104125059SQ201310160790
【公開日】2014年10月29日 申請日期:2013年4月28日 優(yōu)先權日:2013年4月28日
【發(fā)明者】陳麟華 申請人:陳麟華