本發明專利技術提供了一種數據加密方法和裝置。其中,所述方法包括:將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,1≤k≤n;將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值,第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后的值作為第二數據的第n個第二分組。所述方法和裝置能夠提高數據的安全性。
【技術實現步驟摘要】
一種數據加密方法和裝置
本專利技術涉及數據安全的
,特別涉及一種數據加密方法和裝置。
技術介紹
在現有的加密電路中,不同信號到達運算電路的時序存在差異,這可能導致數據泄露的風險。因此,需要提出一種新的數據加密方法和裝置,以提高數據的安全性。
技術實現思路
本專利技術解決的問題是提出一種新的數據加密方法和裝置,以提高數據的安全性。本專利技術的實施例提供了一種數據加密方法,所述方法包括:將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,其中,第k個所述第二分組對應第k個掩碼,所述第k個掩碼對應第k個隨機數,1≤k≤n;將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值,第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后的值作為第二數據的第n個第二分組,并將所述新增第一隨機數經過所述預設線性變換后的值作為所述第二數據的第n個第二分組對應的掩碼;將所述第一數據的第j個第二分組的值作為所述第二數據的第j-1個第二分組的值,并將所述第一數據的第j個第二分組對應的掩碼作為所述第二數據的第j-1個第二分組對應的掩碼,1<j≤n。可選地,所述方法還包括:將所述第二數據的第2個第二分組至第n個第二分組和第二輪密鑰進行異或后的第三值,第二數據的第1個第二分組對應的隨機數和新增第二隨機數進行異或后的第四值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第二數據的第1個第二分組異或后的值作為第三數據的第n個第二分組,并將所述新增第二隨機數經過所述預設線性變換后的值作為所述第三數據的第n個第二分組對應的掩碼;將所述第二數據的第j個第二分組的值作為所述第三數據的第j-1個第二分組的值,并將所述第二數據的第j個第二分組對應的掩碼作為所述第三數據的第j-1個第二分組對應的掩碼,1<j≤n。本專利技術的實施例還提供了一種數據加密裝置,所述裝置包括:第一處理單元,用于將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,其中,第k個所述第二分組對應第k個掩碼,所述第k個掩碼對應第k個隨機數,1≤k≤n;第二處理單元,用于將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值,第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;第三處理單元,用于將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后的值作為第二數據的第n個第二分組,并將所述新增第一隨機數經過所述預設線性變換后的值作為所述第二數據的第n個第二分組對應的掩碼;第四處理單元,用于將所述第一數據的第j個第二分組的值作為所述第二數據的第j-1個第二分組的值,并將所述第一數據的第j個第二分組對應的掩碼作為所述第二數據的第j-1個第二分組對應的掩碼,1<j≤n。可選地,所述裝置還包括:第五處理單元,用于將所述第二數據的第2個第二分組至第n個第二分組和第二輪密鑰進行異或后的第三值,第二數據的第1個第二分組對應的隨機數和新增第二隨機數進行異或后的第四值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;第六處理單元,用于將所述預設線性變換后的值和所述第二數據的第1個第二分組異或后的值作為第三數據的第n個第二分組,并將所述新增第二隨機數經過所述預設線性變換后的值作為所述第三數據的第n個第二分組對應的掩碼;第七處理單元,用于將所述第二數據的第j個第二分組的值作為所述第三數據的第j-1個第二分組的值,并將所述第二數據的第j個第二分組對應的掩碼作為所述第三數據的第j-1個第二分組對應的掩碼,1<j≤n。與現有技術相比,本專利技術的實施例具有以下優點:在上述技術方案中,和所述原始數據的n個第一分組進行異或的n個掩碼不是n個隨機數,而是將n個隨機數進行預設線性變換后的值,這使得在將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值,以及第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值進行預設非線性變換和所述預設線性變換后,只需要將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后就可以獲得第二數據的第n個第二分組,顯然,在獲得所述第二數據的第n個第二分組的異或運算中,只有兩個輸入值,它們分別為所述預設線性變換后的值和所述第一數據的第1個第二分組,也就是說,在獲得所述第二數據的第n個第二分組的異或運算中,不存在過多的輸入值,因此也就無需擔心因多個輸入值到達的時序不一致而導致數據泄露的情況。附圖說明圖1是現有技術中SM4防護架構中數據加密方法的示意圖;圖2是本專利技術一實施例中數據加密方法的流程圖;圖3是本專利技術一實施例中數據加密方法的示意圖;圖4是本專利技術另一實施例中數據加密方法的流程圖;圖5是本專利技術另一實施例中數據加密方法的示意圖;圖6是本專利技術一實施例中數據加密裝置的結構示意圖;圖7是本專利技術另一實施例中數據加密裝置的結構示意圖。具體實施方式SM4算法是一種分組算法。該算法的分組長度為128比特,密鑰長度為128比特。概算的加密算法與密鑰擴展算法都采用32輪非線性迭代結構。圖1是現有技術中SM4防護電路中每一輪加密運算中數據加密方法的示意圖。經研究,專利技術人發現,在每一輪所述加密運算過程中存在泄露數據的風險。請參考圖1,圖1中的第二異或門的五個輸入分別為X0′、Lout、M0、L(M4)和M4,所述五個輸入到達所述第二異或門的時間可能不一致。例如,當X0′和M0的信號先到達所述第二異或門時,將可能導致原碼X0的泄露。為了進一步提高數據的安全性,本專利技術的實施例提出了一種新的數據加密方法和裝置。為詳細說明本專利技術的
技術實現思路
、構造特征、所實現目的及效果,下面結合附圖對本專利技術的具體實施方式做詳細的說明。在下面的描述中闡述了很多具體細節以便于充分理解本專利技術,但是本專利技術還可以采用其他不同于在此描述的其它方式來實施,因此本專利技術不受下面公開的具體實施例的限制。圖2是本專利技術一實施例中數據加密方法的流程圖。如圖2所示,所述方法包括步驟S101至S104。下面將結合圖2對所述步驟S101至S104進行詳細說明。步驟S101,將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,其中,第k個所述第二分組對應第k個掩碼,所述第k個掩碼對應第k個隨機數,1≤k≤n。例如,在圖3中,將原始數據的4個第一分組X0、X1、X2和X3分別和4個掩碼L(M0)、L(M1)、L(M2)和L(M3)進行異或,獲得第一數據的n個第二分組X0′、X1′、X2′和X3′。其中,所述4個掩碼L(M0)、L(M1)、L本文檔來自技高網...

