1.一種基于密碼雜湊算法的壓縮方法,其特征在于,包括:
獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結(jié)果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字;
獲取預(yù)計(jì)算擴(kuò)展字,其中,所述預(yù)計(jì)算擴(kuò)展字為擴(kuò)展字與所述第四變量字初值的和;
對(duì)所述第一變量字、所述第二變量字、所述第三變量字的初值進(jìn)行布爾函數(shù)處理;
將所述預(yù)計(jì)算擴(kuò)展字、所述第一變量字的初值、補(bǔ)償結(jié)果以及布爾函數(shù)處理后的結(jié)果進(jìn)行壓縮加和處理,其中,所述補(bǔ)償結(jié)果為進(jìn)行預(yù)設(shè)位數(shù)移位后的常數(shù)與預(yù)設(shè)的補(bǔ)償值的和;
對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇;
對(duì)所述選擇后的加和處理后結(jié)果進(jìn)行置換運(yùn)算,得到當(dāng)前周期的所述第一變量字的壓縮結(jié)果。
2.根據(jù)權(quán)利要求1所述壓縮方法,其特征在于,所述變量字還包括:第五變量字;
所述將所述預(yù)計(jì)算擴(kuò)展字、所述字寄存器初值、補(bǔ)償結(jié)果以及布爾函數(shù)處理后的結(jié)果進(jìn)行壓縮加和處理,包括:
獲取所述第五變量字的初值,對(duì)所述第五變量字的初值進(jìn)行預(yù)設(shè)位數(shù)的移位;
將所述移位后的第五變量字的初值、所述預(yù)計(jì)算擴(kuò)展字、所述第一變量字初值、所述補(bǔ)償結(jié)果以及所述布爾函數(shù)處理后的結(jié)果,進(jìn)行三次壓縮處理;
對(duì)所述三次壓縮處理后的結(jié)果進(jìn)行加和。
3.根據(jù)權(quán)利要求2所述的壓縮方法,其特征在于,所述對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇,包括:
獲取所述移位后的第五變量字的初值;
將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數(shù)進(jìn)行壓縮處理;
將所述壓縮處理后的結(jié)果加和,并記錄第一加法器的進(jìn)位輸出位作為第一控制位;
將所述壓縮處理后的結(jié)果進(jìn)行預(yù)設(shè)位數(shù)的移位,對(duì)移位后的結(jié)果進(jìn)行加和,并記錄第二加法器的進(jìn)位輸出位作為第二控制位,
根據(jù)所述第一控制位和所述第二控制位,對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇。
4.根據(jù)權(quán)利要求3所述的壓縮方法,其特征在于,
所述補(bǔ)償值包括第一補(bǔ)償值、第二補(bǔ)償值、第三補(bǔ)償值和第四補(bǔ)償值;
所述補(bǔ)償結(jié)果包括第一補(bǔ)償結(jié)果、第二補(bǔ)償結(jié)果、第三補(bǔ)償結(jié)果、第四補(bǔ)償結(jié)果;
所述第一補(bǔ)償結(jié)果為所述第一補(bǔ)償值與所述移位后的常數(shù)的和;所述第二補(bǔ)償結(jié)果為所述第二補(bǔ)償值與所述移位后的常數(shù)的和;所述第三補(bǔ)償結(jié)果為所述第三補(bǔ)償值與所述移位后的常數(shù)的和;和所述第四補(bǔ)償結(jié)果為所述第四補(bǔ)償值與所述移位后的常數(shù)的和。
5.根據(jù)權(quán)利要求4所述的壓縮方法,其特征在于,所述根據(jù)所述第一控制位和所述第二控制位,對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇包括:
建立所述第一控制位、所述第二控制位與所述第一補(bǔ)償結(jié)果、所述第二補(bǔ)償結(jié)果、所述第三補(bǔ)償結(jié)果、所述第四補(bǔ)償結(jié)果之間的對(duì)應(yīng)關(guān)系;
根據(jù)所述第一控制位、所述第二控制位以及所述對(duì)應(yīng)關(guān)系,選擇所述壓縮加和處理后的結(jié)果。
6.一種基于密碼雜湊算法的壓縮裝置,其特征在于,包括:
獲取模塊,用于獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結(jié)果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字;
所述獲取模塊,還用于獲取預(yù)計(jì)算擴(kuò)展字,其中,所述預(yù)計(jì)算擴(kuò)展字為擴(kuò)展字與所述第四變量字初值的和;
布爾函數(shù)處理模塊,用于對(duì)所述第一變量字、所述第二變量字、所述第三變量字的初值進(jìn)行布爾函數(shù)處理;
壓縮加和處理模塊,用于將所述預(yù)計(jì)算擴(kuò)展字、所述第一變量字的初值、補(bǔ)償結(jié)果以及布爾函數(shù)處理后的結(jié)果進(jìn)行壓縮加和處理,其中,所述補(bǔ)償結(jié)果為進(jìn)行預(yù)設(shè)位數(shù)移位后的常數(shù)與預(yù)設(shè)的補(bǔ)償值的和;
選擇模塊,用于對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇;
置換運(yùn)算模塊,用于對(duì)所述選擇后的加和處理后結(jié)果進(jìn)行置換運(yùn)算,得到當(dāng)前周期的所述第一變量字的壓縮結(jié)果。
7.根據(jù)權(quán)利要求1所述的壓縮裝置,其特征在于,所述獲取模塊中的變量字還包括:第五變量字;
所述壓縮加和處理模塊,用于獲取所述第五變量字的初值,對(duì)所述第五變量字的初值進(jìn)行預(yù)設(shè)位數(shù)的移位;
將所述移位后的第五變量字的初值、所述預(yù)計(jì)算擴(kuò)展字、所述第一變量字初值、所述補(bǔ)償結(jié)果以及所述布爾函數(shù)處理后的結(jié)果,進(jìn)行三次壓縮處理;
對(duì)所述三次壓縮處理后的結(jié)果進(jìn)行加和。
8.根據(jù)權(quán)利要求7所述的壓縮裝置,其特征在于,所述選擇模塊用于:
獲取所述移位后的第五變量字的初值;
將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數(shù)進(jìn)行壓縮處理;
將所述壓縮處理后的結(jié)果加和,并記錄第一加法器的進(jìn)位輸出位作為第一控制位;
將所述壓縮處理后的結(jié)果進(jìn)行預(yù)設(shè)位數(shù)的移位,對(duì)移位后的結(jié)果進(jìn)行加和,并記錄第二加法器的進(jìn)位輸出位作為第二控制位,
根據(jù)所述第一控制位和所述第二控制位,對(duì)所述壓縮加和處理后的結(jié)果進(jìn)行選擇。
9.根據(jù)權(quán)利要求8所述的壓縮裝置,其特征在于,所述壓縮加和處理模塊中的所述補(bǔ)償值包括第一補(bǔ)償值、第二補(bǔ)償值、第三補(bǔ)償值和第四補(bǔ)償值;
所述補(bǔ)償結(jié)果包括第一補(bǔ)償結(jié)果、第二補(bǔ)償結(jié)果、第三補(bǔ)償結(jié)果、第四補(bǔ)償結(jié)果;
所述第一補(bǔ)償結(jié)果為所述第一補(bǔ)償值與所述移位后的常數(shù)的和;所述第二補(bǔ)償結(jié)果為所述第二補(bǔ)償值與所述移位后的常數(shù)的和;所述第三補(bǔ)償結(jié)果為所述第三補(bǔ)償值與所述移位后的常數(shù)的和;和所述第四補(bǔ)償結(jié)果為所述第四補(bǔ)償值與所述移位后的常數(shù)的和。
10.根據(jù)權(quán)利要求9所述的壓縮裝置,其特征在于,所述選擇模塊用于:
建立所述第一控制位、所述第二控制位與所述第一補(bǔ)償結(jié)果、所述第二補(bǔ)償結(jié)果、所述第三補(bǔ)償結(jié)果、所述第四補(bǔ)償結(jié)果之間的對(duì)應(yīng)關(guān)系;
根據(jù)所述第一控制位、所述第二控制位以及所述對(duì)應(yīng)關(guān)系,選擇所述壓縮加和處理后的結(jié)果。