程序創建裝置的制作方法

            文檔序號:6426078閱讀:172來源:國知局
            專利名稱:程序創建裝置的制作方法
            技術領域
            本發明涉及一種安全的程序分發系統,對其施加了程序電子水印。
            背景技術
            隨著計算機技術的發展,通過網絡分發程序代碼(此后簡稱為程序)已經較常見了。與此類分發相對應,出現了以下問題所下載的程序被分析,從而泄露在該程序中所使用的算法與思路,并且程序本身被篡改用來進行詐騙。
            另外,程序盜竊已經成為一種嚴重的問題,使得某人所開發的程序的全部或部分在沒有正當授權的情況下被使用,或者在沒有獲得程序開發者同意的情況下被重新分發。
            考慮到將來還會擴大的通過網絡的程序分發,必須要保護程序以防止欺詐的方案。
            例如,考慮用戶操作終端從分發者下載程序的情況。在這種情況下,創建者首先創建程序。接著,分發者的終端將該程序注冊。然后,當用戶終端請求分發者終端分發該程序時,分發者終端將該程序發送給用戶終端,并且用戶終端下載所分發的程序以存儲。
            在這些情況下,假定有以下威脅1、用戶泄露和/或篡改該程序。
            2、分發者泄露和/或篡改該程序。
            3、另一創建者偷盜該程序。
            作為抵御這些威脅的分發系統,有使用加密、防篡改硬件和/或電子水印的系統。
            此處,防篡改硬件指配備有用來防止未授權的內部分析的機制的硬件,(例如)使得當包含在LSI中的程序開始被分析時,LSI自動檢測對于程序的分析,并且刪除該程序。
            作為使用加密的系統,(例如)有在JP 2000-324096中所公開的系統。
            在這種方法中,用戶終端首先使用該終端所特有的ID(終端ID)以公開密鑰加密方法生成保密密鑰,然后,當下載內容時,將該終端ID發送給分發者。分發者使用該ID生成公開密鑰、加密該內容并且將加密內容發送該用戶。用戶使用預先在用戶側生成以備使用的保密密鑰解碼該內容。
            另外,在用戶終端的防篡改硬件區域中解碼并使用加密內容。
            通過這種方法,就防止了所下載的內容經歷未授權泄露與篡改。
            在JP 2000-330873中描述了另一種抵御上述威脅的系統。
            在這種方法中,創建者在所創建的內容中插入唯一的ID來指明內容用戶,作為電子水印。另外,當向用戶分發內容時,創建者加密內容。
            當內容經歷未授權使用時,監視內容未授權使用的未授權使用監視中心搜索網絡,并且比較從經歷未授權使用的內容中抽取的ID與存儲在該中心中的用戶條件(ID),以指明進行內容未授權使用的用戶。
            由此防止了內容的未授權泄露與篡改。
            然而,當在現有內容分發系統中分發程序時,存在以下問題不可以防止由分發者進行的對該程序的未授權泄露與篡改。
            在創建者所創建的程序在分發者終端注冊、并且用戶操作終端以下載在分發者終端注冊的程序的情況下,在該程序中插入唯一ID以作為電子水印而指明用戶是非常有效的,從而防止用戶進行未授權泄露。另外,使用防篡改硬件來防止用戶進行篡改也是有效的。
            然而,在現有方法中,程序不包含指明分發者的信息。因此,如果分發者進行了未授權泄露,則不可能指明為泄露來源的分發者。相應地,防止分發者進行未授權泄露是無效的。
            另外,當在程序中插入指明用戶的ID時,分發者向程序插入了用戶的ID。在這種情況下,分發者需要以明文處理該程序。
            因此,分發者不僅能夠插入用戶ID,而且能夠篡改程序使得該程序以不同的方式運行。換而言之,存在分發者篡改程序的風險。
            還考慮到創建者在程序中插入用戶ID,而不是使用分發者。然而,在大多數情況下創建者不能作為分發者。

            發明內容
            本發明的目的在于提供一種方案,使分發者能夠在程序中插入指明用戶的信息,同時防止分發者對該程序進行未授權泄露與篡改。
            本發明提供配備有偽模塊(dummy module)與數字簽名的程序主體,在該偽模塊中可以插入水印而不影響程序主體的運行。
            因此,分發者能夠在偽模塊中插入指明用戶的水印。另外,通過為程序主體配備數字簽名,就可以防止分發者對該程序進行未授權泄露和/或篡改。


            圖1為根據實施方式1的程序分發系統的配置圖;圖2為根據實施方式1的程序結構轉換部件的配置圖;圖3為根據實施方式1的水印插入部件的配置圖;圖4為根據實施方式1的簽名部件的配置圖;圖5為實施方式1的發送部件的配置圖;圖6為根據實施方式1的分發者包的配置圖;圖7為實施方式1的水印插入部件的配置圖;圖8為實施方式1的簽名部件的配置圖;圖9為實施方式1的發送部件的配置圖;圖10為實施方式1的用戶包的配置圖;圖11為實施方式1的接收檢查模塊的配置圖;圖12為顯示實施方式1中整體地配備有水印驗證程序的程序例子的圖;圖13顯示當實施方式1中整體地配備有水印驗證程序時接收模塊檢查部件的配置圖;圖14為顯示實施方式1的程序創建裝置的運行的流程圖;圖15為實施方式1的程序分發裝置的運行的流程圖;圖16為程序使用裝置的運行的流程圖;圖17為解釋實施方式1在程序未授權泄露的情況下用來指明泄露目的地的結構的圖;圖18為實施方式1的水印抽取裝置的配置圖;圖19為實施方式2的程序分發系統的配置圖;圖20為顯示在實施方式2的程序創建裝置中進行的操作的流程圖;圖21為解釋在實施方式1中創建的程序的圖。
            具體實施例方式
            (實施方式1)以下將參照附圖描述根據本發明實施方式1的程序分發系統。圖1為根據實施方式1的程序分發系統的配置圖。
            根據實施方式1的程序分發系統配備有程序創建裝置10。
            程序創建裝置10表示諸如創建程序的制造商或人等創建者的終端。
            程序創建裝置10配備有存儲部件20。存儲部件20為用來存儲由創建者所創建的程序的元件,并且表示諸如FD、HD以及內部存儲器等物理設備。
            程序創建裝置10還配備有程序結構轉換部件30。程序結構轉換部件30將存儲在存儲部件20中的程序分割為多個模塊(主體模塊)。另外,程序結構轉換部件30向被分割的程序添加偽模塊,該偽模塊不影響該程序的運行。然后,程序結構轉換部件30向水印插入部件40輸出如上所述地轉換的程序。另外,以后將具體描述程序結構轉換部件30。
            水印插入部件40將電子水印插入由程序結構轉換部件30轉換的程序的主體模塊。更具體地講,水印插入部件40在程序中插入從用來指明分發者的ID信息所生成的電子水印。然后,水印插入部件40向簽名部件50輸出其中插入了電子水印的程序。另外,以后將具體描述水印插入部件40。
            簽名部件50向從水印插入部件40輸出的程序的、其中插入了水印的模塊添加數字簽名。在簽名部件50所添加的數字簽名中使用主體模塊的散列值(hash value)。然后,簽名部件50向發送部件60輸出其上添加了數字簽名的程序。
            另外,以后將具體描述簽名部件50。
            發送部件60將從簽名部件50發送來的程序模塊打包,并且發送該包以及驗證程序給作為程序分發者終端的程序分發裝置70。當檢查在水印插入部件40中插入的電子水印時,為程序用戶終端的程序使用裝置105a和105b使用所述驗證程序。另外,以后將具體描述發送部件60。
            另外,在實施方式1中,所述驗證程序被發送給作為程序分發者終端的程序分發裝置70,但是所述驗證程序不需要總是被發送給程序分發裝置70,并且可以發送給獨立的驗證程序分發者。
            程序分發裝置70代表程序分發者的終端,諸如通信運營商或程序分發者的門戶站點。程序分發裝置70在所接收的程序中插入程序的用戶ID,并且向該用戶分發程序。
            程序分發裝置70配備有接收部件90。接收部件90解碼從程序創建裝置10的發送部件60發送來的包,以生成該程序。另外,接收部件90接收從發送部件60發送來的驗證程序。
            程序分發裝置70還配備有請求接收部件100。請求接收部件100是用來從用戶接收對于下載的請求消息的元件。
            程序分發裝置70還配備有存儲部件110。存儲部件110存儲從發送部件60發送來的程序與驗證程序,以及從請求接收部件100發送來的請求消息。
            程序分發裝置70還配備有水印插入部件120。水印插入部件120從存儲在存儲部件110中的程序中抽取主體模塊與偽模塊,并且在所程序的偽模塊中插入電子水印。水印插入部件120從用來指明用戶的ID生成要插入的電子水印。然后,水印插入部件120向簽名部件130輸出具有插入其中的、指明用戶的電子水印的程序。
            簽名部件130計算從水印插入部件120輸入的程序的偽模塊的散列值,并且向所輸入的程序添加由所計算的散列值與其他部分構成的數字水印。簽名部件130向發送部件140發送其上添加了數字簽名的程序。
            發送部件140將從簽名部件130輸出的程序的模塊打包,并且發送該包與驗證程序給作為程序用戶終端的程序使用裝置150a與150b。
            程序使用裝置150a與150b代表使用程序側的用戶終端。此后,描述中使用程序使用裝置150a,而程序使用裝置150a與150b簡稱為程序使用裝置150。
            程序使用裝置150配備有請求發送部件160。請求發送部件160發送請求分發程序的消息給作為分發者終端的程序分發裝置70。
            程序使用裝置150還配備有接收部件170。接收部件170接收從程序分發裝置70的發送部件140發送來的包,并且解碼該包以產生程序。接收部件170還接收從發送部件140發送來的驗證程序。然后,接收部件170輸出解碼后的程序與驗證程序給存儲部件180。
            存儲部件180存儲從接收部件170輸出的程序。
            程序使用裝置150還配備有接收模塊驗證部件190。接收模塊驗證部件190驗證由接收部件170下載(接收)的程序的電子水印與數字簽名。然后,接收模塊驗證部件190輸出驗證后的程序給存儲部件200。另外,以后將具體描述接收模塊驗證部件190。
            存儲部件200存儲從接收模塊驗證部件190輸出的已驗證程序。
            程序使用裝置150還配備有執行部件210。執行部件210執行所下載的程序。
            該程序分發系統如下所述地配置。
            以下將參照圖2描述實施方式1中的程序結構轉換部件30。圖2為根據實施方式1的程序結構轉換部件30的配置圖。
            程序結構轉換部件30配備有程序輸入部件301。程序輸入部件301接收其上添加偽模塊、待分割為多個模塊的程序。程序輸入部件301輸出該程序給偽模塊添加部件305。
            偽模塊添加部件305將從偽模塊輸入部件303輸入的偽模塊添加到從程序輸入部件301輸入的程序,并且輸出該程序給程序分割部件302。優選地,當偽模塊添加部件305添加偽模塊時,偽模塊由主體模塊使用斷言方法(assertmethod)方法等等調用至少一次。
            斷言方法是用程序中總是為假的條件語句替換斷言語句并且向該條件語言添加對于偽模塊的調用語句的方法。細節描述在“Watermark for softwareand its Insertion,Attacking,Evaluation and Implementation methods”,YujiIchisugi,Information Processing Society of Japan,Summer Symposium OnProgramming”中。
            偽模塊添加部件305向偽信息存儲部件304提供所添加的偽模塊的名稱。
            程序分割部件302將在偽模塊添加部件305中被添加了偽模塊的程序分割為多個模塊。例如,當程序以JAVA語言編寫時,程序分割部件302可以獲得作為模塊的編譯后的類文件,或者當程序以C語言編寫時,程序分割部件302可以獲得作為模塊的編譯后的目標文件。程序分割部件302輸出所分割的模塊的數目給分割信息存儲部件306。
            程序輸出部件307輸出在偽模塊添加部件305中被添加了偽模塊并且在程序分割部件302中被分割為多個模塊的程序。
            在這種結構中,程序結構轉換部件30向程序添加偽模塊,并且將其上添加了偽模塊的程序分割為多個模塊。
            以下將參照圖3描述實施方式1中的水印插入部件40。圖3為根據實施方式1的水印插入部件40的配置圖。
            水印插入部件40配備有程序輸入部件401。程序輸入部件401接收待輸入水印的程序,即接收在程序結構轉換部件30中轉換的程序。程序輸入部件401輸出所輸入的程序給插入部件402。
            水印數據輸入部件403輸入待作為水印插入的數據(水印數據)。待輸入的水印數據為用來指明程序分發裝置70(即分發者)的信息,并且包括分發者的地址、電話號碼、公司名稱、個人名稱和/或電子郵件地址。可以向水印數據輸入程序的創建者(程序創建裝置10)的信息。
            ID信息生成部件404生成用來根據從水印數據輸入部件403輸入的水印數據唯一地指明分發者(程序分發裝置70)的ID信息。該ID信息可以是輸入數據自身,或者通過加密輸入數據而得到的數據。另外,該ID信息可以是用來在存儲水印數據的數據庫中唯一指明水印數據的ID。
            另外,實施方式1描述了基于ID信息生成水印。然而,水印不一定總是基于ID信息生成,并且只是要求分發目的地能夠根據水印唯一指明。例如,可能將序列號1到N插入待發送的模塊,并且將序列號為i的模塊分發給分發者(程序分發裝置70),從而可以唯一地指明水印與分發目的地。
            模塊信息存儲部件408存儲在程序結構轉換部件30中添加的偽模塊的名稱。模塊信息存儲部件408預先從程序結構轉換部件30的偽信息存儲部件304獲得偽模塊名稱以備存儲。
            插入部件402根據在ID信息生成部件404中生成的ID信息生成待要實際插入程序中的水印,使用從模塊信息存儲部件408獲得的偽模塊名稱來區分偽模塊與主體模塊,并且將水印插入主體模塊。另外,插入部件402輸出其中插入水印的主體模塊的名稱給信息存儲部件405。
            作為插入部件402所插入的水印信息,不僅可能插入分發者ID,而且可能插入諸如程序權限信息、用戶終端的訪問控制信息以及安全策略等其他信息。
            例如,程序權限信息包含該程序執行期滿日期和/或執行次數,和/或程序向其他終端轉移的許可,并且訪問控制信息與安全策略信息為有關于對終端資源的訪問的信息,諸如在存儲器/HD中的讀與寫的許可,以及對于套接字使用的許可。
            水印信息存儲部件405存儲其中插入水印的模塊的名稱。
            程序輸出部件406輸出在插入部件402中插入了水印的程序。
            在這種結構中,水印插入部件40在主體模塊中插入用來指明分發者的水印。
            以下將參照圖4描述根據實施方式1的簽名部件50。圖4為根據實施方式1的簽名部件50的配置圖。
            簽名部件50配備有程序輸入部件501。程序輸入部件501接收待添加簽名的程序,即從水印插入部件40輸出的程序。程序輸入部件501將所輸入的程序輸出到簽名添加部件502。
            模塊信息存儲部件508存儲在程序結果轉換部件30中添加的偽模塊的名稱。模塊信息存儲部件508預先從程序結構轉換部件30的偽信息存儲部件304獲得偽模塊名稱以備存儲。
            簽名密鑰輸入部件503輸入加密簽名的保密密鑰。
            簽名添加部件502使用從模塊信息存儲部件508獲得的偽模塊名稱來區分偽模塊與主體模塊,并且計算主體模塊的散列值。然后,簽名添加部件502使用從簽名密鑰輸入部件503輸入的保密密鑰(創建者保密密鑰)加密所計算的散列值。
            簽名添加部件502使用簽名格式將模塊、作為簽名的散列值以及包含用于簽名驗證的公開密鑰(創建者公開密鑰)的證書制成單一文件。另外,簽名添加部件502將模塊名稱與散列值相關聯,以輸出到簽名數據存儲部件505。
            簽名數據存儲部件505存儲從簽名添加部件502輸出的、相互關聯的模塊名稱與散列值。
            程序輸出部件506輸出具有在簽名添加部件502中所添加的簽名以及其他的程序。
            在這種結構中,簽名部件50向主體模塊添加簽名,并且用保密密鑰加密該簽名。
            以下將參照圖5描述根據本發明實施方式1的發送部件60。圖5為實施方式1的發送部件60的配置圖。
            發送部件60配備有程序輸入部件601,其接收從簽名部件50輸出的程序。程序輸入部件601接收作為其輸入的、待發送給分發者(即程序分發裝置70)的程序。程序輸入部件601輸出所輸入的程序給發送數據打包部件602。
            發送數據打包部件602編譯包括程序的各種數據,并且生成分發者包,以發送給分發者,即程序分發裝置70。另外,發送數據打包部件602向打包信息存儲部件610提供為分發者打包的程序的數據大小或者CRC大小。另外,以后將具體描述分發者包。
            打包數據輸入部件608輸入描述偽模塊名稱的文件。
            加密密鑰生成部件605生成用于通信的加密密鑰。更具體地講,加密密鑰生成部件605生成在創建者與分發者(即程序創建裝置10與程序分發裝置70)之間處理包時所使用的加密密鑰。
            驗證程序輸入部件609輸入驗證程序,以驗證在水印插入部件40中插入的水印。
            安裝程序輸入部件611輸入用戶(即程序使用裝置150)軟件以便安裝從分發者(即程序分發裝置70)發送來的程序。
            加密部件607使用在加密密鑰生成部件605中生成的、用于通信的加密密鑰,加密打包后的程序以及從驗證程序輸入部件609輸入的水印驗證程序,以輸出到程序發送部件606。
            程序發送部件606向程序分發裝置70發送在發送數據打包部件602中打包的、并且在加密部件607中加密的程序。
            以下將參照圖6描述在數據的打包部件602中生成的分發者包。圖6為根據實施方式1的分發者包的配置圖。
            分發者包700包含主體模塊701、偽模塊702、在簽名部件50的簽名添加部件502中計算的主體模塊的簽名值703、用來解碼用保密密鑰加密的簽名值703的公開密鑰(創建者公開密鑰)704、描述偽模塊名稱的文件705、在偽模塊上簽名的保密密鑰(創建者保密密鑰)706、用來解碼偽模塊上簽名的公開密鑰(創建者公開密鑰)707以及安裝程序709。
            此處假定對于公開密鑰704與707,由證書權威頒發證書,包含公開密鑰的證書此后被稱為公開密鑰。
            作為例子,考慮打包為jar文件與tar文件,并且打包后的文件可能是被壓縮的。
            程序發送部件606與分發者包700一道發送驗證程序708給程序分發裝置70。通過這種方法,另一個終端能夠檢查由程序創建部件10添加的水印。
            另外,此處分發在偽模塊上簽名的保密密鑰(創建者保密密鑰)706,但不必總是分發該密鑰。另外,優選地,此時安裝程序709以及水印驗證程序708由防篡改軟件方法保護,(例如)以使其難于讀取。因此,可以防止通過不正當地分析安裝程序709與水印驗證程序708的運行而刪除與篡改水印。
            以下將參照圖7描述實施方式1的水印插入部件120。圖7為實施方式1的水印插入部件120的配置圖。
            程序輸入部件1201接收從存儲部件110輸入所抽取的水印的程序。程序輸入部件1201輸出該輸入程序給插入部件1202。
            水印數據輸入部件1203輸入待作為水印插入的數據(水印數據)。待輸入的水印數據為用來指明程序使用裝置150(即用戶)的信息,并且包含用戶的地址、電話號碼、公司名稱、個人名稱和/或電子郵件地址。可以將程序分發者(程序分發裝置70)的信息輸入水印數據。
            ID信息生成部件1204生成用來根據從水印數據輸入部件1203輸入的水印數據唯一地指明用戶的ID信息。該ID信息可以是輸入數據自身,或者是通過加密輸入數據而獲得的數據。另外,該ID信息可以是用來在存儲水印數據的數據庫中唯一指明水印數據ID,插入部件1202根據在ID信息生成部件1204中生成的ID信息生成實際插入程序的水印,使用從模塊信息存儲部件1208獲得的偽模塊名稱來區分偽模塊與主體模塊,并且將作為水印的用戶ID插入偽模塊。另外,插入部件1202輸出其中插入水印的偽模塊給水印信息存儲部件1205。
            水印信息存儲部件1205存儲其中插入水印的模塊的名稱。
            程序輸出部件1206輸出在插入部件1202中插入了水印的程序。
            在這種結構中,水印插入部件120在偽模塊中插入了用來指明用戶的水印。
            另外,實施方式1描述了基于ID信息生成水印。然而,水印信息不一定總是基于ID信息生成,只是要求能夠根據水印信息唯一指明用戶。例如,可能將序列號1到N插入待發送的模塊,并且將序列號為i的模塊分發給用戶(程序使用裝置150),從而可以唯一地指明水印與用戶。
            另外,作為水印信息,不僅可能插入用戶ID,而且可能插入程序權限信息、用戶終端的訪問控制信息以及安全策略。
            例如,程序權限信息包含該程序執行期滿日期和/或執行次數,和/或程序向其他終端轉移的許可/禁止,并且訪問控制信息與安全策略信息為有關于對終端資源的訪問的信息,諸如在存儲器/HD中的讀與寫的許可,以及對于套接字使用的許可。
            以下將參照圖8描述根據實施方式1的簽名部件130。圖8為實施方式1的簽名部件130的配置圖。
            簽名部件130配備有程序輸入部件1301。程序輸入部件1301接收待添加簽名的程序,即從水印插入部件120輸出的程序。程序輸入部件1301將所輸入的程序輸出給簽名添加部件1302。
            模塊信息存儲部件1308存儲從程序創建裝置10發送來的分發者包700的偽模塊705的名稱。
            簽名密鑰輸入部件1303存儲在偽模塊上簽名的保密密鑰706以及解碼從程序創建裝置10發送來的分發者包700的偽模塊簽名值的公開密鑰707。
            簽名添加部件1302使用從模塊信息存儲部件1308獲得的偽模塊名稱來區分偽模塊與主體模塊,并且計算偽模塊的散列值。然后,簽名添加部件1302使用從簽名密鑰輸入部件1303輸入的保密密鑰(創建者保密密鑰)706加密偽模塊的散列值。
            簽名添加部件1302將模塊、散列值以及用于簽名驗證的公開密鑰證書制成單一文件。另外,簽名添加部件1302將模塊名稱與散列值相關聯,以輸出到簽名數據存儲部件1305,并且還輸入對于偽模塊的保密密鑰706以及對于偽模塊的公開密鑰707。
            程序輸出部件1306輸出具有在簽名添加部件1302中添加的簽名的程序。
            在這種結構中,簽名部件130使用創建者保密密鑰在偽模塊上簽名,并且加密該簽名。
            以下將參照圖9描述根據實施方式1的發送部件140。圖9為實施方式1的發送部件140的配置圖。
            發送部件140配備有接收從簽名部件130輸出的程序的程序輸入部件1401。程序輸入部件1401將所輸入的程序輸出給發送數據打包部件1402。
            數據打包部件1402編譯包括程序的各種數據,并且生成用戶包,以發送給用戶(程序使用裝置150)。另外,發送數據打包部件1402向打包信息存儲部件1410提供為用戶打包的程序的數據大小或者CRC大小。
            另外,以后將具體描述用戶包。
            打包數據輸入部件1408接收從創建者(即程序創建裝置10)發送來的分發者包700。
            加密密鑰生成部件1405生成用于通信的加密密鑰。更具體地講,加密密鑰生成部件1405生成處理在程序分發裝置70與程序使用裝置150之間的包時所使用的加密密鑰。
            驗證程序輸入部件1412輸入驗證程序,以驗證在水印插入部件40中插入的水印。
            加密部件1407使用在加密密鑰生成部件1405中生成的、用于通信的加密密鑰,加密打包后的程序以及從驗證程序輸入部件1412輸入的水印驗證程序。
            程序發送部件1406向程序使用裝置150發送在發送數據打包部件1402中打包的、并且在加密部件1407中加密的程序。
            以下將參照圖10描述在發送數據打包部件1402中生成的用戶包。圖10為根據實施方式1的用戶包的配置圖。
            用戶包1000包含主體模塊701、偽模塊702、包含在分發者模塊700中的主體模塊的簽名值703、在簽名部件130的簽名添加模塊1302中計算的偽模塊的簽名值1004、包含在分發者模塊700中的主體模塊的簽名值703的公開密鑰(創建者公開密鑰)704、偽模塊簽名值1004的公開密鑰(創建者公開密鑰)707以及安裝程序709。
            作為例子,考慮打包為jar文件與tar文件,并且打包后的文件可能是被壓縮的。
            程序發送部件1406與用戶包1000一道發送驗證程序708給程序使用裝置150。
            以下將參照圖11描述根據實施方式1的接收檢查模塊190。圖11為實施方式1的接收檢查模塊190的配置圖。
            接收檢查模塊190配備有程序輸入部件1901。程序輸入部件1901接收目標為檢查以及組合從接收部件170輸出的每個模塊的程序。程序輸入部件1901將程序輸出到接收包檢查部件1902。
            打包信息存儲部件1903存儲從分發者(程序分發裝置70)接收的包的大小或CRC大小。打包信息存儲部件1903預先從程序分發裝置70獲得包的大小。
            接收包檢查部件1902確定從分發者(程序分發裝置70)接收的包是否是一個完整的包。更具體地講,接收包檢查部件1902檢查從打包信息存儲部件1903獲得的包的大小或CRC大小是否與所接收的包的大小一致。當打包信息存儲部件1903獲得的包的大小或CRC大小與所接收的包的大小一致時,接收包檢查部件1902輸出該程序給簽名檢查部件1904。同時,當這些大小不一致時,部件1902拋棄所接收的包。
            簽名檢查部件1904為驗證所有接收模塊的簽名是否正確、并且計算每個所接收模塊的散列值的元件。接著,簽名檢查部件1904分別使用主體模塊的公開密鑰704以及用來解碼添加到用戶包的偽模塊簽名值1004的公開密鑰707,解碼在用戶包1000中描述的模塊的簽名值(散列值)403與1004。然后,簽名檢查部件1904比較所計算的簽名值與添加到模塊的簽名值,并且當這些值相互一致時,輸出該程序給模塊組合部件1905,而當這些值相互不一致時,拋棄所有從分發者接收的模塊。
            模塊組合部件1905將所有從分發者接收的模塊組合為一個,以生成原始程序。
            驗證程序輸入部件1906輸入從分發者(即程序分發裝置70)取得的水印驗證程序。
            終端信息輸入部件1908輸入程序使用裝置150的終端ID(用戶ID)。
            水印驗證程序1907抽取組合后的程序的水印,并且確定該水印是否與終端ID一致。
            更具體地講,使用來自驗證程序輸入部件1906的驗證程序,水印驗證程序1907抽取在模塊組合部件1905中生成的程序的水印,并且比較該水印與從終端信息輸入部件1908輸入的終端ID。然后,當在模塊組合部件1905中生成的程序的水印與從終端信息輸入部件1908輸入的終端ID一致時,程序1907輸出該程序給程序輸出部件1909,同時當該水印與終端ID不一致時,拋棄所生成的程序。
            程序輸出部件1909輸出已經通過所有檢查的程序。
            在這種結構中,接收模塊檢查部件190使用主體模塊以及偽模塊的簽名值判定該程序是否被授權。另外,接收模塊檢查部件190使用水印判定該程序是否被授權。
            另外,驗證程序可以整體地添加到程序,并且從程序分發裝置70發送到程序使用裝置150。
            圖12顯示程序例子2001,其中整體地添加了水印驗證程序。
            圖13顯示這種情況下的接收模塊檢查部件。在這種情況下,接收模塊檢查部件210沒有驗證程序輸入部件1906以及終端信息輸入部件1908。
            當程序在執行部件210中執行時,首先執行驗證程序2002,并且抽取插入主體程序2003中的水印,并且與終端ID比較。當該水印與終端ID一致時,開始執行主體程序2003。
            因此,可能運行其上添加了水印驗證程序的程序。
            參照圖14至16,以下將描述當在創建者的程序創建裝置10中創建的程序被發送到程序分發裝置70,并且下載到用戶的程序使用裝置150時的運行。
            圖14為顯示實施方式1的程序創建裝置10的運行的流程圖。
            程序創建裝置10接收作為其輸入的、待存儲到存儲部件20中的所創建的程序,該程序包含N-1個模塊(步驟1401)。
            接著,則程序創建裝置10中,程序結構轉換部件30的程序輸入部件301接收存儲在存儲部件20中的程序。程序結構轉換部件30的偽模塊添加部件305接收偽模塊,以便分發者從偽模塊輸入部件303插入用戶ID。偽模塊添加部件305添加輸入偽模塊到在步驟1401中存儲的程序(步驟1402)。偽模塊添加部件305向偽模塊信息存儲部件304提供所添加的偽模塊的名稱。
            然后,在程序結構轉換部件30中,程序分割部件302將在步驟1402中在其上添加了偽模塊的程序分割為包含偽模塊的N個模塊(步驟1403)。另外,程序分割部件302輸出所分割的模塊的數目給分割信息存儲部件306。
            程序輸出部件307輸出在步驟1403中分割的模塊給水印插入部件40。
            然后,水印插入部件40在程序輸入部件410中接收從程序結構轉換部件30輸出的模塊。
            在水印插入部件40中,插入部件402查閱模塊信息存儲部件408,并且取得有關偽模塊的信息。插入部件402從編號i為1的模塊開始(步驟1404)至編號為N的模塊(即對所有模塊)(步驟1405)確定模塊是否為偽模塊(步驟1406)。
            當在步驟1406確定模塊不是偽模塊時,插入部件402根據在ID信息生成部件404中生成的分發者ID生成水印,以插入到模塊中(步驟1407)。另外,插入部件402輸出其中添加了水印的模塊的名稱給水印信息存儲部件405。
            然后,程序創建裝置10遞增i(步驟1408),然后返回步驟1405。
            當在步驟1406確定模塊是偽模塊時,插入部件40不向該模塊插入水印,并且通過程序輸出部件406輸出該偽模塊給簽名部件50。然后,程序創建裝置10遞增i(步驟1408),然后返回步驟1405。
            當對所有模塊完成上述處理時(步驟1405),插入部件402向程序輸出部件406輸出其中插入了水印的模塊(主體模塊),并且程序輸出部件406將這些模塊提供給簽名部件50。
            在簽名部件50中,程序輸入部件501接收其中插入了水印的模塊,以輸出到簽名添加部件502。
            簽名添加部件502計算插入了水印的模塊(主體模塊)的散列值,并且添加該散列值作為數字簽名(步驟1409)。
            簽名添加部件502接收來自簽名密鑰輸入部件503的保密密鑰,并且加密所添加的散列值。
            然后,簽名添加部件502通過程序輸出部件506向發送部件60輸出其上添加了簽名與水印的模塊(主體模塊)。
            最后,在發送部件60中,程序輸入部件601接收模塊,并且發送數據打包部件602生成分發者包以輸出到加密部件607。
            使用在處理程序創建裝置10與程序分發裝置70之間的包時所使用的加密密鑰,加密部件607加密該包(步驟1401),并且還加密從驗證程序輸入部件608輸入的驗證程序(步驟1411)。然后,程序發送部件606發送分發者包700與驗證程序708給分發者(步驟1412)。
            分發者包700包含N-1個主體模塊701、單一偽模塊702、相應于N-1個主體模塊701的簽名值703、用來解碼加密簽名值的公開密鑰704、偽模塊名稱705、分發者用來在偽模塊上簽名的保密密鑰706、相應于保密密鑰706的公開密鑰707以及安裝程序709。
            另外,當可以通過發送路徑獨立地得到公開密鑰時,不需要總是發送證書。
            使用諸如XML簽名之類的格式,將簽名以及每個模塊相互關聯。XML簽名能夠以XML的統一方式表示簽名的目標、簽名算法、簽名值、證書以及其他。
            因此,程序創建裝置10向分發者發送包含待由分發者自由使用的偽模塊以及其中插入了水印與數字簽名的主體模塊的分發者包。
            通過這種方法,分發者能夠在偽模塊中插入用來指明用戶的ID等等。
            另外,因為主體模塊具有數字簽名,所以分發者不能對主體模塊進行篡改。
            另外,因為分發者包700使用在程序創建裝置10與程序分發裝置70之間確定的保密密鑰加密,所以也可以防止除被授權的分發者之外的人員對分發者包700進行篡改。
            以下將參照圖15描述在分發者一側,在程序分發裝置70中執行的操作。圖15為分發者一側程序分發裝置70操作的流程圖。
            程序分發裝置70在接收部件90中接收從創建者的程序創建裝置10發送來的分發者包,并且解碼該包以存儲在存儲部件110(步驟1501)。
            程序分發裝置70在請求接收部件100中接收來自用戶的下載請求,并且判定所接收的請求是否為對于包的下載請求(步驟1502)。
            當該請求不是對于包的下載請求時,因為該請求是對于驗證程序的,所以發送部件140在加密部件1407中使用在加密密鑰生成部件1405中生成的、并且用于處理程序分發裝置70與程序使用裝置150之間的包的加密密鑰加密驗證程序,并且從程序發送部件1406發送該程序給程序使用裝置150(步驟1512)。
            同時,當在步驟1502該請求是對于包的下載請求時,水印插入部件120的程序輸入部件1201接收來自存儲部件110的分發者包。接著,水印插入部件120的插入部件1202解包(depackage)分發者包,并取得N個模塊(步驟1503)。
            接著,插入部件1202查閱模塊信息存儲部件1208,并且取得關于偽模塊的信息。然后,使用所獲取的關于偽模塊的信息,插入部件1202通過從1(步驟1504)到N(步驟1505)變化模塊號i檢查所獲取的N個模塊是否每個模塊為偽模塊(步驟1506)。
            當一個模塊為偽模塊時,插入部件1202從ID信息生成部件1204獲取用戶ID,并且使用用戶ID在偽模塊中插入水印(步驟1507)。然后,插入部件1202輸出其中插入了水印的模塊給程序輸出部件1206,并且程序輸出部件1206將該模塊輸出給簽名部件130。
            插入部件1202還輸出其中插入了水印的模塊名稱給水印信息存儲部件1205。
            簽名部件130在程序輸出部件1301中接收輸入模塊。簽名部件130在簽名添加部件1302中計算偽模塊的散列值。接著,簽名添加部件1302使用在分發者包700的偽模塊上簽名的、從程序創建裝置10發送來的、并且從簽名密鑰輸入部件1303輸入的保密密鑰(創建者保密密鑰)706,加密所計算的散列值。簽名添加部件1302向偽模塊添加加密后的數字簽名,以輸出到程序輸出部件1306(步驟1508)。程序輸出部件1306輸出其上添加了數字簽名的偽模塊給發送部件140。
            最后,程序分發裝置70遞增i(步驟1509),并返回步驟1505。
            同時,當在步驟1505模塊不是偽模塊時,程序分發裝置70不插入用戶ID與簽名,輸出該模塊給發送部件140,遞增i,并返回步驟1505。
            程序分發裝置70對所有模塊執行上述處理。
            發送部件140在程序輸入部件1401中接收從程序輸出部件1306發送來的模塊,以輸出到發送數據打包部件1402。
            發送數據打包部件1402生成用戶包,以輸出到加密部件1407。
            使用在加密密鑰生成部件1405中生成的、用于通信的加密密鑰,加密部件1407加密打包后的用戶包1000(步驟1510),以輸出到程序發送部件1406。然后,程序發送部件1406發送加密后的包給程序使用裝置150(步驟1511)。
            加密部件1407向用戶包1000添加N-1個主體模塊701、單一偽模塊702、N-1個主體模塊701的簽名值(散列值)703、偽模塊的簽名值1004、主體模塊簽名值703的公開密鑰704、用于偽模塊簽名值1004的公開密鑰707以及安裝程序709。
            另外,當可通過發送路徑獨立地得到公開密鑰時,不必總是發送密鑰證書。
            以與分發者包中同樣的方式,使用簽名格式將偽模塊與簽名相關聯。
            通過這種方式,程序分發裝置70能夠在偽模塊中插入用來指明用戶的ID等等。因此可以防止用戶對于程序的未授權使用。
            另外,偽模塊被給予數字簽名,因此不能被篡改。另外。因為添加到偽模塊的數字簽名使用創建者的保密來加密,所以用戶不能根據在解碼時所使用的公開密鑰的差別指明其中插入了用戶ID的偽模塊。作為結果,可以可靠地防止偽模塊被用戶篡改。
            另外,因為用戶包1000使用在程序分發裝置70與程序使用裝置150之間確定的保密密鑰加密,所以也可以防止非授權用戶的人員對于用戶包1000的篡改。
            以下將參照圖16描述在用戶110中進行的操作。圖16為程序使用裝置150的操作的流程圖。
            首先,程序使用裝置150在請求發送部件160中向分發者發送對于程序發送的請求以及裝置150的終端ID(步驟1601)。
            程序使用裝置150在接收部件170中接收從程序分發裝置709發送來的用戶包,并且解碼該包,以存儲在存儲部件180中(步驟1602)。
            接收模塊檢查部件190在程序輸入部件1901中接收存儲在存儲部件180中的包。
            在接收模塊檢查部件190中,接收包檢查部件1902從打包信息存儲部件1903獲得該包的大小或CRC大小。然后,接收包檢查部件1902檢查從打包信息存儲部件1903獲得的該包的大小或CRC大小是否與所接收的包的大小一致,并且由此檢查所輸入的包是否因為數據包丟失等等而成為不完整數據(步驟1603)。
            當在步驟1603所接收的包為不完整的數據時,接收包檢查部件1902向用戶顯示出錯消息(步驟1615)并拋棄所接收到的包(步驟1616)。
            同時,當在步驟1603接收到完整的數據時,接收包檢查部件1902解包所接收的包,并且抽取N個模塊(步驟1604)。然后,接收包檢查部件1902輸出這N個模塊給簽名檢查部件1904。
            簽名檢查部件1904獲取這N個模塊,并且計算i從1(步驟1605)到N(步驟1606)的每個模塊的數字簽名(步驟1607)。簽名檢查部件1904使用添加到用戶包1000的公開密鑰704與707,解碼添加到每個模塊的數字簽名。然后,簽名檢查部件1904比較添加到每個模塊的數字簽名與所計算的數字簽名,并由此檢查每個模塊是否為授權模塊(步驟1608)。
            當簽名正確時,簽名檢查部件1904將該模塊提供給模塊組合部件1904。檢查部件1904遞增i(步驟1609),并返回步驟1606。
            當簽名不正確時,簽名檢查部件1904顯示錯誤消息(步驟1615),并且拋棄所接收的包(步驟1616)。
            當所有模塊都通過了簽名檢查時,模塊組合部件1905組合這些模塊,以生成程序(步驟1610)。在生成程序之后,模塊組合部件1905輸出該程序給水印檢查部件1907。
            水印檢查部件1907向程序分發裝置70請求水印驗證程序,并且在驗證程序輸入部件1906中接收驗證程序(步驟1611)。
            使用所接收的驗證程序,水印檢查部件1907抽取所生成程序的水印(步驟1612),并且檢查該水印是否與從終端信息輸入部件1908輸入的終端ID一致(步驟1613)。
            當該水印與終端ID一致時,水印檢查部件1907通過程序輸入部件1909一次存儲該程序在存儲部件200中。
            然后,執行部件210使用對于存儲在存儲部件200中的程序的安裝程序1002,并且由此安裝個該程序以備執行(步驟1614)。
            同時,當該水印與ID不一致時,水印檢查部件1907不存儲該程序,顯示錯誤消息(步驟1615),并且拋棄所接收的包(步驟1616)。
            由此,通過比較添加到模塊的數字簽名與所計算的數字簽名,程序使用裝置150能夠判定所接收程序的有效性。
            另外,通過比較插入偽模塊的水印與裝置150的ID信息,程序使用裝置150能夠判定所接收程序的有效性。
            另外,程序使用裝置150從用戶包1000獲取主體模塊簽名值的公開密鑰704,以及偽模塊簽名值的公開密鑰707,并且能夠使用這些密鑰解碼簽名值。同時,加密后的簽名值不能在不使用授權創建者的保密密鑰的情況下解碼,因此可能識別非法程序。
            以下將參照圖17描述在程序的未授權泄露中指明泄露目的地的結構。
            如圖17所示,當程序不正當泄露時,創建者使用水印抽取裝置220從已經泄露到泄露目的地1701的程序中抽取水印,并且能夠指明為泄露來源的分發者的程序分發裝置70。
            以下將參照圖18描述根據實施方式1的水印抽取裝置220。圖18為實施方式1的水印抽取裝置220的配置圖。
            程序輸入部件2201接收其中插入了水印的程序,并且輸出該程序到水印檢測部件2202。
            ID信息存儲部件2204根據從水印檢測部件2202得到的ID信息生成分發目的地的信息。
            當ID信息為數據庫中的數據ID時,ID信息存儲部件2204從該ID抽取數據,因此獲得分發目的地的信息。另外,當ID信息為分發目的地信息的加密信息時,ID信息存儲部件2204解碼該數據,并且獲得分發目的地的信息。
            水印信息存儲部件2205存儲其中插入了水印的模塊的名稱。這些信息從水印插入部件40的水印信息存儲部件405獲得。
            水印檢測部件2202從以下模塊中抽取插入到模塊中的水印,該模塊具有從水印信息存儲部件2205獲得的名稱。然后,水印檢測部件2202根據所城區的水印生成ID信息,以提供給輸出部件2203。
            輸出部件2203參照ID信息存儲部件2204,從水印檢測部件2202在中生成的ID信息抽取分發目的地的信息。并且輸出該信息。
            通過這種方法,水印抽取裝置220輸出非法分發了程序的分發來源的信息。
            另外,本發明適用于以下情況水印驗證程序被添加到在程序使用裝置150中接收的程序上。
            在這種情況下,發送部件60與接收模塊檢查部件190的操作不同于上述的情況。
            在發送部件60中,驗證程序輸入部件609不接收水印驗證程序。另外,在接收模塊檢查部件190中,不進行在驗證程序輸入部件1901、終端信息輸入部件1908以及水印檢查部件1907中的操作。
            以下將參照圖21描述在實施方式1中創建的程序。
            在圖21中,程序2900a具有存儲在存儲部件20中的基本程序。程序2900b為通過向基本程序2900a添加分發者水印信息與偽方法而獲得的程序。程序2900c為通過編譯基本程序2900a而獲得的程序,并且程序2900d表示通過在程序2900c中插入用戶水印而獲得的程序。
            首先,在程序創建裝置10中,程序結構轉換部件30的偽模塊添加部件305在步驟1402向程序2900a添加偽方法(圖中2901所示的部分)。另外,(例如)使用斷言方法向程序2900a添加偽方法的調用語句(圖中2902所示的部分)。
            水印插入部件40中的插入部件402在步驟1406中判定每個方法是否為偽方法,當該方法不是偽方法時,插入從分發者的ID生成的水印信息S1(11)與S2(22)(圖中2903示的部分)(1122)。在插入分發者的水印信息之后,在步驟1409編譯程序并且向非偽方法的部分添加數字簽名。另外,為了簡便,使用反匯編程序進行描述。
            在程序分發裝置70中,水印插入部件120的插入部件1202在步驟1506中判定每個方法是否為偽方法。當一個方法是偽方法時,部件1202插入根據用戶的ID信息((C)11)生成的水印信息U1(100111 001101 101000 001011)(圖中2904所示的部分),并且在步驟1508中向偽方法添加數字簽名。
            接著,在程序使用裝置150中,在步驟1607,接收模塊檢查部件190的簽名檢查部件1904使用從程序創建裝置10分發來的安裝程序,驗證添加到程序2900d的數字簽名。另外,在步驟1613,接收模塊檢查部件190的水印檢查部件1907使用從程序創建裝置10分發來的驗證程序,從偽方法MS抽取水印。當程序2900d通過步驟1607與1613的驗證時,程序使用裝置150安裝程序2900d以備執行。
            另外,該實施方式描述了添加作為偽模塊的方法的情況,當時其也適用于添加類的情況。
            如上所述,根據實施方式1,通過獨立于主體模塊來添加偽模塊,分發者能夠向偽模塊插入用戶ID。另外,通過向主體模塊添加簽名,就可以防止分發者操縱作為程序基本重要部分的主體模塊。因此,可以防止分發者對程序的篡改。
            另外,根據實施方式1,添加到主體模塊的數字簽名使用創建者的主體模塊的保密密鑰來加密,并且分發者不具有創建者的主體模塊的保密密鑰。通過這種方法,即使分發者使用公開密鑰704解碼數字簽名來篡改,也不可能使用創建者的保密密鑰再次加密。相應地,用戶不能解碼主體模塊。結果,可能安全地防止分發者篡改主體模塊。
            另外,根據實施方式1,即使程序非法泄露了,因為在主體模塊中插入了分發者ID,也可以指明作為泄露來源的分發者。由此,可以防止分發者對于程序的篡改。
            另外,根據實施方式1,因為程序部分被分割為多個主體模塊,所以增加了包含偽模塊的所有模塊的數目,并且用戶需要在大量模塊中指明其中插入了用戶ID的偽模塊,從而增加難度。另外,模塊與偽模塊之間的大小差異降低,因此用戶不可能指明其中插入用戶ID的偽模塊。相應地,可以防止用戶對程序的篡改。
            另外,根據實施方式1,通過向分發者包700提供對于偽模塊上簽名的保密密鑰,分發者可能使用創建者的保密密鑰向偽模塊添加數字簽名。當分發者使用分發者的保密密鑰向偽模塊添加數字簽名時,對于圖體模塊的保密密鑰與對于偽模塊的保密密鑰,證書頒發來源不同。因此,用戶能夠容易地指明偽模塊的部分,并且容易地指明插入水印的部分。然而,在實施方式1中,因為用戶在簽名驗證中所使用的證書都是頒發給創建者,所以不可能使用證書的頒發來源來指明插入了水印的部分,因此可以防止用戶刪除水印。
            另外,也可以為運行程序創建裝置10、程序分發裝置70以及程序使用裝置150中的每一個準備程序,將該程序存儲在存儲介質中,并且使通用計算機從存儲介質下載該程序以備執行。
            (實施方式2)以下將參照附圖描述根據本發明實施方式2的程序分發系統。本發明的實施方式2相應于以下情況用戶從多個分發者下載程序的不同模塊。圖19為實施方式2的程序分發系統的配置圖。
            實施方式2的程序分發系統的配置圖與實施方式1在以下方面不同創建者分割程序以發送到多個分發者,并且用戶通過多個分發者接收所分割的程序。
            更具體地講,在程序結構轉換部件1802與水印插入部件1803的操作中,創建者一側的程序創建裝置1801不同于實施方式1的程序創建裝置10。另外,在接收模塊檢查部件1804的操作中,用戶一側的程序使用裝置1805不同于實施方式1的程序使用裝置150。
            以下將描述實施方式2的程序結構轉換部件1802。在偽模塊添加部件305的操作中,程序結構轉換部件1802不同于實施方式1的程序結構轉換部件30。
            實施方式2的偽模塊添加部件305向程序添加從偽模塊輸入部件303輸入的兩個偽模塊。偽模塊添加部件305使用斷言方法添加這些偽模塊,以備由不同主體模塊調用。
            另外,除了偽模塊添加部件305的操作外,程序結構轉換部件1802與實施方式1的程序結構轉換部件30相同,因此省略其描述。
            以下將描述實施方式2的水印插入部件1803。在插入部件402的操作中,實施方式2的水印插入部件1803不同于實施方式1的水印插入部件40。
            實施方式2的插入部件402根據在ID生成部件404中生成的ID信息生成實際插入程序中的水印,并且對于具有非從模塊信息存儲部件408輸入的偽模塊名稱的名稱的模塊,在一部分中插入指明分發者A的分發者ID,同時在另一部分中插入指明分發者B的分發者ID。
            另外,實施方式2的水印插入部件1803的其他部分與實施方式1的水印插入部件40的其他部分相同,因此省略其描述。
            以下將描述接收模塊檢查部件1804。
            接收模塊檢查部件1804檢查從分發者A與分發者B接收的包,解包分發者A與分發者B的各自的包,并且獲取總共N個程序。
            以下將描述下列操作在創建者的程序創建裝置1802中生成的程序被發送到分發者A的程序分發裝置70a與分發者B的程序分發裝置70b,并且被下載到用戶的程序使用裝置150。
            以下將參照圖20描述程序創建裝置1801中的處理。圖20為顯示在實施方式2的程序創建裝置1801中進行的操作的流程圖。
            首先,程序創建裝置1801創建包含N-2個模塊的程序,以存儲在存儲部件20中(步驟2001)。然后,程序轉換部件1802向程序添加待插入用戶ID的兩個偽模塊(步驟2002),并且分割該程序為包含偽模塊的N個模塊(步驟2003)。
            另外,圖19顯示兩個分發者的情況。然而,本發明適用于三個或更多個分發者的情況,并且在這種情況下,添加相應于分發者數目的偽模塊。
            水印插入部件1803從1(步驟2004)到j(步驟2005)改變模塊編號i,以檢查具有每個編號的模塊是否為偽模塊(步驟2006)。
            當模塊不為偽模塊時,水印插入部件1803插入指明分發者A的分發者ID(步驟2007)。接著,簽名部件50向其中插入了分發者ID的偽模塊添加數字簽名(步驟2008)。然后,程序創建裝置1801遞增i(步驟2009),并返回步驟2005。
            當在步驟2006判定模塊為偽模塊時,程序創建裝置1801不插入水印與數字簽名,遞增i并返回步驟2005。
            接著,水印插入部件1803從j+1到N(步驟2010)改變i,以檢查每個是否為偽模塊(步驟2011)。
            然后,當模塊不為偽模塊時,水印插入部件1803插入指明分發者B的分發者ID(步驟2012),并且簽名部件50添加數字簽名(步驟2013)。然后,程序創建裝置1801遞增i(步驟2014),并返回步驟2010。
            當在步驟2011判定模塊為偽模塊時,程序創建裝置1801不插入水印與數字簽名,遞增i并返回步驟2010。
            最后,發送部件60打包待發送給分發者A與分發者B的模塊以加密(步驟2015),并且將這些包分別發送給分發者A的程序分發裝置70a與分發者B的程序分發裝置70b(步驟2016)。
            以下將描述實施方式2的程序分發裝置70a與程序分發裝置70b的操作。在步驟1503與1505的操作中,實施方式2的程序分發裝置70a與程序分發裝置70b的操作與實施方式1的程序分發裝置70的操作不同。
            在實施方式1的步驟1503中,在實施方式2中分發者A的程序分發裝置70a獲取j個模塊,而分發者B的程序分發裝置70b獲取N-j個模塊。
            另外,在實施方式1的步驟1505中,在實施方式2中分發者A的程序分發裝置70a從1到j改變i,而分發者B的程序分發裝置70b從j+1到N-j改變i。
            另外,除了步驟1503與1505外,在實施方式2中每個步驟都與實施方式1的運行相同,并且省略其描述。
            接著,描述實施方式2中用戶的程序使用裝置1805的操作。在實施方式1的步驟1601至1604的操作中,實施方式2中用戶的程序使用裝置1805的操作與實施方式1的程序使用裝置150的操作不同。
            在實施方式1的步驟1601中,在實施方式2中向分發者A的程序分發裝置70a與分發者B的程序分發裝置70b發送終端ID。
            在實施方式1的步驟1602中,在實施方式2中從分發者A的程序分發裝置70a與分發者B的程序分發裝置70b接收各自的包,并且解碼并存儲這些包。
            在實施方式1的步驟1603中,在實施方式2中檢查從分發者A的程序分發裝置70a與分發者B的程序分發裝置70b接收的各自的包。
            然后,在實施方式1的步驟1604中,在實施方式2中解包分發者A的程序分發裝置70a與分發者B的程序分發裝置70b的各自的包,并且獲取總共N個程序。
            實施方式1中的步驟1604之后的每個步驟在實施方式2中提供與實施方式1的運行相同的操作,因此省略其描述。
            如上所述,根據實施方式2,程序的不同部分被發送給分發者A與分發者B,從而分發者A與分發者B不能具有完整程序。因此,可以防止由于分發者A與分發者B假裝用戶而產生的未授權泄露。
            如上所述,根據本發明,可能在不使分發者操縱程序的主體模塊的情況下,插入用戶ID,因此可以防止分發者對程序的篡改。另外,插入作為水印信息的分發者ID也可以抑制未授權泄露。本發明適用于分發諸如運動圖片、音頻以及程序等內容,因此用途廣泛。
            本發明不限于上述實施方式,在脫離本發明范圍的前提下可能有各種改變與變化。
            本發明基于在2003年8月28日提交的日本專利申請2003-305397,以及在2004年7月6日提交的日本專利申請2004-199677,其內容融入此文作為參考。
            權利要求
            1.一種程序創建裝置,其通過分發者向用戶分發所創建的程序,包括偽模塊添加器,其向程序添加偽模塊,由此使分發者能夠在偽模塊中插入指明用戶的用戶水印,而對程序的運行沒有任何影響;簽名器,其向程序添加數字簽名;以及發送器,其向分發者分發其上添加了偽模塊以及數字簽名的分發者程序。
            2.根據權利要求1的程序創建裝置,還包括水印插入器,其在程序中插入指明分發者的分發者水印。
            3.根據權利要求1的程序創建裝置,還包括程序分割器,其將程序分割為多個模塊。
            4.根據權利要求1的程序創建裝置,其中用于由分發者添加到偽模塊的數字簽名的保密密鑰被發送到分發者。
            5.根據權利要求1的程序創建裝置,其中用來檢查由分發者插入的用戶水印的驗證程序被添加到程序并且發送。
            6.根據權利要求1的程序創建裝置,其中所述分發者程序被分割為多個部分,并且通過分發者分發到用戶。
            7.一種程序創建裝置,包括水印插入器,其在分發者程序的偽模塊中插入指明用戶的用戶水印,其中所述偽模塊與數字簽名被添加到程序,在對程序的運行沒有任何影響的情況下添加插入水印的偽模塊;發送器,其向用戶發送在偽模塊中插入用戶水印的用戶程序。
            8.根據權利要求7的程序創建裝置,還包括簽名器,其向偽模塊添加數字簽名。
            9.根據權利要求8的程序創建裝置,其中使用用于從程序創建裝置發送來的數字簽名的保密密鑰,將數字簽名添加到偽模塊。
            10.一種程序使用裝置,包括接收器,其接收用戶程序,在該用戶程序中,指明用戶的用戶水印被插入在分發者程序的偽模塊中,在該分發者程序中,偽模塊與數字簽名被添加到一程序,在對程序的運行沒有任何影響的情況下添加插入水印的偽模塊;以及水印檢查器,其檢查用戶程序中的用戶水印。
            11.根據權利要求10的程序使用裝置,還包括組合器,其組合從用戶程序分割來的各部分;以及執行器,其執行所組合的用戶程序。
            12.根據權利要求10的程序使用裝置,其中所述水印檢查器從發送路徑上的終端獲取用來檢查用戶水印的驗證程序。
            13.根據權利要求12的程序使用裝置,其中所述驗證程序包含在驗證程序中。
            14.一種程序分發系統,包括根據權利要求1的程序創建裝置;程序分發裝置,具有水印插入器,其在分發者程序的偽模塊中插入指明用戶的用戶水印;以及發送器,其向用戶發送在偽模塊中插入用戶水印的用戶程序;以及程序使用裝置,具有接收器,其接收用戶程序;以及水印檢查器,其檢查用戶程序中的用戶水印。
            15.一種用于通過分發者向用戶分發所創建的程序的程序分發方法,包括向程序添加偽模塊,由此使分發者能夠在偽模塊中插入指明用戶的用戶水印,而對程序的運行沒有任何影響;向程序添加數字簽名;以及向分發者分發其上添加了偽模塊以及數字簽名的分發者程序。
            16.一種用于向用戶分發以根據權利要求15的程序分發方法所發送的分發者程序的程序分發方法,包括在分發者程序的偽模塊中插入指明用戶的用戶水印;以及向用戶發送在偽模塊中插入用戶水印的用戶程序。
            17.一種程序使用方法,包含接收以根據權利要求16的程序發送方法所發送的用戶程序;以及檢查用戶程序中的分發者水印。
            18.一種程序創建方法,包含向程序添加偽模塊,由此使水印能夠被插入偽模塊中,而對程序的運行沒有任何影響;以及向程序添加數字簽名。
            全文摘要
            在本發明中,程序配備有對程序的運行沒有任何影響的偽模塊以及數字簽名,可以在該偽模塊中插入水印。因此,分發者可能在偽模塊中插入指明用戶的水印,并且防止分發者對于程序的未授權泄露。另外,可以防止分發者對程序的篡改。
            文檔編號G06F1/00GK1592188SQ20041007491
            公開日2005年3月9日 申請日期2004年8月30日 優先權日2003年8月28日
            發明者里雄二, 伊藤智祥, 山口孝雄 申請人:松下電器產業株式會社
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品