JP7389446B2 - Encryption/decryption device, encryption/decryption method, and computer program for executing the method - Google Patents

Encryption/decryption device, encryption/decryption method, and computer program for executing the method Download PDF

Info

Publication number
JP7389446B2
JP7389446B2 JP2019091000A JP2019091000A JP7389446B2 JP 7389446 B2 JP7389446 B2 JP 7389446B2 JP 2019091000 A JP2019091000 A JP 2019091000A JP 2019091000 A JP2019091000 A JP 2019091000A JP 7389446 B2 JP7389446 B2 JP 7389446B2
Authority
JP
Japan
Prior art keywords
key
encryption
decryption
encrypted
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019091000A
Other languages
Japanese (ja)
Other versions
JP2020187241A (en
Inventor
星 今井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imeisters
Original Assignee
Imeisters
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imeisters filed Critical Imeisters
Priority to JP2019091000A priority Critical patent/JP7389446B2/en
Publication of JP2020187241A publication Critical patent/JP2020187241A/en
Application granted granted Critical
Publication of JP7389446B2 publication Critical patent/JP7389446B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、デジタルデータの暗号化及び復号化技術に関し、特に、デジタルデータの暗号化/復号化機能を有する装置、デジタルデータの暗号化/復号化方法、並びに、コンピュータにデジタルデータの暗号化/復号化機能を実現させるためのプログラムに関する。 The present invention relates to digital data encryption and decryption technology, and in particular to a device having a digital data encryption/decryption function, a digital data encryption/decryption method, and a digital data encryption/decryption method that enables a computer to perform digital data encryption/decryption. This invention relates to a program for realizing a decryption function.

現在、インターネット上の様々なサイトには、リソースとしての膨大な数のデジタルデータが格納され、人々に利用されている。例えば、多くのWebサイトは、デジタル化されたドキュメントや、イラスト、写真、映像等のデジタルコンテンツ(デジタルデータ)を含むWebページを提供している。また、幾つかのWebサイトでは、特定のクライアントシステムを持つユーザに向けて、漫画や動画といったデジタルコンテンツを配信するサービス(いわゆるネット配信サービス)を展開している。 Currently, a huge amount of digital data is stored as a resource on various sites on the Internet and is used by people. For example, many websites provide web pages that include digital content (digital data) such as digitized documents, illustrations, photographs, and videos. Furthermore, some websites offer services (so-called internet distribution services) for distributing digital content such as comics and videos to users with specific client systems.

このようなデジタルコンテンツには、一般に、著作権が化体しており、著作権保護の観点から、第三者による不正利用を防止する必要がある。特に、デジタルコンテンツの配信サービスでは、デジタルコンテンツの無断複製による海賊版の流通が大きな問題となる。このため、例えば、Webサイトには、ユーザ登録を行った正規のユーザのみアクセス可能にし、さらに、ストリーミングでのみ利用するという方法や、デジタルコンテンツ自体を暗号化しておき、鍵(アクセスキー)を有する正規のユーザのみが復号化(解読)可能にするという方法が採られている。このような暗号化及び復号化技術として、従前より、様々な手法が提案されている。 Such digital content generally has a copyright attached to it, and from the perspective of copyright protection, it is necessary to prevent unauthorized use by third parties. In particular, in digital content distribution services, distribution of pirated copies due to unauthorized copying of digital content is a major problem. For this reason, for example, a website can be accessed only by authorized users who have registered as users, and can only be used for streaming, or the digital content itself may be encrypted and a key (access key) must be provided. A method is adopted in which only authorized users can decrypt (decipher) the data. Various methods have been proposed as such encryption and decryption techniques.

例えば、下記の特許文献1は、グラフィカルオブジェクトを暗号化する方法を開示している。具体的には、特許文献1の暗号化装置は、グラフィカルオブジェクトを受信し、秘密鍵Kを用いて秘密ファンクションセットを生成し、該秘密ファンクションセットから暗号化ファンクションを選択し、暗号化されたグラフィカルオブジェクトを取得するため、該暗号化ファンクションを用いて該グラフィカルオブジェクトを暗号化し、該暗号化されたグラフィカルオブジェクトと該選択された暗号化ファンクションの表示とを出力する。 For example, Patent Document 1 listed below discloses a method for encrypting graphical objects. Specifically, the encryption device of Patent Document 1 receives a graphical object, generates a secret function set using a secret key K, selects an encryption function from the secret function set, and generates an encrypted graphical object. Encrypting the graphical object using the encryption function to obtain the object and outputting the encrypted graphical object and a representation of the selected encryption function.

特開2014-85674号公報JP2014-85674A

デジタルデータの暗号化/復号化については、情報化社会の進展により、その必要性が高く、様々な手法が提案されている。しかしながら、より強固な暗号化を図ろうとすると、暗号化の手順が複雑化したり、計算負荷が高くなってしまったりするという問題がある。 With the progress of the information society, the need for encryption/decryption of digital data has increased, and various methods have been proposed. However, when attempting to achieve stronger encryption, there are problems in that the encryption procedure becomes complicated and the computational load increases.

そこで、本発明は、計算負荷を低く抑えつつ、デジタルデータの強固かつ高速な暗号化/復号化処理を行うことができる暗号化/復号化技術を提供することを目的とする。 SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide an encryption/decryption technique that can perform robust and high-speed encryption/decryption processing of digital data while keeping the calculation load low.

また、本発明は、GPU上で演算を行うことに適した暗号化/復号化処理を提供することを目的とする。 Another object of the present invention is to provide encryption/decryption processing suitable for performing calculations on a GPU.

また、本発明は、デジタルデータのファイルフォーマットが変更されることなく、該デジタルデータを暗号化することできる技術を提供することを目的とする。 Another object of the present invention is to provide a technology that can encrypt digital data without changing the file format of the digital data.

上記課題を解決するための本発明は、以下に示す発明特定事項ないしは技術的特徴を含んで構成される。 The present invention for solving the above problems is configured to include the following invention specific matters or technical features.

すなわち、ある観点に従う本発明は、暗号化対象であるデジタルデータ列を暗号化するための暗号化装置を備えるシステムであり得る。前記暗号化装置は、前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得する取得部と、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成する暗号鍵生成部と、前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出する暗号化処理部と、前記算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部とを備え得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり得る。また、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値に設定する2項演算であり得る。 That is, the present invention according to a certain aspect may be a system including an encryption device for encrypting a digital data string to be encrypted. The encryption device includes an acquisition unit that acquires a first data file including the digital data string to be encrypted, and an encryption key that includes at least one unit key consisting of n elements having a permuted relationship. Using the generated encryption key for the element value of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, an encryption processing unit that calculates at least one encrypted sequence by applying a permutation mapping; and a second data file that includes an encrypted digital data string indicated by the calculated at least one encrypted sequence. The output control unit may include an output control unit that performs control for outputting to an output destination. Here, the set of the encryption target array and the permutation mapping may be a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element. Further, the permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, into the i-th element of the encryption array. can be a binary operation that sets the value of the element of .

また、前記暗号化処理部は、前記暗号化対象であるデジタルデータ列を分割して複数の前記所定の領域を設定する領域分割部と、前記複数の所定の領域のそれぞれに対応する暗号化対象配列の要素値に対して、前記暗鍵を用いて、前記順列写像を適用することにより、複数の暗号化配列のそれぞれを算出する演算部と、を備え得る。 The encryption processing unit also includes an area dividing unit that divides the digital data string to be encrypted and sets a plurality of predetermined areas, and an encryption target corresponding to each of the plurality of predetermined areas. The computer may further include an arithmetic unit that calculates each of a plurality of encrypted arrays by applying the permutation mapping to the element values of the array using the encryption key.

また、前記暗号化処理部は、前記複数の所定の領域におけるいくつかに基づく拡大領域を新たな所定の領域として設定する拡大領域設定部をさらに備え得る。また、前記演算部は、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、新たな暗号化配列を算出し得る。
また、前記暗号化処理部は、N重暗号化に従って、前記拡大領域設定部による拡大領域の設定及び前記演算部による暗号化配列の算出を繰り返すように構成される、
The encryption processing unit may further include an enlarged area setting unit that sets an enlarged area based on some of the plurality of predetermined areas as a new predetermined area. In addition, the calculation unit applies the permutation mapping to the previously calculated element value of the encrypted array corresponding to the new predetermined area using the encryption key. It is possible to calculate an encrypted sequence.
Further, the encryption processing unit is configured to repeat setting of an enlarged area by the enlarged area setting unit and calculation of an encryption array by the calculation unit in accordance with N-fold encryption.

また、前記暗号化装置は、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵を生成するユーザ鍵生成部と、前記暗号鍵と前記ユーザ鍵の逆写像鍵とに基づいて、補助鍵を生成する補助鍵生成部と、をさらに備え得る。 The encryption device also includes a user key generation unit that generates a user key including at least one unit key made up of n elements having a permutation relationship, and an inverse mapping key of the encryption key and the user key. The apparatus may further include an auxiliary key generation unit that generates an auxiliary key based on the information.

前記暗号化装置は、前記暗号化されたデジタルデータ列の復号化を可能にするために、前記ユーザ鍵に基づく第1配布鍵と前記補助鍵に基づく第2配布鍵とを外部に出力するように構成され得る。 The encryption device outputs a first distribution key based on the user key and a second distribution key based on the auxiliary key to the outside in order to enable decryption of the encrypted digital data string. may be configured.

前記第1配布鍵は、前記ユーザ鍵の逆像であり、前記第2配布鍵は、前記暗号鍵の逆写像であり得る。 The first distribution key may be an inverse image of the user key, and the second distribution key may be an inverse mapping of the encryption key.

また、別の観点に従う本発明は、前記暗号化装置により暗号化された前記デジタルデータ列を、前記第1配布鍵と前記第2配布鍵とに基づいて、復号化する復号化装置をさらに備えるシステムであり得る。 Further, the present invention according to another aspect further includes a decryption device that decrypts the digital data string encrypted by the encryption device based on the first distribution key and the second distribution key. It can be a system.

また、前記復号化装置は、前記第1配布鍵と前記第2配布とに基づいて、復号鍵を生成する復号鍵生成部と、前記暗号化されたデジタルデータ列に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、前記デジタルデータ列を復号化する復号化処理部と、をさらに備え得る。 The decryption device also includes a decryption key generation unit that generates a decryption key based on the first distribution key and the second distribution key, and a decryption key generation unit that generates the decryption key based on the first distribution key and the second distribution key , and a decryption key generation unit that generates the decryption key based on the first distribution key and the second distribution key. The data processing apparatus may further include a decryption processing unit that decrypts the digital data string by applying permutation mapping using the decryption key.

また、前記暗号化装置は、前記取得された第1のデータファイルからメタデータを抽出するメタデータ抽出部と、前記暗号化されたデジタルデータ列に前記抽出されたメタデータを付与して前記第2のデータファイルを生成するメタデータ付与部と、をさらに備え得る。 The encryption device also includes a metadata extraction unit that extracts metadata from the acquired first data file, and a metadata extraction unit that adds the extracted metadata to the encrypted digital data string and adds the extracted metadata to the encrypted digital data string. The apparatus may further include a metadata adding section that generates the second data file.

さらに、別の観点に従う本発明は、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化する復号化装置であり得る。前記暗号鍵に対応する復号鍵を生成する復号鍵生成部と、前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出する復号化処理部と、前記算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部とを備え得る。ここで、前記復号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり得る。また、前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であり得る。 Furthermore, the present invention according to another aspect may be a decryption device that decrypts a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permutation relationship. . a decryption key generation unit that generates a decryption key corresponding to the encryption key; and a decryption key generation unit that generates a decryption key corresponding to the encryption key; a decryption processing unit that calculates at least one decryption array by applying permutation mapping using the decryption key, and a decrypted digital data string indicated by the calculated at least one decryption array; and an output control unit that performs control to output the second data file containing the data to the output destination. Here, the set of the decoding target array and the permutation mapping may be a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element. Further, the permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of the element of one of the unit keys in the decryption key, into the i-th element of the decryption array. It can be a binary operation that takes the value of the element of .

前記復号化処理部は、前記暗号化されたデジタルデータ列を分割して複数の前記所定の領域を設定する領域分割部と、前記複数の所定の領域のそれぞれに対応する復号化対象配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、複数の復号化配列のそれぞれを算出する演算部と、を備え得る。 The decryption processing unit includes an area dividing unit that divides the encrypted digital data string to set a plurality of predetermined areas, and an element of a decryption target array corresponding to each of the plurality of predetermined areas. The method may include a calculation unit that calculates each of a plurality of decryption arrays by applying the permutation mapping to the value using the decryption key.

前記領域分割部は、前記複数の所定の領域のそれぞれをさらに分割して新たな所定の領域を設定し得る。また、前記演算部は、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、新たな復号化配列を算出し得る。 The area dividing unit may further divide each of the plurality of predetermined areas to set a new predetermined area. Further, the calculation unit applies the permutation mapping to the previously calculated element value of the encrypted array corresponding to the new predetermined area using the decryption key. A decoding array can be calculated.

また、前記復号化処理部は、N重暗号化が適用された前記暗号化されたデジタルデータ列に対応して、前記領域分割部による所定の領域の設定及び前記演算部による復号化配列の算出を繰り返すように構成され得る。 Further, the decryption processing unit is configured to cause the area division unit to set a predetermined area and the calculation unit to calculate a decryption array corresponding to the encrypted digital data string to which N-fold encryption has been applied. may be configured to repeat.

また、前記復号化装置は、前記暗号鍵に基づく第1配布鍵を取得する第1配布鍵取得部と、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵に基づく第2配布鍵を取得する第2配布鍵取得部と、をさらに備え得る。ここで、前記第1配布鍵は、前記ユーザ鍵の逆写像であり、前記第2配布鍵は、前記暗号鍵と前記ユーザ鍵の逆写像とに基づいて生成され得る。そして、前記復号鍵生成部は、前記第1配布鍵と前記第2配布鍵とに基づいて、前記復号鍵とを生成し得る。 Further, the decryption device includes a first distribution key acquisition unit that acquires a first distribution key based on the encryption key, and a user key that is based on a user key that includes at least one unit key consisting of n elements having a permuted relationship. The apparatus may further include a second distribution key acquisition unit that acquires a second distribution key. Here, the first distribution key may be an inverse mapping of the user key, and the second distribution key may be generated based on the encryption key and the inverse mapping of the user key. The decryption key generation unit may generate the decryption key based on the first distribution key and the second distribution key.

さらに、別の観点に従う本発明は、コンピュータデバイスにおいて実行される、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法であり得る。前記方法は、前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であり得る。 Furthermore, the present invention according to another aspect may be an encryption method for encrypting a digital data string to be encrypted, which is executed in a computer device. The method includes obtaining a first data file including the digital data string to be encrypted, and generating an encryption key including at least one unit key consisting of n elements having a permutation relationship. and applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key. control to calculate at least one encrypted sequence and output a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination. may include. Here, the set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, It may be a binary operation that sets the value of the i-th element of the encryption target array, indicated by the element value Xi (iεn) of the unit key, to the value of the i-th element of the encryption array.

さらに、別の観点に従う本発明は、コンピュータデバイスにおいて実行される、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法であり得る。前記方法は、前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であり得る。 Furthermore, the present invention according to another aspect may be an encryption method for encrypting a digital data string to be encrypted, which is executed in a computer device. The method includes obtaining a first data file including the digital data string to be encrypted, and generating an encryption key including at least one unit key consisting of n elements having a permutation relationship. and applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key. control to calculate at least one encrypted sequence and output a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination. may include. Here, the set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, It may be a binary operation that sets the value of the i-th element of the encryption target array, indicated by the element value Xi (iεn) of the unit key, to the value of the i-th element of the encryption array.

さらに、別の観点に従う本発明は、コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法であり得る。前期方法は、前記暗号鍵に対応する復号鍵を生成することと、前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であり得る。 Furthermore, the present invention according to another aspect provides a method for decrypting a digital data string encrypted using a cryptographic key including at least one unit key consisting of n elements having a permutation relationship, executed in a computer device. It may be a decoding method for The first method includes the steps of: generating a decryption key corresponding to the encryption key; calculating at least one decryption array by applying permutation mapping using the generated decryption key; 2 data files to an output destination. Here, the set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, It may be a binary operation that sets the value of the i-th element of the encryption target array, indicated by the element value Xi (iεn) of the unit key, to the value of the i-th element of the encryption array.

さらに、別の観点に従う本発明は、コンピューティングデバイスに、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法を実現させるコンピュータプログラム又は当該プログラムを記録した記録媒体であり得る。前記暗号化方法は、前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であり得る。 Furthermore, the present invention according to another aspect may be a computer program that causes a computing device to implement an encryption method for encrypting a digital data string to be encrypted, or a recording medium on which the program is recorded. The encryption method includes obtaining a first data file including the digital data string to be encrypted, and generating an encryption key including at least one unit key consisting of n elements having a permutation relationship. and applying a permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key. control for calculating at least one encrypted sequence and outputting a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination. This may include performing. Here, the set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, It may be a binary operation that sets the value of the i-th element of the encryption target array, indicated by the element value Xi (iεn) of the unit key, to the value of the i-th element of the encryption array.

コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法を実現させるコンピュータプログラム又は当該プログラムを記録した記録媒体であり得る。前記復号化方法は、前記暗号鍵に対応する復号鍵を生成することと、前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み得る。ここで、前記暗号化対象配列と前記順列写像との組は、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であり得る。 A computer that realizes a decryption method for decrypting a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permuted relationship, which is executed in a computer device. It may be a program or a recording medium on which the program is recorded. The decryption method includes the steps of: generating a decryption key corresponding to the encryption key; and decoding element values of an array to be decrypted corresponding to at least one predetermined area constituting the encrypted digital data string. , calculating at least one decryption array by applying permutation mapping using the generated decryption key, and decrypting a decrypted digital data string indicated by the calculated at least one decryption array. The method may include controlling to output the second data file containing the second data file to the output destination. Here, the set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element, It may be a binary operation that sets the value of the i-th element of the encryption target array, indicated by the element value Xi (iεn) of the unit key, to the value of the i-th element of the encryption array.

なお、本明細書等において、「手段」(又は「部」)とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。 Note that in this specification and the like, "means" (or "unit") does not simply mean physical means, but also includes cases in which the functions of the means are realized by software. Further, the function of one means may be realized by two or more physical means, or the functions of two or more means may be realized by one physical means.

本発明によれば、計算負荷を低く抑えつつ、デジタルデータの強固かつ高速な暗号化/復号化処理を行うことができる暗号化/復号化技術が提供される。 According to the present invention, an encryption/decryption technique is provided that can perform robust and high-speed encryption/decryption processing of digital data while keeping the calculation load low.

また、本発明によれば、GPU上で演算を行うことに適した暗号化/復号化処理が提供される。 Further, according to the present invention, encryption/decryption processing suitable for performing calculations on a GPU is provided.

さらに本発明によれば、デジタルデータのファイルフォーマットが変更されることなく、該デジタルデータを暗号化することできる技術が提供される。 Further, according to the present invention, a technique is provided that can encrypt digital data without changing the file format of the digital data.

本発明の他の技術的特徴、目的、及び作用効果ないしは利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。 Other technical features, objects, and effects or advantages of the present invention will be made clear by the following embodiments described with reference to the accompanying drawings.

本発明の一実施形態に係るコンピュータシステムの一例を説明するためのブロックダイアグラムである。1 is a block diagram for explaining an example of a computer system according to an embodiment of the present invention. 本発明の一実施形態に係るコンテンツ管理装置の構成の一例を示すブロックダイアグラムである。1 is a block diagram showing an example of the configuration of a content management device according to an embodiment of the present invention. 本発明の一実施形態に係るシステムで使用されるデジタルデータを所定の領域に分割した分割領域を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining divided areas in which digital data used in a system according to an embodiment of the present invention is divided into predetermined areas. 本発明の一実施形態に係るコンテンツ管理装置による暗号化処理を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining encryption processing by a content management device according to an embodiment of the present invention. 本発明の一実施形態に係るコンテンツ管理装置による暗号化処理を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining encryption processing by a content management device according to an embodiment of the present invention. 本発明の一実施形態に係るシステムで使用されるデジタルデータの分割領域に基づく拡大領域を説明するための概念図である。FIG. 3 is a conceptual diagram for explaining an enlarged area based on divided areas of digital data used in a system according to an embodiment of the present invention. 本発明の一実施形態に係るコンテンツ管理装置による暗号化処理を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining encryption processing by a content management device according to an embodiment of the present invention. 本発明の一実施形態に係るコンテンツ管理装置における暗号化処理の一例を説明するフローチャートである。3 is a flowchart illustrating an example of encryption processing in a content management device according to an embodiment of the present invention. 本発明の一実施形態に係るシステムにおけるクライアントの構成の一例を示すブロックダイアグラムである。1 is a block diagram showing an example of the configuration of a client in a system according to an embodiment of the present invention. 本発明の一実施形態に係るシステムにおける暗号鍵及び復号鍵を説明するための概念図である。FIG. 2 is a conceptual diagram for explaining an encryption key and a decryption key in a system according to an embodiment of the present invention. 本発明の一実施形態に係るクライアントによる復号化処理を説明するための概念図である。FIG. 3 is a conceptual diagram for explaining decryption processing by a client according to an embodiment of the present invention. 本発明の一実施形態に係るクライアントにおける復号化処理の一例を説明するフローチャートである。3 is a flowchart illustrating an example of decryption processing in a client according to an embodiment of the present invention. 所定のファイルフォーマットのもとの画像の例を示す図である。FIG. 3 is a diagram illustrating an example of an original image in a predetermined file format. 図12Aに示す元画像に対して本発明に係る暗号化技術を適用することにより得られた暗号化画像の例を示す図である。12A is a diagram showing an example of an encrypted image obtained by applying the encryption technique according to the present invention to the original image shown in FIG. 12A. FIG. 図12Bに示す暗号化された本発明に係る復号化技術を適用することにより得られた復号化画像(もとの画像)の例を示す図である。12B is a diagram showing an example of a decrypted image (original image) obtained by applying the decryption technique according to the present invention to the encrypted image shown in FIG. 12B. FIG. 本発明に係る暗号化/復号化技術における暗号鍵及びユーザ鍵の一例を示す図である。FIG. 3 is a diagram showing an example of an encryption key and a user key in the encryption/decryption technology according to the present invention. 本発明の一実施形態に係るシステムにおけるコンピューティングデバイスの構成の一例を示す図である。1 is a diagram illustrating an example of a configuration of a computing device in a system according to an embodiment of the present invention.

以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本発明は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。 Embodiments of the present invention will be described below with reference to the drawings. However, the embodiments described below are merely examples, and there is no intention to exclude the application of various modifications and techniques not specified below. The present invention can be implemented in various ways (for example, by combining the embodiments) without departing from the spirit thereof. In addition, in the description of the drawings below, the same or similar parts are denoted by the same or similar symbols. The drawings are schematic and do not necessarily correspond to actual dimensions or proportions. The drawings may also include portions that differ in dimensional relationships and ratios.

[第1の実施形態]
本実施形態は、有限要素の多重配列から構成される、デジタルコンテンツとしてのデジタルデータ列を、「順列写像群」という概念を用いて、暗号化及び復号化する技術を開示する。以下では、まず、順列写像群について説明し、その後、順列写像群を用いた暗号化/復号化装置の例について説明する。
[First embodiment]
This embodiment discloses a technique for encrypting and decoding a digital data string as digital content, which is composed of a multiple array of finite elements, using the concept of "permutation mapping group." Below, the permutation mapping group will be explained first, and then an example of an encryption/decryption device using the permutation mapping group will be explained.

(群)
任意の集合Gと該集合G上の2項演算子μとの組が、一定の条件を満たす場合、該組(G,μ)を群という。つまり、μ:G×G→Gである(G,μ)が群であるとは、3つの条件、すなわち、(1)結合法則、(2)単位元の存在、及び(3)逆元の存在、を満たすことである。なお、集合Gは、2項演算子μに関して群であると称することもできる。
(group)
When a set of an arbitrary set G and a binary operator μ on the set G satisfies a certain condition, the set (G, μ) is called a group. In other words, (G, μ), where μ: G×G → G, is a group under three conditions: (1) associative law, (2) existence of identity element, and (3) Existence is fulfillment. Note that the set G can also be called a group with respect to the binary operator μ.

(結合法則)
任意の集合Gの元g,h,kに対して、μ(g,μ(h,k))=μ(μ(g,h),k)を満たす:
(∀g,h,k,∈G)[μ(g,μ(h,k))=μ(μ(g,h),k)] …式1
(Associative law)
For elements g, h, k of any set G, μ(g, μ(h, k)) = μ(μ(g, h), k):
(∀g, h, k, ∈G) [μ(g, μ(h, k)) = μ(μ(g, h), k)] …Equation 1

(単位元の存在)
任意の元gに対して、μ(g,e)=μ(e,g)=gを満たす元e∈Gが存在する:
(∃e∈G)(∀g∈G)[μ(g,e)=μ(e,g)=g] …式2
(Existence of identity element)
For any element g, there exists an element e∈G that satisfies μ(g, e) = μ(e, g) = g:
(∃e∈G) (∀g∈G) [μ(g,e)=μ(e,g)=g] …Formula 2

(逆元の存在)
任意の元g∈Gに対して、μ(g,x)=μ(x,g)を満たす元x∈Gが存在する:
(∀g∈G)(∃x∈G)[μ(g,x)=μ(x,g)=e] …式3
(Existence of inverse element)
For any element g∈G, there exists an element x∈G that satisfies μ(g,x) = μ(x,g):
(∀g∈G) (∃x∈G) [μ(g,x)=μ(x,g)=e] …Formula 3

(n-順列写像群)
n∈Nとする。ここで、Nは、0以上n以下の整数の集合である。該集合Nの要素xiが互いに排他的に並んだ数列をn-順列と称する。今、n-順列であるgについて、g=[x0,x1,...,xn]|xi≠xj,xi∈Nであるとし、該順列の集合をg∈Gとする。このとき、該順列集合の個数は、|G|=n!となる。例えば、n=3の場合の順列(3-順列)を例にとると、集合Gは、順列[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]のそれぞれを元に持つ集合であり、位数(集合の要素の数)は、6である。
(n-permutation mapping group)
Let n∈N. Here, N is a set of integers greater than or equal to 0 and less than or equal to n. A sequence in which the elements xi of the set N are mutually exclusive is called an n-permutation. Now, for g which is an n-permutation, g=[x0, x1, . .. .. , xn]|xi≠xj, xi∈N, and let the set of permutations be g∈G. At this time, the number of permutation sets is |G|=n! becomes. For example, taking the permutation (3-permutation) when n = 3, the set G is the permutation [0, 1, 2], [0, 2, 1], [1, 0, 2], [ 1, 2, 0], [2, 0, 1], and [2, 1, 0], and the order (number of elements in the set) is 6.

写像とは、一般に、ある集合の元のそれぞれを他の元のそれぞれに対応させることをいう。本開示において、n-順列を元とする集合をGとし、その任意の元g1,g2に対して、g2のi番目(i∈n)の要素が示す値(Xi)を取り出し、g1のXi番目の要素の値をi番目の要素の値に移動するという写像μを適用することで、元g3となるものをn-順列写像群(G,μ)と称することとする。以下では、4-順列について、順列集合Gの元g=[1,2,0,3],h=[3,0,1,2],k=[2,0,3,1]を例に、群の3つの条件について考える。 Mapping generally refers to making each element of a set correspond to each other element. In this disclosure, let G be a set based on n-permutations, and for arbitrary elements g1 and g2, extract the value (Xi) indicated by the i-th (i∈n) element of g2, and By applying the mapping μ that moves the value of the th element to the value of the i-th element, the element g3 is referred to as an n-permutation mapping group (G, μ). Below, for 4-permutations, the elements g = [1, 2, 0, 3], h = [3, 0, 1, 2], k = [2, 0, 3, 1] of the permutation set G are used as an example. Next, consider three conditions for groups.

上記式1から、μ(g,μ(h,k))=μ(g,[1,3,2,0])=[2,3,0,1]となる一方、μ(μ(g,h),k)=μ([3,1,2,0],k)=[2,3,0,1]となる。したがって、(G,μ)は、結合法則を満たす。 From Equation 1 above, μ(g, μ(h, k)) = μ(g, [1,3,2,0]) = [2,3,0,1], while μ(μ(g ,h),k)=μ([3,1,2,0],k)=[2,3,0,1]. Therefore, (G, μ) satisfies the associative law.

上記式2から、e=[0,1,2,3]について、μ(g,e)=[1,2,0,3]=gであり、また、μ(e,g)=[1,2,0,3]=gである。元gに限らず、任意の元に対して成立することから、元eは、単位元である。したがって、(G,μ)には、単位元が存在する。 From Equation 2 above, for e=[0,1,2,3], μ(g,e)=[1,2,0,3]=g, and μ(e,g)=[1 ,2,0,3]=g. The element e is an identity element because it holds true for any element, not just the element g. Therefore, (G, μ) has an identity element.

上記式3から、x=[2,0,1,3]は、μ(g,x)=[0,1,2,3]=eであり、また、μ(x,g)=[0,1,2,3]=eであるため、xは、gの逆元である。したがって、(G,μ)には、逆元が存在する。 From Equation 3 above, x=[2,0,1,3] is μ(g,x)=[0,1,2,3]=e, and μ(x,g)=[0 , 1, 2, 3] = e, so x is the inverse of g. Therefore, (G, μ) has an inverse element.

n-順列写像群は、一般に、非可換、すなわち、μ(g,h)≠μ(h,g)である。上記の例でいえば、μ(g,h)=[3,1,2,0]であるところ、μ(h,g)=「0,1,3,2]であり、非可換となっている。 The n-permutation mapping group is generally non-commutative, ie, μ(g,h)≠μ(h,g). In the above example, μ(g, h) = [3, 1, 2, 0], but μ(h, g) = “0, 1, 3, 2], which is non-commutative. It has become.

