国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      應用數(shù)據(jù)保護方法及裝置與流程

      文檔序號:11387094閱讀:207來源:國知局
      應用數(shù)據(jù)保護方法及裝置與流程

      本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,特別涉及一種應用數(shù)據(jù)保護方法及裝置。



      背景技術(shù):

      條形碼、二維碼都是使用圖形組合來表達數(shù)據(jù)的方式,其中條形碼使用寬度不等的多個黑條和空白按照一定的編碼規(guī)則排列,用以表達一組信息;二維碼使用特定的幾何圖形按一定規(guī)律在平面即二維方向上分布的黑白相間的圖形表達一組信息。

      一般二維碼表達的信息量要大于條形碼,但是兩種編碼方式都有信息容量的限制。在實際應用過程中,因打印面積、分辨率、讀取速度以及糾錯能力等方面的限制,條形碼和二維碼的實際有效數(shù)據(jù)量都不大。另外在許多應用場景中,條形碼、二維碼中數(shù)據(jù)的正確性和真實性需要得到有效保障。例如需要保證某個產(chǎn)品信息的發(fā)布是真實的而非偽造的,交易中的重要交易數(shù)據(jù)如交易人、金額、時間等是真實有效的。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的主要目的為提供一種應用數(shù)據(jù)保護方法及裝置,安全保護條形碼或二維碼中的應用數(shù)據(jù)。

      本發(fā)明提出一種應用數(shù)據(jù)保護方法,包括以下步驟:

      使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;

      將所述簽名結(jié)果數(shù)據(jù)以及所述被保護應用數(shù)據(jù)保存在條形碼或二維碼中;

      驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。

      進一步地,所述使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰的步驟包括:

      選取一類具有高效計算的雙線性對e的橢圓曲線,并確定所述橢圓曲線上兩個階為素數(shù)q的點群g1和g2,以及分別選擇點群g1和g2中的點p1和p2;

      將p1與[s]p2和作為進行簽名的公鑰并進行公開;其中[s]p2為標準s個p2相加,s為隨機數(shù);

      選擇映射函數(shù)h,將所述被保護應用數(shù)據(jù)映射至[1,q-1]上;

      計算點[s/(h(x)+s)]p1;其中x為所述被保護應用數(shù)據(jù);

      將所述橢圓曲線上的點[s/(h(x)+s)]p1轉(zhuǎn)換成px或l||px數(shù)據(jù);其中,px或l||px即作為對所述被保護應用數(shù)據(jù)的簽名結(jié)果數(shù)據(jù)y,px為點[s/(h(x)+s)]p1的x軸數(shù)據(jù),l為用于確定px作為x軸數(shù)據(jù)時對應兩個y軸數(shù)據(jù)中的其中一個數(shù)據(jù)py的輔助數(shù)據(jù)。

      進一步地,所述選擇映射函數(shù)h,將所述被保護應用數(shù)據(jù)映射至[1,q-1]上的步驟包括:

      對所述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f;

      計算fmod(q-2)+1,其中mod是模運算。

      進一步地,所述對所述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串的步驟包括:

      將sha2、sha3或sm3哈希算法作為哈希函數(shù),按照密鑰派生函數(shù)將所述被保護應用數(shù)據(jù)x派生出一個比素數(shù)q的比特數(shù)長的比特串。

      進一步地,所述驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證的步驟包括:

      從所述條形碼或二維碼中獲取所述被保護應用數(shù)據(jù)x以及所述簽名結(jié)果數(shù)據(jù)y;

      根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證。

      進一步地,所述根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證的步驟包括:

      若所述簽名結(jié)果數(shù)據(jù)y為l||px,則根據(jù)l和px的值確定py;

      根據(jù)px,py獲得點[s/(h(x)+s)]p1;

      計算e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)進行比較;

      若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確;若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤。

      進一步地,所述根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證的步驟包括:

      若所述簽名結(jié)果數(shù)據(jù)y為px,則根據(jù)px計算出對應的兩個y軸數(shù)據(jù)py;

      隨機選擇其中一個y軸數(shù)據(jù)py得到一個點z;

      計算f=e(z,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)比較,如果不同再和1/u進行比較;

      若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確;若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u均不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤。

      進一步地,所述素數(shù)q大于2160,所述隨機數(shù)s滿足0<s<q。

      進一步地,所述橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;所述橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線、kss-32曲線以及kss-36曲線。

      本發(fā)明還提供了一種應用數(shù)據(jù)保護裝置,包括:

      簽名單元,用于使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;

      生成單元,用于將所述簽名結(jié)果數(shù)據(jù)以及所述被保護應用數(shù)據(jù)保存在條形碼或二維碼中;

      驗證單元,用于驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。

      進一步地,所述簽名單元包括:

      選取子單元,用于選取一類具有高效計算的雙線性對e的橢圓曲線,并確定所述橢圓曲線上兩個階為素數(shù)q的點群g1和g2,以及分別選擇點群g1和g2中的點p1和p2;

      公開子單元,用于將p1與[s]p2和作為進行簽名的公鑰并進行公開;其中[s]p2為標準s個p2相加,s為隨機數(shù);

      映射子單元,用于選擇映射函數(shù)h,將所述被保護應用數(shù)據(jù)映射至[1,q-1]上;

      計算子單元,用于計算點[s/(h(x)+s)]p1;其中x為所述被保護應用數(shù)據(jù);

      轉(zhuǎn)換子單元,用于將所述橢圓曲線上的點[s/(h(x)+s)]p1轉(zhuǎn)換成px或l||px數(shù)據(jù);其中,px或l||px即作為對所述被保護應用數(shù)據(jù)的簽名結(jié)果數(shù)據(jù)y,px為點[s/(h(x)+s)]p1的x軸數(shù)據(jù),l為用于確定px作為x軸數(shù)據(jù)時對應兩個y軸數(shù)據(jù)中的其中一個數(shù)據(jù)py的輔助數(shù)據(jù)。

      進一步地,所述映射子單元包括:

      擴展模塊,用于對所述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f;

      計算模塊,用于計算fmod(q-2)+1,其中mod是模運算。

      進一步地,所述擴展模塊具體用于:

      將sha2、sha3或sm3算法作為哈希函數(shù),按照密鑰派生函數(shù)將所述被保護應用數(shù)據(jù)x派生出一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f。

      進一步地,所述驗證單元包括:

      獲取子單元,用于從所述條形碼或二維碼中獲取所述被保護應用數(shù)據(jù)x以及所述簽名結(jié)果數(shù)據(jù)y;

      驗證子單元,用于根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證。

      進一步地,所述驗證子單元包括:

      第一確定模塊,用于所述簽名結(jié)果數(shù)據(jù)y為l||px,則根據(jù)l和px的值確定py;

      第一獲取模塊,用于根據(jù)px,py獲得點[s/(h(x)+s)]p1;

      第一計算模塊,用于計算e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)進行比較;

      第一驗證模塊,用于若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確;若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤。

      進一步地,所述驗證子單元包括:

      第二確定模塊,用于若所述簽名結(jié)果數(shù)據(jù)y為px,則根據(jù)px計算出對應的兩個y軸數(shù)據(jù)py;

      第二獲取模塊,用于隨機選擇其中一個y軸數(shù)據(jù)py得到一個點z;

      第二計算模塊,用于計算f=e(z,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)比較,如果不同再和1/u進行比較;

      第二驗證模塊,用于若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確;若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u均不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤。

      進一步地,所述素數(shù)q大于2160,所述隨機數(shù)s滿足0<s<q。

      進一步地,所述橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;所述橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線、kss-32曲線以及kss-36曲線。

      本發(fā)明中提供的應用數(shù)據(jù)保護方法及裝置,具有以下有益效果:

      本發(fā)明中提供的應用數(shù)據(jù)保護方法及裝置,使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;將所述簽名結(jié)果數(shù)據(jù)以及所述被保護應用數(shù)據(jù)保存在條形碼或二維碼中;驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證;本發(fā)明安全保護條形碼或二維碼中的應用數(shù)據(jù),防止應用數(shù)據(jù)被篡改或被偽造,且對應用數(shù)據(jù)的保護機制產(chǎn)生的數(shù)據(jù)小,有效節(jié)約對條形碼或二維碼的空間占用。

      附圖說明

      圖1是本發(fā)明一實施例中的應用數(shù)據(jù)保護方法步驟示意圖;

      圖2是本發(fā)明一實施例中的步驟s1具體步驟示意圖;

      圖3是本發(fā)明一實施例中的步驟s3具體步驟示意圖;

      圖4是本發(fā)明一實施例中的應用數(shù)據(jù)保護裝置結(jié)構(gòu)示意圖;

      圖5是本發(fā)明一實施例中的簽名單元結(jié)構(gòu)示意圖;

      圖6是本發(fā)明另一實施例中的映射子單元結(jié)構(gòu)示意圖;

      圖7是本發(fā)明一實施例中的驗證單元結(jié)構(gòu)示意圖;

      圖8是本發(fā)明一實施例中的驗證子單元結(jié)構(gòu)示意圖;

      圖9是本發(fā)明另一實施例中的驗證子單元結(jié)構(gòu)示意圖。

      本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。

      具體實施方式

      應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”“上述”和“該”也可包括復數(shù)形式。應該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件、單元、模塊和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、單元、模塊、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。

      本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術(shù)語,應該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。

      參照圖1,為本發(fā)明一實施例中提供的應用數(shù)據(jù)保護方法步驟示意圖。

      本發(fā)明一實施例中提出一種應用數(shù)據(jù)保護方法,包括以下步驟:

      步驟s1,使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;

      步驟s2,將所述簽名結(jié)果數(shù)據(jù)以及所述被保護應用數(shù)據(jù)保存在條形碼或二維碼中;

      步驟s3,驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。

      在本實施例中,當生成方需要將需要被保護應用數(shù)據(jù)添加(打印)至條形碼或二維碼中時,需要對該應用數(shù)據(jù)(即需要被保護應用數(shù)據(jù),下文同此一致)進行保護,防止被隨意篡改。首先使用短簽名算法對被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),其額外產(chǎn)生的數(shù)據(jù)非常小,無需占用太多空間,因此可以有效節(jié)約對條形碼或二維碼的空間占用,在條形碼以及二維碼具有信息容量限制的情況下,能最大化的節(jié)省空間,使的條形碼以及二維碼可以表達更多的信息。本實施例中,還將短簽名算法進行簽名的公鑰公開。

      之后,則將上述步驟產(chǎn)生的簽名結(jié)果數(shù)據(jù)以及需要保護的應用數(shù)據(jù)(即上述需要添加至條形碼或二維碼中的被保護應用數(shù)據(jù))保存在條形碼或者二維碼中,可以理解的是,添加至條形碼或二維碼中的還有其他未被保護或者無需保護的數(shù)據(jù)。具體地,可以按照條形碼或者二維碼的生成規(guī)則將上述數(shù)據(jù)以及其它需要添加的數(shù)據(jù)使用指定的方式或者按照一定的格式打印在條形碼條形碼或者二維碼中。本實施例中對條形碼或者二維碼的生成方式不作具體限定。

      最后,當獲取方想要讀取條形碼或者二維碼中的數(shù)據(jù)時,需要驗證所述條形碼或二維碼正確性。本實施例中,根據(jù)短簽名算法進行簽名的公鑰對被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。本發(fā)明實施例中的應用數(shù)據(jù)保護方法安全保護條形碼或二維碼中的應用數(shù)據(jù),防止應用數(shù)據(jù)被篡改或被偽造。

      參照圖2,在本實施例中,所述使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰的步驟s1包括:

      步驟s11,選取一類具有高效計算的雙線性對e的橢圓曲線,并確定所述橢圓曲線上兩個階為素數(shù)q的點群g1和g2,以及分別選擇點群g1和g2中的點p1和p2;優(yōu)選地,橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線、kss-32曲線以及kss-36曲線。

      步驟s12,將p1與[s]p2和作為進行簽名的公鑰并進行公開;其中[s]p2為標準s個p2相加,s為隨機數(shù);優(yōu)選地,素數(shù)q大于2160,隨機數(shù)s滿足0<s<q。

      步驟s13,選擇映射函數(shù)h,將所述被保護應用數(shù)據(jù)映射至[1,q-1]上;

      步驟s14,計算點[s/(h(x)+s)]p1;其中x為所述被保護應用數(shù)據(jù);

      步驟s15,將所述橢圓曲線上的點[s/(h(x)+s)]p1轉(zhuǎn)換成px或l||px數(shù)據(jù);其中,px或l||px即作為對所述被保護應用數(shù)據(jù)的簽名結(jié)果數(shù)據(jù)y,px為點[s/(h(x)+s)]p1的x軸數(shù)據(jù),l為用于確定px作為x軸數(shù)據(jù)時對應兩個y軸數(shù)據(jù)中的其中一個數(shù)據(jù)py的輔助數(shù)據(jù)。

      具體地,所述選擇映射函數(shù)h,將所述被保護應用數(shù)據(jù)映射至[1,q-1]上的步驟s13包括:

      a,對所述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f;

      b,計算fmod(q-2)+1,其中mod是模運算。

      優(yōu)選地,在本實施例中,所述對所述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串的步驟a包括:

      將sha2、sha3或sm3哈希算法作為哈希函數(shù),按照密鑰派生函數(shù)將所述被保護應用數(shù)據(jù)x派生出一個比素數(shù)q的比特數(shù)長的比特串。

      參照圖3,在一實施例中,所述驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證的步驟s3包括:

      步驟s31,從所述條形碼或二維碼中獲取所述被保護應用數(shù)據(jù)x以及所述簽名結(jié)果數(shù)據(jù)y;

      步驟s32,根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并通過所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證。

      在本實施例中,條形碼或二維碼中的應用數(shù)據(jù)獲取方,首先從所述條形碼或二維碼中獲取所述被保護應用數(shù)據(jù)x以及所述簽名結(jié)果數(shù)據(jù)y,同時還可以獲取生成方公布的短簽名算法進行簽名的公鑰,根據(jù)計算結(jié)果以及該短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證,驗證通過,則說明該簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若驗證不通過,則說明簽名結(jié)果數(shù)據(jù)y不正確,該條形碼或二維碼是不真實、無效的。本實施例有利于安全保護條形碼或二維碼中的應用數(shù)據(jù),防止應用數(shù)據(jù)被篡改或被偽造。

      本實施例中,根據(jù)上述簽名結(jié)果數(shù)據(jù)y的值的不同進行不同的計算。

      具體地,在一實施例中,所述根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證的步驟s32包括:

      a1,若所述簽名結(jié)果數(shù)據(jù)y為l||px,則根據(jù)l和px的值確定py;

      a2,根據(jù)px,py獲得橢圓曲線上的點[s/(h(x)+s)]p1;

      a3,計算e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)進行比較;

      a4,若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤,該條形碼或二維碼是不真實、無效的。

      進一步地,在另一實施例中,所述根據(jù)所述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及所述短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證的步驟s32包括:

      b1,若所述簽名結(jié)果數(shù)據(jù)y為px,則根據(jù)px計算出對應的兩個y軸數(shù)據(jù)py;

      b2,隨機選擇其中一個y軸數(shù)據(jù)py得到一個點z;

      b3,計算f=e(z,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)比較,如果不同再和1/u進行比較;

      b4,若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u相同,則驗證所述簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u均不同,則驗證所述簽名結(jié)果數(shù)據(jù)y錯誤,該條形碼或二維碼是不真實、無效的。

      優(yōu)選地,在上述實施例中的素數(shù)q大于2160,隨機數(shù)s滿足0<s<q。

      優(yōu)選地,在上述實施例中的橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;所述橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線、kss-32曲線以及kss-36曲線。

      上述為本發(fā)明中提供的應用數(shù)據(jù)保護方法,使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;將所述簽名結(jié)果數(shù)據(jù)以及所述被保護應用數(shù)據(jù)保存在條形碼或二維碼中;驗證所述條形碼或二維碼正確性時,根據(jù)所述短簽名算法進行簽名的公鑰對所述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證;本發(fā)明安全保護條形碼或二維碼中的應用數(shù)據(jù),防止被保護應用數(shù)據(jù)被篡改或被偽造,且對應用數(shù)據(jù)的保護機制產(chǎn)生的數(shù)據(jù)小,有效節(jié)約對條形碼或二維碼的空間占用。

      為了對本發(fā)明實施例中提供的應用數(shù)據(jù)保護方法進一步進行闡述,本發(fā)明實施例中還提供了一種應用數(shù)據(jù)保護裝置。

      參照圖4,本發(fā)明一實施例中提供了一種應用數(shù)據(jù)保護裝置,包括:

      簽名單元10,用于使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;

      生成單元20,用于將上述簽名結(jié)果數(shù)據(jù)以及上述應用數(shù)據(jù)保存在條形碼或二維碼中;

      驗證單元30,用于驗證上述條形碼或二維碼正確性時,根據(jù)上述短簽名算法進行簽名的公鑰對上述應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。

      在本實施例中,當需要將需要被保護應用數(shù)據(jù)添加(打印)至條形碼或二維碼中時,需要對該應用數(shù)據(jù)進行保護,防止被隨意篡改。首先簽名單元10使用短簽名算法對被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),其額外產(chǎn)生的數(shù)據(jù)非常小,無需占用太多空間,因此可以有效節(jié)約對條形碼或二維碼的空間占用,在條形碼以及二維碼具有信息容量限制的情況下,能最大化的節(jié)省空間,使的條形碼以及二維碼可以表達更多的信息。本實施例中,還將短簽名算法進行簽名的公鑰公開。

      之后,生成單元20則將上述步驟產(chǎn)生的簽名結(jié)果數(shù)據(jù)以及需要保護的應用數(shù)據(jù)(即上述需要添加至條形碼或二維碼中的被保護應用數(shù)據(jù))保存在條形碼或者二維碼中。具體地,可以按照條形碼或者二維碼的生成規(guī)則將上述數(shù)據(jù)以及其它需要添加的數(shù)據(jù)使用指定的方式或者按照一定的格式打印在條形碼條形碼或者二維碼中。本實施例中對條形碼或者二維碼的生成方式不作具體限定。

      最后,當要讀取條形碼或者二維碼中的數(shù)據(jù)時,需要驗證所述條形碼或二維碼正確性。本實施例中,驗證單元30根據(jù)短簽名算法進行簽名的公鑰對被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證。本發(fā)明實施例中的應用數(shù)據(jù)保護裝置安全保護條形碼或二維碼中的應用數(shù)據(jù),防止應用數(shù)據(jù)被篡改或被偽造。

      參照圖5,具體地,上述簽名單元10包括:

      選取子單元101,用于選取一類具有高效計算的雙線性對e的橢圓曲線,并確定上述橢圓曲線上兩個階為素數(shù)q的點群g1和g2,以及分別選擇點群g1和g2中的點p1和p2;優(yōu)選地,橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線以及、kss-32曲線以及kss-36曲線。

      公開子單元102,用于將p1與[s]p2和作為進行簽名的公鑰并進行公開;其中[s]p2為標準s個p2相加,s為隨機數(shù);優(yōu)選地,素數(shù)q大于2160,隨機數(shù)s滿足0<s<q。

      映射子單元103,用于選擇映射函數(shù)h,將上述應用數(shù)據(jù)映射至[1,q-1]上;

      計算子單元104,用于計算點[s/(h(x)+s)]p1;其中x為上述被保護應用數(shù)據(jù);

      轉(zhuǎn)換子單元105,用于將上述橢圓曲線上的點[s/(h(x)+s)]p1轉(zhuǎn)換成px或l||px數(shù)據(jù);其中,px或l||px即作為對上述被保護應用數(shù)據(jù)的簽名結(jié)果數(shù)據(jù)y,px為點[s/(h(x)+s)]p1的x軸數(shù)據(jù),l為用于確定px作為x軸數(shù)據(jù)時對應兩個y軸數(shù)據(jù)中的其中一個數(shù)據(jù)py的輔助數(shù)據(jù)。

      具體地,參照圖6,上述映射子單元103包括:

      擴展模塊1031,用于對上述被保護應用數(shù)據(jù)x使用擴展機制擴展至一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f;

      計算模塊1032,用于計算fmod(q-2)+1,其中mod是模運算。

      優(yōu)選地,上述擴展模塊1031具體用于:

      將sha2、sha3或sm3哈希算法作為哈希函數(shù),按照密鑰派生函數(shù)將上述被保護應用數(shù)據(jù)x派生出一個比素數(shù)q的比特數(shù)長的比特串,并將其轉(zhuǎn)換為大數(shù)f。

      進一步地,參照圖7,上述驗證單元30包括:

      獲取子單元301,用于從上述條形碼或二維碼中獲取上述被保護應用數(shù)據(jù)x以及上述簽名結(jié)果數(shù)據(jù)y;

      驗證子單元302,用于根據(jù)上述簽名結(jié)果數(shù)據(jù)y的值進行計算,并根據(jù)計算結(jié)果以及上述短簽名算法進行簽名的公鑰對上述簽名結(jié)果數(shù)據(jù)y進行驗證。

      在本實施例中,條形碼或二維碼中的應用數(shù)據(jù)獲取方,首先通過獲取子單元301從所述條形碼或二維碼中獲取所述被保護應用數(shù)據(jù)x以及所述簽名結(jié)果數(shù)據(jù)y,同時還可以獲取生成方公布的短簽名算法進行簽名的公鑰,驗證子單元302根據(jù)計算結(jié)果以及該短簽名算法進行簽名的公鑰對所述簽名結(jié)果數(shù)據(jù)y進行驗證,驗證通過,則說明該簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若驗證不通過,則說明簽名結(jié)果數(shù)據(jù)y不正確,該條形碼或二維碼是不真實、無效的。本實施例有利于安全保護條形碼或二維碼中的應用數(shù)據(jù),防止應用數(shù)據(jù)被篡改或被偽造。

      本實施例中,驗證子單元302根據(jù)上述簽名結(jié)果數(shù)據(jù)y的值的不同進行不同的計算。

      具體地,參照圖8,在一實施例中,上述驗證子單元302包括:

      第一確定模塊3021,用于上述簽名結(jié)果數(shù)據(jù)y為l||px,則根據(jù)l和px的值確定py;

      第一獲取模塊3022,用于根據(jù)px,py獲得橢圓曲線上的點[s/(h(x)+s)]p1;

      第一計算模塊3023,用于計算e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)進行比較;

      第一驗證模塊3024,用于若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)相同,則驗證上述簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若e([s/(h(x)+s)]p1,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)不同,則驗證上述簽名結(jié)果數(shù)據(jù)y錯誤,該條形碼或二維碼是不真實、無效的。

      參照圖9,在另一實施例中,上述驗證子單元302包括:

      第二確定模塊3025,用于若上述簽名結(jié)果數(shù)據(jù)y為px,則根據(jù)px計算出對應的兩個y軸數(shù)據(jù)py;

      第二獲取模塊3026,用于隨機選擇其中一個y軸數(shù)據(jù)py得到一個點z;

      第二計算模塊3027,用于計算f=e(z,[h(x)]p2+[s]p2),并與u=e([p1,[s]p2)比較,如果不同再和1/u進行比較;

      第二驗證模塊3028,用于若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u相同,則驗證上述簽名結(jié)果數(shù)據(jù)y正確,該條形碼或二維碼是真實有效的;若f=e(z,[h(x)]p2+[s]p2)與u=e([p1,[s]p2)或者1/u均不同,則驗證上述簽名結(jié)果數(shù)據(jù)y錯誤,該條形碼或二維碼是不真實、無效的。

      優(yōu)選地,在上述實施例中的素數(shù)q大于2160,上述隨機數(shù)s滿足0<s<q。

      優(yōu)選地,在上述實施例中的橢圓曲線具有高效計算的雙線性對e,其嵌入次數(shù)不小于12;上述橢圓曲線包括bn曲線、kss-18曲線、bls-24曲線以及、kss-32曲線以及kss-36曲線。

      綜上所述,為本發(fā)明實施例中提供的應用數(shù)據(jù)保護方法及裝置,使用短簽名算法對需要被保護應用數(shù)據(jù)進行簽名,生成簽名結(jié)果數(shù)據(jù),并公開短簽名算法進行簽名的公鑰;將上述簽名結(jié)果數(shù)據(jù)以及上述應用數(shù)據(jù)保存在條形碼或二維碼中;驗證上述條形碼或二維碼正確性時,根據(jù)上述短簽名算法進行簽名的公鑰對上述被保護應用數(shù)據(jù)上的簽名結(jié)果數(shù)據(jù)進行驗證;本發(fā)明安全保護條形碼或二維碼中的應用數(shù)據(jù),防止被保護應用數(shù)據(jù)被篡改或被偽造,且對應用數(shù)據(jù)的保護機制產(chǎn)生的數(shù)據(jù)小,有效節(jié)約對條形碼或二維碼的空間占用。

      所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的終端,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

      本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。

      本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。

      以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1