基于差分特征點網格的抗rsd攻擊盲檢測數字指紋方法
【專利摘要】本發明公開了一種基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,采用在時域構造具有固定間距、固定差分值的差分特征點網格,在頻域嵌入帶有同步信息幀的指紋信息的基本技術路線;利用幀編碼、分片嵌入與有效分片定位技術實現抗CTP攻擊,利用輔助信息實現抗RSD攻擊;數字指紋提取采用盲檢測,在空域嵌入差分網格同時對指紋信息進行基于密鑰的指紋信息分組移位置亂,同時采用HDLC數據幀的構成模式,對指紋信息進行了幀編碼,使得指紋信息和代表輔助信息的同步字段綁定在一起。目前多數數字指紋方案嚴重影響了數字指紋技術的應用,本發明不僅可以進行版權保護,還可以對擴散或泄密者進行追蹤。
【專利說明】
基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法
技術領域
[0001] 本發明屬于軟件通信技術領域,尤其涉及一種基于差分特征點網格的抗RSD攻擊 盲檢測數字指紋方法。
【背景技術】
[0002] 計算機通信技術的迅速發展以及多媒體存儲和傳輸技術的進步為存儲和傳輸數 字化信息提供了可能,使得對這些數字產品的版權的保護需求增多。密碼學能夠保護數字 產品安全傳輸,但不能保證數字產品解密后的泄密與擴散問題,而數字指紋技術就是對數 字產品非法傳播起威懾作用的數字版權保護技術。數字指紋(水印)算法主要分為時域算法 和頻域算法。較早的算法都是時域上的,最為典型的算法是最低有效位方法(Least Significant Bit),還包括通過偽隨機置換、圖像降質和秘密信道、隱秘區域和奇偶位、量 化和抖動、失真技術等技術來實現。總體上來看,時域算法對攻擊的抵御能力較差。目前變 換域算法是研究的重點,現有多數水印系統都是在變換域中進行處理,一般基于常用的圖 像變換,這些變換包括離散余弦變換(DCT)、離散小波變換(DWT)、傅氏變換(DFT或FFT)、傅 立葉-梅林(Fourie-MelIin)變換以及哈達馬變換(Hadamard transform)等等。實際上,就 是利用上述相應的變換方法將數字圖像的空間域數據轉化為相應的頻域系數;其次,根據 待隱藏的信息類型,對其進行適當編碼或變形;再次,確定某種規則或算法,用待隱藏的信 息的相應數據去修改前面選定的頻域系數序列;最后,將數字圖像的頻域系數經相應的反 變換轉化為空間域數據。該類算法的嵌入和提取信息操作較時域復雜,但對攻擊的魯棒性 更強,很適合用于數字指紋技術。目前研究者們提出了大量的數字指紋(水印)的嵌入和提 取算法,并具有一定的穩健性,但這些算法大多只能抵抗常規數字信號處理,在工程實踐 中有一定的局限性,必須要研究抵抗多種攻擊的算法以增強數字指紋的穩健性能。數字指 紋可能受到的攻擊可以分為三類:去除攻擊(Removal Attack)、同步攻擊 (Synchronization Attack)、協議攻擊(Protocol Attack)。其中,去除攻擊包含了多數常 規圖像處理操作,該類攻擊是圖像的常規攻擊;同步攻擊不需要利用算法來去除數字產品 中指紋,而是試圖通過對載體做各種修改以使得檢測器失效,破壞了載體與指紋的同步性; 協議攻擊使檢測器的結果錯誤或不明確,從而不能唯一地確定版權所有,引起版權糾紛。同 步攻擊中的幾何失真攻擊(Geometrical Distortion Attack)也稱為幾何攻擊,易于實施, 是較為常見的一類攻擊,主要包括旋轉(Rotation)、縮放(Sealing)、平移(Translation)、 剪切(Cropping)、圖像反轉等。其中,旋轉、縮放、平移簡稱為RST。由于幾何失真攻擊只要有 微小的幾何變換就會造成指紋同步信息的丟失,故其已成為數字指紋技術穩健性能進一步 提高的瓶頸。大多數抗幾何攻擊研究重點研究抵抗RST攻擊問題,提出了非盲提取和盲提取 算法。非盲提取算法由于需要借助原始圖像,故使用不如盲提取算法廣泛。盲提取方法主要 有三種:①不變域方法,即將指紋加載到具有幾何不變性的不變域系數中,使得幾何變換不 影響指紋信息的提取。②利用輔助信息的方法,即在圖像中嵌入指紋的同時,嵌入一個能標 識圖像幾何變化的輔助信息,在指紋提取前先根據輔助信息進行幾何校正以實現指紋檢測 的同步,該方法是一種基于幾何校正的方法。③使用載體圖像的重要特征以嵌入指紋,即將 指紋嵌入到圖像的重要特征點或以特征點作為指紋提取的參考點。剪切攻擊是常見的一類 幾何攻擊,但研究卻相對較少,且多數抗剪切攻擊測試時,只是擦除了圖像的部分內部內容 或者剪切后再恢復原始圖像大小,并沒有丟失任何同步信息。抗剪切攻擊方法有兩種:①使 用載體圖像的重要特征以嵌入指紋的方法。該方法可以抵抗剪切攻擊,但存在嵌入容量較 少的缺點,且如何提取合適的特征以及如何應用這些特征是該類算法仍需進一步完善的方 面。②利用輔助信息的方法在解決抗剪切攻擊方面具有一定的優勢,目前大多數該類算法 將輔助信息構造在空域,指紋(水印)信息嵌入在頻域,并確實具備很好的抗剪切能力,但 是在空域上構造的輔助信息容易被JPEG、加噪、濾波等攻擊破壞,從而失去抵抗剪切攻擊的 能力。
[0003] 目前的數字指紋(水印)抗單用戶攻擊時具有了抵抗部分攻擊的能力,但是不具備 抵抗綜合攻擊的能力,即當載體先后遭受了多種攻擊,特別是同時遭受幾何攻擊和去除攻 擊,則指紋(水印)無法正確提取。
【發明內容】
[0004] 針對現有數字指紋(水印)方案抵抗幾何攻擊比較困難,基本不具備抵抗CTP和RSD 綜合攻擊的問題。
[0005] 本發明通過在空域構造具有固定間距、固定差分值的差分特征點網格,在頻域嵌 入帶有同步信息幀的指紋信息,利用幀編碼、分片嵌入與有效分片定位技術實現抗CTP攻 擊,利用差分特征點網格實現抗RSD攻擊,提出了一種基于差分特征點網格的盲檢測數字指 紋方法,該方法包括基于差分特征點網格的數字指紋嵌入和基于差分特征點網格的數字指 紋提取兩大部分,如圖1所示。
[0006] 其中,基于差分特征點網格的數字指紋嵌入方法包括如下所示三步:
[0007] 第一步,首先采用分組移位置亂算法對指紋信息進行加密,然后采用幀編碼技術 處理指紋信息,獲得指紋數據幀;
[0008] 其中,分組移位置亂算法為本發明提出的一種多項式算法,使用密鑰對圖像進行 了多輪分組移位,每輪分組中元素個數依賴于本輪密鑰,該算法不僅可以用于二值指紋圖 像的置亂,也可用于多顏色圖像的置亂。
[0009] 第二步,在DCT域嵌入帶有同步信息幀頭的指紋數據幀。
[0010] 指紋數據幀嵌入的關鍵步驟為圖像分片、嵌入位置選擇和指紋比特嵌入,而嵌入 位置選擇又包括嵌入塊的選擇和嵌入指紋的DCT系數選擇。為保證指紋能夠抵抗CTP攻擊, 本發明采用對載體圖像進行分片,每個完整分片分別嵌入指紋數據幀,從而形成指紋數據 幀的多個冗余版本。具體做法是:首先將載體圖像分成大小為SXS的分片,其中S = 2k;然后 按一定規則在每個分片中選擇m個8X8像素塊作為嵌入塊;最后在嵌入塊中分別嵌入指紋 數據幀中的η個比特的數據。如果指紋數據幀的(二進制)長度為L,則應滿足L=mXn。
[0011] 第三步,在空域構造具有固定間距、固定差分值的差分特征點網格。
[0012]在已經嵌有數字指紋的載體圖像中,以某像素點(iQ,jQ)為起點,按照行距和列距 均為D的方式在圖像中嵌入差分特征點,從而在整個圖像中形成了一個矩形網格,如圖3所 示。其中,單個差分特征點的構造方法為:改變差分特征點周圍的12個像素點的灰度值,使 得右上的4個像素點和左下的4個像素點的灰度值相等,左上的4個像素點(包括特征點)的 灰度值相等,而這兩部分像素點的灰度值差分值為M。
[0013]而基于差分特征點網格的數字指紋提取方法包括以下步驟:
[0014]第一步RSD攻擊參數的獲取。
[0015] 在RSD攻擊下,載體圖像中的矩形網格會變形成平形四邊形網格,如圖4所示。因 此,本發明選擇用來刻畫RSD攻擊的參數有四個,分別為平行四邊形的邊與X軸的兩個夾角 α、β,平行四邊形的兩個邊長Sidelenl和Sidelen2,如圖5所示。
[0016] 該步驟可以細分為:首先獲取空域上的疑似網格點,然后通過設置種子點、候選點 的方式,結合"平行四邊形法則"確定近似網格平行四邊形,最后通過邊延拓近似網格平行 四邊形進行最大限度延拓,為攻擊類型判斷和參數計算提供精確的平行四邊形。
[0017] 第二步圖像校正
[0018] 利用Photoshop CS、微軟"畫圖"等軟件,根據上一步所得到的RSD攻擊參數,可以 對掩蔽圖像進行校正,具體可以分為三步:第一步,如果α#〇,則將掩蔽圖像逆時針旋轉α 角;第二步,如果,那么將掩蔽圖像水平扭曲#-《-f角,且令 1円5|白萬義。
[0019] 第三步圖像同步定位以及指紋提取和恢復
[0020] 本發明的圖像有效分片定位的目的是排除臟數據對指紋提取的干擾,搜索到含有 一個完整指紋的完整分片,是指紋能否正確提取的關鍵;指紋信息提取的目的是根據分片 位置信息進行指紋提取;指紋信息恢復的目的是對提取出的指紋信息進行CRC譯碼或大數 表決譯碼,調用數字指紋逆置亂算法得到最終的二值指紋圖像。
【附圖說明】
[0021] 圖1是本發明實施例提供的不可見數字指紋時空聯合嵌入與提取方法中嵌入與提 取的適用場景中圖像產品的分發與泄密追蹤示意圖。
[0022] 圖2本發明實施例提供的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法 流程圖。
[0023] 圖3是本發明差分特征點網格構造方法的示意圖。
[0024] 圖4是本發明RSD攻擊下的特征點網格變形示意圖;
[0025]圖中:(a)邊長為D的正方形網格;(b)RSD攻擊后的平形四邊形網格。
[0026] 圖5是本發明RSD攻擊參數的幾何含義圖。
[0027] 圖6是本發明實施例中文字指紋信息拼接形成的二值圖像。
[0028] 圖7是本發明實施例中指紋信息嵌入塊選擇方法示意圖。
[0029]圖8是本發明平行四邊形法則的示意圖。
【具體實施方式】
[0030] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明 進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于 限定本發明。
[0031] 本發明的指紋信息本質是一個二進制數組,它即可以是文本信息,也可以是圖像 信息。例如,在本發明的實例中,使用的是文字指紋信息,由12位字符組成,字符空間為{0_ 9,A-Z,a-z},不區分大小寫,其中2位表示分發單位,2位表示最終用戶,8位表示分發時間, 如圖6所示。每個字符用8 X 10像素表示,12個字符排成三行4列,就形成一個30 X 32的二值 圖像,再將二值圖像從上到下,從左到右將其像素值(〇或者1)轉換成一個960位的二進制 串。
[0032] 本發明的方法包括基于差分特征點網格的數字指紋嵌入和基于差分特征點網格 的數字指紋提取這樣兩大部分。基于差分特征點網格的數字指紋嵌入部分的實現包括三 步:第一步,首先采用分組移位置亂算法對指紋信息進行加密,然后采用幀編碼技術處理指 紋信息,獲得指紋數據幀;第二步,在載體圖像的DCT域中嵌入帶有同步信息幀頭的指紋數 據幀。第三步,在載體圖像的空域中構造具有固定間距、固定差分值的差分特征點網格。同 樣,基于差分特征點網格的數字指紋提取部分的實現也包括三步:第一步,利用平行四邊形 法則和邊延拓方法計算載體圖像遭受的RSD攻擊參數;第二步,利用RSD攻擊參數對載體圖 像進行校正。第三步,利用同步信息頭對校正后的圖像進行有效分片的定位,進而進行指紋 提取和恢復。
[0033] 實現上述本發明方法的具體步驟如下:
[0034] 數字指紋嵌入部分的第一步,指紋數據幀的生成;
[0035] 該步驟可以細分為兩小步:(1)利用分組移位置亂算法對指紋信息進行加密;(2) 采用幀編碼技術處理指紋信息,獲得指紋數據幀。
[0036]如果設原始指紋的二進制數組為1={?〇)},0彡」彡1^-1,置亂后的指紋的二進制 數組為礦={ W' (i)},(Xi彡L-I,置亂密鑰為Ii = Cx1CXfa1,密鑰字符為QiG {1,2,···,9,Α, Β,…,Ζ},其中L為指紋比特串數組的長度,1為密鑰長度,則分組移位置亂算法具體步驟如 下:
[0037] Stepl 令 h = l;
[0038] Step2計算第h輪分組移位操作中每分組所包含項數a = f(ah),f(ah)的映射關系如 下其對應關系如下:
[0039] ai:l 2 ··· 9 A B ··· Z
[0040] a = f(ai):l 2 ··· 9 10 11 ··· 35;
[0041] Step3對指紋比特串W={w( j)},(Xj彡L-I進行第h輪分組移位操作,規則如下:
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050] Step4令h = h+l,若h彡1,則令W=W',轉Step2;否則,指紋置亂結束。
[0051]設置亂后的指紋數據為礦,采用HDLC數據幀的構成模式,在,開始處增加32比特 數據H= (1111111111111111 1111111111111111)作為同步字段,用以標志一個指紋數據幀 的開始;采用CRC-CCITT碼對礦進行編碼,得到16位的校驗碼C,放置在礦的后面;在最后添 加16位的備用字段最終形成的指紋數據幀為W〃=H| Iw7 I |C| Is (其中"I I"為串的連接運算)。本發明的實例中使用的指紋數據幀是一個960+32+16+16 = 1024位的二進制數組。
[0052]數字指紋嵌入部分的第二步,在DCT域嵌入指紋數據幀。
[0053]為保證指紋能夠抵抗CTP攻擊,本發明對載體圖像進行分片,在每個完整分片中分 別嵌入指紋數據幀,從而形成指紋數據幀的多個冗余版本。具體做法是:首先將載體圖像分 成大小為S X S的分片,其中S = 2k;然后按一定規則在每個分片中選擇m個8 X 8像素塊作為 嵌入塊;最后在嵌入塊中分別嵌入指紋數據幀中的η個比特的數據。如果指紋數據幀的(二 進制)長度為L,則應滿足L=mXn。在本發明的實施例中,S = 28 = 256,m = 256,n = 4,選取嵌 入塊的規則為"四中選一",如圖7所示。
[0054]假設某個嵌入塊為B= (Iij)8x8J= (Fuv)8x8為B的DCT系數,其中Iij為DCT嵌入塊B 的第i行j列個像素值,Fuv為DCT系數矩陣中的第u行V列個像素值。設在該嵌入塊嵌入η比特 的指紋數據,待嵌入的指紋比特分別記為Wi (i = l,2,…,η),選取的嵌入位置為uvi (i = 1, 2,…,η),則在該DCT塊中指紋信息的嵌入算法如下:
[0055] Stepl計算嵌入塊B的DCT系數F;
[0056] S t e ρ 2對系數匕(/' = 1.2,···,《)進行J P E G量化,量化結果存入數組 4,, (./ 二 l2,…,");
[0057] S t e p 3通過修改數組〇_ = Κ2,···,《)的值,實現對指紋比特的嵌入,設 4, 的第3位比特為b i3,那么修改規則為:
[0058] 若 Wi = h i:;,=2 X _nd ((A;i:.-丨)/2)+1 //量化為奇數
[0059] 否則,Ahi =2X rouiuUA,,, /2) 化為偶數
[0060] Step4對數組疋.,0' = 1,2,…,》)進行JPEG反量化,反量化結果仍存入數組 2:, ··',.》).;
[0061] Step5求出這η個DCT域系數的改變量,即計算=Fw4 -.七_ J = 1····』,,并將其 他位置的Δ Fuv均為零,構成DCT系數改變量矩陣△ F= ( △ FUV)8X8;
[0062] Step6對AF=( AFUV)8X8進行DCT逆變換,獲得DCT塊的像素改變量矩陣ΔΒ,即ΔΒ =DcrH AF);
[0063] Step7通過像素改變量矩陣Δ B對DCT塊像素值進行修改,令B = B+ Δ B作為嵌入指 紋后新的塊數據。處理過程中進行四舍五入取整,如超過255則取相應像素值為255。
[0064] 在本發明的實施例中,選取的嵌入位置為4個低頻系數,即Fo1 JkkFiFu。
[0065] 數字指紋嵌入部分的第三步,在空域構造具有固定間距、固定差分值的差分特征 點網格。
[0066]在已經嵌有數字指紋的載體圖像中,以某像素點(io, jo)為起點,按照行距和列距 均為D的方式在圖像中嵌入差分特征點,從而在整個圖像中形成了一個矩形網格,如圖3所 示。其中,位于點(i,j)的差分特征點的構造算法為:
[0067] Stepl,計算該像素點旁邊12個像素點的像素平均值meamj。
[0068]
[0069]
[0070]
[0071]
[0072]
[0073] 在本發明的實施例中,D = 48,M = 20。
[0074] 數字指紋提取方法的第一步RSD攻擊參數的獲取。
[0075] 該步驟可以細分為:首先獲取空域上的疑似網格點,然后通過設置種子點、候選點 的方式結合"平行四邊形法則"確定近似網格平行四邊形,最后通過邊延拓近似網格平行四 邊形進行最大限度延拓,為攻擊類型判斷和參數計算提供精確的平行四邊形。
[0076] 設掩蔽圖像為I,若像素點(i,j )滿足I /丨-M |<d',I /丨|<<5,則稱它為疑似網格 點,其中G和分別該像素在X方向和y方向上的差分,δ為設定的閾值。
[0077] 設所有疑似網格點的集合為S,任取網格點XQeS作為種子點。取S中XO較近的兩個 點Xl,X2作為候選點,這里XQ,Xl,X2不共線。若XQ,Xl,X2恰好為構成特征網格中某平形四邊形 的三個頂點(如圖8中黑點所示),與XO, X1,X2對稱的13個點(如圖8中灰點所示)也應該為特 征網格點。考慮到掩蔽圖像I可能會受到各種攻擊,這些理論上的網格點可能會丟失,故本 發明認為,這13個點中只要有9個點屬于集合S,即可認為點 XQ,X1,X2是特征網格點(并且是 特征網某平形四邊形的三個頂點),這一法則稱為平行四邊形法則。利用"平行四邊形法則" 確定特征網格點的算法如下:
[0078] Stepl分別在計算掩蔽圖像I各像素點在X方向和y方向上的差分,獲取疑似網格 點。記所有疑似網格點的集合為S,令Γ = 0
[0079] Step2取最靠近圖像中心的疑似網格點Xc,令XQ = Xc;
[0080] Step3以XO為種子點,求出距XO最近的n(本發明的實例中取為30)個疑似網格點,構 成集合R,設R ={ Xi,…χη};求出R中所有與XQ不構成三點共線的點對,作為候選點對集W,記W ={xilX21,…,XlsX2s},其中S為候選點對個數。令i=0;
[0081] Step4 i = i+l;
[0082] Step5利用"平行四邊形法則"判斷XQ,Xll,X2l是否為特征網格點,如果是,輸出xo, Xli,X2i,算法結束;如果XQ,Xli,X2i不是特征網格點,又可分為兩種情況:如果i<S,轉到 Step4;如果i> = s,轉到Step6;
[0083] Step6令T = TU {XQ},S = S-T,若S = 0,算法結束,找不到特征網格點;否則,取S中 與X。距離最近的點作為新的XQ,轉Step3。
[0084] 設掩蔽圖像I大小為MXN,它的疑似網格點集合為S,利用上一小步獲得的特征網 格點為XQ,X1, X2,其坐標分別為〇1<,」1〇,1^ = 0,1,2。接下來,需要對平行四邊形的兩條邊 XOXi,XQX2分別進行延拓,以求得更加精確的RSD攻擊參數。這里,設指標集K= {k I Kio+k (ii-ioXM,K j〇+k( ji-j〇XN,ke Z},kmin=min K,kmax = max K,二維坐標偏移數組DA = {{0,0},{0,1},U,0},{0,-1},{-1,0},{1,1},{-1,1},{1,-1},{-1,-1} },xbegin,xend分別表 示延拓得到線段的起點及終點的坐標,kb egin,kend分別表示延拓得到線段的起點及終點對應 的指標,對邊XMl進行延拓的算法如下所示:
[0085] Step 1 T - { XO,Xl},k - kmin 7 Xbegin - XO,Xend - Xl,kbegin - O,kend - I,1 - 1 ;
[0086] 3七〇卩2令1 = ;[()+1<:(;[1-;[())+0八(1,1),]_ = ]_()+1<:(]_1-]_())+0八(1,2),這里0八(;[,1)和0八(;[, 2)分別為二維坐標偏移數組DA中第1個元素的兩個分量。若像素點(i,j)為疑似網格點,即 (i,j) es,則令T = TU {(i,j)},并且如果1^<1^_11,則令 Xbegin= (i,j),kbegin = k,而如果k> kend,則令Xend = (i,j),kend = k,轉到Step4;若(/,J·) ? .5*,則轉到Step3;
[0087] Step3令 1 = 1+1,若 K9,轉到 Step2,否則轉到 Step4;
[0088] Step4令k = k+l,1 = 1,若kSkmax,轉到Step2,否則算法結束。
[0089] 接下來,可以根據最小二乘法,對利用上述算法得到的網格點序列T進行直線擬 合,該擬合直線與X軸方向的夾角就是RSD攻擊參數α,而RSD攻擊參數
[0090]
[0091] 類似地,可以通過對邊XQX1進行延拓得到另外兩個RSD攻擊參數,即β和Sidelen2。
[0092] 數字指紋提取方法的第二步圖像校正
[0093]利用Photoshop CS、微軟"畫圖"等軟件,根據上一步所得到的RSD攻擊參數,可以 對掩蔽圖像進行校正,具體可以分為三步:第一步,如果α#〇,則將掩蔽圖像逆時針旋轉α 角;第二步,如果^ #冬,那么將掩蔽圖像水平扭曲泠-4角,且令 向縮放。
[0094]第三步圖像同步定位以及指紋提取和恢復
[0095]單個嵌入塊指紋數據的提取算法與嵌入算法相似。假設某個嵌入塊為B = (Iij)8x8,F= (Fuv)8x8為B的DCT系數,其中Iij為DCT嵌入塊B的第i行j列個像素值,F uv為DCT系 數矩陣中的第U行V列個像素值,設在該嵌入塊嵌入η比特的指紋數據,待嵌入的指紋比特分 別記為wi(i = 1,2,…,η),選取的嵌入位置為uvi(i = l,2,…,η),則在該嵌入塊中指紋信息 的提取算法如下:
[0096] Stepl計算嵌入塊B的DCT系數F;
[0097] S t e ρ 2對系數匕,.(V = 1,2,··_·,:《>進行J P E G量化,量化結果存入數組
[0098] Step3^ = 1,2,···,")的最低比特位和第3位比特分別為bu和bi3(i = 1,2,…, η),那么若bii = bi3,wi = l,否則,Wi = O;
[00"] Step4 i = i+l,若i>n,則算法結束;否則轉Step3。
[0100] 設校正后的圖像V的大小為MXN,則掩蔽圖像F的有效分片定位和指紋提取算法 如下:
[0101] Stepl令 Am=I,Δ n = l;
[0102] Step2,根據嵌入塊選取規則和單個嵌入塊指紋信息的提取算法,對所有以(kXS+ Δ m,I X S+ Δ n)為起始點的完整S X S分片進行指紋信息試探性提取,其中k X S+ Δ m<M,I X S+Δη<Ν,而如果某個分片提取的指紋數據具有同步信息頭H= (1111111111111111 1111111111111111 ),則該分片為有效分片,如果存在有效分片,則指紋提取成功,算法結 束,否則轉Step3;
[0103] Step3令 Δ m= Δ m+1,若 Δ m^i7,則轉Step2;否則轉Step4;
[0104] Step4令Δη= Δ+1,Am=l,若Δη<7,則轉Step2;否則指紋提取失敗,算法結束。
[0105] 由于攻擊行為的存在,如果某個有效分片中提取的指紋數據進行CRC譯碼后不存 在誤碼,則將它作為整個掩蔽圖像的指紋數據,否則采用大數表決的方式整個掩蔽圖像的 指紋數據。
[0106] 上述方法提取的指紋數據是經過加密的,需要調用逆分組移位算法進行解密。同 前,設原始指紋的二進制數組為W={w(j) |0彡衫L-1},置亂后的指紋的二進制數組為r = {V (i) |0彡iSL-l},置亂密鑰為k = aia2'"ai,密鑰字符為€4£{1,2,"_,94,8,"_,2},其中 L為指紋比特串數組的長度,1為密鑰長度,則逆分組移位算法具體步驟如下:
[0107] Stepl 令 h = l;
[0108] Step2計算第h輪分組移位操作中每分組所包含項數a = f(ah),f(ah)的映射關系如 下其對應關系如下:
[0109] ai:l 2 ··· 9 A B ··· Z
[0110] a = f(ai):l 2 ··· 9 10 11 ··· 35;
[0111] Step3對指紋數組礦(i) I (XiSL-I}進行第h輪分組移位操作,規則如下:
[0112] 1)對所有滿萬
的指標值i,計算
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120] Step4令h = h_l,若h彡0,則令^ =W,轉Step2;否貝IJ,算法結束。
[0121] 以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精 神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。
【主權項】
1. 一種基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征在于,所述基于 差分特征點網格的抗RSD攻擊盲檢測數字指紋方法采用在時域構造具有固定間距、固定差 分值的差分特征點網格,在頻域嵌入帶有同步信息幀的指紋信息的基本技術路線;利用幀 編碼、分片嵌入與有效分片定位技術實現抗CTP攻擊,利用輔助信息實現抗RSD攻擊;數字指 紋提取采用盲檢測,在空域嵌入差分網格同時對指紋信息進行基于密鑰的指紋信息分組移 位置亂,同時采用HDLC數據幀的構成模式,對指紋信息進行了幀編碼,使得指紋信息和代表 輔助信息的同步字段綁定在一起。2. 如權利要求1所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法包括基于差分特征點網 格的數字指紋嵌入和基于差分特征點網格的數字指紋提取這樣兩大部分; 所述基于差分特征點網格的數字指紋嵌入部分包括: 第一步,首先采用分組移位置亂算法對指紋信息進行加密,然后采用幀編碼技術處理 指紋信息,獲得指紋數據幀; 第二步,在載體圖像的DCT域中嵌入帶有同步信息幀頭的指紋數據幀; 第三步,在載體圖像的空域中構造具有固定間距、固定差分值的差分特征點網格; 所述基于差分特征點網格的數字指紋提取部分包括: 第一步,利用平行四邊形法則和邊延拓方法計算載體圖像遭受的RSD攻擊參數; 第二步,利用RSD攻擊參數對載體圖像進行校正; 第三步,利用同步信息頭對校正后的圖像進行有效分片的定位,進而進行指紋提取和 恢復。3. 如權利要求2所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法的具體步驟如下: 指紋數據幀的生成;利用分組移位置亂算法對指紋信息進行加密;采用幀編碼技術處 理指紋信息,獲得指紋數據幀; 在DCT域嵌入指紋數據幀,對載體圖像進行分片,在每個完整分片中分別嵌入指紋數據 幀,形成指紋數據幀的多個冗余版本;首先將載體圖像分成大小為SXS的分片,其中S = 2k; 然后按一定規則在每個分片中選擇m個8X8像素塊作為嵌入塊;最后在嵌入塊中分別嵌入 指紋數據幀中的η個比特的數據;如果指紋數據幀的二進制長度為L,則應滿足L=mXn; 在空域構造具有固定間距、固定差分值的差分特征點網格;在已經嵌有數字指紋的載 體圖像中,以某像素點(io, j〇)為起點,按照行距和列距均為D的方式在圖像中嵌入差分特征 點,從而在整個圖像中形成了一個矩形網格; RSD攻擊參數的獲取;首先獲取空域上的疑似網格點,然后通過設置種子點、候選點的 方式結合"平行四邊形法則"確定近似網格平行四邊形,最后通過邊延拓近似網格平行四邊 形進行最大限度延拓,為攻擊類型判斷和參數計算提供精確的平行四邊形; 數字指紋提取的圖像校正,根據所得到的RSD攻擊參數,對掩蔽圖像進行校正,具體分 為:如果α辛0,則將掩蔽圖像逆時針旋轉α角;,那么將掩蔽圖像水平扭曲,且令,則將掩蔽圖像以-為比例系數進行橫向縮放>則將掩蔽圖像 為比例系數進行縱向縮放; 圖像同步定位以及指紋提取和恢復,某個嵌入塊為Β=α^)8χ8,Ρ=(Ρυν) 8ΧΑ^^(:Τ^ 數,其中Ιυ為DCT嵌入塊Β的第i行j列個像素值,Fuv為DCT系數矩陣中的第u行V列個像素值, 設在嵌入塊嵌入η比特的指紋數據,待嵌入的指紋比特分別記為wi(i = l,2,…,η),選取的 嵌入位置為uvi(i = l,2,…,η)。4. 如權利要求3所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述指紋數據幀的生成原始指紋的二進制數組為1={?(」)},0<_]_^^-1,置亂后的指 紋的二進制數組為礦=W (i)},0<i彡L-1,置亂密鑰為kzan . .cu,密鑰字符為cue {1, 2,...,9,A,B,...,Z},其中L為指紋比特串數組的長度,1為密鑰長度,則分組移位置亂算法 具體步驟如下: 步驟一,令h=l; 步驟二,計算第h輪分組移位操作中每分組所包含項數a = f(ah),f(ah)的映射關系如下 其對應關系如下: 〇i:l 2 ... 9AB ... Z a = f(ai):l 2 ... 9 10 11 ... 35; 步驟三,對指紋比特串1={?(」)},0^^^^-1進行第1!輪分組移位操作,規則如下:(i)=w(i); 步驟四,令h = h+l,若h彡1,則令WzW',轉步驟二;否則,指紋置亂結束; 設置亂后的指紋數據為礦,采用HDLC數據幀的構成模式,在礦開始處增加32比特數據Η =(1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)作為同步字 段,用以標志一個指紋數據幀的開始;采用CRC-CCITT碼對V進行編碼,得到16位的校驗碼 C,放置在,的后面;在最后添加16位的備用字段S=(l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1);最終形成的指紋數據幀為W〃=H| |w' | |c| |s,其中為串的連接運算。5. 如權利要求3所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述在DCT域嵌入指紋數據幀,某個嵌入塊為 其中為DCT嵌入塊B的第i行j列個像素值,Fuv為DCT系數矩陣中的第Μ?ν列個像素值;在 該嵌入塊嵌入η比特的指紋數據,待嵌入的指紋比特分別記為^(1 = 1,2,…,η),選取的嵌 入位置為uVl (i = 1,2,…,η),則在該DCT塊中指紋信息的嵌入算法如下: 步驟一,計算嵌入塊Β的DCT系數F; 步驟二,對系數=1義…』)進行JPEG量化,量化結果存入數組(7 = 1,2, ·· V?); 步驟三,通過修改數組4?,G = U,···,》)的值,實現對指紋比特的嵌入,設 〇' = 1,2,的第3位比特為比3,那么修改規則為: 若wi = bi:;,A,,,. =2x tOund((A;n.-l )/2)+ 丨//量化為奇數 否則,=2χ ?ηχΜ(Α,;η /2)//量化為偶數 步驟四,對數組尤.,〇' = 1,2,~,_進行^%反量化,反量化結果仍存入數組 -in (/ = 1, 2, ···,〇); 步驟五,求出這η個DCT域系數的改變量,即計算=心-4,,4 = 1,···,《,,并將其他位 置的A Fuv均為零,構成DCT系數改變量矩陣△ F= ( △ FUV)8X8; 步驟六,對Δ F = ( Δ FUV)8X8進行DCT逆變換,獲得DCT塊的像素改變量矩陣Δ B,即Δ B = DCT-Η Δ F); 步驟七,通過像素改變量矩陣A Β對DCT塊像素值進行修改,令Β = Β+Δ Β作為嵌入指紋 后新的塊數據;處理過程中進行四舍五入取整,如超過255則取相應像素值為255。6. 如權利要求3所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述在空域構造具有固定間距、固定差分值的差分特征點網格,位于點(i,j)的差分 特征點的構造算法為: 步驟一,計算該像素點旁邊12個像素點的像素平均值mearuj;步驟二,調整計算該像素點旁邊12個點的像素值,令7. 如權利要求3所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述R S D攻擊參數的獲取,掩蔽圖像為I,若像素點(i,j )滿足 |g-M |<(5,1%-M M,則稱它為疑似網格點,其中/!和g分別該像素在X方向和y方向上 的差分,S為設定的閾值; 所有疑似網格點的集合為S,任取網格點xoes作為種子點,取S中XQ較近的兩個點X1, X2 作為候選點,這里χ〇,Χ1,Χ2不共線;若χ〇,Χ1,Χ2恰好為構成特征網格中某平形四邊形的三個 頂點,與xq,XI,X2對稱的13個點也應該為特征網格點,這13個點中只要有9個點屬于集合S, 即認為點 XQ,X1,X2是特征網格點,利用"平行四邊形法則"確定特征網格點的算法如下: 步驟一,分別在計算掩蔽圖像I各像素點在X方向和y方向上的差分,獲取疑似網格點, 記所有疑似網格點的集合為S,令Γ = 0 ; 步驟二,取最靠近圖像中心的疑似網格點X。,令XQ = X。; 步驟三,以χο為種子點,求出距χο最近的η = 30個疑似網格點,構成集合R,設R={X1,… Xn};求出R中所有與XQ不構成三點共線的點對,作為候選點對集W,記W= {X11X21,…,XlsX2s}, 其中S為候選點對個數,令i=0; 步驟四,i = i+l; 步驟五,利用"平行四邊形法則"判斷XQ,Xll,X2l是否為特征網格點,如果是,輸出XQ, Xll, X2i,算法結束;如果XQ,Xli,X2i不是特征網格點,又可分為兩種情況:如果i < S,轉到步驟四; 如果i>=s,轉到步驟六; 步驟六,令T = T U {XQ},S = S-T,若S = 0,算法結束,找不到特征網格點;否則,取S中與 Xc距離最近的點作為新的XQ,轉Step 3; 掩蔽圖像I大小為MXN,它的疑似網格點集合為S,利用上一小步獲得的特征網格點為 叉0,叉1,叉2,其坐標分別為(11<,]\),1^ = 0,1,2;對平行四邊形的兩條邊叉(《1,叉(《2分別進行延拓, 以求得更加精確的RSD攻擊參數,指標集KykllSio+kGi-ioXMdSjo+kU-joXN^e Z},kmin=minK,kmax=max K,二維坐標偏移數組DA= {{0,0},{0,1},{1,0},{0,-1 },{_1,0}, {1,1},{-1,1},{1,-1},{-1,-1}},xbegin,x end分別表示延拓得到線段的起點及終點的坐標, kbegin,kend分別表示延拓得到線段的起點及終點對應的指標,對邊XQX1進行延拓的算法如下 所示: 馬聚,"^'T - [ X0,XI},k - kmin,Xbegin - XO,Xend - XI,kbegin - 0,kend - 1,1 - 1 ; 步驟二,令i = io+k(i1-i〇)+DA(l,l),j = j〇+k(j1-j〇)+DA(l,2),這里DA(i,l)和DA(i,2) 分別為二維坐標偏移數組DA中第1個元素的兩個分量,若像素點(i,j)為疑似網格點,即(i, j) e S,則令T = T U { (i,j) },并且如果k<kbegin,則令Xbegin = (i,j),kbegin = k,而如果k> kend,則令Xend= (i,j),kend = k,轉到步驟四;若(/_, /)茫5,則轉到步驟三; 步驟三,令1 = 1+1,若1<9,轉到步驟二,否則轉到步驟四; 步驟四,令k = k+1,1 = 1,若kmax,轉到步驟二,否則算法結束; 根據最小二乘法,對利用上述算法得到的網格點序列T進行直線擬合,該擬合直線與X 軸方向的夾角就是RSD攻擊參數α,而RSD攻擊參數:類似地,通過對邊1狀1進行延拓得到另外兩個RSD攻擊參數,即β和Sidelen2。8.如權利要求3所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法,其特征 在于,所述圖像校正在嵌入塊中指紋信息的提取算法如下: 步驟一,計算嵌入塊B的DCT系數F; 步驟二,對系數= I,2.…』)進行jpEG量化,量化結果存入數組冬(j = 1,2:,· · ·,略,令i =1 ; 步驟三,設4,,.(/ = 1,2,_、/7)的最低比特位和第3位比特分別為1^和1^3(1 = 1,2,~,11), 那么若bii = bi3,wi = l,否貝lj,wi = 0; 步驟四,i = i+1,若i >n,則算法結束;否則轉步驟三; 校正后的圖像V的大小為MXN,則掩蔽圖像V的有效分片定位和指紋提取算法如下: 步驟一,令 Am=l,Δη=1; 步驟二,根據嵌入塊選取規則和單個嵌入塊指紋信息的提取算法,對所有以(k X S+ Δ m,1 X S+ Δ η)為起始點的完整S X S分片進行指紋信息試探性提取,其中k X S+ △ m<M,1 X S+ Δη<Ν,而如果某個分片提取的指紋數據具有同步信息頭H=(l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1),則該分片為有效分片,如果存在有效分片, 則指紋提取成功,算法結束,否則轉步驟三; 步驟三,令Δ m= Δ m+l,若Δ m彡7,則轉步驟二;否則轉步驟四; 步驟四,令Α η= Δ η+1,Δ m= 1,若Δ n彡7,則轉步驟二;否則指紋提取失敗,算法結束; 原始指紋的二進制數組為W={w(j)|〇彡jSL-l},置亂后的指紋的二進制數組為,= {V (i) |0彡iSL-l},置亂密鑰為k = aia2. · ·αι,密鑰字符為aie {1,2, · · ·,9,Α,Β,· · ·,Z}, 其中L為指紋比特串數組的長度,1為密鑰長度,則逆分組移位算法具體步驟如下: 步驟一,令h = l; 步驟二,計算第h輪分組移位操作中每分組所包含項數a = f(ah),f(ah)的映射關系如下 其對應關系如下: 〇i:l 2 ... 9AB ... Z a = f(ai):l 2 ... 9 10 11 ... 35; 步驟三,對指紋數組W = {V (i) I 0彡i<L-1}進行第h輪分組移位操作,規則如下:令wQ)=w' ⑴; 步驟四令h = h-ι,若h彡0,則令f = W,轉步驟二;否則,算法結束。9. 一種如權利要求1所述的基于差分特征點網格的抗RSD攻擊盲檢測數字指紋方法的 抗RSD攻擊盲檢測數字指紋系統,其特征在于,所述抗RSD攻擊盲檢測數字指紋系統包括: 指紋信息的生成模塊,用于生成指紋的信息; 指紋的幀編碼模塊,用于對經過置亂操作的數字指紋信息,采用HDLC數據幀的構成模 式,在信息字段的開始增加32比特數據H=(l 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)作為同步字段,用以標志一個指紋信息幀的開始,采用CRC- CCITT碼對數字指紋信息編碼,得到16位的校驗碼,獲得指紋信息幀或指紋數據幀; 網格點的空域嵌入模塊,用于確定縱橫距離的最大差分網格,使得網格點處的像素點 差分值都為Μ,Μ取為16-20; 指紋嵌入模塊,用于指紋嵌入的關鍵步驟為圖像分片、嵌入位置選擇和指紋比特嵌入, 而嵌入位置選擇又分為嵌入塊的選擇和嵌入指紋的DCT系數選擇; RSD攻擊參數的估計和圖像的校正模塊,用于計算各像素點的差分值,取出差分為Μ的 所有像素點,采用邊延拓算法估計圖像所受攻擊的參數并進行圖像恢復,對掩蔽圖像按攻 擊參數恢復后進行指紋提取; 抗CTP攻擊的圖像同步定位與指紋提取模塊,用于對CTP的特性進行了分析,對指紋圖 像進行圖像有效分片定位。10.如權利要求8所述的抗RSD攻擊盲檢測數字指紋系統,其特征在于,所述指紋信息的 生成模塊進一步包括: 文字指紋信息單元,文字指紋信息由12位字符組成,表示數字影像的生產分發單位、最 終用戶以及分發時間;字符空間目前為{〇-9 4-2,&-2},不區分大小寫;指紋信息包括分發 單位兩個字符、最終用戶兩個字符、分發時間八個字符共12個字符; 圖像指紋信息單元,圖像指紋信息采用32 X 30 = 960像素的0、1信息表示一個二值圖 像,圖像中的960個像素行對應了指紋信息的960位1、0比特; 指紋信息的分組移位置亂單元,對圖像進行多輪分組移位,每輪分組中元素個數依賴 于本輪密鑰,用于數字指紋系統的二值指紋圖像置亂。
【文檔編號】G06T1/00GK106056521SQ201610210605
【公開日】2016年10月26日
【申請日】2016年4月6日 公開號201610210605.2, CN 106056521 A, CN 106056521A, CN 201610210605, CN-A-106056521, CN106056521 A, CN106056521A, CN201610210605, CN201610210605.2
【發明人】尹忠海, 周擁軍, 高大化
【申請人】中國人民解放軍空軍工程大學