(n-順列写像を用いた暗号化/復号化の基本概念)
あるi∈N=[0,n]について、これらの順列写像を用いて暗号化及び復号化することを考える。上述のとおり、n-順列写像とは、n-順列fを用いた演算子f(i)を、n-順列fのi番目の値を返す写像である(以下では、n-順列写像を単に「順列写像」又は「写像」ということもある。)。例えば、暗号化しようとする値xについて、n-順列写像f(x)を作用させることで、暗号化された値yが得られる。これをy=f(x)と表す。また、fの逆元f-1を用いた逆写像f-1(y)をyに作用させることで、もとの値xに復号化することができる。つまり、x=f-1(y)である。
(Basic concept of encryption/decryption using n-permutation mapping)
Consider encrypting and decrypting a certain iεN=[0, n] using these permutation mappings. As mentioned above, the n-permutation mapping is a mapping of the operator f(i) using the n-permutation f to return the i-th value of the n-permutation f (below, the n-permutation mapping is simply referred to as (Also called "permutation mapping" or "mapping.") For example, by applying an n-permutation mapping f(x) to a value x to be encrypted, an encrypted value y can be obtained. This is expressed as y=f(x). Furthermore, by applying an inverse mapping f −1 (y) using the inverse element f −1 of f to y, it is possible to decode it to the original value x. That is, x=f −1 (y).

例えば、上述した順列集合Gの元g=[1,2,0,3]について、暗号化の場合、写像g(2)は、元gの2番目の要素の値を返すことを意味することから、g(2)=0となり、したがって、「2」は「0」に暗号化されたことになる。一方、復号化の場合、元gの逆元、すなわち、g-1=[2,0,1,3]を用いる。つまり、逆写像g-1(0)は、g-1の0番目の要素の値を返すことを意味するから、g-1(0)=2となり、正しく復号化されたことになる。 For example, for the element g = [1, 2, 0, 3] of the permutation set G mentioned above, in the case of encryption, the mapping g(2) means returning the value of the second element of the element g. Therefore, g(2)=0, and therefore "2" is encrypted to "0". On the other hand, in the case of decoding, the inverse element of element g, that is, g −1 = [2,0,1,3] is used. In other words, since the inverse mapping g −1 (0) means returning the value of the 0th element of g −1 , g −1 (0)=2, which means that the decoding is correct.

上記のことは、数字単体のみならず、数列に拡張することができる。例えば、暗号化の対象となる数列をX={x1,x2,…,xm},x∈Nと表す。そして、写像f(x)を数列Xの全ての要素に適用する、F:X→Xである写像F(X)について考える。 The above can be extended not only to single numbers but also to sequences of numbers. For example, a numerical sequence to be encrypted is expressed as X={x1, x2, . . . , xm}, x∈N. Then, consider a mapping F(X) where F:X→X, in which mapping f(x) is applied to all elements of the sequence X.

すなわち、まず、F(X)={f(x1),f(x2),…,f(xm)}を生成する。このような写像F(X)を用いることにより、もとの数列に対して暗号化することができる。この意味において、該写像は、暗号化写像ないしは暗号鍵ということができる。 That is, first, F(X)={f(x1), f(x2), . . . , f(xm)} is generated. By using such a mapping F(X), it is possible to encrypt the original number sequence. In this sense, the mapping can be called an encryption mapping or an encryption key.

一方、順列fの逆元f-1を用いた逆写像f-1(x)を、数列Xの全ての要素に適用した逆写像F-1(X)について考える。このとき、逆写像F-1(X)は、F-1={f-1(x1),f-1(x2),…,f-1(xm)}となる。 On the other hand, consider the inverse mapping F -1 (X) in which the inverse mapping f -1 ( x) using the inverse element f -1 of the permutation f is applied to all elements of the sequence X. At this time, the inverse mapping F -1 (X) becomes F -1 = {f -1 (x1), f -1 (x2), ..., f -1 (xm)}.

より具体的には、例えば、数列X={3,3,2,0,1}について、順列集合Gの写像G(X)を適用すると、G(X)={g(3),g(3),g(2),g(0),g(1)}={3,3,0,1,2}=Yとなる。この結果に対して、逆写像G-1(Y)は、G-1(Y)={g-1(3),g-1(3),g-1(0),g-1(1),g-1(2)}={3,3,2,0,1}となり、これは、正しく復号化されたことを意味する。 More specifically, for example, when applying the mapping G(X) of the permutation set G to the sequence X = {3, 3, 2, 0, 1}, G(X) = {g(3), g( 3), g(2), g(0), g(1)}={3,3,0,1,2}=Y. For this result, the inverse mapping G -1 (Y) is G -1 (Y)={g -1 (3), g -1 (3), g -1 (0), g -1 (1 ), g −1 (2)}={3, 3, 2, 0, 1}, which means that it was decoded correctly.

(多次元配列の暗号化及び復号化)
上記の考え方を、さらに、多重配列X∈Nに拡張する。本開示では、理解の容易のため、所定のファイルフォーマットないしはコンテナフォーマット(以下、単に、「ファイルフォーマット」という。)からなる画像などのデジタルデータを扱うための2次元配列X∈Nによる暗号化/復号化を説明するが、これに限られるものでなく、本開示に係る暗号化/復号化技術は、n次元配列に適用することができる。
(Encryption and decryption of multidimensional array)
The above idea is further extended to multiple arrays XεN n . In the present disclosure, for ease of understanding, encryption using a two-dimensional array /decryption will be described, but the encryption/decryption technology according to the present disclosure can be applied to n-dimensional arrays, but is not limited thereto.

今、配列Xのi行j列の要素をxijとする。このとき、上述した数列の暗号化と同様に、
ij=f(xij) …式4
とすることで、配列Xを暗号化することができる。
Now, assume that the element at the i-th row and the j-th column of the array X is x ij . At this time, similar to the encryption of the number sequence mentioned above,
y ij =f(x ij )...Formula 4
By doing so, the array X can be encrypted.

例えば、配列Xを、

Figure 0007389446000001
とする。これに、F=[2,0,1]を配列Xに作用させた写像F(X)は、
Figure 0007389446000002
となる。 For example, array X is
Figure 0007389446000001
shall be. The mapping F(X) by applying F=[2,0,1] to the array X is
Figure 0007389446000002
becomes.

反対に、F-1=[1,2,0]を配列Yに作用させた逆写像F-1(Y)は、

Figure 0007389446000003
となる。 On the other hand, the inverse mapping F -1 (Y) that applies F -1 = [1, 2, 0] to the array Y is
Figure 0007389446000003
becomes.

(多次元写像)
上述したように、n-順列写像を用いることにより、ある配列(例えばラスタライズされた画像を示すデジタルデータ列)Xを暗号化して配列Yを求めることができ、また、その逆写像を用いることにより、暗号化された配列Yを復号化して、もとの配列Xを求めることができる。本開示では、暗号化をより複雑化してセキュリティレベルを上げるために、異なる配列に対して異なる写像となるような多次元写像F(X)を考える。ここで、

Figure 0007389446000004
であり、その要素をfij(xij)と定義する。fijは、一次元の順列写像であり、したがって、F(X)は、3階のテンソルとなる。すなわち、
ij=fij(xij) …式8
となる。このようにすることで、暗号化及び復号化がより複雑化される。 (Multidimensional mapping)
As mentioned above, by using the n-permutation mapping, it is possible to encrypt a certain array (for example, a digital data string representing a rasterized image) X to obtain the array Y, and by using the inverse mapping, , the encrypted array Y can be decrypted to obtain the original array X. In the present disclosure, in order to make encryption more complex and raise the security level, a multidimensional mapping F(X) is considered that has different mappings for different arrays. here,
Figure 0007389446000004
, and its element is defined as f ij (x ij ). f ij is a one-dimensional permutation map, and therefore F(X) is a third-order tensor. That is,
y ij = f ij (x ij ) ...Formula 8
becomes. By doing so, encryption and decryption become more complicated.

例えば、w=h=2,n=3の場合の例について考える。

Figure 0007389446000005
に対して、
Figure 0007389446000006
を配列Xに適用した写像は、
Figure 0007389446000007
となる。 For example, consider the case where w=h=2 and n=3.
Figure 0007389446000005
For,
Figure 0007389446000006
The mapping that is applied to the array X is
Figure 0007389446000007
becomes.

反対に、

Figure 0007389446000008
を配列Yに適用した逆写像は、
Figure 0007389446000009
となる。 Conversely,
Figure 0007389446000008
The inverse mapping applied to the array Y is
Figure 0007389446000009
becomes.

なお、より一般化した多重配列X∈Nに対して写像を適用する場合は、F∈Nn+1,F:X→Xとなる。 Note that when the mapping is applied to a more generalized multiple array X∈N n , F∈N n+1 , F:X→X.

(写像の縮小化)
2次元配列である画像(幅w×高さh)に対する写像のテンソル要素のサイズは、w×h×nとなる。例えば、1024×1024ピクセル、8ビット階調の画像を暗号化する場合、非圧縮データのサイズは256MBに達し、これを扱うために非常に大きなサイズの配列が必要になる。そこで、配列サイズを小さくするために、縮小化した写像を導入する。本開示では、縮小化した写像を「カーネル」と称し(OSのカーネルとは区別される。)、特に、暗号化写像におけるカーネルを「暗号化写像カーネルK」と称するとともに、復号化写像におけるカーネルを「復号化写像カーネルK-1」と称するものとする。
(Reduction of mapping)
The size of a tensor element of a mapping for an image (width w x height h) that is a two-dimensional array is w x h x n. For example, when encrypting an image of 1024×1024 pixels and 8-bit gradation, the size of the uncompressed data reaches 256 MB, and a very large size array is required to handle this. Therefore, in order to reduce the array size, a reduced mapping is introduced. In this disclosure, the reduced mapping is referred to as a "kernel" (distinguished from the OS kernel), and in particular, the kernel in the encryption mapping is referred to as the "encryption mapping kernel K", and the kernel in the decryption mapping is referred to as the "encryption mapping kernel K". shall be referred to as "decoding mapping kernel K -1 ".

すなわち、カーネルの幅をk、高さをkとすると、このときのテンソル要素のサイズは、k×k×nとなる。例えば、k=k=64であり、n=256の場合、配列サイズは、64×64×256=約1MBとなる。 That is, if the width of the kernel is k w and the height is k h , then the size of the tensor element is k w × kh ×n. For example, if k w =k h =64 and n=256, the array size will be 64 x 64 x 256 = approximately 1 MB.

したがって、暗号化の対象となる画像を所定のサイズの領域ないしはセグメントに分割し、該分割した領域のそれぞれに対応するサイズのカーネルを適用することにより、配列サイズを小さくすることができ、メモリの消費を少なくすることができる。 Therefore, by dividing the image to be encrypted into regions or segments of a predetermined size and applying a kernel of a size corresponding to each of the divided regions, the array size can be reduced and the memory Consumption can be reduced.

(システムの概略構成)
次に、上述したn-順列写像を用いた暗号化及び復号化を実現するためのシステムについて、説明する。
図1は、本発明の一実施形態に係るコンピュータシステムの一例を説明するためのブロックダイアグラムである。同図に示すように、本開示のコンピュータシステム1は、例えば、通信ネットワーク10を介して相互に通信可能に接続される、コンテンツ管理装置20と、クライアント30とを含み構成され得る。
(Schematic system configuration)
Next, a system for implementing encryption and decryption using the above-mentioned n-permutation mapping will be described.
FIG. 1 is a block diagram for explaining an example of a computer system according to an embodiment of the present invention. As shown in the figure, the computer system 1 of the present disclosure may be configured to include, for example, a content management device 20 and a client 30 that are communicably connected to each other via a communication network 10.

通信ネットワーク10は、例えば、IPベースのコンピュータネットワークを含み構成される。本開示では、コンピュータネットワークは、IPネットワークによって構築されたインターネット("the Internet")を含む広い概念で用いられているが、IPネットワークに限らず、ノード間通信を可能とするあらゆるプロトコルのネットワークが適用可能である。したがって、通信ネットワーク10は、図示されていない無線基地局(例えばWi-Fi(登録商標))によって構築される無線ネットワークを含み得る。また、通信ネットワーク10は、移動通信システム規格に準拠した移動通信ネットワークを含み得る。 The communication network 10 includes, for example, an IP-based computer network. In this disclosure, the computer network is used as a broad concept including the Internet constructed by IP networks ("the Internet"), but is not limited to IP networks, and can include any network using any protocol that enables communication between nodes. Applicable. Therefore, the communication network 10 may include a wireless network established by a wireless base station (eg, Wi-Fi (registered trademark)) not shown. Furthermore, the communication network 10 may include a mobile communication network compliant with mobile communication system standards.

コンテンツ管理装置20は、デジタルコンテンツとしてのデータファイルを適正に管理するためのサーバシステムであり、例えば、データベース22とサーバ24とを含み構成され得る。コンテンツ管理装置20は、例えば、Webサイトを構成するWebサーバやクラウドサービスを提供するクラウドサーバであり得る。サーバ24とデータベース22とは、個々のコンピューティングデバイス上にそれぞれ構築されても良いし、物理的に1つの又は論理的に1つのコンピューティングデバイス上にそれぞれ構築されても良い。このようなコンピューティングデバイスのハードウェア構成は、図14に例示されるが、既知であるため、その詳細な説明は省略する。なお、図中、プロセッサモジュールは、CPU、コアプロセッサ、コプロセッサ、及び/又はGPU等の各種のプロセッサを含み得る。コンテンツ管理装置20は、例えば、通信ネットワーク10を介して、SSL等のセキュア通信技術を利用することによって、クライアント30及びその他の外部装置とのセキュアな通信セッションを構築し得る。 The content management device 20 is a server system for appropriately managing data files as digital content, and may include, for example, a database 22 and a server 24. The content management device 20 may be, for example, a web server that configures a website or a cloud server that provides cloud services. Server 24 and database 22 may each be built on separate computing devices, or each may be built on one physically or logically one computing device. The hardware configuration of such a computing device is illustrated in FIG. 14, but since it is known, detailed description thereof will be omitted. Note that in the figure, the processor module may include various processors such as a CPU, a core processor, a coprocessor, and/or a GPU. The content management device 20 can establish a secure communication session with the client 30 and other external devices via the communication network 10, for example, by using a secure communication technology such as SSL.

本開示において、コンテンツ管理装置20は、上述した暗号化及び復号化処理を実現する暗号化及び/又は復号化装置(以下「暗号化/復号化装置」といい、単に「暗号化装置」及び「復号化装置」ということもある。)として機能し得る。言い換えれば、コンテンツ管理装置20のプロセッサ(プロセッサモジュール)は、暗号化及び/又は復号化プログラム(以下「暗号化/復号化プログラム」といい、単に「暗号化プログラム」及び「復号化プログラム」ということもある。)を実行することにより、コンテンツ管理装置20を暗号化/復号化装置として機能させる。 In the present disclosure, the content management device 20 is an encryption and/or decryption device (hereinafter referred to as "encryption/decryption device", simply "encryption device" and " It can function as a "decoding device". In other words, the processor (processor module) of the content management device 20 has an encryption and/or decryption program (hereinafter referred to as "encryption/decryption program", simply referred to as "encryption program" and "decryption program"). ), the content management device 20 is made to function as an encryption/decryption device.

本開示では、コンテンツ管理装置20が、ラスタライズされた画像及び動画に関するデジタルデータを暗号化し、暗号化されたデジタルデータを復号化する例を説明する。とりわけ、コンテンツ管理装置20は、GPUの制御の下で、そのピクセルシェーダやコンピュートシェーダにより、暗号化及び復号化処理を実行し得るので、該処理が高速化される。 In this disclosure, an example will be described in which the content management device 20 encrypts digital data related to rasterized images and videos, and decrypts the encrypted digital data. In particular, since the content management device 20 can perform encryption and decryption processing using its pixel shader and compute shader under the control of the GPU, the processing speed is increased.

データベース22は、例えば、ドキュメントや、漫画、イラスト、写真、動画ないしは映像等の各種のデジタルコンテンツ(デジタルデータ)を所定のファイルフォーマットのデータファイルとして格納し得る。本開示では、デジタルコンテンツのファイルフォーマットは特に限定されるものでなく、既知のあらゆるファイルフォーマットを用いることができる。デジタルコンテンツのデータファイルは、本開示に係る暗号化技術により暗号化された状態でデータベース22に格納されても良い。また、データベース22は、例えば、デジタルコンテンツを利用するユーザに関するユーザ情報(ユーザアカウント及びパスワード)を管理し得る。さらに、データベース22は、例えば、ユーザごとに、各デジタルコンテンツを利用するための所定の暗号鍵及び/又は復号のための鍵(配布鍵)を管理し得る。 The database 22 can store various digital contents (digital data) such as documents, comics, illustrations, photographs, moving images, or videos as data files in a predetermined file format. In the present disclosure, the file format of digital content is not particularly limited, and any known file format can be used. The data file of the digital content may be stored in the database 22 in an encrypted state using the encryption technology according to the present disclosure. Further, the database 22 can manage, for example, user information (user accounts and passwords) regarding users who use digital content. Further, the database 22 can manage, for example, a predetermined encryption key and/or decryption key (distribution key) for each user to use each digital content.

サーバ24は、正当なユーザからのリクエストに対して、データベース22に格納されたデジタルコンテンツ及び/又は所定の配布鍵を提供し得る。正当なユーザとは、典型的には、コンテンツ管理装置20の運営主体から、所定のデジタルコンテンツを使用する権利を与えられたユーザであり、例えば、正規のユーザ登録手続を経たり、さらには、相当の対価を支払ったりしたユーザであり得る。 Server 24 may provide digital content stored in database 22 and/or predetermined distribution keys in response to requests from authorized users. A legitimate user is typically a user who has been given the right to use predetermined digital content by the operating entity of the content management device 20, and, for example, has undergone a formal user registration procedure, and furthermore, This may be a user who has paid a considerable amount of money.

クライアント30は、典型的には、ユーザによって使用されるコンピューティングデバイスである。クライアント30は、例えば、デスクトップコンピュータやノートブックコンピュータといったパーソナルコンピュータ、タブレット型コンピュータ、フィーチャフォン、スマートフォン、PDA、ハンドヘルド型コンピュータ、及びその他のインテリジェントデバイスであり得る。本開示では、クライアント30は、パーソナルコンピュータであるものとする。 Client 30 is typically a computing device used by a user. Client 30 can be, for example, a personal computer such as a desktop computer or notebook computer, a tablet computer, a feature phone, a smart phone, a PDA, a handheld computer, and other intelligent devices. In this disclosure, it is assumed that the client 30 is a personal computer.

すなわち、クライアント30は、各種のプロセッサ(例えば、CPU、コアプロセッサ、コプロセッサ、及び/又はGPU等)やチップセット及びメモリ、通信モジュール、ユーザインタフェース(例えばディスプレイないしはタッチパネル、スピーカー及びバイブレータ)等のハードウェア資源及びオペレーティングシステム(例えばカーネル、各種のデバイスドライバ、標準ライブラリ等を含み構成され得る。以下「OS」という。)のソフトウェア資源から構成される。クライアント30は、プロセッサの制御の下、OS上で各種のアプリケーションプログラムを実行し、所望の機能を実現する。本開示では、クライアント30は、アプリケーションプログラムの一つとして、暗号化されたデジタルデータを復号化するためのアプリケーションプログラム(以下「復号化プログラム」という。)を実装する。代替的に又は追加的に、クライアント30は、例えば、Webブラウザプログラムを実装し得る。復号化プログラムは、Webブラウザプログラムのプラグインプログラムとして実装されても良い。とりわけ、クライアント30は、GPUの制御の下で、そのピクセルシェーダにより、復号化処理を実行し得るので、該処理が高速化される。 That is, the client 30 includes hardware such as various processors (e.g., CPU, core processor, coprocessor, and/or GPU, etc.), chipsets and memories, communication modules, user interfaces (e.g., display or touch panel, speakers, and vibrators). It is composed of software resources of a software resource and an operating system (for example, it may include a kernel, various device drivers, standard libraries, etc.; hereinafter referred to as "OS"). The client 30 executes various application programs on the OS under the control of the processor to achieve desired functions. In the present disclosure, the client 30 implements an application program (hereinafter referred to as "decryption program") for decrypting encrypted digital data as one of the application programs. Alternatively or additionally, client 30 may implement a web browser program, for example. The decryption program may be implemented as a plug-in program for a web browser program. In particular, the client 30 can perform the decoding process with its pixel shader under the control of the GPU, thereby speeding up the process.

なお、本開示においては、デジタルコンテンツ配信の一般的な利用態様を想定して、コンテンツ管理装置20が、デジタルコンテンツの暗号化及び復号化を行い、ユーザのクライアント30が復号化のみを行うシステムとして説明されるが、これに限られるものではない。例えば、ユーザのクライアント30に、暗号化/復号化プログラムが実装され、クライアント30もまた、暗号化を行うように構成されても良い。 In the present disclosure, assuming a general usage mode of digital content distribution, the content management device 20 encrypts and decrypts digital content, and the user's client 30 only performs decryption. described, but not limited to. For example, an encryption/decryption program may be implemented in the user's client 30, and the client 30 may also be configured to perform encryption.

(暗号化装置の説明)
図2は、本発明の一実施形態に係るシステムにおけるコンテンツ管理装置の構成の一例を示すブロックダイアグラムである。同図では、暗号化装置として機能するコンテンツ管理装置20の各種の構成要素(コンポーネント)のうち、本開示に関連する構成要素が示されているが、当業者にとって自明である限り、図示されていない他の構成要素も含まれ得る。すなわち、同図に示すように、コンテンツ管理装置20は、デジタルコンテンツ取得部210と、メタデータ抽出部220と、鍵生成部230と、暗号化処理部240と、メタデータ付与部250と、出力制御部260とを含み構成され得る。当業者にとって自明なように、かかるコンポーネントは、ハードウェアコンポーネントそのもの、或いは、例えば、サーバ24のプロセッサが、OS上で暗号化プログラムを実行することにより、各種のハードウェア資源と協働して、実現され得る。
(Description of encryption device)
FIG. 2 is a block diagram showing an example of the configuration of a content management device in a system according to an embodiment of the present invention. In the figure, among the various components of the content management device 20 that functions as an encryption device, components related to the present disclosure are shown, but as far as it is obvious to a person skilled in the art, they are not shown. Other components may also be included. That is, as shown in the figure, the content management device 20 includes a digital content acquisition unit 210, a metadata extraction unit 220, a key generation unit 230, an encryption processing unit 240, a metadata addition unit 250, and an output The control unit 260 may be configured to include a control unit 260. As will be obvious to those skilled in the art, such a component may be a hardware component itself or, for example, a processor of the server 24 may cooperate with various hardware resources by executing an encryption program on the OS. It can be realized.

デジタルコンテンツ取得部210は、暗号化の対象となるデジタルコンテンツを、例えばデータベース22から取得する。或いは、デジタルコンテンツ取得部210は、クライアント30からアップロードされたデジタルコンテンツを取得し得る。一例として、デジタルコンテンツは、ラスタライズされた画像(例えば320×280ピクセル、8ビット階調の画像)のデータファイルであるが、これに限られるものではなく、ある情報に関するデジタルデータ列であれば良い。例えば、デジタルコンテンツは、動画像のデータファイルや音楽データファイルであり得る。また、デジタルコンテンツは、ドキュメントデータであり得る。また、医療用画像装置等で用いられるDiCOMフォーマットのデータファイルであり得る。他の例として、デジタルコンテンツは、ストリーミングデータであり得る。以下では、暗号化の対象となるデジタルコンテンツは、320×280ピクセル、8ビット階調のラスタライズされた画像データであるものとする。デジタルコンテンツ取得部210は、取得したデジタルコンテンツをメタデータ抽出部220に出力する。なお、本開示において、「データを出力する」といった表現は、システムないしはプログラム上、字句どおり、データを出力先に出力するといった意味の他、例えば、データを所定の変数に直接代入したり、ポインタ渡しをしたりするといった意味を含み、限定的に解釈されるべきではない。 The digital content acquisition unit 210 acquires digital content to be encrypted from the database 22, for example. Alternatively, the digital content acquisition unit 210 may acquire digital content uploaded from the client 30. As an example, the digital content is a data file of a rasterized image (for example, 320 x 280 pixels, 8-bit gradation image), but is not limited to this, and may be any digital data string related to certain information. . For example, the digital content may be a moving image data file or a music data file. Additionally, digital content may be document data. Further, it may be a data file in the DiCOM format used in medical imaging devices and the like. As another example, digital content may be streaming data. In the following, it is assumed that the digital content to be encrypted is rasterized image data of 320×280 pixels and 8-bit gradation. The digital content acquisition unit 210 outputs the acquired digital content to the metadata extraction unit 220. Note that in this disclosure, the expression "output data" does not literally mean outputting data to an output destination on a system or program, but also means, for example, directly assigning data to a predetermined variable or using a pointer. It includes the meaning of handing over something and should not be interpreted in a limited manner.

メタデータ抽出部220は、取得したデジタルコンテンツを検査し、デジタルコンテンツが所定のメタデータを含む場合には、デジタルコンテンツからメタデータを抽出・分離する。メタデータ抽出部220は、抽出したメタデータをメタデータ付与部250に出力する一方、デジタルコンテンツ本体(以下、特に区別する必要がない限り、単に「デジタルコンテンツ」と称する。)を暗号化処理部240に出力する。一例として、メタデータ抽出部220は、JPEGファイルフォーマットのデジタルコンテンツの場合、Exif形式で記述されたデータをメタデータとして抽出・分離する。他の例として、メタデータ抽出部220は、デジタルコンテンツに対して所定のファイルフォーマットを認識できない場合には、デジタルコンテンツ全体を暗号化処理部240に出力し、メタデータ付与部250にはNullデータを出力する。 The metadata extraction unit 220 inspects the acquired digital content, and if the digital content includes predetermined metadata, extracts and separates the metadata from the digital content. The metadata extracting unit 220 outputs the extracted metadata to the metadata adding unit 250, while encrypting the digital content body (hereinafter simply referred to as “digital content” unless there is a need to distinguish). 240. For example, in the case of digital content in the JPEG file format, the metadata extraction unit 220 extracts and separates data written in the Exif format as metadata. As another example, if the metadata extraction unit 220 cannot recognize a predetermined file format for the digital content, the metadata extraction unit 220 outputs the entire digital content to the encryption processing unit 240, and the metadata addition unit 250 includes null data. Output.

鍵生成部230は、本開示に係る暗号化/復号化処理を実現するために必要な各種の鍵を生成する。概略的には、鍵生成部230は、所定の鍵生成アルゴリズム(例えばシードに基づく乱数関数)に基づいて、暗号鍵F及びユーザ鍵Uをそれぞれ生成する。本開示では、暗号鍵Fは、暗号化写像カーネルKとして形成される。ユーザ鍵Uは、暗号化対象となるデジタルコンテンツを利用しようとする個々のユーザに対して割り当てられる鍵である。また、鍵生成部230は、暗号鍵Fとユーザ鍵Uとに基づいて、補助鍵Vを生成する。つまり、補助鍵Vは、ユーザ鍵Uに関連付けられた鍵である。また、ユーザ鍵U及び補助鍵Vは、ユーザに配布するための鍵である。一例として、鍵生成部230は、ユーザ鍵Uに基づいて、第1配布鍵D1を生成するとともに、補助鍵Vに基づいて、第2配布鍵D2を生成する。鍵生成部230の詳細については、後述する。 The key generation unit 230 generates various keys necessary to implement encryption/decryption processing according to the present disclosure. Roughly speaking, the key generation unit 230 generates an encryption key F and a user key U, respectively, based on a predetermined key generation algorithm (for example, a random number function based on a seed). In this disclosure, the cryptographic key F is formed as a cryptographic mapping kernel K. The user key U is a key assigned to each user who wishes to use digital content to be encrypted. Furthermore, the key generation unit 230 generates an auxiliary key V based on the encryption key F and the user key U. That is, the auxiliary key V is a key associated with the user key U. Further, the user key U and the auxiliary key V are keys to be distributed to users. As an example, the key generation unit 230 generates a first distribution key D1 based on the user key U, and generates a second distribution key D2 based on the auxiliary key V. Details of the key generation unit 230 will be described later.

暗号化処理部240は、鍵生成部230により生成された暗号化写像カーネルKに基づいて、デジタルコンテンツを暗号化する。概略的には、暗号化処理部240は、まず、デジタルコンテンツを所定のサイズの領域ないしはセグメントに分割し、その後、分割した領域(以下「分割領域」という。)を示す配列に暗号化写像カーネルKを適用することにより、暗号化配列を算出する。また、多重暗号化が適用される場合、暗号化処理部240は、隣接する複数の分割領域に基づいて拡大領域を設定し、拡大領域を示す配列に暗号化写像カーネルKを適用して、暗号化配列を算出することを繰り返す。本開示では、拡大領域は、隣接する複数の分割領域に基づいて設定されるものとするが、これに限られず、例えば、所定の幾何学的パターン(例えば市松模様パターン)に基づいて拡大領域が設定されても良い。暗号化処理部240は、算出した暗号化配列をメタデータ付与部250に出力する。暗号化処理部240の詳細については、後述する。 The encryption processing unit 240 encrypts the digital content based on the encryption mapping kernel K generated by the key generation unit 230. Generally speaking, the encryption processing unit 240 first divides the digital content into regions or segments of a predetermined size, and then applies an encryption mapping kernel to an array indicating the divided regions (hereinafter referred to as "divided regions"). By applying K, an encrypted sequence is calculated. Furthermore, when multiple encryption is applied, the encryption processing unit 240 sets an enlarged area based on a plurality of adjacent divided areas, applies the encryption mapping kernel K to the array indicating the enlarged area, and encrypts the area. Repeat the process of calculating the array. In the present disclosure, the enlarged region is set based on a plurality of adjacent divided regions; however, the enlarged region is not limited to this, and for example, the enlarged region is set based on a predetermined geometric pattern (for example, a checkered pattern). May be set. The encryption processing unit 240 outputs the calculated encryption sequence to the metadata adding unit 250. Details of the encryption processing unit 240 will be described later.

メタデータ付与部250は、算出された暗号化配列に、メタデータ抽出部220により抽出されたメタデータを付与することにより、もとのファイルフォーマットを復元する。メタデータ付与部250は、復元したファイルフォーマットの暗号化配列のデータセットを出力制御部260に出力する。メタデータ抽出部220からNullデータが与えられる場合、メタデータ付与部250は、暗号化処理部240から受け取った暗号化配列のデータセットをそのまま出力制御部260に出力する。 The metadata adding unit 250 restores the original file format by adding the metadata extracted by the metadata extracting unit 220 to the calculated encrypted sequence. The metadata adding unit 250 outputs the data set of the encrypted array of the restored file format to the output control unit 260. When Null data is provided from the metadata extraction unit 220, the metadata addition unit 250 outputs the encrypted array data set received from the encryption processing unit 240 as is to the output control unit 260.

出力制御部260は、受け取った各種のデータセットを任意の対応する出力先に出力する。例えば、出力制御部260は、算出された暗号化配列のデータセットを受け取ると、暗号化されたデジタルコンテンツのデータファイルとして、データベース22に格納されるように制御を行う。また、例えば、出力制御部260は、ユーザ鍵及び補助鍵を、それぞれ、ユーザ及びデジタルコンテンツに関連付けて、データベース22に格納されるように制御を行う。さらに、例えば、出力制御部260は、第1配布鍵及び第2配布鍵をクライアント30に送信するように制御を行う。 The output control unit 260 outputs the various data sets received to any corresponding output destination. For example, upon receiving the data set of the calculated encrypted sequence, the output control unit 260 controls the data set to be stored in the database 22 as an encrypted digital content data file. Further, for example, the output control unit 260 performs control so that the user key and the auxiliary key are stored in the database 22 in association with the user and the digital content, respectively. Further, for example, the output control unit 260 performs control to transmit the first distribution key and the second distribution key to the client 30.

ここで、鍵生成部230の詳細について説明する。同図に示すように、鍵生成部230は、例えば、暗号鍵生成部2310と、ユーザ鍵生成部2320と、補助鍵生成部2330とを含み構成され得る。さらに、鍵生成部230は、第1配布鍵生成部2340と、第2配布鍵生成部2350とを含み構成され得る。 Here, details of the key generation unit 230 will be explained. As shown in the figure, the key generation section 230 may include, for example, an encryption key generation section 2310, a user key generation section 2320, and an auxiliary key generation section 2330. Further, the key generation section 230 may include a first distribution key generation section 2340 and a second distribution key generation section 2350.

暗号鍵生成部2310は、上述したように、デジタルコンテンツを暗号化するための暗号鍵Fを生成する。暗号鍵Fは、複数の単位鍵の集合体であり、各暗号鍵Fは、例えば、0~255までの数字のそれぞれを排他的に並べた数列(すなわち、順列f=[f0,f1,…,f255])である。つまり、要素の値f0,f1,…,f255は、順列の関係にあるといえる。暗号鍵生成部2310は、例えば、所定のシードに基づいた乱数関数を用いて、このような数列を生成する。暗号鍵Fに係る順列の要素数は、ピクセルの8ビット階調値に対応している。また、暗号鍵Fの数は、後述するように、デジタルコンテンツの分割領域内の要素(すなわち、ピクセル)の数に対応している。例えば、デジタルコンテンツが64×64ピクセルの領域に分割される場合、暗号鍵Fは、64×64個である。このような暗号鍵Fは、配列サイズの縮減のために用いられる、暗号化写像カーネルKである。暗号化写像カーネルKは、複数の順列が配置された3Dテクスチャと捉えることもできる。本開示では、暗号化写像カーネルKは、暗号化対象となるデジタルコンテンツのデータファイルに対して例えば1つだけ生成されるが、これに限られず、画像を構成する1つ又は複数の分割領域に対して、1つの暗号化写像カーネルKが割り当てられても良い。暗号鍵生成部2310は、生成した暗号鍵F(すなわち、暗号化写像カーネルK)を暗号化処理部240及び補助鍵生成部2330にそれぞれ出力する。 As described above, the encryption key generation unit 2310 generates the encryption key F for encrypting digital content. The encryption key F is a collection of a plurality of unit keys, and each encryption key F is, for example, a numerical sequence in which each of the numbers from 0 to 255 is exclusively arranged (that is, the permutation f=[f0, f1,... , f255]). In other words, it can be said that the element values f0, f1, ..., f255 are in a permutation relationship. The encryption key generation unit 2310 generates such a number sequence using, for example, a random number function based on a predetermined seed. The number of elements in the permutation related to the encryption key F corresponds to the 8-bit tone value of the pixel. Furthermore, the number of encryption keys F corresponds to the number of elements (that is, pixels) within the divided areas of the digital content, as will be described later. For example, when digital content is divided into areas of 64x64 pixels, the number of encryption keys F is 64x64. Such a cryptographic key F is a cryptographic mapping kernel K used for array size reduction. The encryption mapping kernel K can also be regarded as a 3D texture in which a plurality of permutations are arranged. In the present disclosure, for example, only one encryption mapping kernel K is generated for the data file of the digital content to be encrypted, but the invention is not limited to this. For this, one cryptographic mapping kernel K may be assigned. The encryption key generation unit 2310 outputs the generated encryption key F (that is, the encryption mapping kernel K) to the encryption processing unit 240 and the auxiliary key generation unit 2330, respectively.

ユーザ鍵生成部2320は、デジタルコンテンツを利用しようとする個々のユーザに対して割り当てられるユーザ鍵Uを生成する。ユーザ鍵生成部2320は、例えば、データベース22に格納されているユーザ情報に従って、ユーザごとのユーザ鍵Uを生成し得る。ユーザ鍵Uもまた、複数の単位鍵の集合体であり、各単位鍵は、例えば、0~255までの数字のそれぞれを排他的に並べた数列(すなわち、順列u=[u0,u1,…,u255])である。ユーザ鍵生成部2320は、例えば、所定のシードに基づいた乱数関数を用いて、このような数列を生成する。順列の要素数は、ピクセルの8ビット階調値に対応している。また、ユーザ鍵Uを構成する単位鍵の数は、分割領域内の要素の数に対応している。ユーザ鍵Uは、暗号鍵Fに対応する鍵であるが、独立に(無関係)に生成される鍵である。ユーザ鍵生成部2320は、生成したユーザ鍵Uを補助鍵生成部2330と第1配布鍵生成部2340とにそれぞれ出力する。本開示では、ユーザごとに異なるユーザ鍵Uが生成されるものとして説明されるが、これに限られず、ユーザ鍵Uは、例えば、複数のユーザからなるユーザグループごとに割り当てられるものであっても良い。 The user key generation unit 2320 generates a user key U to be assigned to each user who wants to use digital content. The user key generation unit 2320 can generate a user key U for each user, for example, according to user information stored in the database 22. The user key U is also a collection of a plurality of unit keys, and each unit key is, for example, a numerical sequence in which each of the numbers from 0 to 255 is exclusively arranged (i.e., permutation u=[u0, u1,... , u255]). The user key generation unit 2320 generates such a number sequence using, for example, a random number function based on a predetermined seed. The number of elements in the permutation corresponds to the 8-bit tone value of the pixel. Further, the number of unit keys constituting the user key U corresponds to the number of elements within the divided area. The user key U is a key corresponding to the encryption key F, but is a key that is generated independently (irrelevantly). User key generation section 2320 outputs the generated user key U to auxiliary key generation section 2330 and first distributed key generation section 2340, respectively. In the present disclosure, a different user key U is generated for each user. However, the present disclosure is not limited to this, and the user key U may be assigned to each user group consisting of a plurality of users, for example. good.

第1配布鍵生成部2340は、生成されたユーザ鍵Uに基づいて、第1配布鍵D1を生成する。具体的には、第1配布鍵生成部2340は、生成されたユーザ鍵Uの逆写像鍵U-1を算出し、これを第1配布鍵D1として設定する。第1配布鍵生成部2340は、生成した第1配布鍵D1を補助鍵生成部2330及び出力制御部260に出力する。なお、本例では、第1配布鍵生成部2340は、コンテンツ管理装置20に設けられる態様が示されているが、第1配布鍵生成部2340は、クライアント30に設けられても良い。この場合、ユーザ鍵生成部2320は、第1配布鍵生成部2340に代わって、生成したユーザ鍵Uの逆写像鍵U-1を算出し得る。 The first distribution key generation unit 2340 generates a first distribution key D1 based on the generated user key U. Specifically, the first distribution key generation unit 2340 calculates the inverse mapping key U -1 of the generated user key U, and sets this as the first distribution key D1. The first distribution key generation section 2340 outputs the generated first distribution key D1 to the auxiliary key generation section 2330 and the output control section 260. Note that although in this example, the first distribution key generation section 2340 is provided in the content management device 20, the first distribution key generation section 2340 may be provided in the client 30. In this case, the user key generation unit 2320 can calculate the inverse mapping key U −1 of the generated user key U instead of the first distributed key generation unit 2340.

補助鍵生成部2330は、暗号鍵Fとユーザ鍵U(の逆写像U-1)とに基づいて、補助鍵Vを生成する。例えば、暗号鍵生成部2310は、暗号鍵Fと逆写像鍵U-1との2項演算を行うことにより、補助鍵Vを生成する。より具体的には、暗号鍵生成部2310は、逆写像U-1に対して、暗号鍵Fを用いて、順列写像を適用して、補助鍵F(V=U-1・F)を生成する。したがって、補助鍵Vもまた、0~255までの数字のそれぞれを排他的に並べた数列(すなわち、順列v=[v0,v1,…,v255])の集合体である。 The auxiliary key generation unit 2330 generates an auxiliary key V based on the encryption key F and the user key U (inverse mapping U −1 ). For example, the encryption key generation unit 2310 generates the auxiliary key V by performing a binary operation on the encryption key F and the inverse mapping key U -1 . More specifically, the encryption key generation unit 2310 applies a permutation mapping to the inverse mapping U −1 using the encryption key F to generate an auxiliary key F (V=U −1・F). do. Therefore, the auxiliary key V is also a collection of numerical sequences in which each of the numbers from 0 to 255 is exclusively arranged (ie, permutation v=[v0, v1, . . . , v255]).

第2配布鍵生成部230は、生成された補助鍵Vに基づいて、第2配布鍵D2を生成する。具体的には、第2配布鍵生成部230は、生成された補助鍵Vの逆写像鍵V-1を算出し、これを第2配布鍵D2として設定する。第2配布鍵生成部230は、生成した第2配布鍵D2を出力制御部260に出力する。なお、本例では、第2配布鍵生成部230は、コンテンツ管理装置20に設けられる態様が示されているが、第2配布鍵生成部230は、クライアント30に設けられても良い。 The second distribution key generation unit 230 generates a second distribution key D2 based on the generated auxiliary key V. Specifically, the second distribution key generation unit 230 calculates the inverse mapping key V -1 of the generated auxiliary key V, and sets this as the second distribution key D2. The second distribution key generation unit 230 outputs the generated second distribution key D2 to the output control unit 260. Note that although in this example, the second distribution key generation section 230 is provided in the content management device 20, the second distribution key generation section 230 may be provided in the client 30.

次に、暗号化処理部240の詳細について説明する。同図に示すように、暗号化処理部240は、例えば、領域分割部2410と、演算部2420と、拡大領域設定部2430とを含み構成され得る。 Next, details of the encryption processing section 240 will be explained. As shown in the figure, the encryption processing unit 240 may include, for example, an area dividing unit 2410, a calculation unit 2420, and an enlarged area setting unit 2430.

領域分割部2410は、取得したデジタルコンテンツを、図3に示すような、所定サイズの領域、例えば、幅w×高さhの領域に分割する。すなわち、領域分割部2410は、例えば、デジタルコンテンツが320×280ピクセルの画像であれば、これを64×64ピクセルの領域に分割する。これは、暗号化の対象となるデータのサイズを小さくすることにより、暗号化写像カーネルKの配列のサイズを小さくするためである。例えば、320×280ピクセル、8ビット階調値の(非圧縮)画像のサイズは、約90KB(=320×280×8/8)であるところ、配列要素の数n=256とすれば、配列のサイズは、約22.9MBとなる。一方、分割された領域の画像であれば、配列要素の数n=256として、配列のサイズは、約1MB(=64×64×256)となる。このことは、画像サイズが大きく、及び/又はカラー画像(RGB24ビット)であれば、その差はより顕著になる。なお、例えば、320×280ピクセルの画像の場合、64×64ピクセルで分割すると、高さ方向は余りが生じることとなる。この場合、高さ方向の分割数は、商より大きい最小の整数の値として、もとのサイズを超える部分のピクセルには、ゼロパディングにより、「0」が割り当てられる。領域分割部2410は、分割領域ごとのデータブロック(配列データ)を演算部2420に出力する。 The area dividing unit 2410 divides the acquired digital content into areas of a predetermined size, for example, an area of width w×height h, as shown in FIG. That is, for example, if the digital content is a 320×280 pixel image, the region dividing unit 2410 divides it into 64×64 pixel regions. This is to reduce the size of the array of the encryption mapping kernel K by reducing the size of the data to be encrypted. For example, the size of an (uncompressed) image with 320 x 280 pixels and 8-bit gradation value is approximately 90 KB (=320 x 280 x 8/8), and if the number of array elements n = 256, then The size of the file is approximately 22.9MB. On the other hand, in the case of an image of a divided area, the number of array elements n=256, and the size of the array is approximately 1 MB (=64×64×256). This difference becomes more noticeable when the image size is large and/or when the image is a color image (RGB 24 bits). Note that, for example, in the case of an image of 320×280 pixels, if the image is divided into 64×64 pixels, a remainder will occur in the height direction. In this case, the number of divisions in the height direction is the smallest integer value larger than the quotient, and pixels in the portion exceeding the original size are assigned "0" by zero padding. The region dividing section 2410 outputs data blocks (array data) for each divided region to the calculating section 2420.

演算部2420は、分割領域における各ピクセルの値(階調値)に対して、暗号化写像カーネルKをそれぞれ適用して、暗号化配列を算出する。すなわち、演算部2420は、式6に示したように、分割領域を示す配列Xの全ての要素(ピクセル)のそれぞれについて、暗号化写像カーネルKとしての順列fの順列写像F(X)を適用して、配列Yを算出する。 The calculation unit 2420 applies the encryption mapping kernel K to each pixel value (gradation value) in the divided area to calculate an encryption array. That is, as shown in Equation 6, the calculation unit 2420 applies permutation mapping F(X) of permutation f as encryption mapping kernel K to each of all elements (pixels) of array X indicating the divided area. Then, array Y is calculated.

なお、多重暗号化が適用される場合、暗号化処理部240は、領域を拡張しながら、所定回数の順列写像F(X)の適用を繰り返し、最終的に算出された配列Yを、多重暗号化配列Zとして、メタデータ付与部250に出力する。このように、暗号化処理部240が、領域を拡張しながら、所定回数の順列写像F(X)の適用を繰り返すので、隣接する要素どうしの値が同じであっても、その特徴が消されるため、復号化のヒントが第三者に把握されにくくなる。 Note that when multiple encryption is applied, the encryption processing unit 240 repeats application of permutation mapping F(X) a predetermined number of times while expanding the area, and applies the finally calculated array Y to multiple encryption. It is output to the metadata adding section 250 as an array Z. In this way, the encryption processing unit 240 repeats application of the permutation mapping F(X) a predetermined number of times while expanding the area, so even if the values of adjacent elements are the same, the feature is erased. Therefore, it becomes difficult for third parties to understand decryption hints.

理解の容易のため、2×2ピクセルの分割領域に対して3-順列写像を適用する例を、図4A及び4Bを用いて説明する。 For ease of understanding, an example in which a 3-permutation mapping is applied to a 2×2 pixel divided area will be described using FIGS. 4A and 4B.

図4A(a)に示すように、ある画像における2×2ピクセルの分割領域の各ピクセルの値を示す配列X及び暗号化写像カーネルKがあったとする。また、図中、暗号化写像カーネルKの#で始まる数字は、暗号化写像カーネルKの要素の番号を示している。 As shown in FIG. 4A(a), it is assumed that there is an array X indicating the value of each pixel in a 2×2 pixel divided area in a certain image and an encrypted mapping kernel K. Further, in the figure, the numbers starting with # of the encryption mapping kernel K indicate the numbers of the elements of the encryption mapping kernel K.

演算部2420は、まず、配列Xの最初の要素、すなわち、左上の「0」に着目する。このときの対応する暗号鍵は、暗号化写像カーネルKの左上の順列である(図中、ハッチングで示されている。以下同じ。)。演算部2420は、この要素の値「0」に従って、暗号化写像カーネルKにおける0番目の要素を参照すべき要素として(図中(i))、その要素の値「0」を配列Yの対応する要素の値に設定する(図中(ii))。 The calculation unit 2420 first focuses on the first element of the array X, that is, "0" at the upper left. The corresponding encryption key at this time is the upper left permutation of the encryption mapping kernel K (indicated by hatching in the figure; the same applies hereinafter). According to the value "0" of this element, the calculation unit 2420 sets the 0th element in the encryption mapping kernel K as the element to be referred to ((i) in the figure), and sets the value "0" of that element to the correspondence of the array Y. ((ii) in the figure).

続いて、図4A(b)に示すように、演算部2420は、配列Xの次の要素、すなわち、右上の「2」に着目する。このときの対応する暗号鍵は、暗号化写像カーネルKの右上の順列である。演算部2420は、この要素の値「2」に従って、該暗号鍵における2番目の要素を参照すべき要素として(図中(i))、その要素の値「2」を配列Yの対応する要素の値に設定する(図中(ii))。 Subsequently, as shown in FIG. 4A(b), the calculation unit 2420 focuses on the next element of the array X, that is, "2" at the upper right. The corresponding encryption key at this time is the upper right permutation of the encryption mapping kernel K. According to the value "2" of this element, the calculation unit 2420 sets the second element in the encryption key as the element to be referred to ((i) in the figure), and sets the value "2" of the element to the corresponding element of the array Y. Set to the value ((ii) in the figure).

続いて、図4B(a)に示すように、演算部2420は、配列Xの次の要素、すなわち、左下の「1」に着目する。同様に、演算部2420は、この要素の値「1」に従って、対応する暗号鍵における1番目の要素を参照すべき要素として(図中(i))、その要素の値「0」を配列Yの対応する要素の値に設定する(図中(ii))。 Subsequently, as shown in FIG. 4B(a), the calculation unit 2420 focuses on the next element of the array X, that is, "1" at the lower left. Similarly, according to the value "1" of this element, the calculation unit 2420 sets the value "0" of the first element in the corresponding encryption key as the element to be referred to ((i) in the figure) in the array Y. Set to the value of the corresponding element ((ii) in the figure).

同様にして、図4B(b)に示すように、演算部2420は、配列Xの右下の要素「0」に従って、対応する暗号鍵における0番目の要素を参照すべき要素として(図中(i))、その要素の値「2」を配列Yの対応する要素の値に設定する(図中(ii))。 Similarly, as shown in FIG. 4B(b), the calculation unit 2420 selects the 0th element in the corresponding encryption key as the element to be referenced (( i)), the value "2" of that element is set to the value of the corresponding element of array Y ((ii) in the figure).

以上のようにして、演算部2420は、分割領域における各ピクセルの値(階調値)を示す配列Xに対して、暗号化写像カーネルK中の対応する暗号鍵をそれぞれ適用して、配列Yを算出する。算出された配列Yは、多重暗号化が適用される場合、後述するように、順列写像F(X)が繰り返し適用され、これにより、最終的に、多重暗号化された配列Yとなる。 As described above, the calculation unit 2420 applies the corresponding encryption keys in the encryption mapping kernel K to the array X indicating the value (gradation value) of each pixel in the divided area, and Calculate. When multiple encryption is applied to the calculated array Y, permutation mapping F(X) is repeatedly applied as described later, and thereby the array Y finally becomes a multiple encryption array Y.

図2に戻り、拡大領域設定部2430は、暗号化された配列に対応する隣接する分割領域を含む拡大した領域(以下「拡大領域」という。)を設定する。拡大領域は、例えば、図5に示すように、64×64ピクセルの分割領域の配列を1つのブロックとした、2×2ブロックの領域である。同様に、拡大領域の余り部分のピクセルには、ゼロパディングにより、「0」が割り当てられる。拡大領域設定部2430は、設定した拡大領域に対応する配列(以下「拡大配列」という。)を演算部2420に出力する。 Returning to FIG. 2, the enlarged area setting unit 2430 sets an enlarged area (hereinafter referred to as "enlarged area") including adjacent divided areas corresponding to the encrypted array. For example, as shown in FIG. 5, the enlarged area is a 2x2 block area in which one block is an array of divided areas of 64x64 pixels. Similarly, pixels in the remainder of the enlarged area are assigned "0" by zero padding. The enlarged area setting unit 2430 outputs an array (hereinafter referred to as “enlarged array”) corresponding to the set enlarged area to the calculation unit 2420.

演算部2420は、拡大領域設定部2430から拡大配列を受け取ると、式6に示したように、拡大領域の配列Yにおける全ての要素について、順列写像F(Y)を適用して、重畳的に暗号化された配列Zを算出する。 When the arithmetic unit 2420 receives the enlarged array from the enlarged area setting unit 2430, it applies the permutation mapping F(Y) to all elements in the array Y of the enlarged area, as shown in Equation 6, and performs superposition in a superimposed manner. Calculate the encrypted array Z.

理解の容易のため、図4A及び4で示した例を前提に、拡大領域の配列に対して暗号化写像カーネルKを適用する例を、図6を用いて説明する。 For ease of understanding, an example in which the encryption mapping kernel K is applied to the array of enlarged regions will be described with reference to FIG. 6, based on the examples shown in FIGS. 4A and 4B .

図6に示すように、ある画像における2×2ピクセルの4つの分割領域に対応する4つの配列Xを考える。上述したように、演算部2420は、配列Xのそれぞれについて、暗号化写像カーネルKにおける各暗号鍵Fを適用し、4つの暗号化配列Yを算出する。 As shown in FIG. 6, consider four arrays X corresponding to four divided areas of 2×2 pixels in a certain image. As described above, the calculation unit 2420 applies each encryption key F in the encryption mapping kernel K to each of the arrays X, and calculates the four encryption arrays Y.

次に、拡大領域設定部2430は、4つの暗号化配列Yのそれぞれをブロックとして、2×2ブロックの拡張領域を作成する。続いて、演算部2420は、各ブロックにおける全ての要素について、暗号鍵による写像を適用にして、暗号化配列Zを算出する。 Next, the expansion area setting unit 2430 creates a 2×2 block expansion area using each of the four encrypted arrays Y as a block. Subsequently, the calculation unit 2420 calculates the encrypted array Z by applying the mapping using the encryption key to all the elements in each block.

より具体的には、演算部2420は、まず、左上の配列における左上の要素「0」に着目する。要素「0」は、左上の配列Xの左上にあるので、暗号鍵は、カーネルの左上の順列が用いられる。演算部2420は、この要素の値「0」に従って、対応する暗号鍵における0番目の要素「0」を配列の対応する位置の要素の値に設定する。同様に、演算部2420は、左上の配列Xにおける右上の要素「2」については、暗号鍵における2番目の右上の要素「2」を、左上の配列Xにおける左下の要素「」については、暗号鍵における0番目の左下の要素「0」を、左上の配列Xにおける右下の要素「」については、暗号鍵における番目の右下の要素「2」を、それぞれ、配列の対応する位置の要素の値に設定する。 More specifically, the calculation unit 2420 first focuses on the upper left element "0" in the upper left array X. Since element "0" is located at the upper left of the upper left array X, the upper left permutation of the kernel is used as the encryption key. The calculation unit 2420 sets the 0th element "0" in the corresponding encryption key to the value of the element at the corresponding position in the array Y according to the value "0" of this element. Similarly, the calculation unit 2420 calculates the second upper right element "2" in the encryption key for the upper right element "2" in the upper left array X, and the lower left element " 1 " in the upper left array X. , the 0th lower left element "0" in the encryption key, and the lower right element " 0 " in the upper left array X , the 0th lower right element "2" in the encryption key, respectively. Set to the value of the element at the corresponding position in Y.

同様に、右上の配列に関して、演算部2420は、左上の要素「0」について、右上の暗号鍵における0番目の要素「1」を、配列の対応する要素の値に設定する。同様に、演算部2420は、左下及び右下の配列Xに関して、対応する暗号鍵による写像を適用する。 Similarly, regarding the upper right array X , the calculation unit 2420 sets the 0th element "1" in the upper right encryption key to the value of the corresponding element in the array Y for the upper left element "0" . Similarly, the calculation unit 2420 applies mapping using the corresponding encryption keys to the lower left and lower right arrays X.

同様に、演算部2420は、配列Yそれぞれにおける全ての要素に関して、配列Yの位置に対応する暗号鍵による写像を適用する。この例では、右上の配列Zの要素の値は、右上の配列Yの要素の値が全て同じであるため、全て同じになる。そして、演算部2420は、上記の処理を暗号化の対象であるデジタルコンテンツにおける全ての拡大領域に対して行う。 Similarly, the calculation unit 2420 applies mapping using the encryption key corresponding to the position of the array Y to all elements in each array Y. In this example, the values of the elements in the upper right array Z are all the same because the values of the elements in the upper right array Y are all the same. Then, the calculation unit 2420 performs the above processing on all enlarged areas in the digital content to be encrypted.

図7は、本発明の一実施形態に係るコンテンツ管理装置における暗号化処理の一例を説明するフローチャートである。かかる処理は、例えば、コンテンツ管理装置20が、プロセッサ(プロセッサモジュール)の制御の下、暗号化プログラムを実行することにより、実現される。なお、かかる処理は、シーケンシャルに実行されても良いし、処理の結果に矛盾を生じない限り、並列又は並行に実行され得る。以下では、デジタルコンテンツは、画像データであるものとして説明する。 FIG. 7 is a flowchart illustrating an example of encryption processing in the content management device according to an embodiment of the present invention. Such processing is realized, for example, by the content management device 20 executing an encryption program under the control of a processor (processor module). Note that such processing may be performed sequentially, or may be performed in parallel or in parallel as long as there is no inconsistency in the results of the processing. In the following, digital content will be explained as image data.

同図示すように、コンテンツ管理装置20は、暗号化の対象となるデジタルコンテンツを、例えばデータベース22から取得する(S701)。或いは、コンテンツ管理装置20は、クライアント30からアップロードされたデジタルコンテンツを取得し得る。 As shown in the figure, the content management device 20 acquires digital content to be encrypted from, for example, the database 22 (S701). Alternatively, the content management device 20 may obtain digital content uploaded from the client 30.

続いて、コンテンツ管理装置20は、取得したデジタルコンテンツからメタデータを抽出し、メタデータとデジタルコンテンツ本体とに抽出する(S702)。抽出したメタデータは、一時的に、メモリ及び/又は作業ファイルに保持される。 Next, the content management device 20 extracts metadata from the acquired digital content, and extracts the metadata and the digital content itself (S702). Extracted metadata is temporarily retained in memory and/or work files.

次に、コンテンツ管理装置20は、デジタルコンテンツ本体を、所定サイズの領域、例えば、幅k×高さkの領域に分割する(S703)。上述したように、例えば、もとのデジタルコンテンツが320×280ピクセルの画像であれば、該画像は、64×64ピクセルの領域に分割される。なお、もとの画像のサイズが分割領域のサイズの整数倍でない場合には、もとの画像のサイズが分割領域のサイズの整数倍として扱うことができるように、もとの画像のサイズを超える部分にはゼロパディングがなされる。 Next, the content management device 20 divides the digital content body into regions of a predetermined size, for example, regions of width k w ×height k h (S703). As mentioned above, for example, if the original digital content is a 320x280 pixel image, the image is divided into 64x64 pixel regions. Note that if the size of the original image is not an integral multiple of the size of the divided area, the size of the original image is changed so that the size of the original image can be treated as an integral multiple of the size of the divided area. The portion exceeding the limit is zero padded.

コンテンツ管理装置20は、次に、N重暗号化を行うために、カウンタCOUNT(ただし、COUNT≦N)に「1」をセットする(S704)。なお、本例では、N=2とする。続いて、コンテンツ管理装置20は、分割領域における各ピクセルに対する暗号鍵に基づく暗号化写像カーネルKを生成する(S705)。例えば、各暗号鍵は、ピクセルの8ビット階調値に対応するように、0~255までの数字のそれぞれが排他的にランダムに並べられた数列(すなわち、順列f=[f0,f1,…,f255])である。 Next, the content management device 20 sets a counter COUNT (where COUNT≦N) to “1” in order to perform N-fold encryption (S704). Note that in this example, N=2. Subsequently, the content management device 20 generates an encryption mapping kernel K based on the encryption key for each pixel in the divided area (S705). For example, each cryptographic key consists of an exclusively randomly ordered sequence of numbers from 0 to 255 (i.e., permutation f=[f0, f1,... , f255]).

次に、コンテンツ管理装置20は、分割領域における各要素(すなわち、ピクセル)の値に対して、式6に示したように、対応する暗号鍵による順列写像を適用し、暗号化配列を算出する(S706)。コンテンツ管理装置20は、全ての分割領域について、暗号化写像カーネルKによる順列写像を適用する。 Next, the content management device 20 applies permutation mapping using the corresponding encryption key to the value of each element (i.e., pixel) in the divided area, as shown in Equation 6, and calculates an encryption array. (S706). The content management device 20 applies permutation mapping using the encryption mapping kernel K to all divided areas.

暗号化写像カーネルKによる順列写像の適用後、コンテンツ管理装置20は、カウンタCOUNTの値を1つインクリメントし、(S707)、N重暗号化が完了したか否かを判定する(S708)。本例の場合、カウンタCOUNTの値がN=2を超えていないため(S708のNo)、コンテンツ管理装置20は、2回目の暗号化を行うため、暗号化された分割領域の配列のそれぞれを要素にした拡大領域を設定し(S709)、S706の処理に戻る。 After applying the permutation mapping by the encryption mapping kernel K, the content management device 20 increments the value of the counter COUNT by one (S707), and determines whether the N-fold encryption is completed (S708). In this example, since the value of the counter COUNT does not exceed N=2 (No in S708), the content management device 20 stores each of the arrays of encrypted divided areas in order to perform the second encryption. The enlarged area made into an element is set (S709), and the process returns to S706.

そして、コンテンツ管理装置20は、各拡大領域に対応する拡大配列に対して、暗号化写像カーネルKにおける対応する暗号鍵による順列写像をそれぞれ適用して、暗号化配列を算出する(S706)。コンテンツ管理装置20は、同様に、カウンタの値を1つインクリメントし、(S707)、N重暗号化が完了したか否かを判定する(S708)。この場合、カウンタCOUNTの値がN=2を超えるため、N重暗号化処理を終了する(S708のYes)。続いて、コンテンツ管理装置20は、一時的に記憶しておいたメタデータを読み出し、算出された全ての暗号化配列に基づくデータに、該メタデータを付与し(S710)、該メタデータが付与されたデータを暗号化されたデジタルコンテンツとして出力する(S711)。 Then, the content management device 20 calculates an encrypted array by applying permutation mapping using the corresponding encryption key in the encrypted mapping kernel K to the enlarged array corresponding to each enlarged area (S706). Similarly, the content management device 20 increments the value of the counter by one (S707), and determines whether the N-fold encryption is completed (S708). In this case, since the value of the counter COUNT exceeds N=2, the N-fold encryption process ends (Yes in S708). Next, the content management device 20 reads the temporarily stored metadata and adds the metadata to all the calculated data based on the encrypted sequence (S710). The encrypted data is output as encrypted digital content (S711).

以上のように、コンテンツ管理装置20は、デジタルコンテンツとしてのデジタルデータを取得すると、これを上述したn-順列写像を用いて暗号化し、暗号化されたデジタルコンテンツを出力し得る。本開示に係る暗号化技術では、デジタルコンテンツからメタデータを抽出したデータ本体に対して、暗号化処理を行い、その後、抽出したメタデータを、暗号化されたデータに付与しているので、暗号化処理後においても、そのファイルフォーマットは変更されない(そのまま維持される)。したがって、デジタルコンテンツのファイルフォーマットが例えばPNG(Portable Network Graphics)である場合に、暗号化されたデジタルコンテンツは、PNGに対応したビューアにより解釈可能であるが、表示された画像は、ランダムな多数の点が現れたスノーノイズ(いわゆる砂嵐)様の画像となり、もとの画像が認識できない(図12A及び12B参照)。 As described above, when the content management device 20 acquires digital data as digital content, it can encrypt it using the above-mentioned n-permutation mapping and output the encrypted digital content. The encryption technology according to the present disclosure performs encryption processing on the data body from which metadata has been extracted from digital content, and then adds the extracted metadata to the encrypted data. Even after the conversion process, the file format remains unchanged (maintains as is). Therefore, when the file format of digital content is, for example, PNG (Portable Network Graphics), the encrypted digital content can be interpreted by a PNG-compatible viewer, but the displayed image is This results in a snow noise (so-called sandstorm)-like image in which dots appear, and the original image cannot be recognized (see FIGS. 12A and 12B).

このように、本開示に係る暗号化技術によれば、ファイルフォーマットは変更されないので、例えば、HTMLスクリプトのページ内にリンクにより埋め込まれる画像を暗号化することにより、ブラウザ上に、HTMLに基づくページを表示させる一方、そこに埋め込まれた画像は、復号化されるまで認識できない状態で表示させるといった提供が可能になる。 As described above, according to the encryption technology according to the present disclosure, the file format is not changed, so for example, by encrypting an image embedded by a link in an HTML script page, an HTML-based page can be created on the browser. It is now possible to display the image embedded therein, while displaying the embedded image in an unrecognizable state until it is decoded.

コンテンツ管理装置20は、暗号化処理に対応した復号化処理を行う復号化装置としても機能し得る。復号化処理については、クライアント30を例にして以下に述べる。 The content management device 20 can also function as a decryption device that performs decryption processing corresponding to encryption processing. The decoding process will be described below using the client 30 as an example.

(復号化装置の説明)
図8は、本発明の一実施形態に係るシステムにおけるクライアントの構成の一例を示すブロックダイアグラムである。同図では、クライアント30の各種の構成要素(コンポーネント)のうち、本開示に関連する構成要素が示されているが、当業者にとって自明である限り、図示されていない他の構成要素も含まれ得る。すなわち、同図に示すように、クライアント30は、例えば、デジタルコンテンツ取得部310と、鍵取得部320と、メタデータ抽出部330と、復号鍵生成部340と、復号化処理部350と、メタデータ付与部360と、出力制御部370とを含み構成され得る。当業者にとって自明なように、かかるコンポーネントは、ハードウェアコンポーネントそのもの、或いは、例えば、サーバのプロセッサが、OS上で暗号化プログラムを実行することにより、各種のハードウェア資源と協働して、実現され得る。
(Description of decoding device)
FIG. 8 is a block diagram showing an example of the configuration of a client in a system according to an embodiment of the present invention. Of the various components of the client 30, those related to the present disclosure are shown in the figure, but other components not shown are also included as far as it is obvious to a person skilled in the art. obtain. That is, as shown in FIG. It may be configured to include a data provision section 360 and an output control section 370. As will be obvious to those skilled in the art, such components can be realized by the hardware components themselves, or by the processor of a server cooperating with various hardware resources, for example by executing an encryption program on the OS. can be done.

デジタルコンテンツ取得部310は、本開示に係る暗号化技術に従って暗号化されたデジタルコンテンツを、例えば、図示しないストレージデバイス上のファイルシステムから取得する。典型的には、復号化処理に先立ち、暗号化されたデジタルコンテンツは、通信ネットワーク10を介して、コンテンツ管理装置20からダウンロードされ、クライアント30のファイルシステムに格納されている。一例として、ユーザは、Webブラウザを用いて、Webサイトとしてのコンテンツ管理装置20にアクセスし、例えば所定のユーザ認証を受けた後、暗号化されたデジタルコンテンツをダウンロードし、ファイルシステムに保存する。 The digital content acquisition unit 310 acquires digital content encrypted according to the encryption technology according to the present disclosure from, for example, a file system on a storage device (not shown). Typically, prior to the decryption process, the encrypted digital content is downloaded from the content management device 20 via the communication network 10 and stored in the file system of the client 30. As an example, a user accesses the content management device 20 as a website using a web browser, receives predetermined user authentication, downloads encrypted digital content, and saves it in a file system.

鍵取得部320は、暗号化されたデジタルコンテンツを復号化するために配布された鍵(以下「配布鍵」という。)を、例えば、図示しないストレージデバイス上のファイルシステムから取得する。本開示では、配布鍵は、例えば、第1配布鍵と第2配布鍵とのペアで構成され、したがって、鍵取得部320は、第1配布鍵取得部3210と、第2配布鍵取得部3220とを含み構成され得る。上述したように、第1配布鍵D1は、ユーザ鍵Uの逆写像U-1であり、第2配布鍵D2は、補助鍵Vの逆写像V-1である。なお、ユーザ鍵U及び補助鍵Vがそのまま配布鍵としてユーザに配布される態様にあっては、第1配布鍵取得部3210及び第2配布鍵取得部3220は、受け取った配布鍵の逆元をそれぞれ算出することにより、第1配布鍵D1及び第2配布鍵D2を取得する。配布鍵取得部320は、例えば、第1配布鍵と第2配布鍵とを同時に取得しても良いし、別々に取得しても良い。典型的には、復号化処理に先立ち、配布鍵は、通信ネットワーク10を介して、コンテンツ管理装置20からダウンロードされ、クライアント30のファイルシステムに格納されている。例えば、ユーザは、Webブラウザを介して、Webサイトとしてのコンテンツ管理装置20にアクセスし、例えば所定のユーザ認証を受けた後、配布鍵をダウンロードし、ファイルシステムに保存する。或いは、ユーザは、メーラーを介して、復号鍵がアーカイブされた添付ファイルを含むメール受信し、該添付ファイルをファイルシステムに保存する。他の形態として、配布鍵は、例えば、USBメモリデバイスやドングルによってユーザに配布されても良い。 The key acquisition unit 320 acquires a distributed key (hereinafter referred to as "distributed key") for decrypting encrypted digital content from, for example, a file system on a storage device (not shown). In the present disclosure, the distribution key is composed of, for example, a pair of a first distribution key and a second distribution key, and therefore, the key acquisition unit 320 includes a first distribution key acquisition unit 3210 and a second distribution key acquisition unit 3220. It may be configured to include. As described above, the first distribution key D1 is the inverse mapping U -1 of the user key U, and the second distribution key D2 is the inverse mapping V -1 of the auxiliary key V. Note that in a mode in which the user key U and the auxiliary key V are distributed to users as distribution keys as they are, the first distribution key acquisition unit 3210 and the second distribution key acquisition unit 3220 calculate the inverse origin of the received distribution key. By calculating each, a first distribution key D1 and a second distribution key D2 are obtained. For example, the distribution key acquisition unit 320 may acquire the first distribution key and the second distribution key simultaneously or separately. Typically, prior to the decryption process, the distribution key is downloaded from the content management device 20 via the communication network 10 and stored in the file system of the client 30. For example, a user accesses the content management device 20 as a website via a web browser, receives predetermined user authentication, downloads the distribution key, and saves it in the file system. Alternatively, the user receives an email containing an attached file with an archived decryption key via a mailer, and saves the attached file in the file system. Alternatively, the distribution key may be distributed to users, for example by a USB memory device or dongle.

メタデータ抽出部330は、取得したデジタルコンテンツを検査し、デジタルコンテンツが所定のメタデータを含む場合には、デジタルコンテンツからメタデータを抽出する。メタデータ抽出部330は、抽出したメタデータをメタデータ付与部360に出力する一方、デジタルコンテンツ本体を復号化処理部350に出力する。 The metadata extraction unit 330 inspects the acquired digital content, and if the digital content includes predetermined metadata, extracts the metadata from the digital content. The metadata extracting unit 330 outputs the extracted metadata to the metadata adding unit 360, and outputs the digital content itself to the decryption processing unit 350.

復号鍵生成部340は、本開示に係る復号化処理を実現するために必要な復号鍵を生成する。すなわち、復号鍵生成部340は、第1配布鍵D1と第2配布鍵D2とに基づいて、復号鍵F-1を生成する。より具体的には、復号鍵生成部340は、第2配布鍵D2(すなわち、補助鍵Vの逆写像V-1)に対して、第1配布鍵D1(すなわち、ユーザ鍵Uの逆写像U-1)を用いて、順列写像を適用して、復号鍵F-1(すなわち、F-1=V-1・U-1)生成する。これまでの説明から明らかなように、復号鍵F-1もまた、0~255までの数字のそれぞれを排他的に並べた数列(順列)の集合体である。また、復号鍵F-1は、復号化写像カーネルK-1として形成される。 The decryption key generation unit 340 generates a decryption key necessary to implement the decryption process according to the present disclosure. That is, the decryption key generation unit 340 generates the decryption key F -1 based on the first distribution key D1 and the second distribution key D2. More specifically, the decryption key generation unit 340 generates the first distribution key D1 (that is, the inverse mapping U of the user key U) with respect to the second distribution key D2 (that is, the inverse mapping V −1 of the auxiliary key V). -1 ) and apply permutation mapping to generate a decryption key F -1 (ie, F -1 =V -1 ·U -1 ). As is clear from the above description, the decryption key F -1 is also a collection of numerical sequences (permutations) in which each of the numbers from 0 to 255 is arranged exclusively. Also, the decryption key F -1 is formed as a decryption mapping kernel K -1 .

復号化処理部350は、復号鍵生成部340により生成された復号化写像カーネルに基づいて、暗号化されたデジタルコンテンツを復号化する。概略的には、復号化処理部350は、まず、暗号化されたデジタルコンテンツを所定のサイズの複数の領域に分割し、その後、各分割領域を示す配列に復号化写像カーネルを適用することにより、復号化配列を算出する。また、多重暗号化が適用されている場合、復号化処理部350は、各分割領域をさらに分割した分割領域を設定し、該分割領域を示す配列に暗号化写像カーネルKを適用して、復号化配列を算出することを繰り返す。復号化処理部350は、算出した復号化配列をメタデータ付与部360に出力する。暗号化処理部240は、例えば、領域分割部3510と、演算部3520とを含み構成され得る。 The decryption processing unit 350 decrypts the encrypted digital content based on the decryption mapping kernel generated by the decryption key generation unit 340. Generally speaking, the decryption processing unit 350 first divides encrypted digital content into a plurality of regions of a predetermined size, and then applies a decryption mapping kernel to an array representing each divided region. , calculate the decoding array. Furthermore, when multiple encryption is applied, the decryption processing unit 350 sets divided regions by further dividing each divided region, applies the encryption mapping kernel K to the array indicating the divided regions, and decrypts the divided regions. Repeat the process of calculating the array. The decoding processing unit 350 outputs the calculated decoding array to the metadata adding unit 360. The encryption processing unit 240 may include, for example, a region division unit 3510 and a calculation unit 3520.

領域分割部3510は、取得したデジタルコンテンツを、所定サイズの領域、すなわち、上述した暗号化処理における拡大領域のサイズの領域に分割する。すなわち、復号化処理は、暗号化処理の逆の手順をとることから、分割領域は、暗号化処理時の拡大領域のサイズの領域となる。例えば、暗号化処理時の分割領域が、64×64ピクセルであり、これを1ブロックとして、拡大領域は、縦横2×2ブロックであるものとすれば、復号化処理時の最初の分割領域は、128×128ピクセルとなる。 The area dividing unit 3510 divides the acquired digital content into areas of a predetermined size, that is, areas of the size of the enlarged area in the encryption process described above. That is, since the decryption process takes the reverse procedure of the encryption process, the divided area becomes an area of the size of the enlarged area during the encryption process. For example, if the divided area during encryption processing is 64 x 64 pixels, and this is taken as one block, and the enlarged area is 2 x 2 blocks vertically and horizontally, then the first divided area during decryption processing is , 128×128 pixels.

演算部3520は、分割領域のブロックごとに、該ブロックに対応する配列の各ピクセルの値に対して、復号化写像カーネルK-1における対応する復号鍵をそれぞれ適用して、復号化配列を算出する。すなわち、演算部3520は、式6に示したように、分割領域を示す配列Zの全ての要素(ピクセル)のそれぞれについて、順列逆写像F-1(X)を適用して、配列Yを算出する。 For each block of the divided area, the calculation unit 3520 calculates a decryption array by applying the corresponding decryption key in the decryption mapping kernel K -1 to the value of each pixel in the array corresponding to the block. do. That is, as shown in Equation 6, the calculation unit 3520 calculates the array Y by applying permutation inverse mapping F −1 (X) to each of all the elements (pixels) of the array Z indicating the divided area. do.

なお、多重暗号化が適用されている場合、復号化処理部350は、領域を分割しながら、定回数の順列逆写像F-1(X)の適用を繰り返し、最終的に算出された配列Yを、復号化されたもとの配列X(復号化されたデジタルコンテンツ)として、メタデータ付与部250に出力する。 Note that when multiple encryption is applied, the decryption processing unit 350 repeats application of permutation inverse mapping F −1 (X) a fixed number of times while dividing the area, and finally calculates the array Y is output to the metadata adding unit 250 as the decoded original array X (decoded digital content).

メタデータ付与部360は、算出された復号化配列に、メタデータ抽出部330により抽出されたメタデータを付与することにより、もとのファイルフォーマットを復元する。メタデータ付与部360は、復元したファイルフォーマットの復号化配列のデータセットを出力制御部260に出力する。メタデータ抽出部330からNullデータが与えられる場合、メタデータ付与部360は、復号化処理部350から受け取った復号化配列のデータセットをそのまま出力制御部370に出力する。 The metadata adding unit 360 restores the original file format by adding the metadata extracted by the metadata extracting unit 330 to the calculated decoding sequence. The metadata adding unit 360 outputs the data set of the decoding array of the restored file format to the output control unit 260. When Null data is provided from the metadata extracting unit 330, the metadata adding unit 360 outputs the data set of the decrypted array received from the decrypting unit 350 as it is to the output control unit 370.

出力制御部370は、受け取った復号化配列のデータセットを任意の出力先に出力する。例えば、出力制御部370は、受け取った復号化配列のデータセットをデータファイルとしてファイルシステムに格納されるように制御を行う。或いは、出力制御部370は、復号化配列のデータセットをビューアに出力し、これにより、クライアント30のビューアは、データセットを解釈して、画像として表示し得る。 The output control unit 370 outputs the received data set of the decoded array to an arbitrary output destination. For example, the output control unit 370 controls the received data set of the decoded array to be stored in the file system as a data file. Alternatively, the output control unit 370 outputs the data set of the decoded array to the viewer, so that the viewer of the client 30 can interpret and display the data set as an image.

図9は、本発明の一実施形態に係るシステムにおける暗号鍵及び復号鍵を説明するための概念図である。 FIG. 9 is a conceptual diagram for explaining an encryption key and a decryption key in a system according to an embodiment of the present invention.

同図(a)を参照して、上述したように、コンテンツ管理装置20は、暗号鍵F及びユーザ鍵Uをそれぞれ生成し、暗号鍵F及びユーザ鍵Uの逆像U-1Vに基づいて補助鍵Vを生成する。さらに、コンテンツ管理装置20は、ユーザ鍵Uの逆像U-1及び補助鍵Vの逆像V-1を、それぞれ、第1配布鍵D1及び第2配布鍵D2として、クライアント30に配布する。 As described above with reference to FIG. Generate an auxiliary key V. Further, the content management device 20 distributes the inverse image U -1 of the user key U and the inverse image V -1 of the auxiliary key V to the client 30 as a first distribution key D1 and a second distribution key D2, respectively.

一方、クライアント30は、第1配布鍵D1と第2配布鍵D2とに基づいて、復号鍵F-1(復号化写像カーネルK-1)を算出する。 On the other hand, the client 30 calculates a decryption key F −1 (decryption mapping kernel K −1 ) based on the first distribution key D1 and the second distribution key D2.

また、同図(b)に示すように、第1配布鍵D1及び第2配布鍵D2は、クライアント30側において生成されても良い(この例では、第1配布鍵D1及び第2配布鍵D2は、配布されるものではないが、便宜上、配布鍵と称している。)。すなわち、コンテンツ管理装置20は、生成したユーザ鍵U及び補助鍵Vをそのままクライアント30に配布する。クライアント30は、受け取ったユーザ鍵U及び補助鍵Vのそれぞれについて逆像を算出し、上記(a)に等価な、第1配布鍵D1及び第2配布鍵D2を生成する。 Further, as shown in FIG. 2B, the first distribution key D1 and the second distribution key D2 may be generated on the client 30 side (in this example, the first distribution key D1 and the second distribution key D2 Although it is not distributed, it is referred to as a distribution key for convenience.) That is, the content management device 20 distributes the generated user key U and auxiliary key V to the client 30 as they are. The client 30 calculates an inverse image of each of the received user key U and auxiliary key V, and generates a first distribution key D1 and a second distribution key D2, which are equivalent to (a) above.

次に、理解の容易のため、図6で示した例を前提に、復号化処理の例を、図10を用いて説明する。図10に示すように、拡大配列(すなわち、最初の分割領域)は、二重暗号化された配列Zのそれぞれを要素(ブロック)とする配列である。 Next, for ease of understanding, an example of decoding processing will be described using FIG. 10 based on the example shown in FIG. 6. As shown in FIG. 10, the expanded array (that is, the first divided area) is an array whose elements (blocks) are each of the double-encrypted array Z.

演算部3520は、まず、左上の配列Zにおける左上の要素「0」に着目する。左上の配列Zについては、復号化写像カーネルK-1における左上の復号鍵が用いられる。演算部3520は、この要素の値「0」に従って、対応する復号鍵における0番目の要素「0」を配列Yの対応する位置の要素の値に設定する。同様に、演算部3520は、左上の配列Zにおける右上の要素「2」については、対応する復号鍵における0番目の要素「2」を、左上の配列Zにおける左下の要素「0」については、対応する復号鍵における0番目の要素「0」を、左上の配列Xにおける右下の要素「2」については、対応する復号鍵における2番目の要素「2」を、それぞれ、配列Yの対応する位置の要素の値に設定する。 The calculation unit 3520 first focuses on the upper left element "0" in the upper left array Z. For the upper left array Z, the upper left decryption key in the decryption mapping kernel K -1 is used. The calculation unit 3520 sets the 0th element "0" in the corresponding decryption key to the value of the element at the corresponding position in the array Y according to the value "0" of this element. Similarly, the calculation unit 3520 calculates, for the upper right element "2" in the upper left array Z, the 0th element "2" in the corresponding decryption key, and for the lower left element "0" in the upper left array Z, For the 0th element "0" of the corresponding decryption key, and for the lower right element "2" of the upper left array X, the 2nd element "2" of the corresponding decryption key, respectively, Set to the value of the position element.

同様に、右上の配列Zに関して、演算部3520は、左上の要素「2」について、右上の復号鍵における2番目の要素「2」を、配列Yの対応する要素の値に設定する。なお、この例では、右上の配列Yの要素の値は、配列Zの要素の値が全て同じであるため、全て同じになる。 Similarly, regarding the upper right array Z, the calculation unit 3520 sets the second element "2" in the upper right decryption key to the value of the corresponding element in the array Y for the upper left element "2". Note that in this example, the values of the elements of the upper right array Y are all the same because the values of the elements of the array Z are all the same.

同様に、演算部3520は、左下の配列Z及び右下の配列Zに関して、それぞれ、上述したような対応する復号鍵による写像を適用する。 Similarly, the calculation unit 3520 applies mapping using the corresponding decryption keys as described above to the lower left array Z and the lower right array Z, respectively.

分割領域がさらに分割された後、演算部3520は、上記の演算を行う。すなわち、演算部3520は、拡大配列が分割された配列Yのそれぞれに対して、復号化写像カーネルによる写像をさらに適用する。より具体的には、演算部3520は、は、左上の配列Yにおける左上の要素「0」について、左上の復号鍵における0番目の要素「0」を配列Xの対応する位置の要素の値に設定する。同様に、演算部3520は、左上の配列Yにおける右上の要素「2」については、右上の復号鍵における2番目の要素「2」を配列Xの対応する位置の要素の値に設定する。この場合の復号化においては、配列Yの要素の位置にそれぞれ対応する復号鍵が用いられることに留意されたい。同様に、演算部3520は、左上の配列Yにおける左下の要素「0」については、左下の復号鍵における0番目の要素「1」を、左上の配列Xにおける右下の要素「2」については、右下の復号鍵における2番目の要素「0」を、それぞれ、配列Xの対応する位置の要素の値に設定する。 After the divided area is further divided, the calculation unit 3520 performs the above calculation. That is, the calculation unit 3520 further applies mapping by the decoding mapping kernel to each array Y into which the expanded array is divided. More specifically, for the upper left element "0" in the upper left array Y, the calculation unit 3520 sets the 0th element "0" in the upper left decryption key to the value of the element at the corresponding position in the array X. Set. Similarly, for the upper right element "2" in the upper left array Y, the calculation unit 3520 sets the second element "2" in the upper right decryption key to the value of the element at the corresponding position in the array X. It should be noted that in the decryption in this case, decryption keys corresponding to the positions of the elements of the array Y are used. Similarly, the calculation unit 3520 calculates the 0th element "1" in the lower left decryption key for the lower left element "0" in the upper left array Y, and the lower right element "2" in the upper left array X. , the second element "0" in the lower right decryption key is set to the value of the element at the corresponding position in the array X, respectively.

同様に、拡大配列における右上の配列Y、左下の配列Y、及び右下の配列Yに関して、演算部3520は、対応する復号鍵による写像を適用する。そして、演算部3520は、復号化の対象であるデジタルコンテンツにおける全ての拡大領域に対して行う。 Similarly, for the upper right array Y, the lower left array Y, and the lower right array Y in the expanded array, the calculation unit 3520 applies mapping using the corresponding decryption keys. Then, the calculation unit 3520 performs the decoding on all enlarged areas in the digital content to be decrypted.

図11は、本発明の一実施形態に係るクライアントにおける復号化処理の一例を説明するフローチャートである。かかる処理は、例えば、クライアント30が、プロセッサ(プロセッサモジュール)の制御の下、復号化プログラムを実行することにより、実現される。かかる処理は、シーケンシャルに実行されても良いし、処理の結果に矛盾を生じない限り、並列又は並行に実行され得る。以下では、クライアント30における復号化処理を説明するが、コンテンツ管理装置20における復号化処理も同様である。 FIG. 11 is a flowchart illustrating an example of decryption processing in a client according to an embodiment of the present invention. Such processing is realized, for example, by the client 30 executing a decryption program under the control of a processor (processor module). Such processing may be performed sequentially, or may be performed in parallel or in parallel as long as the results of the processing do not conflict. The decoding process in the client 30 will be described below, but the same applies to the decoding process in the content management device 20.

同図示すように、クライアント30は、復号化の対象となるデジタルコンテンツを、例えばコンテンツ管理装置20から取得する(S1101)。例えば、クライアント30は、コンテンツ管理装置20にアクセスし、所望のデジタルコンテンツをダウンロードする。ダウンロードされたデジタルコンテンツは、本開示に係る暗号化技術により暗号化されたデジタルデータである。 As shown in the figure, the client 30 acquires digital content to be decrypted, for example, from the content management device 20 (S1101). For example, the client 30 accesses the content management device 20 and downloads desired digital content. The downloaded digital content is digital data encrypted using the encryption technology according to the present disclosure.

続いて、クライアント30は、取得したデジタルコンテンツからメタデータを抽出し、メタデータとデジタルコンテンツ本体とに抽出する(S1102)。抽出したメタデータは、一時的に、メモリ及び/又は作業ファイルに保持される。 Subsequently, the client 30 extracts metadata from the acquired digital content, and extracts the metadata and the digital content itself (S1102). Extracted metadata is temporarily retained in memory and/or work files.

次に、クライアント30は、復号鍵を既に保持しているか否かを判定する(S1103)。クライアント30は、復号鍵F-1を既に保持していると判定した場合(S1103のYes)、S1106の処理に移行する。これに対して、クライアント30は、復号鍵F-1を未だ保持していないと判定した場合(S1103のNo)、配布鍵を、例えばコンテンツ管理装置20から取得する(S1104)。本例では、配布鍵は、第1配布鍵と第2配布鍵とからなる。クライアント30は、取得した配布鍵に基づいて、復号鍵F-1(すなわち、復号化写像カーネルK-1)を生成する(S1105)。 Next, the client 30 determines whether it already holds the decryption key (S1103). If the client 30 determines that it already holds the decryption key F -1 (Yes in S1103), it moves to the process in S1106. On the other hand, if the client 30 determines that it does not yet hold the decryption key F -1 (No in S1103), it acquires the distribution key from, for example, the content management device 20 (S1104). In this example, the distribution key consists of a first distribution key and a second distribution key. The client 30 generates a decryption key F −1 (ie, a decryption mapping kernel K −1 ) based on the obtained distribution key (S1105).

なお、本例では、クライアント30は、デジタルコンテンツを取得した後に、配布鍵を取得しているが、これに限られるものではなく、配布鍵を予め取得しておき、その後、デジタルコンテンツを取得しても良い。 Note that in this example, the client 30 acquires the distribution key after acquiring the digital content, but the invention is not limited to this. It's okay.

復号鍵F-1を獲得したクライアント30は、続いて、取得したデジタルコンテンツを、適用されたN重暗号化(本例ではN=2)に対応した所定サイズの領域に分割する(S1102)。上述した例に従えば、320×280ピクセルの画像は、128×128ピクセルの領域にそれぞれ分割される。なお、もとの画像のサイズが該領域のサイズの整数倍でない場合には、もとの画像のサイズを超える領域の部分にはゼロパディングがなされる。 The client 30 that has acquired the decryption key F -1 then divides the acquired digital content into areas of a predetermined size corresponding to the applied N-fold encryption (N=2 in this example) (S1102). Following the example above, a 320x280 pixel image is divided into regions of 128x128 pixels each. Note that if the size of the original image is not an integral multiple of the size of the area, zero padding is performed on the part of the area that exceeds the size of the original image.

クライアント30は、次に、N重復号化を行うために、カウンタCOUNT(ただし、COUNT≦N)に「1」をセットする(S1107)。続いて、クライアント30は、該分割領域に対応する配列の各要素の値に対して、対応する復号化写像カーネルK-1による写像を適用し、復号化された配列を算出する(S1108)。コンテンツ管理装置20は、全ての分割領域について、復号化写像カーネルK-1による順列写像を適用する。 The client 30 then sets a counter COUNT (where COUNT≦N) to “1” in order to perform N-fold decoding (S1107). Subsequently, the client 30 applies mapping by the corresponding decoding mapping kernel K -1 to the value of each element of the array corresponding to the divided area, and calculates a decoded array (S1108). The content management device 20 applies permutation mapping using the decoding mapping kernel K −1 to all divided areas.

復号化写像カーネルK-1による写像の適用後、クライアント30は、カウンタの値を1つインクリメントし、(S1109)、N重復号化が完了したか否かを判定する(S1110)。本例の場合、カウンタCOUNTの値がN=2を超えていないため(S1109のNo)、クライアント30は、S1106の処理に戻り、復号化された分割領域をさらに小さな領域に分割する(S1106)。 After applying the mapping by the decoding mapping kernel K -1 , the client 30 increments the value of the counter by one (S1109), and determines whether N-fold decoding is completed (S1110). In this example, since the value of the counter COUNT does not exceed N=2 (No in S1109), the client 30 returns to the process in S1106 and divides the decrypted divided area into smaller areas (S1106). .

以降、同様にして、クライアント30は、各分割領域に対して、復号化写像カーネルK-1による写像を適用し、復号化を行う。すなわち、クライアント30は、各分割領域の配列に対して、復号化写像カーネルK-1における対応する復号鍵による写像をそれぞれ適用して、復号化配列を算出する(S1108)。続いて、クライアント30は、カウンタCOUNTの値を1つインクリメントし、(S1109)、N重暗号化が完了したか否かを判定する(S1110)。この場合、カウンタCOUNTの値がN=2を超えるため、N重復号化処理を終了する(S1110のYes)。続いて、クライアント30は、一時的に記憶しておいたメタデータを読み出し、算出された全ての復号化配列に基づくデータに該メタデータを付与し(S1111)、該メタデータが付与されたデータを復号化されたデジタルコンテンツとして出力する(S1112)。 Thereafter, the client 30 similarly applies the mapping by the decoding mapping kernel K -1 to each divided area to perform decoding. That is, the client 30 calculates a decryption array by applying mapping using the corresponding decryption key in the decryption mapping kernel K -1 to the array of each divided area (S1108). Subsequently, the client 30 increments the value of the counter COUNT by one (S1109), and determines whether the N-fold encryption is completed (S1110). In this case, since the value of the counter COUNT exceeds N=2, the N-fold decoding process ends (Yes in S1110). Next, the client 30 reads the temporarily stored metadata, adds the metadata to all the calculated data based on the decryption sequence (S1111), and adds the metadata to the data to which the metadata is added. is output as decrypted digital content (S1112).

以上のように、クライアント30は、暗号化されたデジタルコンテンツとしてのデジタルデータを取得すると、これを上述したn-順列写像を用いて復号化し、もとのデジタルコンテンツに復元し、出力し得る。 As described above, upon acquiring digital data as encrypted digital content, the client 30 can decrypt it using the above-mentioned n-permutation mapping, restore it to the original digital content, and output it.

(実験例)
図12A~12Cは、本開示に係る暗号化/復号化技術を、所定のファイルフォーマットの画像に適用した例を示している。すなわち、図12Aは、320×280ピクセル、8ビット階調(グレイスケール)の画像を示している。このもとの画像に対し、本開示に係る暗号化技術を適用すると、図12Bに示すような画像となった。同図から明らかなように、暗号化技術が施された画像は、ファイルフォーマットが維持されるため、ユーザは、ビューアで確認することができるが、ユーザにとっては何ら意味をなさないものとなる。なお、図12Bに示す画像に対し、本開示に係る復号化技術を適用することにより、図12Cに示すようなもとの画像に復元された。なお、図13は、暗号鍵F又はユーザ鍵Uの一例である。本例では、暗号鍵F又はユーザ鍵Uは、4×1024ピクセルの所定のファイルフォーマット(例えばPNG形式)の画像データで表現されている。
(Experiment example)
12A to 12C show examples in which the encryption/decryption technology according to the present disclosure is applied to images in a predetermined file format. That is, FIG. 12A shows a 320×280 pixel, 8-bit gray scale image. When the encryption technique according to the present disclosure was applied to this original image, an image as shown in FIG. 12B was obtained. As is clear from the figure, since the file format of the encrypted image is maintained, the user can check it on the viewer, but the image has no meaning to the user. Note that by applying the decoding technique according to the present disclosure to the image shown in FIG. 12B, the original image shown in FIG. 12C was restored. Note that FIG. 13 is an example of the encryption key F or the user key U. In this example, the encryption key F or the user key U is expressed as image data of 4×1024 pixels in a predetermined file format (for example, PNG format).

[第2の実施形態]
本実施形態は、第1の実施形態の変形であり、上述したユーザ鍵U及び補助鍵Vを、オフセット値を適用して、隠蔽する技術を開示する。
[Second embodiment]
This embodiment is a modification of the first embodiment, and discloses a technique for concealing the above-described user key U and auxiliary key V by applying an offset value.

上述した図2を用いて説明すれば、例えば、ユーザ鍵生成部2320は、第1のオフセット値(p,q)を保持する一方、補助鍵生成部2330は、第2のオフセット値(r,s)を保持している。ここで、p及びrは、2次元平面におけるx方向へオフセット値を示し、q及びsは、y方向へのオフセット値を示しているが、これに限られず、3次元空間におけるオフセット値が用いられても良い。一例として、暗号化プログラムには、第1のオフセット値(p,q)及び第2のオフセット値(r,s)が隠蔽的に埋め込まれている。 To explain using FIG. 2 described above, for example, the user key generation unit 2320 holds the first offset value (p, q), while the auxiliary key generation unit 2330 holds the second offset value (r, s). Here, p and r indicate offset values in the x direction in a two-dimensional plane, and q and s indicate offset values in the y direction, but the present invention is not limited to this, and offset values in a three-dimensional space may be used. It's okay to be beaten. As an example, a first offset value (p, q) and a second offset value (r, s) are secretly embedded in the encryption program.

ユーザ鍵生成部2320は、生成したユーザ鍵Uに対して、第1のオフセット値(p,q)を適用した後、オフセットされたユーザ鍵UOFFSETを第1配布鍵生成部2340に出力する。同様に、補助鍵生成部2330は、生成した補助鍵Vに対して、第2のオフセット値(r,s)を適用した後、オフセットされた補助鍵VOFFSETを第2配布鍵生成部230に出力する。 The user key generation unit 2320 applies the first offset value (p, q) to the generated user key U, and then outputs the offset user key U OFFSET to the first distribution key generation unit 2340. Similarly, the auxiliary key generation unit 2330 applies the second offset value (r, s) to the generated auxiliary key V, and then sends the offset auxiliary key V OFFSET to the second distribution key generation unit 230. Output.

第1配布鍵生成部2340及び第2配布鍵生成部230は、それぞれ、上述したように、オフセットされたユーザ鍵UOFFSET及びオフセットされた補助鍵VOFFSETの逆像を算出し、それらを第1配布鍵及び第2配布鍵として出力する。 As described above, the first distribution key generation unit 2340 and the second distribution key generation unit 230 calculate the inverse images of the offset user key U OFFSET and the offset auxiliary key V OFFSET , and use them as the first Output as a distribution key and a second distribution key.

一方、暗号化されたデジタルコンテンツを復号化しようとするクライアント30は、上記の第1のオフセット値(p,q)及び第2のオフセット値(r,s)を知らなければ、本来の第1配布鍵及び第2配布鍵を取得できないことになる。そこで、クライアント30の第1配布鍵取得部3210及び第2配布鍵取得部3220(図8参照)は、予め第1のオフセット値(p,q)及び第2のオフセット値(r,s)が与えられている。一例として、クライアント30に配布される復号化プログラムには、第1のオフセット値(p,q)及び第2のオフセット値(r,s)が隠蔽的に埋め込まれている。第1配布鍵取得部3210及び第2配布鍵取得部3220は、外部から第1配布鍵及び第2配布鍵を取得すると、保持している第1のオフセット値(p,q)及び第2のオフセット値(r,s)をそれぞれ適用して、本来の第1配布鍵及び第2配布鍵を生成する。 On the other hand, if the client 30 trying to decrypt the encrypted digital content does not know the first offset value (p, q) and the second offset value (r, s), This means that the distribution key and the second distribution key cannot be obtained. Therefore, the first distribution key acquisition unit 3210 and the second distribution key acquisition unit 3220 (see FIG. 8) of the client 30 determine the first offset value (p, q) and the second offset value (r, s) in advance. It is given. As an example, a first offset value (p, q) and a second offset value (r, s) are secretly embedded in the decryption program distributed to the client 30. When the first distribution key acquisition unit 3210 and the second distribution key acquisition unit 3220 acquire the first distribution key and the second distribution key from the outside, the first distribution key acquisition unit 3210 and the second distribution key acquisition unit 3220 acquire the held first offset value (p, q) and second distribution key. The original first distribution key and second distribution key are generated by applying the offset values (r, s), respectively.

なお、オフセット値は、例えば、ユーザごとに設定され得る。したがって、復号化プログラムもまた、ユーザごとに異なるオフセット値が隠蔽的に埋め込まれ、クライアント30に配布され得る。 Note that the offset value may be set for each user, for example. Therefore, the decryption program can also be distributed to the client 30 with a different offset value hidden for each user embedded therein.

以上のように、本実施形態によれば、ユーザごとに異なるオフセット値によりユーザ鍵及び補助鍵がオフセットされ、これらが配布鍵として配布されるので、たとえ配布鍵が意図せずに流出したとしても、正当なユーザ以外の第三者は、オフセット値を知らなければ、復号化することができない。 As described above, according to this embodiment, the user key and the auxiliary key are offset by different offset values for each user, and these are distributed as the distributed key, so even if the distributed key is unintentionally leaked, , a third party other than the authorized user cannot decrypt it unless he or she knows the offset value.

以上のように、本開示によれば、有限要素からなる多次元配列(N次元配列)の任意のデジタルデータに対して、n-順列写像を適用することにより、外形的枠組みを変えることなく、すなわち、ファイルフォーマットを維持したまま、暗号化及び復号化を行うことができるようになる。これは、暗号化/復号化処理の実装及び運用等を、既存のシステム上に最小限の工数及び運用負荷等で実現することができることを意味する。 As described above, according to the present disclosure, by applying n-permutation mapping to arbitrary digital data of a multidimensional array (N-dimensional array) consisting of finite elements, without changing the external framework, That is, it becomes possible to perform encryption and decryption while maintaining the file format. This means that the implementation and operation of encryption/decryption processing can be realized on an existing system with minimal man-hours and operational load.

とりわけ、本開示に係る暗号化/復号化技術は、汎用的なファイルフォーマットが広く用いられている分野において、そのようなファイルフォーマットに適合した装置(例えば動/静止画カメラ、音響音声機器等の各種装置)に容易に実装することができ、これにより、高い機密性を必要とするデジタルデータの保護を図ることができるようになる。 In particular, the encryption/decryption technology according to the present disclosure is applicable to devices that are compatible with such file formats (e.g., video/still image cameras, audio/audio equipment, etc.) in fields where general-purpose file formats are widely used. This makes it possible to protect digital data that requires a high level of confidentiality.

また、本開示に係る暗号化/復号化技術を実装した装置は、各配列の要素に対して、1オーダーで暗号化及び復号化処理を行うことができる。また、暗号化/復号化装置は、GPUを用いる場合、そのピクセルシェーダにより、その処理をさらに高速化することができる。 Further, a device implementing the encryption/decryption technology according to the present disclosure can perform encryption and decryption processing on each array element in one order. Furthermore, when the encryption/decryption device uses a GPU, its pixel shader can further speed up the processing.

また、本開示に係る暗号化/復号化技術を実装した装置において、オフセット値を用いることにより、ユーザ鍵及び補助鍵を隠蔽した上で、これらを配布鍵として配布するので、たとえ配布鍵が意図せずに流出したとしても、正当なユーザ以外の第三者は、オフセット値を知らなければ、正しく暗号化/復号化することができないので、デジタルコンテンツのより強固な暗号化/復号化が達成される。 Furthermore, in a device implementing the encryption/decryption technology according to the present disclosure, the user key and auxiliary key are concealed by using an offset value and then distributed as a distribution key, so even if the distribution key is Even if a third party other than the authorized user does not know the offset value, it will not be possible to properly encrypt/decrypt it even if it is leaked without the offset value being used. This enables stronger encryption/decryption of digital content. be done.

上記各実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。 Each of the embodiments described above is an illustration for explaining the present invention, and the present invention is not intended to be limited only to these embodiments. The present invention can be implemented in various forms without departing from the gist thereof.

例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。 For example, steps, acts, or functions in the methods disclosed herein may be performed in parallel or in a different order unless the results are inconsistent. The steps, acts, and functions described are provided by way of example only, and some of the steps, acts, and functions may be omitted or combined with each other without departing from the spirit of the invention. It is also possible to add other steps, actions, or functions.

また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本発明の要旨に含まれる。 Further, although various embodiments are disclosed in this specification, specific features (technical matters) in one embodiment may be added to other embodiments while improving them as appropriate, or Certain features in the embodiments may be replaced and such forms are within the scope of the invention.

1…コンピュータシステム
10…通信ネットワーク
20…コンテンツ管理装置
22…データベース
24…サーバ
210…デジタルコンテンツ取得部
220…メタデータ抽出部
230…鍵生成部
2310…暗号鍵生成部
2320…ユーザ鍵生成部
2330…補助鍵生成部
2340…第1配布鍵生成部
2350…第2配布鍵生成部
240…暗号化処理部
2410…領域分割部
2420…演算部
2430…拡大領域設定部
250…メタデータ抽出部
260…出力制御部
30…クライアント
310…デジタルコンテンツ取得部
320…メタデータ抽出部
320…鍵取得部
3210…第1配布鍵取得部
3220…第2配布鍵取得部
340…復号鍵生成部
350…復号化処理部
3510…領域分割部
3520…演算部
360…メタデータ抽出部
370…出力制御部
1...Computer system 10...Communication network 20...Content management device 22...Database 24...Server 210...Digital content acquisition section 220...Metadata extraction section 230...Key generation section 2310...Encryption key generation section 2320...User key generation section 2330... Auxiliary key generation section 2340...First distribution key generation section 2350...Second distribution key generation section 240...Encryption processing section 2410...Area division section 2420...Arithmetic section 2430...Expansion area setting section 250...Metadata extraction section 260...Output Control unit 30...Client 310...Digital content acquisition unit 320...Metadata extraction unit 320...Key acquisition unit 3210...First distribution key acquisition unit 3220...Second distribution key acquisition unit 340...Decryption key generation unit 350...Decryption processing unit 3510...Region dividing section 3520...Calculating section 360...Metadata extraction section 370...Output control section

Claims (20)

暗号化対象であるデジタルデータ列を暗号化するための暗号化装置を備えるシステムであって、
前記暗号化装置は、
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得する取得部と、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成する暗号鍵生成部と、
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出する暗号化処理部と、
前記算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部とを備え、
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値に設定する2項演算であ
前記暗号化処理部は、
前記暗号化対象であるデジタルデータ列を分割して複数の前記所定の領域を設定する領域分割部と、
前記複数の所定の領域のそれぞれに対応する暗号化対象配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、複数の暗号化配列のそれぞれを算出する演算部と、
前記複数の所定の領域におけるいくつかに基づく拡大領域を新たな所定の領域として設定する拡大領域設定部と、を備え、
前記演算部は、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、新たな暗号化配列を算出する、
システム。
A system comprising an encryption device for encrypting a digital data string to be encrypted,
The encryption device includes:
an acquisition unit that acquires a first data file including the digital data string to be encrypted;
an encryption key generation unit that generates an encryption key including at least one unit key consisting of n elements having a permutation relationship;
By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, an encryption processing unit that calculates at least one encryption sequence;
an output control unit that performs control to output a second data file including an encrypted digital data string indicated by the calculated at least one encryption sequence to an output destination ;
The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. is a binary operation that sets the value of
The encryption processing unit includes:
an area dividing unit that divides the digital data string to be encrypted to set a plurality of the predetermined areas;
an arithmetic unit that calculates each of the plurality of encrypted arrays by applying the permutation mapping using the encryption key to element values of the encrypted array corresponding to each of the plurality of predetermined regions; and,
an enlarged area setting unit that sets an enlarged area based on some of the plurality of predetermined areas as a new predetermined area;
The calculation unit generates a new encryption by applying the permutation mapping to the element value of the previously calculated encryption array corresponding to the new predetermined area using the encryption key. calculate the array,
system.
前記暗号化処理部は、N重暗号化に従って、前記拡大領域設定部による拡大領域の設定及び前記演算部による暗号化配列の算出を繰り返すように構成される、
請求項に記載のシステム。
The encryption processing unit is configured to repeat setting of an expansion area by the expansion area setting unit and calculation of an encryption array by the calculation unit in accordance with N-fold encryption.
The system of claim 1 .
前記暗号化装置は、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵を生成するユーザ鍵生成部と、
前記暗号鍵と前記ユーザ鍵の逆写像鍵とに基づいて、補助鍵を生成する補助鍵生成部と、
をさらに備える、請求項1又は2に記載のシステム。
The encryption device includes:
a user key generation unit that generates a user key including at least one unit key consisting of n elements having a permutation relationship;
an auxiliary key generation unit that generates an auxiliary key based on the encryption key and the inverse mapping key of the user key;
The system according to claim 1 or 2 , further comprising:
暗号化対象であるデジタルデータ列を暗号化するための暗号化装置を備えるシステムであって、 A system comprising an encryption device for encrypting a digital data string to be encrypted,
前記暗号化装置は、 The encryption device includes:
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得する取得部と、 an acquisition unit that acquires a first data file including the digital data string to be encrypted;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成する暗号鍵生成部と、 an encryption key generation unit that generates an encryption key including at least one unit key consisting of n elements having a permutation relationship;
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出する暗号化処理部と、 By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, an encryption processing unit that calculates at least one encryption sequence;
前記算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部と、 an output control unit that performs control to output a second data file including an encrypted digital data string indicated by the calculated at least one encryption sequence to an output destination;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵を生成するユーザ鍵生成部と、 a user key generation unit that generates a user key including at least one unit key consisting of n elements having a permutation relationship;
前記暗号鍵と前記ユーザ鍵の逆写像鍵とに基づいて、補助鍵を生成する補助鍵生成部と、 an auxiliary key generation unit that generates an auxiliary key based on the encryption key and the inverse mapping key of the user key;
を備え、Equipped with
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、 The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値に設定する2項演算である、 The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. is a binary operation that sets the value of
システム。system.
前記暗号化装置は、前記暗号化されたデジタルデータ列の復号化を可能にするために、前記ユーザ鍵に基づく第1配布鍵と前記補助鍵に基づく第2配布鍵とを外部に出力するように構成される、
請求項3又は4に記載のシステム。
The encryption device outputs a first distribution key based on the user key and a second distribution key based on the auxiliary key to the outside in order to enable decryption of the encrypted digital data string. composed of
The system according to claim 3 or 4 .
前記第1配布鍵は、前記ユーザ鍵の逆像であり、前記第2配布鍵は、前記暗号鍵の逆写像である、請求項に記載のシステム。 6. The system of claim 5 , wherein the first distribution key is an inverse image of the user key, and the second distribution key is an inverse mapping of the cryptographic key. 請求項5又は6に記載の前記暗号化装置により暗号化された前記デジタルデータ列を、前記第1配布鍵と前記第2配布鍵とに基づいて、復号化する復号化装置をさらに備えるシステム。 A system further comprising a decryption device that decrypts the digital data string encrypted by the encryption device according to claim 5 or 6 , based on the first distribution key and the second distribution key. 前記復号化装置は、
前記第1配布鍵と前記第2配布鍵とに基づいて、復号鍵を生成する復号鍵生成部と、
前記暗号化されたデジタルデータ列に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、前記デジタルデータ列を復号化する復号化処理部と、
をさらに備える請求項に記載のシステム。
The decoding device includes:
a decryption key generation unit that generates a decryption key based on the first distribution key and the second distribution key;
a decryption processing unit that decrypts the digital data string by applying a permutation mapping to the encrypted digital data string using the generated decryption key;
8. The system of claim 7 , further comprising:
前記暗号化装置は、
前記取得された第1のデータファイルからメタデータを抽出するメタデータ抽出部と、
前記暗号化されたデジタルデータ列に前記抽出されたメタデータを付与して前記第2のデータファイルを生成するメタデータ付与部と、をさらに備える、
請求項1乃至8のいずれか一項に記載のシステム。
The encryption device includes:
a metadata extraction unit that extracts metadata from the acquired first data file;
further comprising: a metadata adding unit that adds the extracted metadata to the encrypted digital data string to generate the second data file;
A system according to any one of claims 1 to 8 .
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化する復号化装置であって、
前記暗号鍵に対応する復号鍵を生成する復号鍵生成部と、
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出する復号化処理部と、
前記算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部とを備え、
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であ
前記復号化処理部は、
前記暗号化されたデジタルデータ列を分割して複数の前記所定の領域を設定する領域分割部と、
前記複数の所定の領域のそれぞれに対応する復号化対象配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、複数の復号化配列のそれぞれを算出する演算部と、を備え、
前記領域分割部は、前記複数の所定の領域のそれぞれをさらに分割して新たな所定の領域を設定し、
前記演算部は、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、新たな復号化配列を算出する、
復号化装置。
A decryption device that decrypts a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permutation relationship,
a decryption key generation unit that generates a decryption key corresponding to the encryption key;
By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least a decoding processing unit that calculates one decoding array;
an output control unit that performs control to output a second data file containing a decoded digital data string indicated by the calculated at least one decoding array to an output destination ,
The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
The decoding processing unit includes:
an area dividing unit that divides the encrypted digital data string to set a plurality of the predetermined areas;
an arithmetic unit that calculates each of the plurality of decryption arrays by applying the permutation mapping using the decryption key to element values of the decryption target array corresponding to each of the plurality of predetermined regions; and,
The area dividing unit further divides each of the plurality of predetermined areas to set a new predetermined area,
The calculation unit performs new decryption by applying the permutation mapping to the previously calculated element value of the encrypted array corresponding to the new predetermined area using the decryption key. calculate the array,
decoding device.
前記復号化処理部は、N重暗号化が適用された前記暗号化されたデジタルデータ列に対応して、前記領域分割部による所定の領域の設定及び前記演算部による復号化配列の算出を繰り返すように構成される、
請求項10に記載の復号化装置。
The decryption processing unit repeats setting of a predetermined area by the area division unit and calculation of a decryption array by the calculation unit in response to the encrypted digital data string to which N-fold encryption has been applied. configured as,
The decoding device according to claim 10 .
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化する復号化装置であって、
前記暗号鍵に対応する復号鍵を生成する復号鍵生成部と、
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出する復号化処理部と、
前記算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行う出力制御部と、
前記暗号鍵に基づく第1配布鍵を取得する第1配布鍵取得部と、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵に基づく第2配布鍵を取得する第2配布鍵取得部と、を備え、
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であり、
前記第1配布鍵は、前記ユーザ鍵の逆写像であり、
前記第2配布鍵は、前記暗号鍵と前記ユーザ鍵の逆写像とに基づいて生成され、
前記復号鍵生成部は前記第1配布鍵と前記第2配布鍵とに基づいて、前記復号鍵とを生成する、
号化装置。
A decryption device that decrypts a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permutation relationship,
a decryption key generation unit that generates a decryption key corresponding to the encryption key;
By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least a decoding processing unit that calculates one decoding array;
an output control unit that performs control to output a second data file including a decoded digital data string indicated by the calculated at least one decoding array to an output destination;
a first distribution key acquisition unit that acquires a first distribution key based on the encryption key;
a second distribution key acquisition unit that acquires a second distribution key based on a user key including at least one unit key consisting of n elements having a permutation relationship ;
The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
the first distribution key is an inverse mapping of the user key;
The second distribution key is generated based on the encryption key and the inverse mapping of the user key,
The decryption key generation unit generates the decryption key based on the first distribution key and the second distribution key.
decoding device.
コンピュータデバイスにおいて実行される、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法であって、
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、
算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み、
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であ
前記暗号化配列を算出することは、
前記暗号化対象であるデジタルデータ列を分割して複数の前記所定の領域を設定することと、
前記複数の所定の領域のそれぞれに対応する暗号化対象配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、複数の暗号化配列のそれぞれを算出することと、
前記複数の所定の領域におけるいくつかに基づく拡大領域を新たな所定の領域として設定することと、を含み、
前記複数の暗号化配列のそれぞれを算出することは、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、新たな暗号化配列を算出することを含む、
暗号化方法。
An encryption method executed in a computer device for encrypting a digital data string to be encrypted, the method comprising:
obtaining a first data file containing the digital data string to be encrypted;
Generating an encryption key including at least one unit key consisting of n elements having a permutation relationship;
By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, calculating at least one encrypted sequence;
Controlling for outputting a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination ,
The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. It is a binary operation with the value of
Calculating the encrypted sequence includes:
dividing the digital data string to be encrypted to set a plurality of predetermined areas;
calculating each of the plurality of encrypted arrays by applying the permutation mapping using the encryption key to element values of the encrypted array corresponding to each of the plurality of predetermined regions; ,
setting an enlarged area based on some of the plurality of predetermined areas as a new predetermined area;
Calculating each of the plurality of encrypted arrays includes performing the permutation mapping on the element values of the previously calculated encrypted array corresponding to the new predetermined area using the encryption key. calculating a new cryptographic sequence by applying
Encryption method.
コンピュータデバイスにおいて実行される、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法であって、
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、
算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵を生成することと、
前記暗号鍵と前記ユーザ鍵の逆写像鍵とに基づいて、補助鍵を生成することと、を含み、
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算である、
暗号化方法。
An encryption method executed in a computer device for encrypting a digital data string to be encrypted, the method comprising:
obtaining a first data file containing the digital data string to be encrypted;
Generating an encryption key including at least one unit key consisting of n elements having a permutation relationship;
By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, calculating at least one encrypted sequence;
Controlling for outputting a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination ;
Generating a user key including at least one unit key consisting of n elements having a permutation relationship;
generating an auxiliary key based on the encryption key and the inverse mapping key of the user key,
The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. is a binary operation with the value of
Encryption method.
コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法であって、
前記暗号鍵に対応する復号鍵を生成することと、
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、
算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと、を含み、
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であ
前記復号化配列を算出することは、
前記暗号化されたデジタルデータ列を分割して複数の前記所定の領域を設定することと、
前記複数の所定の領域のそれぞれに対応する復号化対象配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、複数の復号化配列のそれぞれを算出することと、を含み、
前記複数の所定の領域を設定することは、前記複数の所定の領域のそれぞれをさらに分割して新たな所定の領域を設定することを含み、
前記複数の復号化配列のそれぞれを算出することは、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、新たな復号化配列を算出することを含む、
復号化方法。
A decryption method for decrypting a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permuted relationship, the method being executed in a computer device, the method comprising:
generating a decryption key corresponding to the encryption key;
By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least calculating one decoding array;
Controlling for outputting a second data file containing a decoded digital data string indicated by the calculated at least one decoding array to an output destination,
The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
Calculating the decoding array includes:
dividing the encrypted digital data string to set a plurality of the predetermined areas;
calculating each of the plurality of decryption arrays by applying the permutation mapping using the decryption key to element values of the decryption target array corresponding to each of the plurality of predetermined regions; , including;
Setting the plurality of predetermined regions includes further dividing each of the plurality of predetermined regions to set a new predetermined region,
Calculating each of the plurality of decryption arrays includes applying the permutation mapping to the element values of the previously calculated encrypted array corresponding to the new predetermined area using the decryption key. calculating a new decoding array by applying
Decryption method.
コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法であって、 A decryption method for decrypting a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permuted relationship, the method being executed in a computer device, the method comprising:
前記暗号鍵に対応する復号鍵を生成することと、 generating a decryption key corresponding to the encryption key;
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、 By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least calculating one decoding array;
算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと、 Controlling for outputting a second data file containing a decoded digital data string indicated by the calculated at least one decoding array to an output destination;
前記暗号鍵に基づく第1配布鍵を取得することと、 obtaining a first distribution key based on the encryption key;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵に基づく第2配布鍵を取得することと、を含み、 obtaining a second distribution key based on a user key including at least one unit key consisting of n elements having a permutation relationship;
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、 The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であり、 The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
前記第1配布鍵は、前記ユーザ鍵の逆写像であり、 the first distribution key is an inverse mapping of the user key;
前記第2配布鍵は、前記暗号鍵と前記ユーザ鍵の逆写像とに基づいて生成され、 The second distribution key is generated based on the encryption key and the inverse mapping of the user key,
前記復号鍵を生成することは、前記第1配布鍵と前記第2配布鍵とに基づいて、前記復号鍵とを生成することを含む、 Generating the decryption key includes generating the decryption key based on the first distribution key and the second distribution key,
復号化方法。Decryption method.
コンピューティングデバイスに、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法を実現させるコンピュータプログラムであって、
前記暗号化方法は、
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、
算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うこととを含み、
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算であ
前記暗号化配列を算出することは、
前記暗号化対象であるデジタルデータ列を分割して複数の前記所定の領域を設定することと、
前記複数の所定の領域のそれぞれに対応する暗号化対象配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、複数の暗号化配列のそれぞれを算出することと、
前記複数の所定の領域におけるいくつかに基づく拡大領域を新たな所定の領域として設定することを含み、
前記複数の暗号化配列のそれぞれを算出することは、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記暗号鍵を用いて、前記順列写像を適用することにより、新たな暗号化配列を算出することと、を含む、
コンピュータプログラム。
A computer program that causes a computing device to implement an encryption method for encrypting a digital data string to be encrypted, the computer program comprising:
The encryption method includes:
obtaining a first data file containing the digital data string to be encrypted;
Generating an encryption key including at least one unit key consisting of n elements having a permutation relationship;
By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, calculating at least one encrypted sequence;
Controlling for outputting a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination ,
The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. It is a binary operation with the value of
Calculating the encrypted sequence includes:
dividing the digital data string to be encrypted to set a plurality of predetermined areas;
calculating each of the plurality of encrypted arrays by applying the permutation mapping using the encryption key to element values of the encrypted array corresponding to each of the plurality of predetermined regions; ,
including setting an enlarged area based on some of the plurality of predetermined areas as a new predetermined area,
Calculating each of the plurality of encrypted arrays includes performing the permutation mapping on the element values of the previously calculated encrypted array corresponding to the new predetermined area using the encryption key. calculating a new encryption sequence by applying
computer program.
コンピューティングデバイスに、暗号化対象であるデジタルデータ列を暗号化するための暗号化方法を実現させるコンピュータプログラムであって、 A computer program that causes a computing device to implement an encryption method for encrypting a digital data string to be encrypted, the computer program comprising:
前記暗号化方法は、 The encryption method includes:
前記暗号化対象であるデジタルデータ列を含む第1のデータファイルを取得することと、 obtaining a first data file containing the digital data string to be encrypted;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を生成することと、 Generating an encryption key including at least one unit key consisting of n elements having a permutation relationship;
前記暗号化対象であるデジタルデータ列を構成する少なくとも1つの所定の領域に対応する暗号化対象配列の要素値に対して、前記生成された暗号鍵を用いて、順列写像を適用することにより、少なくとも1つの暗号化配列を算出することと、 By applying permutation mapping to the element values of the encryption target array corresponding to at least one predetermined area constituting the digital data string that is the encryption target, using the generated encryption key, calculating at least one encrypted sequence;
算出された少なくとも1つの暗号化配列が示す暗号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと、 Controlling for outputting a second data file containing an encrypted digital data string indicated by the calculated at least one encrypted sequence to an output destination;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵を生成することと、 Generating a user key including at least one unit key consisting of n elements having a permutation relationship;
前記暗号鍵と前記ユーザ鍵の逆写像鍵とに基づいて、補助鍵を生成することと、を含み、 generating an auxiliary key based on the encryption key and the inverse mapping key of the user key,
前記暗号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、 The set of the encryption target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
前記順列写像は、前記暗号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記暗号化対象配列のi番目の要素の値を、前記暗号化配列のi番目の要素の値とする2項演算である、 The permutation mapping converts the value of the i-th element of the encryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the encryption key, to the i-th element of the encryption array. is a binary operation with the value of
コンピュータプログラム。computer program.
コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法を実現させるコンピュータプログラムであって、
前記復号化方法は、
前記暗号鍵に対応する復号鍵を生成することと、
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、
算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと、を含み、
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であ
前記復号化配列を算出することは、
前記暗号化されたデジタルデータ列を分割して複数の前記所定の領域を設定することと、
前記複数の所定の領域のそれぞれに対応する復号化対象配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、複数の復号化配列のそれぞれを算出することと、を含み、
前記複数の所定の領域を設定することは、前記複数の所定の領域のそれぞれをさらに分割して新たな所定の領域を設定することを含み、
前記複数の復号化配列のそれぞれを算出することは、前記新たな所定の領域に対応する1つ前に算出された暗号化配列の要素値に対して、前記復号鍵を用いて、前記順列写像を適用することにより、新たな復号化配列を算出することを含む、
コンピュータプログラム。
A computer that realizes a decryption method for decrypting a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permuted relationship, which is executed in a computer device. A program,
The decoding method includes:
generating a decryption key corresponding to the encryption key;
By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least calculating one decoding array;
Controlling for outputting a second data file containing a decoded digital data string indicated by the calculated at least one decoding array to an output destination,
The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of the element of one of the unit keys in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
Calculating the decoding array includes:
dividing the encrypted digital data string to set a plurality of the predetermined areas;
calculating each of the plurality of decryption arrays by applying the permutation mapping using the decryption key to element values of the decryption target array corresponding to each of the plurality of predetermined regions; , including;
Setting the plurality of predetermined regions includes further dividing each of the plurality of predetermined regions to set a new predetermined region,
Calculating each of the plurality of decryption arrays includes applying the permutation mapping to the element values of the previously calculated encryption array corresponding to the new predetermined area using the decryption key. calculating a new decoding array by applying
computer program.
コンピュータデバイスにおいて実行される、順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含む暗号鍵を用いて暗号化されたデジタルデータ列を復号化するための復号化方法を実現させるコンピュータプログラムであって、 A computer that realizes a decryption method for decrypting a digital data string encrypted using an encryption key including at least one unit key consisting of n elements having a permuted relationship, which is executed in a computer device. A program,
前記復号化方法は、 The decoding method includes:
前記暗号鍵に対応する復号鍵を生成することと、 generating a decryption key corresponding to the encryption key;
前記暗号化されたデジタルデータ列を構成する少なくとも1つの所定の領域に対応する復号化対象配列の要素値に対して、前記生成された復号鍵を用いて、順列写像を適用することにより、少なくとも1つの復号化配列を算出することと、 By applying permutation mapping to the element values of the decryption target array corresponding to at least one predetermined region constituting the encrypted digital data string using the generated decryption key, at least calculating one decoding array;
算出された少なくとも1つの復号化配列が示す復号化されたデジタルデータ列を含む第2のデータファイルを出力先に出力するための制御を行うことと、 Controlling for outputting a second data file containing a decoded digital data string indicated by the calculated at least one decoding array to an output destination;
前記暗号鍵に基づく第1配布鍵を取得することと、 obtaining a first distribution key based on the encryption key;
順列の関係を有するn個の要素からなる少なくとも1つの単位鍵を含むユーザ鍵に基づく第2配布鍵を取得することと、を含み、 obtaining a second distribution key based on a user key including at least one unit key consisting of n elements having a permutation relationship;
前記復号化対象配列と前記順列写像との組が、結合法則、単位元の存在、及び逆元の存在の条件を満たす群であり、 The set of the decoding target array and the permutation mapping is a group that satisfies the conditions of an associative law, the existence of an identity element, and the existence of an inverse element,
前記順列写像は、前記復号鍵における一の前記単位鍵の要素の値Xi(i∈n)が示す、前記復号化対象配列のi番目の要素の値を、前記復号化配列のi番目の要素の値とする2項演算であり、 The permutation mapping converts the value of the i-th element of the decryption target array, which is indicated by the value Xi (i∈n) of one unit key element in the decryption key, to the i-th element of the decryption array. It is a binary operation with the value of
前記第1配布鍵は、前記ユーザ鍵の逆写像であり、 the first distribution key is an inverse mapping of the user key;
前記第2配布鍵は、前記暗号鍵と前記ユーザ鍵の逆写像とに基づいて生成され、 The second distribution key is generated based on the encryption key and the inverse mapping of the user key,
前記復号鍵を生成することは、前記第1配布鍵と前記第2配布鍵とに基づいて、前記復号鍵とを生成することを含む、 Generating the decryption key includes generating the decryption key based on the first distribution key and the second distribution key,
コンピュータプログラム。computer program.
JP2019091000A 2019-05-13 2019-05-13 Encryption/decryption device, encryption/decryption method, and computer program for executing the method Active JP7389446B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019091000A JP7389446B2 (en) 2019-05-13 2019-05-13 Encryption/decryption device, encryption/decryption method, and computer program for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019091000A JP7389446B2 (en) 2019-05-13 2019-05-13 Encryption/decryption device, encryption/decryption method, and computer program for executing the method

Publications (2)

Publication Number Publication Date
JP2020187241A JP2020187241A (en) 2020-11-19
JP7389446B2 true JP7389446B2 (en) 2023-11-30

Family

ID=73221041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019091000A Active JP7389446B2 (en) 2019-05-13 2019-05-13 Encryption/decryption device, encryption/decryption method, and computer program for executing the method

Country Status (1)

Country Link
JP (1) JP7389446B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500035B (en) * 2022-01-24 2023-06-23 杭州天宽科技有限公司 Data encryption system based on service data sharing cloud platform
CN114629701B (en) * 2022-03-11 2023-04-18 娄底职业技术学院 Information display system based on information encryption
CN116015981B (en) * 2023-03-21 2023-06-23 深圳市星火数控技术有限公司 Sewing numerical control file data encryption method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002528770A (en) 1998-10-28 2002-09-03 データマーク テクノロジーズ ピーティーイー リミテッド Digital steganography method for multimedia
JP2007011630A (en) 2005-06-29 2007-01-18 Fuji Xerox Co Ltd Status information processing system, status information processing method, and program
JP2009139722A (en) 2007-12-07 2009-06-25 Tani Electronics Corp Encryption method and encryption device using color
JP2010108365A (en) 2008-10-31 2010-05-13 Hitachi Ltd Biometric authentication method and system
JP2018527775A (en) 2015-06-15 2018-09-20 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for enabling content protection over a broadcast channel

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002528770A (en) 1998-10-28 2002-09-03 データマーク テクノロジーズ ピーティーイー リミテッド Digital steganography method for multimedia
JP2007011630A (en) 2005-06-29 2007-01-18 Fuji Xerox Co Ltd Status information processing system, status information processing method, and program
JP2009139722A (en) 2007-12-07 2009-06-25 Tani Electronics Corp Encryption method and encryption device using color
JP2010108365A (en) 2008-10-31 2010-05-13 Hitachi Ltd Biometric authentication method and system
JP2018527775A (en) 2015-06-15 2018-09-20 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for enabling content protection over a broadcast channel

Also Published As

Publication number Publication date
JP2020187241A (en) 2020-11-19

Similar Documents

Publication Publication Date Title
Masood et al. A lightweight chaos-based medical image encryption scheme using random shuffling and XOR operations
Liu et al. Reversible data-hiding in encrypted images by redundant space transfer
JP7389446B2 (en) Encryption/decryption device, encryption/decryption method, and computer program for executing the method
Selva Mary et al. Secure grayscale image communication using significant visual cryptography scheme in real time applications
Mohanty et al. $2 dcrypt $: Image scaling and cropping in encrypted domains
Ping et al. A novel medical image encryption based on cellular automata with ROI position embedded
Liu et al. A fully reversible data hiding scheme in encrypted images based on homomorphic encryption and pixel prediction
Tora et al. A generalized Arnold’s Cat Map transformation for image scrambling
Wang et al. Quantum cryptosystem and circuit design for color image based on novel 3D Julia-fractal chaos system
Ren et al. Commutative encryption and watermarking based on SVD for secure GIS vector data
US11276138B2 (en) Image data encryption and rendering system
JP5913041B2 (en) Secret information concealment device, secret information restoration device, secret information concealment program, and secret information restoration program
Singh et al. DIP using image encryption and XOR operation affine transform
KR101751971B1 (en) Image processing method and apparatus for encoded image
Tsai A secret 3D model sharing scheme with reversible data hiding based on space subdivision
Wang et al. A novel (n, n) secret image sharing scheme based on Sudoku
Rahul et al. Bio-Metric Based Colour-Image-Encryption using Multi-Chaotic Dynamical Systems and SHA-256 Hash Algorithm
Banu et al. Secure reversible data hiding technique on textures using double encryption
Ulutas et al. Secret image sharing with reversible capabilities
Hema et al. A hybrid multimedia image encryption technique using singular value decomposition-linear sparsity regularization (SVD-LSR)
Anurenjini Encrypted domain image scaling and cropping in cloud
JP7158635B2 (en) Cryptographic system, encryption device, decryption device and key generation device
Bandyopadhyay et al. A novel steganographic technique based on 3D-DCT approach
Raghuwanshi et al. A secure transmission of 2D image using randomized chaotic mapping
Sharma et al. A Comparative Review on Image Interpolation-Based Reversible Data Hiding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190701

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231110

R150 Certificate of patent or registration of utility model

Ref document number: 7389446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150