【技術保護點】
一種數據加密方法,其特征在于,包括:將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,其中,第k個所述第二分組對應第k個掩碼,所述第k個掩碼對應第k個隨機數,1≤k≤n;將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值,第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后的值作為第二數據的第n個第二分組,并將所述新增第一隨機數經過所述預設線性變換后的值作為所述第二數據的第n個第二分組對應的掩碼;將所述第一數據的第j個第二分組的值作為所述第二數據的第j?1個第二分組的值,并將所述第一數據的第j個第二分組對應的掩碼作為所述第二數據的第j?1個第二分組對應的掩碼,1<j≤n。
【技術特征摘要】
1.一種數據加密方法,其特征在于,包括:將原始數據的n個第一分組分別和n個掩碼進行異或,獲得第一數據的n個第二分組,所述n個掩碼為n個不同的隨機數分別進行預設線性變換后的值,其中,第k個所述第二分組對應第k個掩碼,所述第k個掩碼對應第k個隨機數,1≤k≤n;將所述第一數據的第2個第二分組至第n個第二分組和第一輪密鑰進行異或后的第一值、第一數據的第1個第二分組對應的所述隨機數和新增第一隨機數進行異或后的第二值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第一數據的第1個第二分組異或后的值作為第二數據的第n個第二分組,并將所述新增第一隨機數經過所述預設線性變換后的值作為所述第二數據的第n個第二分組對應的掩碼;將所述第一數據的第j個第二分組的值作為所述第二數據的第j-1個第二分組的值,并將所述第一數據的第j個第二分組對應的掩碼作為所述第二數據的第j-1個第二分組對應的掩碼,1<j≤n。2.如權利要求1所述的方法,其特征在于,還包括:將所述第二數據的第2個第二分組至第n個第二分組和第二輪密鑰進行異或后的第三值、第二數據的第1個第二分組對應的隨機數和新增第二隨機數進行異或后的第四值作為預設非線性變換的輸入進行所述預設非線性變換,并將所述非線性變換后的值進行所述預設線性變換;將所述預設線性變換后的值和所述第二數據的第1個第二分組異或后的值作為第三數據的第n個第二分組,并將所述新增第二隨機數經過所述預設線性變換后的值作為所述第三數據的第n個第二分組對應的掩碼;將所述第二數據的第j個第二分組的值作為所述第三數據的第j-1個第二分組的值,并將所述第二數據的第j個第二分組對應的掩碼作為所述第三數據的第j-1個第二分組對應的掩碼,1<j≤n。3.一種數據加密裝置,其特征在于,包括:第一處理單元,用于將原...
【專利技術屬性】
技術研發人員:劉珊珊,王立輝,單偉君,魏長征,張志敏,李清,張綱,
申請(專利權)人:上海復旦微電子集團股份有限公司,
類型:發明
國別省市:上海;31
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。