當被云服務操控時保護圖像隱私的制作方法
【專利摘要】用于當被云服務操控時保護圖像隱私的裝置和方法,包括用于接收原始圖像并且將所述原始圖像分割為兩個子圖像的中間件,其中,所述子圖像的RGB像素值具有比所述原始圖像的RGB像素值小的比特值。通過將密鑰流加到所述子圖像的RGB像素值來對所述子圖像進行加密。所述子圖像數(shù)據(jù)被傳輸?shù)街T如社交網(wǎng)絡或照片共享站點的云服務,該云服務通過調整尺寸、裁剪、濾波等等來操控所述圖像。所述子圖像數(shù)據(jù)被所述中間件接收并且被成功地解密,而不管由云服務執(zhí)行的操控如何。在替代實施例中,當被加密時,對所述原始圖像的塊進行排列,并且接著當被解密時,對所述原始圖像的塊進行逆向排列。
【專利說明】當被云服務操控時保護圖像隱私
【技術領域】
[0001]實施例通常涉及圖像加密,并且更具體地涉及當圖像被諸如照片共享網(wǎng)站的云服務托管或者以其它方式操控時保護圖像隱私。
【背景技術】
[0002]圖像處理和存儲功能正在被迅速地集成到云中。當今圖像上傳或照片共享很普遍,并且不斷擴大。諸如Faeebook?、Twitter?> Google Picasa?、Photobucket?、FHckr?等等的公知站點存儲數(shù)十億的照片。隨著圖像存儲的爆炸性增長,隱私關注已經(jīng)開始浮出水面,用戶擔心他們的個人數(shù)據(jù)和照片可能被站點本身或者其它未知用戶濫用。
[0003]服務供應商網(wǎng)站上公開可用的照片可以用于在商場、大學校園中或者在公共街道上標識陌生人,例如,簡單地通過執(zhí)行面部識別并且將照片匹配到姓名或者服務供應商的網(wǎng)站上可用的其它標識信息。存在越來越多的包括照片共享網(wǎng)站的數(shù)據(jù)庫的黑客事件。黑客或其他不良行動者會出于非法原因而操控原始圖像的內容。還有其他用戶會下載或者以其它方式非法闖入照片,將它們保存到外部介質,或者將它們上傳到其它網(wǎng)站,而原來的主人沒有任何有效的訪問控制措施,從而允許接觸到副本的任何人訪問原始內容。
[0004]圖1說明了其中黑客或其他人獲得對照片的訪問的傳統(tǒng)系統(tǒng)??梢杂扇?10操作并且可以包括計算機115、智能電話120、個人數(shù)字助理(PDA) 125或者相機130等等的用戶應用105,可以將圖像135上傳到云服務140。用戶應用105或者其他被授權人士接著可以在165處瀏覽圖像。然而,可以包括人155或計算機160或者其他未經(jīng)授權的人等等的黑客150,可以在145處通過訪問云服務140而獲得對圖像135的訪問。
[0005]有時用戶將敏感文件掃描到照片中并且將它們存儲在照片共享站點中,不理解被其他人容易訪問的后果。在其它情況下,用戶可能希望僅與關系密切的家庭成員或朋友共享某些照片,或者以其它方式不想要服務供應商具有對照片內容的訪問。傳統(tǒng)的加密技術是無效的,因為照片共享網(wǎng)站通常對上傳的圖像進行后處理,例如調整尺寸、濾波、裁剪等等。這樣的后處理操作改變加密的內容的值,并且隨后的解密的內容將是完全的亂碼而不是恢復到原始圖像內容。
[0006]另一個混合的因素是目前常用的圖像壓縮算法,例如聯(lián)合圖像專家組(JPEG)圖像,具有包括浮點運算誤差以及量化損失的有損壓縮算法,其與標準加密算法不兼容。當文件內容在外部被修改時,關于加密和密鑰流的傳統(tǒng)異或方案被打破。盡管全同態(tài)加密對這樣的操作更有強適應力,但是現(xiàn)在是不切實際的,因為對于照片的加密和解密,僅加密一個比特要求數(shù)兆字節(jié)的密鑰以及數(shù)小時的計算時間。
[0007]期望對被存儲并且接著被從照片共享網(wǎng)站或其它類似的云服務取回的加密的圖像進行有效而正確的解密,特別是在由云服務執(zhí)行后處理操作之后。
【專利附圖】
【附圖說明】[0008]通過示例而非限制的方式說明本發(fā)明的實施例,在附圖中,類似的附圖標記指代類似的元件。
[0009]圖2說明了根據(jù)本發(fā)明示例實施例包括用于保護圖像隱私而與云服務的圖像操控無關的中間件的系統(tǒng)。
[0010]圖3說明了與圖2的中間件相關聯(lián)的方面的流程圖。
[0011]圖4說明了與圖2的中間件相關聯(lián)的額外的方面的流程圖。
[0012]圖5和圖6說明了包括與圖2的中間件相關聯(lián)的數(shù)據(jù)庫的方框圖。
[0013]圖7說明了展示用于對圖像進行加密并且將該圖像上傳到云服務的技術的流程圖。
[0014]圖8說明了展示用于從云服務接收圖像并且對該圖像進行解密的技術的流程圖。
[0015]圖9說明了根據(jù)本發(fā)明另一示例實施例與對圖像的塊進行排列和加密相關的流程圖和方框圖。
[0016]圖10說明了與對圖9的圖像進行解密相關的流程圖和方框圖。
[0017]圖11說明了根據(jù)本發(fā)明又一示例實施例具有附接到其的加密的打印的圖像的物理對象的方框圖。
【具體實施方式】
[0018]現(xiàn)在將詳細參照本發(fā)明的實施例,在附圖中說明了這些實施例的示例。在下面的詳細描述中,對許多具體細節(jié)進行了闡述以便能夠充分理解本發(fā)明。然而,應當理解的是,本領域的普通技術人員可以在沒有這些具體細節(jié)的情況下來實踐本發(fā)明。在其它實例中,沒有詳細地描述公知的方法、過程、部件、電路和網(wǎng)絡以免不必要地模糊實施例的方面。
[0019]將理解的是,盡管在本文可以使用術語第一、第二等等來描述各種元件,但是這些元件不應該受這些術語限制。這些術語僅用于將元件彼此區(qū)分開。例如,第一圖像可以被稱為第二圖像,并且類似地,第二圖像可以被稱為第一圖像,而不偏離本發(fā)明的范圍。
[0020]本文在本發(fā)明的說明書中使用的詞語僅僅是為了描述特定實施例的目的并且并不意在限制本發(fā)明。如在本發(fā)明的說明書和所附權利要求中使用的,單數(shù)形式的“一(a)”、“一個(an)”和“所述(the)”意在也包括復數(shù)形式,除非上下文以其它方式明確指示。也應當理解的是,本文使用的詞語“和/或”指代并且包括一個或多個相關聯(lián)的所列項目中的任意以及所有可能的組合。進一步應當理解的是,詞語“包括(comprises)”和/或“包括著(comprising) ”,當在本說明書中使用時,指定所表述的特征、整數(shù)、步驟、操作、元件和/或部件的存在,但是不排除一個或多個其它特征、整數(shù)、步驟、操作、元件、部件和/或其組的存在或添加。
[0021]描述了用于當被云服務托管或者以其它方式操控時保護圖像隱私的裝置和方法、用于使用這樣的裝置的相關聯(lián)的過程、以及可以使用這樣的裝置和方法的相關聯(lián)的系統(tǒng)的實施例。
[0022]圖2說明了根據(jù)本發(fā)明示例實施例包括用于保護圖像隱私而與云服務140的圖像操控無關的中間件205的系統(tǒng)200。用戶應用105可以被人110操作,并且可以包括計算機115、智能手機120、個人數(shù)字助理(PDA) 125、或者相機130等等,該用戶應用105可以將加密的圖像235上傳到云服務140。用戶應用105可以包括或者以其他方式與中間件205相關聯(lián)。中間件205及其部件可以實現(xiàn)在硬件、軟件、固件或其任意組合中。
[0023]中間件205使用對云服務140的操控有強適應性的方法來對圖像進行加密。云服務140可以例如包括社交網(wǎng)絡或照片存儲站點,其通常對圖像進行調整尺寸、濾波、裁剪、或者以其它方式進行重新格式化,從而使傳統(tǒng)的加密技術不能工作。本發(fā)明的實施例允許用戶保護選定的照片的隱私,將這些照片上傳到任何照片共享網(wǎng)站或者其它云服務,并且將照片正確地解密回到原始圖像,而與照片共享網(wǎng)站的典型的后端處理無關。因而,不需要改變現(xiàn)有的網(wǎng)站或云計算模型。而且,使用本文公開的實施例的加密和解密目前是切實可行的,并且對于每一張照片能夠在不到一秒鐘的時間內有效地實現(xiàn)。
[0024]如圖2所示,中間件205將加密的圖像235傳送到云服務,以使得如果可以包括人155或計算機160的黑客150嘗試訪問該圖像,則所有他們將獲得的是密文245,并且因此將無法查看圖像。另一方面,具有適當?shù)闹虚g件205和適當?shù)拿荑€的被授權用戶,可以在265處瀏覽圖像并且對圖像240進行正確的解密用于隨后查看,而與云服務140對圖像的濾波、調整尺寸、裁剪或其它操控無關。
[0025]中間件205可以從用戶105接收原始圖像。中間件205包括分割器220,其可以將圖像分割為第一子圖像和第二子圖像,如在下面進一步詳細描述的。中間件205包括加密部分210,其可以對第一和第二子圖像進行加密,并且產(chǎn)生第一和第二加密的子圖像,也如在下面進一步詳細描述的。
[0026]隨機數(shù)生成器(RNG)215用于生成某些加密密鑰,例如將被存儲在數(shù)據(jù)庫225中的主密鑰,以及將被存儲在圖像的元數(shù)據(jù)中的圖像密鑰。在第一和第二加密的子圖像被傳輸?shù)皆品?40并且被云服務140操控之后,該圖像能夠由中間件205接收并且解密,這可以與相同的用戶應用105或另一被授權的用戶應用相關聯(lián)。中間件205包括用于對第一和第二子圖像進行解密的解密部分230以及用于將該第一和第二子圖像組合為實質的原始圖像的組合器222。
[0027]圖3說明了與圖2的分割器220和加密部分210相關聯(lián)的方面的流程圖。原始圖像305包括像素302。將理解的是,圖像305可以具有任何合適數(shù)量的像素,并且在圖中示出的放大的像素僅僅是為了說明的目的。每一個像素302包括諸如RGB pixel_value_A(u,v)的相關聯(lián)的紅/綠/藍(RGB)像素值,其中對于每一個像素,u是行索引并且V是列索弓I。通常,RGB像素值是8比特,其可以表示O和255之間的不同的值或色調。將理解的是,本文描述的實施例和創(chuàng)造性概念適用于16比特RGB像素值,或者任何其它合適的值。分割器220可以將原始圖像305分割為子圖像310和子圖像315。
[0028]子圖像310的RGB像素值的每一個,例如RGB pixel_value_B (U,V),將具有O和127之間的不同的值或色調的范圍。類似地,子圖像315的RGB像素值的每一個,例如RGBpixel_value_C (u,v),將具有O和127之間的不同的值或色調的范圍。這樣的特性允許將密鑰流加到該子圖像的RGB像素值而不會造成數(shù)學進位,這否則會導致負的或無效的結果。
[0029]對于子圖像310的RGB像素值的每一個,加密部分210加上相對應的密鑰流值,例如key stream (U,V),其可以是對于每一個RGB像素值生成的7比特隨機數(shù)320。例如,可以使用如在325處示出的下面的等式(I):
[0030]pixel_cipher_B (u, V) = pixel_value_B (U,v)+keystream(u,V,“O”)(I)
[0031]類似地,對于子圖像315的RGB像素值的每一個,加密部分210加上相對應的密鑰流值,例如keystream(u, V),其可以是對于每一個RGB像素值生成的7比特隨機數(shù)320。例如,可以使用如在330處示出的下面的等式(2):
[0032]pixel_cipher_C (u, v) = pixel_value_C (u, v)+keystream(u, v, “ I,,)(2)
[0033]等式(I)和⑵中的keystreamO中的區(qū)別“O”和“ I”分別表示加密密鑰對于不同的子圖像不重復,這增加了安全性保證。換句話說,pixel_cipher_B與pixel_cipher_C使用不同的密鑰流。分割器220可以首先確定對于原始圖像的每一個像素的RGB像素值,接著將原始圖像的每一個RGB像素值分割為第一分割的RGB像素值(例如,RGB pixel_value_B(u,V))和第二分割的RGB像素值(例如,RGB pixel_value_C(u, v))。每一個分割的RGBpixel_value_B(u, V)可以與子圖像310的相對應的RGB像素值相關聯(lián)。類似地,每一個分割的RGB pixel_value_C(u, v)可以與子圖像315的相對應的RGB像素值相關聯(lián)。接著可以加上相對應的密鑰流(u,v)。
[0034]將理解的是,可以對與該圖像相關聯(lián)的系數(shù)和/或像素或者該圖像的任何中間壓縮步驟執(zhí)行這樣的操作。例如,JPEG照片在壓縮期間經(jīng)歷幾個中間步驟,并且可以與和JPEG壓縮相關聯(lián)的任何中間或最終步驟相關地對這樣的JPEG照片執(zhí)行本文描述的分割和加密方面,從而減少計算誤差。因此,該加密部分210能夠產(chǎn)生第一加密的子圖像和第二加密的子圖像,它們可以一起被表示為G(data+keystream),如在335處示出的。
[0035]中間件205可以將包括第一和第二加密的子圖像的G(data+keystream)傳輸?shù)皆品?40。云服務140可以執(zhí)行各種后處理函數(shù),這里被表示為f(.),諸如調整尺寸、裁剪和濾波。
[0036]圖4說明了與圖2的解密部分230和組合器222相關聯(lián)的額外的方面的流程圖。在405處,中間件205的解密部分230可以從云服務140接收f (G(data+keystream))。解密部分230可以接著對f (G(data+keystream))進行解密以便恢復原始圖像。對于第一加密的子圖像310的每一個RGB像素值,解密部分2 3 O減去相對應的重構的密鑰流值(例如,f (G(keystream)))。類似地,對于第二加密的子圖像315的每一個RGB像素值,解密部分230減去從多個修正的密鑰流值中選擇的相對應的重構的密鑰流值(例如,f (G(keystream)))。例如,可以使用如在410處示出的下面的公式(3):
[0037]recover_image = f(G(data+keystream))-f(G(keystream)) (3)
[0038]G (keystream)可以通過預定義的后處理函數(shù)f(.)進行修正,該后處理函數(shù)f (.)可以被存儲在數(shù)據(jù)庫225中并且與云服務標識符(ID)440相關聯(lián)。數(shù)據(jù)庫225可以存儲與任意數(shù)量的不同的云服務相關聯(lián)的多個不同的后處理函數(shù),每一個具有其自己的ID。例如,如果照片存儲站點被已知為要通過一定的比例來調整圖像尺寸,則將這樣的函數(shù)存儲在數(shù)據(jù)庫225中并且通過相關聯(lián)的站點ID進行標識。而且,可以基于使用經(jīng)驗和在受云服務站點影響時對圖像執(zhí)行的后處理函數(shù)的分析來確定這樣的后處理函數(shù)。ID440也可以被存儲在圖像的元數(shù)據(jù)中,如下面進一步描述的。
[0039]解密部分230使用存儲在數(shù)據(jù)庫225中的主密鑰來生成正確的密鑰流,其與所應用的后處理函數(shù)f (.) 一起產(chǎn)生f (G (keystream)。f (G (keystream)用于對圖像數(shù)據(jù)進行解密,如在410,415和420處進一步示出的。下面提供關于主密鑰的進一步細節(jié)。
[0040]幾乎所有圖像處理算法都具有加法性和同質性,加法性是其中f(x+y)等于f(x)+f(y)。同質性是其中f(a*x)等于a*f (X),其中a是標量值。由于這些屬性,如在415處示出的,可以將等式(3)重寫為下面的等式(4):
[0041 ] recover_image = f(G(data))+f(G(keystream))-f(G(keystream))(4)
[0042]如在420處示出的,等式(4)可以被簡化為下面的等式(5):
[0043]recover_image = f(G(data)) (5)
[0044]恢復的圖像(即,recover_image)與解密的子圖像310和315相對應。解密的子圖像可以通過組合器222被組合為實質的原始圖像305。
[0045]圖5和圖6說明了包括與圖2的中間件205相關聯(lián)的數(shù)據(jù)庫225的方框圖。加密部分210可以產(chǎn)生主密鑰505,其被存儲在數(shù)據(jù)庫225中。更具體地說,RNG215可以產(chǎn)生主密鑰505,其優(yōu)選地是256比特的強加密隨機數(shù)。此外,對于每一個圖像,RNG215能夠產(chǎn)生用于生成圖像密鑰的隨機數(shù)(即,Rnumber510)。Rnumber510可以被嵌入在圖像520的元數(shù)據(jù)525中,并且優(yōu)選地是128比特的隨機數(shù)。元數(shù)據(jù)525也可以存儲如上所述的ID440。
[0046]通過加密部分210和解密部分230中的任意一個或兩個,至少使用主密鑰505,能夠生成密鑰流,如在圖5和圖6中示出的。例如,如在535和635處示出的,下面的函數(shù)(6)可以用于生成密鑰流:
[0047]keystream = Encrypt(image_key, pixel_index) (6)
[0048]如在(6)中闡述的,Encrypt (.)函數(shù)可以是高級加密標準(AES)密碼或任何其它合適的加密算法。pixel_index與圖像的(u, V)像素索引位置相對應。image_key用于保證圖像的每一個實例基于在(7)中推導的image_key將具有不同的密鑰流,如下面進一步闡釋的。換句話說,使用image_key和pixel_index生成上面討論的密鑰流值。
[0049]如在圖5的530以及圖6的630處示出的,可以通過加密部分210和解密部分230中的任意一個或兩個,至少使用Rnumber510,根據(jù)下面的函數(shù)(7)來生成image_key:
[0050]image_key = kdf (master_key, Rnumber | |Aux) (7)
[0051]如在(J)中闡釋的,kdf(.)函數(shù)可以是標準密鑰推導函數(shù),或者是基于密碼的或者是基于散列的。Aux可以與輔助數(shù)據(jù)相對應,例如用于安全目的。
[0052]中間件205的加密部分210可以使用(6)和/或(7)來對圖像進行加密。同樣,中間件205的解密部分230可以使用(6)和/或(7)來對圖像進行解密。由于中間件205是能夠產(chǎn)生密鑰流的唯一實體,因此只有具有主密鑰505的中間件205才能夠對圖像進行解密。
[0053]圖7說明了用于對圖像進行加密并且將該圖像上傳到云服務的技術的流程圖700。該技術開始于705,其中中間件從用戶或用戶應用接收圖像。在710處,對該圖像進行解壓縮以便恢復RGB像素值。在715處,圖像被分割為兩個子圖像。與子圖像725和子圖像720的每一個RGB像素值相關聯(lián)的比特數(shù)目小于與原始圖像的每一個RGB像素值相關聯(lián)的比特數(shù)目。在730處,中間件生成密鑰流,其在740和735處被加到子圖像,如上面詳細解釋的。可以在加上密鑰流之后或者期間來執(zhí)行圖像壓縮。在755處,在750和745處加密的子圖像由中間件上傳到云服務。
[0054]圖8說明了用于從云服務接收圖像并且對該圖像進行解密的技術的流程圖800。在805處,云服務對加密的子圖像執(zhí)行后處理操作。在810處,中間件從云服務接收加密的子圖像。在820和815處,加密的子圖像準備用于由中間件的解密部分進行解密。在830和825處,使用諸如JPEG的圖像解壓縮算法對子圖像進行解壓縮。在835處,中間件生成修正的密鑰流,如上面詳細解釋的,并且在845和840處,從子圖像中減去轉修改后的密鑰流,或者在解壓縮期間或者在解壓縮之后。流程進行到855和850處的解密的子圖像,在860處該解密的圖像被重新組合或者以其它方式重構為原始圖像。
[0055]圖9說明了根據(jù)本發(fā)明另一示例實施例與對圖像905的塊(例如,(I),(2),...,
(16))進行排列和加密相關的流程圖和方框圖900。圖10說明了與對圖9的圖像905進行解密相關的流程圖和方框圖。現(xiàn)在參照圖9和圖10。
[0056]圖像905的塊可以被定義為具有特定的尺寸或者以其它方式被劃分為N個塊,每一個塊包括一些數(shù)量的像素。例如,具有1024乘2048像素的圖像可以具有被定義為64乘64像素的塊尺寸。在這種情況下,塊的總數(shù)量將是512。加密部分210可以從N的階乘個排列中選擇排列。換句話說,加密部分210可以按照512 ! (512的階乘)種不同的方式來排列塊,甚至大于2512。換言之,加密部分210可以接著基于所選擇的排列來排列圖像的N個塊。
[0057]基于,可以被存儲在圖像905的文件頭915中或者以其它方式與該文件頭915相關聯(lián)的密鑰925,中間件205只能從所有可能的512 ! (512的階乘)個可能性中選擇一個,這對于沒有密鑰925的任何第三方進行正確的猜測實際上是不可行的。這與例如七巧板是完全不同的,在七巧板中,只有一個最終的圖案并且片包括各種形狀來幫助進行取向。排列導致圖像905的文件內容910被打亂在排列的圖像930的文件內容920中。人類用戶對如何重構該取向不存在可用的線索。中間件205可以接著將排列的圖像930上傳到云服務140,該云服務140可以 對排列的圖像執(zhí)行后處理函數(shù)(例如,f (.))。
[0058]如圖10所示,排列的圖像接著被從云服務140接收并且使用解密部分230被解密。例如,解密部分230可以使用密鑰925來對排列進行解密并且將所排列的圖像930的文件內容920返回到實質的原始圖像905的文件內容910。
[0059]更具體地,可以通過生成密鑰流并且通過使用密鑰925和流密碼F(.)來執(zhí)行安全排列。加密部分210可以接收具有某一尺寸(例如,高X寬)的圖像。能夠使用預定義的塊尺寸M。加密部分210也可以接收和/或生成密鑰825、流密碼F(.)、以及密鑰推導函數(shù)(例如,kdf (.))。加密部分210能夠輸出instance_random H以及排列的圖像。
[0060]下面是這種方法的示例要素:
[0061]1.生成塊的索引;例如,a [O] = O, a[l] = I,..., a [N] = N。
[0062]2.對于中間件的每一個實例,通過排列對照片進行加密,生成隨機數(shù)H(例如,128比特),這里被稱為instance_randomH。
[0063]3.1nstance_key = kdf (K, H),其中,K 是密鑰 925,每一個 instance_key 可以是獨特的密鑰以便增加安全性。
[0064]4.keystream = F(instance_key, counter),其中計數(shù)器可以從 O 開始增加。
[0065]5.密鑰流(keystream)是比特流(例如,1000111111110)??梢赃x擇數(shù)字u,其中2U是大于N的最小整數(shù)。密鑰流的每2U個比特可以是分區(qū)或單元。例如:U =3 — keystrream[0] = 100, keystrream[l] =011,依此類推。
[0066]6.對于(for) j從N減少到2
[0067]a.dj = keystream [j]以N為模(例如,交換位置由流密碼確定)
[0068]b.交換 a[dj]和 a[j_l][0069]7.結束 for 循環(huán)(endfor)
[0070]8.根據(jù)a [j],對于j從O到N,排列圖像的塊。
[0071]根據(jù)上面的算法,加密部分210可以排列圖像的塊。解密部分230可以訪問密鑰K(例如,925)和隱私線索H(即,instance_randomH)以便生成排列序列。排列然后可以被逆向并且原始圖像被重構。流密碼F(.)和推導函數(shù)kdf (.)可以是公開的,并且H是用作實例標識符的隨機數(shù)。
[0072]換句話說,本文公開的方法包括從N的階乘個排列中選擇排列。能夠生成密鑰流??梢曰诿荑€流以及所選擇的排列來排列N個塊?;诿荑€流,該N個塊中的每一個塊可以與另一個塊進行交換。能夠確定N個交換位置。例如,交換位置可以基于以N為模的keystream[j],其中j是到密鑰流的索引。索引j可以從N遞減到2??梢越粨Q位置處將N個塊中的每一個塊與該N個塊中的另一個塊進行交換。
[0073]圖11說明了根據(jù)本發(fā)明又一示例實施例具有附接到其的加密的打印的圖像1110的物理對象1105的方框圖1100。
[0074]中間件205可以使用上面詳細描述的一個或多個技術來對圖像進行加密。該圖像接著可以被物理轉換,如在1120處示出的。物理轉換可以包括調整尺寸、縮放、壓縮、剪切等等,并且可以對電子加密圖像和/或位于物理打印的介質上的加密圖像執(zhí)行該物理轉換。圖像可以被打印在物理介質上,從而產(chǎn)生打印的圖像1110。打印的圖像1110是雜亂的或者否則在沒有適當?shù)慕饷芩惴ê兔荑€的情況下是不可破譯的。因此,阻止黑客或其它對手解釋該打印的圖像1110。與容易被黑客或其它第三方截獲和解釋的條形碼不同,加密的圖像允許在物理的非電子世界中安全地傳輸信息??梢詫⒋蛴〉膱D像附接到物理對象1105。該物理對象可以例如是包、符號、紙張、顯示器、雜志、報紙等等。物理對象還可以是屏幕或顯示器,例如移動屏幕、電視屏幕、計算機顯示器、手機顯示器等等。
[0075]可以例如使用相機和/或掃描儀1115對打印的圖像1110進行拍攝或掃描。換句話說,可以捕獲打印的圖像1110的數(shù)字圖像。中間件205能夠使用上面詳細描述的一種或多種技術來對該數(shù)字圖像進行解密。解密算法可以重構原始圖像,或者至少原始圖像的近似,因為中間件205訪問主密鑰和用于對所拍攝或掃描的圖像進行解密的其它部件和算法,雖然進行了加密的圖像的物理轉換1120。
[0076]按照這種方式,可以使用視覺密碼學的形式來隱蔽地傳輸圖像,這可以用于廣告、訂閱服務、觀眾選擇、游戲、安全社交聯(lián)網(wǎng)、包括其它可能性。例如,圖像可以被隱私地或隱蔽地從中間件傳輸?shù)轿锢韺ο?,接著傳輸?shù)街T如相同或不同的中間件的端點。因而,圖像可以被保持保密或隱私,即使當暴露于外部物理世界情境時。
[0077]盡管描述了特定實施例,但是將意識到,本發(fā)明的原理并不局限于那些實施例。實施例包括用于使用已經(jīng)被后端服務接受的有損數(shù)據(jù)格式將加密的圖像數(shù)據(jù)上傳到網(wǎng)站(例如,社交媒體和/或云服務)的中間件,該有損數(shù)據(jù)格式使用新的對損失有強適應性的加密算法。有強適應性的加密的圖像密文可以被后端云服務操控(例如,壓縮、裁剪、轉換、濾波等等),而假定由授權方使用的密文和秘密解密密鑰的情況下,仍然能夠恢復近似的原始圖像。
[0078]加密的圖像可以在保持安全(B卩,加密)的情況下被下載、復制、移動、操控以及上傳到其它網(wǎng)站,因此只有具有正確密鑰的一方才能夠使用本文所公開的一個或多個有強適應性的加密算法來對圖像進行解密并且恢復近似的原始圖像。專門的硬件或硬件加速器可以用于對有強適應性的加密算法進行加速。中間件可以包括在通用計算機、平板電腦、智能手機、超級本、服務器等等中。本文公開的實施例增強圖像和介質的隱私,允許對密文的操控,同時提供恢復原始明文內容的能力。
[0079]在一些實施例中,物品從包括軟盤、光盤、固定磁盤、易失性存儲器、非易失性存儲器、隨機存取存儲器、只讀存儲器、或者閃存的介質的集合中得到,該物品包括具有相關聯(lián)的非暫態(tài)指令的機器可訪問介質,當在測試和測量設備中執(zhí)行時,該指令使機器執(zhí)行如本文公開的本發(fā)明各種實施例的步驟。在不偏離如在下面的權利要求中闡述的本發(fā)明的原理的情況下,可以做出其它變化和修改。
【權利要求】
1.一種用于保護圖像隱私的方法,包括: 接收原始圖像; 將所述原始圖像分割為第一子圖像和第二子圖像; 對于所述第一子圖像的多個像素值中的每一個,加上從多個密鑰流值中選擇的相對應的密鑰流值; 產(chǎn)生第一加密的子圖像; 對于所述第二子圖像的多個像素值中的每一個,加上從所述多個密鑰流值中選擇的相對應的密鑰流值;并且 產(chǎn)生第二加密的子圖像。
2.根據(jù)權利要求1所述的方法,其中,所述像素值是紅/綠/藍(RGB)像素值,并且其中,分割進一步包括: 確定對于所述原始圖像的多個像素中的每一個的RGB像素值; 將所述原始圖像的每一個RGB像素值劃分為第一分割的RGB像素值和第二分割的RGB像素值; 將所述第一分割的RG B像素值中的每一個與所述第一子圖像的相對應的RGB像素值相關聯(lián);并且 將所述第二分割的RGB像素值中的每一個與所述第二子圖像的相對應的RGB像素值相關聯(lián)。
3.根據(jù)權利要求1所述的方法,進一步包括: 將所述第一加密的子圖像和所述第二加密的子圖像傳輸?shù)皆品铡?br>
4.根據(jù)權利要求1所述的方法,其中,所述像素值是RGB像素值,所述方法進一步包括: 從所述云服務接收所述第一加密的子圖像和所述第二加密的子圖像; 對于所述第一子圖像的每一個RGB像素值,減去從多個修正過的密鑰流值中選擇的相對應的修正過的密鑰流值; 產(chǎn)生第一解密的子圖像; 對于所述第二子圖像的每一個RGB像素值,減去從所述多個修正過的密鑰流值中選擇的相對應的修正過的密鑰流值;并且產(chǎn)生第二解密的子圖像。
5.根據(jù)權利要求4所述的方法,進一步包括: 將所述第一解密的子圖像和所述第二解密的子圖像組合為實質的所述原始圖像。
6.根據(jù)權利要求4所述的方法,進一步包括: 產(chǎn)生主密鑰; 將所述主密鑰存儲在數(shù)據(jù)庫中; 至少使用所述主密鑰來生成所述多個密鑰流值; 根據(jù)預定義的后處理函數(shù)來修正所述多個密鑰流值,從而產(chǎn)生所述多個修正過的密鑰流值。
7.根據(jù)權利要求6所述的方法,進一步包括: 使用隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù);將所述隨機數(shù)存儲在所述第一子圖像和所述第二子圖像中的至少一個的元數(shù)據(jù)中;并且 至少使用所述隨機數(shù)來生成圖像密鑰。
8.根據(jù)權利要求6所述的方法,進一步包括: 將所述預定義的后處理函數(shù)關聯(lián)到云服務的標識符; 將所述標識符存儲在所述第一子圖像和所述第二子圖像中的至少一個的元數(shù)據(jù)中;并且 使用所述標識符來標識所述預定義的后處理函數(shù)。
9.一種或多種有形的計算機可讀介質,其存儲非暫態(tài)計算機可執(zhí)行指令,當由處理器執(zhí)行時,所述計算機可執(zhí)行指令用于執(zhí)行根據(jù)權利要求1所述的方法。
10.一種用于保護圖像隱私的方法,包括: 接收圖像; 將所述圖像劃分為N個塊,每一個塊包括多個像素; 從N的階乘個排列中選擇排列;并且 基于選擇的排列來排列所述圖像的所述N個塊。
11.根據(jù)權利要求10所述的方法,進一步包括: 生成密鑰流;并且 基于所述密鑰流來排列所述N個塊。
12.根據(jù)權利要求11所述的方法,其中,排列進一步包括: 基于所述密鑰流來對所述N個塊中的一個塊與所述N個塊中的另一個塊進行交換。
13.根據(jù)權利要求12所述的方法,其中,排列進一步包括: 確定交換位置,其中,所述交換位置基于以N為模的密鑰流[j],其中,j是到密鑰流的索引;并且 在所述交換位置處對所述N個塊中的一個塊與所述N個塊中的另一個塊進行交換。
14.根據(jù)權利要求13所述的方法,其中,排列進一步包括: 確定N個交換位置,其中,每一個交換位置基于以N為模的密鑰流[j],其中,j從N遞減到2;并且 根據(jù)所述N個交換位置對所述N個塊中的每一個塊與所述N個塊中的另一個塊進行交換。
15.一種或多種有形的計算機可讀介質,其存儲非暫態(tài)計算機可執(zhí)行指令,當由處理器執(zhí)行時,所述計算機可執(zhí)行指令用于執(zhí)行根據(jù)權利要求10所述的方法。
16.一種中間件裝置,包括: 分割器,被配置用于將原始圖像分割為第一子圖像和第二子圖像; 加密部分,被配置用于: 將所述第一子圖像的多個像素值中的每一個加到從多個密鑰流值中選擇的相對應的密鑰流值; 產(chǎn)生第一加密的子圖像; 將所述第二子圖像的多個像素值中的每一個加到從所述多個密鑰流值中選擇的相對應的密鑰流值;并且產(chǎn)生第二加密的子圖像。
17.根據(jù)權利要求16所述的中間件裝置,其中,所述像素值是紅/綠/藍(RGB)像素值,并且其中,所述分割器被進一步配置用于: 確定對于所述原始圖像的多個像素值中的每一個的RGB像素值; 將所述原始圖像的每一個RGB像素值劃分為第一分割的RGB像素值和第二分割的RGB像素值; 將所述第一分割的RGB像素值中的每一個與所述第一子圖像的相對應的RGB像素值相關聯(lián);并且 將所述第二分割的RGB像素值中的每一個與所述第二子圖像的相對應的RGB像素值相關聯(lián)。
18.根據(jù)權利要求16所述的中間件裝置,其中,所述中間件被配置用于將所述第一加密的子圖像和所述第二加密的子圖像傳輸?shù)皆品铡?br>
19.根據(jù)權利要求16所述的中間件裝置,其中,所述像素值是RGB像素值,所述裝置進一步包括: 解密部分,被配置用 于: 從所述第一子圖像的每一個RGB像素值減去從多個修正過的密鑰流值中選擇的修正過的密鑰流值; 產(chǎn)生第一解密的子圖像; 從所述第二子圖像的每一個RGB像素值減去從所述多個修正過的密鑰流值中選擇的修正過的密鑰流值;并且 產(chǎn)生第二解密的子圖像;以及 組合器,被配置用于將所述第一解密的子圖像和所述第二解密的子圖像組合為實質的所述原始圖像。
20.根據(jù)權利要求16所述的中間件裝置,進一步包括: 隨機數(shù)發(fā)生器,被配置用于產(chǎn)生主密鑰;以及 數(shù)據(jù)庫,被配置用于存儲所述主密鑰, 其中,所述加密部分被配置用于至少基于所述主密鑰來生成所述多個密鑰流值。
21.根據(jù)權利要求16所述的中間件裝置,進一步包括: 隨機數(shù)發(fā)生器,被配置用于產(chǎn)生能夠存儲在所述第一子圖像和所述第二子圖像中的至少一個的元數(shù)據(jù)中的隨機數(shù);以及至少基于所述隨機數(shù)的圖像密鑰。
22.一種用于保護圖像隱私的方法,包括: 產(chǎn)生主密鑰; 將所述主密鑰存儲在數(shù)據(jù)庫中; 基于所述主密鑰生成密鑰流; 使用所述密鑰流對圖像進行加密; 在物理介質上打印所述圖像;以及 將打印的圖像附接到物理對象。
23.根據(jù)權利要求22所述的方法,進一步包括:物理地變換加密的圖像。
24.根據(jù)權利要求22所述的方法,進一步包括: 對位于所述物理介質上的所述打印的圖像進行拍攝;以及 使用所述密鑰流對拍攝的打印的圖像進行解密。
25.根據(jù)權利要求22所述的方法,進一步包括: 掃描位于所述物理介質上的所述打印的圖像; 使用密鑰流對掃描的打印的圖像進行解密。
26.根據(jù)權利要求22所述的方法,其中,加密包括: 將所述圖像分割為第一子圖像和第二子圖像; 對于所述第一子圖像的多個紅/綠/藍(RGB)像素值中的每一個,加上相對應的密鑰流值; 產(chǎn)生第一加密的子圖像; 對于所述第二子圖像的多個RGB像素值中的每一個,加上相對應的密鑰流值;并且 產(chǎn)生第二加密的子圖像。
27.根據(jù)權利要求22所述的方法,其中,加密包括: 將所述圖像劃分為N個塊,每一個塊包括多個像素; 從N的階乘個排列中選擇排列;并且 基于選擇的排列來排列所述N個塊。
【文檔編號】H04L9/06GK104040934SQ201180075549
【公開日】2014年9月10日 申請日期:2011年12月15日 優(yōu)先權日:2011年12月15日
【發(fā)明者】D·M·德拉姆, 龍門, K·S·格雷瓦爾, P·德萬, X·康 申請人:英特爾公司