JP2012212138A - 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法 - Google Patents

暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法 Download PDF

Info

Publication number
JP2012212138A
JP2012212138A JP2012066203A JP2012066203A JP2012212138A JP 2012212138 A JP2012212138 A JP 2012212138A JP 2012066203 A JP2012066203 A JP 2012066203A JP 2012066203 A JP2012066203 A JP 2012066203A JP 2012212138 A JP2012212138 A JP 2012212138A
Authority
JP
Japan
Prior art keywords
data
key information
encryption
encrypted
unit
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.)
Pending
Application number
JP2012066203A
Other languages
English (en)
Inventor
Eisuke Norimoto
英介 乗本
Masahiro Kataoka
正弘 片岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012066203A priority Critical patent/JP2012212138A/ja
Publication of JP2012212138A publication Critical patent/JP2012212138A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】鍵情報が類推されてしまうことを抑制すること。
【解決手段】暗号・圧縮装置16は、暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する暗号化部16aを有する。暗号・圧縮装置16は、第1のデータ部分及び第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する生成部16bを有する。また、暗号化部16aは、暗号化対象データの第1のデータ部分と異なる一部分である第2のデータ部分を第2の鍵情報に基づいて暗号化する。
【選択図】図1

Description

本発明は、暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法に関する。
従来、デジタルコンテンツを暗号化して送信する装置がある。例えば、従来の装置は、デジタルコンテンツを圧縮する。そして、従来の装置は、1つの暗号鍵などを用いて、圧縮したデジタルコンテンツを暗号化する。次に、従来の装置は、暗号化したデジタルコンテンツを、PC(Personal Computer)や携帯電話などの利用者端末に送信する。なお、デジタルコンテンツの一例としては、動画、音楽、書籍などが挙げられる。また、デジタルコンテンツを暗号化する理由としては、著作権を保護するためなどの理由が挙げられる。
また、かかるデジタルコンテンツを受信した利用者端末は、デジタルコンテンツを復号化する。そして、利用者端末は、復号化したデジタルコンテンツを伸張し、デジタルコンテンツを利用する。
特開平11−306092号公報 特表2009−500723号公報 特開2003−296179号公報
しかしながら、上記の従来の技術では、暗号化に用いられる暗号鍵の情報である鍵情報が類推される場合があるという問題がある。これを説明すると、例えば、従来の技術では、1つの暗号鍵によりデジタルコンテンツが暗号化されているため、複数の暗号鍵を用いてデジタルコンテンツを暗号化した場合と比較して、暗号化されたデジタルコンテンツ全体から暗号鍵が解読されやすい。なお、デジタルコンテンツを数k〜数10k[byte]のデータに分割し、分割したそれぞれのデータを異なる暗号鍵で暗号化する方式も存在する。しかしながら、このような方式の場合には、暗号化に用いられる全ての暗号鍵を管理する必要があり、暗号鍵の管理が煩雑となる。
1つの側面では、本発明は、鍵情報が類推されてしまうことを抑制することができる暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法を提供することを目的とする。
本願の開示する暗号化プログラムは、一つの態様において、コンピュータに、暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する処理を実行させる。また、本願の開示する暗号化プログラムは、コンピュータに、前記第1のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する処理を実行させる。また、本願の開示する暗号化プログラムは、コンピュータに、前記暗号化対象データの前記第1のデータ部分と異なる一部分である第2のデータ部分を前記第2の鍵情報に基づいて暗号化する処理を実行させる。
1態様によれば、鍵情報が類推されてしまうことを抑制することができる。
図1は、実施例1に係るシステムの構成の一例を示す図である。 図2は、暗号・圧縮装置での処理を仮想的に示した図である。 図3は、実施例1に係るシステムのシーケンス図である。 図4は、実施例1に係る圧縮・暗号化処理の手順を示すフローチャートである。 図5は、実施例1に係る復号化・伸張処理の手順を示すフローチャートである。 図6は、実施例2に係るシステムの構成を示す図である。 図7は、実施例2に係る圧縮・暗号化処理の手順を示すフローチャートである。 図8は、実施例2に係る復号化・伸張処理の手順を示すフローチャートである。 図9は、暗号化プログラムを実行するコンピュータを示す図である。 図10は、復号化プログラムを実行するコンピュータを示す図である。
以下に、本願の開示する暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システムの構成]
実施例1に係るシステムについて説明する。図1は、実施例1に係るシステムの構成の一例を示す図である。本実施例に係るシステム10は、サーバ11と、利用者端末12とを有する。サーバ11と、利用者端末12とは、データの送受信が可能なように接続されている。図1の例では、サーバ11と、利用者端末12とは、インターネット13を介して接続されている。なお、サーバ11と、利用者端末12とは、無線で接続されてもよい。サーバ11は、コンテンツのデータを圧縮し、圧縮したコンテンツのデータを暗号化し、暗号化したコンテンツのデータを利用者端末12に送信する。利用者端末12は、受信したコンテンツのデータを復号し、復号したコンテンツのデータを伸張し、伸張したコンテンツのデータを再生する。なお、コンテンツのデータを、以下、「コンテンツデータ」と称する。
サーバ11は、ライセンスサーバ14と、コンテンツサーバ15と、暗号・圧縮装置16とを有する。なお、暗号・圧縮装置は、暗号化装置とも称される。
ライセンスサーバ14は、暗号化するための鍵を生成する。ライセンスサーバ14は、ライセンスDB(Data Base)14aを有する。例えば、ライセンスサーバ14は、コンテンツサーバ15に登録されたコンテンツごとに、各コンテンツを暗号化するための鍵の情報である鍵情報を生成する。そして、ライセンスサーバ14は、生成した鍵情報をライセンスDB14aに登録する。
コンテンツサーバ15は、利用者端末12に配信するコンテンツを登録する。コンテンツサーバ15は、コンテンツDB15aを有する。例えば、コンテンツサーバ15は、動画、音楽、書籍などの各種コンテンツを、図示しない外部の装置から取得し、取得したコンテンツをコンテンツDB15aに登録する。また、コンテンツサーバ15は、暗号・圧縮装置16により圧縮され、暗号化されたコンテンツデータをコンテンツDB15aに登録する。
暗号・圧縮装置16は、暗号化部16aと、生成部16bとを有する。
暗号化部16aは、暗号化対象のデータであるコンテンツデータの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する。例えば、暗号化部16aは、インターネット13を介して、利用者端末12から、コンテンツを提供する指示を受信した場合には、指示が示すコンテンツに対応するコンテンツデータをコンテンツDB15aから取得する。また、暗号化部16aは、取得したコンテンツデータに対応する鍵情報をライセンスDB14aから取得する。
また、暗号化部16aは、データ圧縮アルゴリズムとして、例えば、LZ77を用いて、コンテンツデータを圧縮する。具体例を挙げて説明する。暗号化部16aは、LZ77のデータ圧縮アルゴリズムを用いて、参照部および符号化部を有するスライド窓を、コンテンツデータの先頭部分に適用する。そして、暗号化部16aは、参照部のコンテンツデータの中に、符号化部の先頭から始まるコンテンツデータの記号と一致するデータがある場合には、符号化部のデータのうち一致した最長部分のデータについて、圧縮を行うためにポインタを生成する。ここで、ポインタは、スライド窓の参照部におけるデータの出現位置、およびデータの長さの情報を含む。そして、暗号化部16aは、生成したポインタをバッファに出力する。なお、かかるバッファは、暗号・圧縮装置16に備えられているものとする。続いて、暗号化部16aは、一致した最長部分のデータの長さだけ、スライド窓をスライドさせる。
また、暗号化部16aは、参照部のコンテンツデータの中に、符号化部の先頭から始まるコンテンツデータの記号と一致するデータがない場合に、データを圧縮せず、符号化部のデータを所定数分、バッファに出力する。なお、符号化部の先頭から始まるコンテンツデータの記号と一致するデータがない場合に、バッファに出力されるデータは、「リテラルバイト」とも称される。続いて、暗号化部16aは、バッファに出力したデータの長さだけ、スライド窓をスライドさせる。
また、暗号化部16aが圧縮処理により、所定のブロック長の圧縮データ(ブロック1、第1のデータ部分)を生成すると、生成部16bは下記の処理を行う。まず、生成部16bは、スライド窓の参照部のデータのハッシュ値Xを算出する。生成部16bがハッシュ値を生成する場合に用いられるハッシュ関数の一例としては、SHA(Secure Hash Algorithm)−2が挙げられる。また、生成部16bが生成するハッシュ値の長さの一例としては、128、192、256ビットが挙げられる。なお、生成部16bがハッシュ値を生成する場合に用いられるハッシュ関数は、後述する復号・伸張装置19がハッシュ値を生成する場合に用いられるハッシュ関数と同一である。そして、生成部16bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部16bは、値Xのハッシュ値Xを算出する。
そして、バッファのサイズが、所定のブロック長となった場合に、暗号化部16aは、所定のブロック長のデータ(ブロック1、第1のデータ部分)をバッファから取り出し、コンテンツの鍵情報Kcを暗号鍵として用いて、取り出したデータを暗号化する。暗号化部16aによる暗号化のアルゴリズムの一例としては、DES(Data Encryption Standard)、AES(Advanced Encryption Standard)などが挙げられる。また、「所定のブロック長」は、暗号化する際の単位である。「所定のブロック長」の長さとしては、例えば、128ビットが用いられる。ここで、暗号化部16aによる暗号化のアルゴリズムは、後述の暗号化処理に用いられる暗号化のアルゴリズム、および後述の復号・伸張装置19による復号化のアルゴリズムと対応するアルゴリズムであり、共通の鍵情報に基づいて暗号化及び復号化が行なわれる。続いて、暗号化部16aは、暗号化したデータを、コンテンツサーバ15へ送信する。これにより、コンテンツDB15aに暗号化されたデータが登録される。暗号化部16aは、このようにして暗号化されたデータをコンテンツサーバ15に送信する処理を、例えば1回だけ行う。なお、暗号化部16aは、暗号化したデータを、インターネット13を介して、利用者端末12へ送信することもできる。この場合、暗号化部16aは、このようにして暗号化されたデータを利用者端末12へ送信する処理を、例えば1回だけ行う。
生成部16bは、コンテンツデータの一部分であるスライド窓の参照部のデータ、及びコンテンツの鍵情報に基づいて、所定のアルゴリズムで第2の鍵情報を生成する。
具体例を挙げて説明する。生成部16bは、所定ブロック長のデータの圧縮処理を行なうごとに、以下の処理を行う。生成部16bは、スライド窓の参照部のハッシュ値Xを算出する。そして、生成部16bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部16bは、値Xのハッシュ値Xを算出する。生成部16bにより生成されたハッシュ値Xは、暗号化部16aで暗号化される際の暗号鍵となる。所定ブロック長のデータが圧縮されるごとに、生成部16bがハッシュ値Xを算出するので、暗号化部16aで暗号鍵として用いられるハッシュ値Xの値は、動的に変化する。
暗号化部16aは、暗号化部16aにより先に暗号化された部分(第1のデータ部分)と異なるコンテンツデータの一部分である第2のデータ部分を第2の鍵情報に基づいて暗号化する。例えば、暗号化部16aは、データ圧縮アルゴリズムとして、生成部16bにより生成されたハッシュ値Xを暗号鍵として用いて、コンテンツデータを暗号化する。
具体例を挙げて説明する。暗号化部16aは、LZ77のデータ圧縮アルゴリズムを用いて、スライド窓を、コンテンツデータ内をスライドさせるごとに、次のような処理を行う。暗号化部16aは、参照部のコンテンツデータの中に、符号化部の先頭から始まるコンテンツデータの記号と一致するデータがある場合には、符号化部のデータのうち一致した最長部分のデータについて、圧縮を行うためにポインタを生成する。そして、暗号化部16aは、生成したポインタをバッファに出力する。続いて、暗号化部16aは、一致した最長部分のデータの長さだけ、スライド窓をスライドさせる。
また、暗号化部16aは、参照部のコンテンツデータの中に、符号化部の先頭から始まるコンテンツデータの記号と一致するデータがない場合に、データを圧縮せず、符号化部のデータを所定数分、バッファに出力する。
そして、バッファのサイズが、所定のブロック長となった場合に、暗号化部16aは、バッファに出力された所定ブロック長のデータをバッファから取り出し、生成部16bにより、暗号化部16aが暗号化済みのブロックに基づいて生成されたハッシュ値Xを暗号鍵として用いて、取り出したデータを暗号化する。続いて、暗号化部16aは、暗号化したデータを、コンテンツサーバ15に送信する。これにより、コンテンツDB15aに暗号化されたデータが登録される。暗号化部16aは、このようにして暗号化されたデータをコンテンツサーバ15に送信する処理を繰り返し行う。なお、暗号化部16aは、暗号化したデータを、インターネット13を介して、利用者端末12へ送信することもできる。暗号化部16aは、このようにして暗号化されたデータを利用者端末12へ送信する処理を繰り返し行う。暗号化部16aでの暗号化に用いられる暗号鍵は、暗号化の対象となるコンテンツデータの部分に応じて、動的に変化するものである。そのため、単一の暗号鍵を用いてコンテンツデータを暗号化した場合と比較して、鍵情報を類推されてしまうことを抑制することができる。
図2は、暗号・圧縮装置での処理を仮想的に示した図である。図2の例では、暗号・圧縮装置16は、スライド窓の参照部のデータ20と、コンテンツの鍵情報21とに基づいて、ブロック1〜3の各々のリテラルバイトおよびポインタを暗号化するための動的な暗号鍵である動的鍵22_1、22_2、22_3を生成する。ここで、スライド窓の参照部のデータ20は、動的に変化するため、各ブロックで生成される動的鍵も動的に変化する。ブロック2の暗号化に用いられる暗号化鍵22_2は、ブロック1の圧縮処理後にスライド窓に残っているデータ20とコンテンツの鍵情報21とに基づいて生成される。もしくは、暗号化鍵22_2は、ブロック1の圧縮処理後にスライド窓に残っているデータ20のみに基づいて生成される。ブロック1の暗号化に用いられる暗号化鍵22_1は、例えば、コンテンツの鍵情報21そのものなどである。
利用者端末12は、再生装置17と、ライセンスDB18とを有する。ライセンスDB18には、各コンテンツを暗号化するための鍵の情報である鍵情報が登録される。なお、ライセンスDB18に登録される鍵情報は、上述したライセンスDB14aに登録された内容と同一である。利用者端末12の一例としては、PC(Personal Computer)や携帯電話などが挙げられる。
再生装置17は、復号・伸張装置19と、DRM(Digital Rights Management)装置20とを有する。このうち、DRM装置20は、利用者端末12の利用者から、図示しないキーボードやマウスなどの受付部を介して、コンテンツを利用するための指示を受信した場合には、インターネット13を介して、サーバ11に、コンテンツを提供する指示を送信する。また、DRM装置20は、サーバ11から送信されたコンテンツを受信した場合には、受信したコンテンツに対応する鍵情報をライセンスDB18から取得し、取得した鍵情報を復号・伸張装置19へ送信する。また、DRM装置20は、復号・伸張装置19により伸張され、復号化されたコンテンツデータを再生する。
復号・伸張装置19は、復号化部19aと、生成部19bと、を有する。なお、復号・伸張装置19は、復号化装置とも称される。
復号化部19aは、サーバ11から送信された復号化対象のデータであるコンテンツデータの一部分である第1のデータ部分を第1の鍵情報(コンテンツの鍵情報)に基づいて復号化する。
具体例を挙げて説明する。復号化部19aは、復号化された第1のデータ部分を、スライド窓を用いた伸張アルゴリズムを用いて伸張する。生成部19bは、スライド窓の参照部のデータのハッシュ値Xを算出する。生成部19bがハッシュ値を生成する場合に用いられるハッシュ関数の一例としては、上述した生成部16bがハッシュ値を生成する場合に用いられるSHA−2が挙げられる。そして、生成部19bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部19bは、値Xのハッシュ値Xを算出する。なお、ハッシュ値Xの値はスライド窓のスライドに伴い変化する。そして、復号化部19aは、ハッシュ値Xを復号化鍵として用いて、受信したコンテンツデータの次のブロック(ブロック2、第2のデータ部分)を復号化する。続いて、復号化部19aは、復号化したデータのうちポインタでない部分については、DRM装置20に送信する。また、復号化したデータのうちポインタの部分については、スライド窓の参照部のデータから、ポインタに含まれるデータの出現位置、およびデータの長さに基づいて、データを変換し、変換したデータをDRM装置20に送信する。なお、DRM装置20では、受信したデータが再生される。そして、復号化部19aは、DRM20に送信したデータの分だけスライド窓をスライドさせる。
上記の通り、生成部19bは、第1のデータ部分および第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。例えば、生成部19bは、LZ77を用いて所定のブロック長のデータについての伸張処理が行なわれるたびに、次のような処理を行う。生成部19bは、スライド窓の参照部のデータのハッシュ値Xを算出する。そして、生成部19bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部19bは、値Xのハッシュ値Xを算出する。なお、ハッシュ値Xの値はスライド窓のスライドに伴い変化する。
復号化部19aは、第2のデータ部分を第2の鍵情報に基づいて復号化する。例えば、復号化部19aは、生成部19bにより算出されたハッシュ値Xを暗号鍵として用いて、受信したコンテンツデータの対応するブロックを復号化する。続いて、復号化部19aは、復号化したデータのうちポインタでない部分については、DRM装置20に送信する。また、復号化したデータのうちポインタの部分については、スライド窓の参照部のデータから、ポインタに含まれるデータの出現位置、およびデータの長さに基づいて、データを変換し、変換したデータをDRM装置20に送信する。そして、復号化部19cは、DRM20に送信したデータの分だけスライド窓をスライドさせる。
上述したライセンスDB14a、コンテンツDB15a、ライセンスDB18は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置に登録される。なお、ライセンスDB14a、コンテンツDB15a、ライセンスDB18が登録される記憶装置は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
暗号・圧縮装置16、復号・伸張装置19は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路を含む。なお、暗号・圧縮装置16、復号・伸張装置19は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路を含んでもよい。
[処理の流れ]
次に、本実施例に係るシステム10の処理の流れを説明する。図3は、実施例1に係るシステムのシーケンス図である。
図3に示すように、ライセンスサーバ14は、コンテンツを提供する指示が示すコンテンツに対応する鍵情報を生成する(ステップS101)。ライセンスサーバ14は、生成した鍵情報をライセンスDB14aに登録する(ステップS102)。暗号・圧縮装置16は、圧縮・暗号化処理を実行する(ステップS103)。なお、圧縮・暗号化処理については後述する。コンテンツサーバ15は、圧縮され、暗号化されたコンテンツデータをコンテンツDB15aに登録する(ステップS104)。
DRM装置20は、サーバ11からコンテンツを取得する(ステップS105)。DRM装置20は、コンテンツに対応する鍵情報をライセンスDB18から取得し、取得した鍵情報を復号・伸張装置19へ送信する(ステップS106)。復号・伸張装置19は、復号化・伸張処理を実行する(ステップS107)。DRM装置20は、復号・伸張装置19により伸張され、復号化されたコンテンツデータを再生する(ステップS108)。
次に、本実施例に係る暗号・圧縮装置16の処理の流れを説明する。図4は、実施例1に係る圧縮・暗号化処理の手順を示すフローチャートである。この圧縮・暗号化処理の実行タイミングとしては様々なタイミングが考えられる。例えば、圧縮・暗号化処理は、サーバ11が、コンテンツを提供する指示を受信した場合に実行されるようにしてもよい。
図4に示すように、暗号化部16aは、スライド窓を初期化する(ステップS201)。暗号化部16aは、取得したコンテンツデータのうち、暗号化が未処理のデータがあるか否かを判定する(ステップS202)。暗号化が未処理のデータがない場合(ステップS202否定)には、処理を終了する。
一方、暗号化が未処理のデータがある場合(ステップS202肯定)には、暗号化部16aは、参照部のコンテンツデータの中から、符号化部の先頭から始まるコンテンツデータの記号と一致するデータを検索し(ステップS203)、一致するデータがあるか否かを判定する(ステップS204)。一致するデータがある場合(ステップS204肯定)には、暗号化部16aは、符号化部のデータのうち一致した最長部分のデータについて、圧縮を行うためにポインタを生成する(ステップS205)。暗号化部16aは、生成したポインタをバッファに出力する。
一方、一致するデータがない場合(ステップS204否定)には、暗号化部16aは、データを圧縮せず、符号化部のデータを所定数分、バッファに出力する(ステップS206)。
暗号化部16aは、バッファのサイズが、所定のブロック長以上であるか否かを判定する(ステップS207)。バッファのサイズが、所定のブロック長以上でない場合(ステップS207否定)には、S204で一致したデータの長さだけスライド窓をスライドさせて(ステップS212)、ステップS202へ戻る。一方、バッファのサイズが、所定のブロック長以上である場合(ステップS207肯定)には、生成部16bは、スライド窓の参照部のデータのハッシュ値Xを算出する(ステップS208)。生成部16bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する(ステップS209)。生成部16bは、値Xのハッシュ値Xを算出する(ステップS210)。暗号化部16aは、バッファに出力されたデータをバッファから取り出し、ハッシュ値Xを暗号鍵として用いて、取り出したデータを暗号化する。そして、暗号化部16aは、暗号化したデータを、コンテンツサーバ15へ送信する(ステップS211)。そして、S204で一致したデータの長さだけスライド窓をスライドさせて(ステップS212)、ステップS202へ戻る。このようにして、利用者端末12へ送信されるコンテンツデータが生成される。
次に、本実施例に係る復号・伸張装置19の処理の流れを説明する。図5は、実施例1に係る復号化・伸張処理の手順を示すフローチャートである。この復号化・伸張処理の実行タイミングとしては様々なタイミングが考えられる。例えば、復号化・伸張処理は、利用者端末12が、コンテンツデータを受信した場合に実行されるようにしてもよい。
図5に示すように、復号化部19aは、スライド窓を初期化する(ステップS301)。復号化部19aは、受信したコンテンツデータのうち、未処理のデータがあるか否かを判定する(ステップS302)。未処理のデータがない場合(ステップS302否定)には、処理を終了する。
一方、未処理のデータがある場合(ステップS302肯定)には、復号化部19aは、ハッシュ値Xを復号化鍵として用いて、受信したコンテンツデータの復号化が行われていないブロックであって、先頭に最も近いブロックを復号化する(ステップS303)。そして、復号化部19aは、復号化したデータのうちポインタでない部分については、DRM装置20に送信する。また、復号化したデータのうちポインタの部分については、スライド窓の参照部のデータから、ポインタに含まれるデータの出現位置、およびデータの長さに基づいて、データを変換し、変換したデータをDRM装置20に送信する(ステップS304)。生成部19bは、スライド窓の参照部のデータのハッシュ値Xを算出する(ステップS305)。生成部19bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する(ステップS306)。生成部19bは、値Xのハッシュ値Xを算出する(ステップS307)。そして、ステップS302へ戻る。
[実施例1の効果]
上述してきたように、本実施例に係る暗号・圧縮装置16は、暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する。そして、本実施例に係る暗号・圧縮装置16は、第1のデータ部分及び第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。続いて、本実施例に係る暗号・圧縮装置16は、暗号化対象データの第1のデータ部分と異なる一部分である第2のデータ部分を第2の鍵情報に基づいて暗号化する。このように、第1の鍵情報と第2の鍵情報は、暗号化の対象となるコンテンツデータの部分に応じて、動的に変化するものである。そのため、本実施例に係る暗号・圧縮装置16によれば、単一の暗号鍵を用いてコンテンツデータを暗号化した場合と比較して、鍵情報を類推されてしまうことを抑制することができる。
また、本実施例に係る暗号・圧縮装置16は、スライド窓を用いて第2のデータ部分を圧縮しつつ、圧縮された第2のデータ部分を、第1のデータ部分の圧縮に用いたスライド窓のデータと、鍵情報とで暗号化する。したがって、本実施例に係る暗号・圧縮装置16によれば、圧縮と暗号化とを1パスで行うことができ、時間および資源量の観点から、効率的に、圧縮と暗号化とを行うことができる。同様の理由で、本実施例に係る復号・伸張装置19によれば、伸張と復号化とを1パスで行うことができ、時間および資源量の観点から、効率的に、伸張と復号化とを行うことができる。また、本実施例に係る復号・伸張装置19によれば、伸張と復号化とを1パスで行うことができることから、生データの展開を局所化することができ、情報漏洩の危険性を低下させることができる。また、1パスで処理を行なうため、暗号化処理時に、圧縮データを保持しておくメモリ領域を抑制できる。
また、本実施例に係る暗号・圧縮装置16は、暗号化対象データの第2のデータ部分、及び第2の鍵情報に基づいて所定のアルゴリズムで新たな第3の鍵情報を生成する。そして、本実施例に係る暗号・圧縮装置16は、暗号化対象データの第3のデータ部分を、第3の鍵情報に基づいて暗号化する。したがって、本実施例に係る暗号・圧縮装置16によれば、暗号化対象データの位置(部分)に応じた鍵情報を変更しながら、暗号化対象データを暗号化することができる。
また、本実施例に係る復号・伸張装置19は、第1のデータ部分を第1の鍵情報に基づいて復号化する。そして、本実施例に係る復号・伸張装置19は、第1のデータ部分および第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。そして、本実施例に係る復号・伸張装置19は、第1のデータ部分を第2の鍵情報に基づいて復号化する。したがって、本実施例に係る復号・伸張装置19によれば、鍵情報を類推されてしまうことが抑制された暗号化対象データを復号化することができる。また、第1のデータ部分に対して適用する暗号化・復号化のアルゴリズムは、他のデータ部分に適用する暗号化・復号化のアルゴリズムと異なるアルゴリズムでもよい。復号化側では、第1のデータ部分についての復号化を行なえないと、それ以降のデータ部分についての復号化を行なうことができない。そのため、第1のデータ部分に比較的解読されにくく、演算コストがかかるアルゴリズムを用いれば、その他のデータ部分に対して比較的演算コストがかかりにくいアルゴリズムを用いたとしても、難読性が低下することを抑制できる。
さて、上記の実施例1では、LZ77を用いる場合を例示したが、開示の装置はこれに限定されない。そこで、実施例2では、LZ78を用いる場合について説明する。
[システム50の構成]
図6は、実施例2に係るシステムの構成を示す図である。図6に示すように、システム50におけるサーバ51は、実施例1に係る暗号・圧縮装置16に代えて暗号・圧縮装置56を有する。暗号・圧縮装置56は、実施例1に係る暗号・圧縮装置16の暗号化部16a、生成部16bに代えて暗号化部56a、生成部56bを有する点が、暗号・圧縮装置16と異なる。また、システム50における利用者端末52は、実施例1に係る復号・伸張装置19に代えて復号・伸張装置59を有する。復号・伸張装置59は、実施例1に係る復号・伸張装置19の復号化部19a、生成部19bに代えて復号化部59a、生成部59bを有する点が、復号・伸張装置19と異なる。なお、以下では、上記の実施例1と同様の機能を果たす各部や各機器については図1と同様の符号を付し、その説明は省略することとする。
暗号化部56aは、暗号化対象のデータであるコンテンツデータの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する。例えば、暗号化部56aは、インターネット13を介して、利用者端末12から、コンテンツを提供する指示を受信した場合には、指示が示すコンテンツに対応するコンテンツデータをコンテンツDB15aから取得する。また、暗号化部56aは、取得したコンテンツデータに対応する鍵情報をライセンスDB14aから取得する。
そして、暗号化部56aは、データ圧縮アルゴリズムとして、LZ78のデータ圧縮アルゴリズムを用いて、動的辞書を生成しつつ、コンテンツデータを圧縮する。例えば、暗号化部56aは、動的辞書に未登録のコンテンツデータの記号を登録しつつ、動的辞書を用いてコンテンツデータを圧縮し、圧縮したバッファデータを、暗号・圧縮装置56が有するバッファに登録する。
また、生成部56bは、下記の処理を行う。すなわち、生成部56bは、動的辞書のデータのハッシュ値Xを算出する。生成部56bがハッシュ値を生成する場合に用いられるハッシュ関数の一例としては、SHA−2が挙げられる。また、生成部56bが生成するハッシュ値の長さの一例としては、128、192、256ビットが挙げられる。なお、生成部56bがハッシュ値を生成する場合に用いられるハッシュ関数は、後述する復号・伸張装置59がハッシュ値を生成する場合に用いられるハッシュ関数と同一である。そして、生成部56bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部56bは、値Xのハッシュ値Xを算出する。
そして、バッファのサイズが、所定のブロック長となった場合に、暗号化部56aは、バッファに出力されたデータ(ブロック1、第1のデータ部分)をバッファから取り出し、ハッシュ値Xを暗号鍵として用いて、取り出したデータを暗号化する。暗号化部56aによる暗号化のアルゴリズムの一例としては、DES、AESなどが挙げられる。また、「所定のブロック長」は、暗号化する際の単位である。「所定のブロック長」の長さとしては、例えば、128ビットが用いられる。ここで、暗号化部56aによる暗号化のアルゴリズムは、後述の復号・伸張装置59による復号化のアルゴリズムと対応するアルゴリズムである。続いて、暗号化部56aは、暗号化したデータを、コンテンツサーバ15へ送信する。なお、暗号化部56aは、暗号化したデータを、インターネット13を介して、利用者端末52へ送信することもできる。
生成部56bは、動的辞書、及びコンテンツの鍵情報に基づいて、所定のアルゴリズムで第2の鍵情報を生成する。なお、コンテンツデータの記号のうち、未登録の記号が動的辞書に登録されることで、動的辞書のデータは更新される。
具体例を挙げて説明する。生成部56bは、動的辞書が更新されるごとに、以下の処理を行う。すなわち、生成部56bは、動的辞書のハッシュ値Xを算出する。そして、生成部56bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部56bは、値Xのハッシュ値Xを算出する。生成部56bにより生成されたハッシュ値Xは、暗号化部56aで暗号化される際の暗号鍵となる。また、所定ブロック長の圧縮データが生成されるごとに、生成部56bがハッシュ値Xを算出するので、暗号化部56aで暗号鍵として用いられるハッシュ値Xの値は、動的に変化する。
暗号化部56aは、暗号化された第1のデータ部分と異なるコンテンツデータの一部分である第2のデータ部分を第2の鍵情報に基づいて暗号化する。例えば、暗号化部56aは、データ圧縮アルゴリズムとして、LZ78を用いて、生成部56bにより生成されたハッシュ値Xを暗号鍵として用いて、コンテンツデータを暗号化する。
具体例を挙げて説明する。暗号化部56aは、データ圧縮アルゴリズムとして、LZ78のデータ圧縮アルゴリズムを用いて、動的辞書を生成しつつ、コンテンツデータを圧縮する。例えば、暗号化部56aは、動的辞書に未登録のコンテンツデータの記号を登録しつつ、動的辞書を用いてコンテンツデータを圧縮し、圧縮したバッファデータを、暗号・圧縮装置56が有するバッファに登録する。
そして、バッファのサイズが、所定のブロック長となった場合に、暗号化部56aは、バッファに出力されたデータをバッファから取り出し、生成部56bにより生成されたハッシュ値Xを暗号鍵として用いて、取り出したデータを暗号化する。なお、暗号化部56aは、暗号化したデータを、インターネット13を介して、利用者端末52へ送信することもできる。この場合、暗号化部56aは、このようにして暗号化されたデータを利用者端末52へ送信する処理を繰り返し行う。暗号化部56aでの暗号化に用いられる暗号鍵は、暗号化の対象となるコンテンツデータの部分に応じて、動的に変化するものである。そのため、単一の暗号鍵を用いてコンテンツデータを暗号化した場合と比較して、鍵情報を類推されてしまうことを抑制することができる。
復号化部59aは、サーバ11から送信された復号化対象のデータであるコンテンツデータの一部分である第1のデータ部分を第1の鍵情報(コンテンツデータの鍵情報)に基づいて復号化する。
具体例を挙げて説明する。生成部59bは、動的辞書のハッシュ値Xを算出する。生成部59bがハッシュ値を生成する場合に用いられるハッシュ関数の一例としては、上述した生成部56bなどがハッシュ値を生成する場合に用いられるSHA−2が挙げられる。そして、生成部59bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部59bは、値Xのハッシュ値Xを算出する。なお、ハッシュ値Xの値は動的辞書の更新に伴い変化する。そして、復号化部59aは、ハッシュ値Xを復号化鍵として用いて、受信したコンテンツデータの先頭のブロックを復号化する。続いて、復号化部59aは、動的辞書を用いて、復号化したデータを伸張し、伸張したデータをDRM装置20に送信する。
生成部59bは、第1のデータ部分および第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。例えば、生成部59bは、LZ78を用いた伸張処理により動的辞書が更新されるたびに、次のような処理を行う。生成部59bは、動的辞書のハッシュ値Xを算出する。生成部59bがハッシュ値を生成する場合に用いられるハッシュ関数の一例としては、上述した暗号化部56aなどがハッシュ値を生成する場合に用いられるSHA−2が挙げられる。そして、生成部59bは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する。次に、生成部59bは、値Xのハッシュ値Xを算出する。なお、ハッシュ値Xの値は動的辞書の更新に伴い変化する。
復号化部59aは、第2のデータ部分を第2の鍵情報に基づいて復号化する。例えば、復号化部59aは、生成部59bにより算出されたハッシュ値Xを暗号鍵として用いて、受信したコンテンツデータの対応するブロック2を復号化する。続いて、復号化部59aは、動的辞書を用いて、復号化したデータを伸張し、伸張したデータをDRM装置20に送信する。
暗号・圧縮装置56、復号・伸張装置59は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路を含む。なお、暗号・圧縮装置56、復号・伸張装置59は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路を含んでもよい。
[処理の流れ]
次に、本実施例に係る暗号・圧縮装置56の処理の流れを説明する。図7は、実施例2に係る圧縮・暗号化処理の手順を示すフローチャートである。この圧縮・暗号化処理の実行タイミングとしては様々なタイミングが考えられる。例えば、圧縮・暗号化処理は、サーバ51が、コンテンツを提供する指示を受信した場合に実行されるようにしてもよい。なお、本実施例に係るシステム50の処理の流れについては、実施例1と同様であるので説明を省略する。
図7に示すように、暗号化部56aは、動的辞書を初期化する(ステップS401)。暗号化部56aは、取得したコンテンツデータのうち、未処理のデータがあるか否かを判定する(ステップS402)。未処理のデータがない場合(ステップS402否定)には、処理を終了する。一方、未処理のデータがある場合(ステップS402肯定)には、暗号化部56aは、動的辞書に未登録のコンテンツデータの記号を登録し、動的辞書を用いてコンテンツデータを圧縮し、圧縮したバッファデータを、暗号・圧縮装置56が有するバッファに登録する(ステップS403)。
第1の暗号化部56aは、バッファのサイズが、所定のブロック長以上であるか否かを判定する(ステップS404)。バッファのサイズが、所定のブロック長以上でない場合(ステップS404否定)には、ステップS402へ戻る。一方、バッファのサイズが、所定のブロック長以上である場合(ステップS404肯定)には、暗号化部56aは、動的辞書のハッシュ値Xを算出する(ステップS405)。暗号化部56aは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する(ステップS406)。第1の暗号化部56aは、値Xのハッシュ値Xを算出する(ステップS407)。
暗号化部56aは、バッファに出力されたデータをバッファから取り出し、本フローにおいて1つ前に生成したハッシュ値X(1つ前に生成したハッシュ値Xが存在しない場合にはコンテンツの鍵情報)を暗号鍵として用いて、取り出したデータを暗号化する。そして、暗号化部56aは、暗号化したデータを、コンテンツサーバ15へ送信する(ステップS408)。そして、ステップS402へ戻る。このようにして、利用者端末12へ送信されるコンテンツデータが生成される。
次に、本実施例に係る復号・伸張装置59の処理の流れを説明する。図8は、実施例2に係る復号化・伸張処理の手順を示すフローチャートである。この復号化・伸張処理の実行タイミングとしては様々なタイミングが考えられる。例えば、復号化・伸張処理は、利用者端末52が、コンテンツデータを受信した場合に実行されるようにしてもよい。
図8に示すように、復号化部59aは、動的辞書を初期化する(ステップS501)。復号化部59aは、受信したコンテンツデータのうち、未処理のデータがあるか否かを判定する(ステップS502)。未処理のデータがない場合(ステップS502否定)には、処理を終了する。一方、未処理のデータがある場合(ステップS502肯定)には、復号化部59aは、ハッシュ値X(生成されていない場合は、コンテンツデータの鍵情報)を復号化鍵として用いて、受信したコンテンツデータの復号化が行われていないブロックであって、先頭に最も近いブロックを復号化する(ステップS503)。そして、復号化部59aは、動的辞書を用いて、復号化したデータを伸張し、伸張したデータをDRM装置20に送信する(ステップS504)。
復号化部59aは、動的辞書のハッシュ値Xを算出する(ステップS505)。復号化部59aは、ハッシュ値Xと、コンテンツの鍵情報Kcとを連結し、値X(=X+Kc)を算出する(ステップS506)。復号化部59aは、値Xのハッシュ値Xを算出する(ステップS507)。そして、ステップS502へ戻る。
[実施例2の効果]
上述してきたように、本実施例に係る暗号・圧縮装置56は、暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する。そして、本実施例に係る暗号・圧縮装置56は、第1のデータ部分及び第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。続いて、本実施例に係る暗号・圧縮装置56は、暗号化対象データの第1のデータ部分と異なる一部分である第2のデータ部分を第2の鍵情報に基づいて暗号化する。このように、第1の鍵情報と第2の鍵情報は、暗号化の対象となるコンテンツデータの部分に応じて、動的に変化するものである。そのため、本実施例に係る暗号・圧縮装置56によれば、単一の暗号鍵を用いてコンテンツデータを暗号化した場合と比較して、鍵情報を類推されてしまうことを抑制することができる。
また、本実施例に係る暗号・圧縮装置56は、動的辞書を用いて第2のデータ部分を圧縮しつつ、圧縮された第2のデータ部分を動的辞書のデータと、暗号化対象データに応じて定まる鍵情報とで暗号化する。したがって、本実施例に係る暗号・圧縮装置56によれば、圧縮と暗号化とを1パスで行うことができ、時間および資源量の観点から、効率的に、圧縮と暗号化とを行うことができる。同様の理由で、本実施例に係る復号・伸張装置59によれば、伸張と復号化とを1パスで行うことができ、時間および資源量の観点から、効率的に、伸張と復号化とを行うことができる。また、本実施例に係る復号・伸張装置59によれば、伸張と復号化とを1パスで行うことができることから、生データの展開を局所化することができ、情報漏洩の危険性を低下させることができる。
また、本実施例に係る暗号・圧縮装置56は、暗号化対象データの第2のデータ部分、及び第2の鍵情報に基づいて所定のアルゴリズムで第3の鍵情報を生成する。そして、本実施例に係る暗号・圧縮装置56は、暗号化対象データの第3のデータ部分を、第3の鍵情報に基づいて暗号化する。したがって、本実施例に係る暗号・圧縮装置56によれば、暗号化対象データの位置(部分)に応じた鍵情報で、暗号化対象データを暗号化することができる。
また、本実施例に係る復号・伸張装置59は、第1のデータ部分を第1の鍵情報に基づいて復号化する。そして、本実施例に係る復号・伸張装置59は、第1のデータ部分および第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する。そして、本実施例に係る復号・伸張装置59は、第2のデータ部分を第2の鍵情報に基づいて復号化する。したがって、本実施例に係る復号・伸張装置59によれば、鍵情報を類推されてしまうことが抑制された暗号化対象データを復号化することができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、実施例1、2において説明した処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[暗号化プログラム、復号化プログラム]
また、上記の実施例1、2で説明した暗号・圧縮装置、復号・伸張装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図9、10を用いて、上記の実施例で説明した暗号・圧縮装置、復号・伸張装置と同様の機能を有する支援プログラムを実行するコンピュータの一例を説明する。図9は、暗号化プログラムを実行するコンピュータを示す図である。また、図10は、復号化プログラムを実行するコンピュータを示す図である。
図9に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340とを有する。これら310〜340の各部は、バスを介して接続される。CPU310は、暗号化プログラム320aを実行可能なプロセッサの一例である。
ROM320には、上記の実施例で示す第1の暗号化部、第1の生成部、第2の暗号化部と同様の機能を発揮する暗号化プログラム320aが予め記憶される。なお、暗号化プログラム320aについては、適宜分離しても良い。
そして、CPU310が、暗号化プログラム320aをROM320から読み出して実行する。
そして、HDD330には、ライセンスDB、コンテンツDBが設けられる。これらライセンスDB、コンテンツDBのそれぞれは、ライセンスDB14a、コンテンツDB15aのそれぞれに対応する。
そして、CPU310は、ライセンスDB、コンテンツDBを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたライセンスDB、コンテンツDBを用いて、暗号化プログラムを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
図10に示すように、コンピュータ400は、CPU410、ROM420、HDD430、RAM440とを有する。これら410〜440の各部は、バスを介して接続される。CPU410は、復号化プログラム420aを実行可能なプロセッサの一例である。
ROM420には、上記の実施例で示す第1の復号化部、第2の生成部、第2の復号化部と同様の機能を発揮する復号化プログラム420aが予め記憶される。なお、復号化プログラム420aについては、適宜分離しても良い。
そして、CPU410が、復号化プログラム420aをROM420から読み出して実行する。
そして、HDD430には、ライセンスDBが設けられる。このライセンスDBは、ライセンスDB18に対応する。
そして、CPU410は、ライセンスDBを読み出してRAM440に格納する。さらに、CPU410は、RAM440に格納されたライセンスDBを用いて、復号化プログラムを実行する。
なお、上記した暗号化プログラムおよび復号化プログラムについては、必ずしも最初からROMに記憶させておく必要はない。
例えば、コンピュータに挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータがこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータに接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータがこれらからプログラムを読み出して実行するようにしてもよい。
10 システム
11 サーバ
12 利用者端末
16 暗号・圧縮装置
16a 暗号化部
16b 生成部
19 復号・伸張装置
19a 復号化部
19b 生成部

Claims (9)

  1. コンピュータに、
    暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化し、
    前記第1のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成し、
    前記暗号化対象データの前記第1のデータ部分と異なる一部分である第2のデータ部分を前記第2の鍵情報に基づいて暗号化する、
    処理を実行させることを特徴とする暗号化プログラム。
  2. 前記第2の鍵情報は、前記第1のデータ部分の圧縮処理に用いられたスライド窓に含まれるデータと、前記第1の鍵情報とに基づいて生成される、
    ことを特徴とする請求項1に記載の暗号化プログラム。
  3. 前記第2の鍵情報は、前記第1のデータ部分の圧縮処理に用いられた動的辞書に含まれるデータと、前記第1の鍵情報とに基づいて生成される、
    ことを特徴とする請求項1に記載の暗号化プログラム。
  4. コンピュータに、さらに、
    前記第2のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第3の鍵情報を生成し、
    前記暗号化対象データの前記第1のデータ部分と前記第2のデータ部分とのいずれとも異なる一部分である第3のデータ部分を、前記第3の鍵情報に基づいて暗号化する
    処理を実行させることを特徴とする請求項1〜3のいずれか1つに記載の暗号化プログラム。
  5. コンピュータに、
    暗号化対象データの一部分であり、第1の鍵情報で暗号化された第1のデータ部分と、暗号化対象データのうち前記第1のデータ部分と異なる一部分であり、且つ、前記第1のデータ部分と前記第1の鍵情報に基づいて生成された第2の鍵情報で暗号化された、第2のデータ部分と、を含む暗号化対象データのうち、前記第1のデータ部分を前記第1の鍵情報に基づいて復号化し、
    前記第1のデータ部分および前記第1の鍵情報に基づいて所定のアルゴリズムで前記第2の鍵情報を生成し、
    前記第2のデータ部分を前記第2の鍵情報に基づいて復号化する、
    処理を実行させることを特徴とする復号化プログラム。
  6. コンピュータが、
    暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化し、
    前記第1のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成し、
    前記暗号化対象データの前記第1のデータ部分と異なる一部分である第2のデータ部分を前記第2の鍵情報に基づいて暗号化する、
    処理を実行させることを特徴とする暗号化方法。
  7. コンピュータが、
    暗号化対象データの一部分であり、第1の鍵情報で暗号化された第1のデータ部分と、暗号化対象データのうち前記第1のデータ部分と異なる一部分であり、且つ、前記第1のデータ部分と前記第1の鍵情報に基づいて生成された第2の鍵情報で暗号化された、第2のデータ部分と、を含む暗号化対象データのうち、前記第1のデータ部分を前記第1の鍵情報に基づいて復号化し、
    前記第1のデータ部分および前記第1の鍵情報に基づいて所定のアルゴリズムで前記第2の鍵情報を生成し、
    前記第2のデータ部分を前記第2の鍵情報に基づいて復号化する、
    処理を実行することを特徴とする復号化方法。
  8. 暗号化対象データの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化する第1の暗号化部と、
    前記第1のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成する第1の生成部と、
    前記暗号化対象データの前記第1のデータ部分と異なる一部分である第2のデータ部分を前記第2の鍵情報に基づいて暗号化する第2の暗号化部と
    を有する暗号化装置と、
    暗号化された前記第1のデータ部分を前記第1の鍵情報に基づいて復号化する第1の復号化部と、
    前記第1のデータ部分および前記第1の鍵情報に基づいて所定のアルゴリズムで前記第2の鍵情報を生成する第2の生成部と、
    前記第2のデータ部分を前記第2の鍵情報に基づいて復号化する第2の復号化部と、
    を有する復号化装置と、
    を有することを特徴とするシステム。
  9. コンピュータが実行するコンテンツの生成方法であって、
    コンテンツの一部分である第1のデータ部分を第1の鍵情報に基づいて暗号化し、
    前記第1のデータ部分及び前記第1の鍵情報に基づいて所定のアルゴリズムで第2の鍵情報を生成し、
    前記暗号化対象データの前記第1のデータ部分と異なる一部分である第2のデータ部分を前記第2の鍵情報に基づいて暗号化する、
    ことを特徴とするコンテンツの生成方法。
JP2012066203A 2011-03-22 2012-03-22 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法 Pending JP2012212138A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012066203A JP2012212138A (ja) 2011-03-22 2012-03-22 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011063406 2011-03-22
JP2011063406 2011-03-22
JP2012066203A JP2012212138A (ja) 2011-03-22 2012-03-22 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法

Publications (1)

Publication Number Publication Date
JP2012212138A true JP2012212138A (ja) 2012-11-01

Family

ID=46878344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012066203A Pending JP2012212138A (ja) 2011-03-22 2012-03-22 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法

Country Status (2)

Country Link
US (1) US8645713B2 (ja)
JP (1) JP2012212138A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160142741A (ko) * 2015-06-03 2016-12-13 삼성전자주식회사 컨텐츠를 암호화하기 위한 전자 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9948695B2 (en) * 2012-03-16 2018-04-17 Alcatel Lucent Enabling delivery of protected content using unprotected delivery services
US20140006536A1 (en) * 2012-06-29 2014-01-02 Intel Corporation Techniques to accelerate lossless compression
US9369440B2 (en) * 2012-07-24 2016-06-14 Empire Technology Development Llc Securing private information in public, private and mobile devices
US10057217B2 (en) * 2014-07-15 2018-08-21 Sap Se System and method to secure sensitive content in a URI
US10027715B2 (en) * 2015-06-03 2018-07-17 Samsung Electronics Co., Ltd. Electronic device and method for encrypting content
US10454679B2 (en) * 2016-06-10 2019-10-22 Apple Inc. File system support for rolling keys on file extents
CN108242994B (zh) 2016-12-26 2021-08-13 阿里巴巴集团控股有限公司 密钥的处理方法和装置
CN107086914B (zh) * 2017-04-24 2019-08-09 湖南创星科技股份有限公司 基于大数据技术的个人健康数据综合分发方法及系统
CN109218010B (zh) * 2017-07-04 2021-11-30 阿波罗智能技术(北京)有限公司 数据加密方法和装置、数据解密方法和装置
CN108337234B (zh) * 2017-12-28 2021-03-23 宁德时代新能源科技股份有限公司 车载程序文件加密方法和装置
US10583898B2 (en) * 2018-01-27 2020-03-10 Lone Gull Holdings, Ltd. Wind-powered computing buoy
CN112668033B (zh) * 2019-10-15 2023-04-25 抖音视界有限公司 数据处理方法、装置及电子设备
US11483147B2 (en) * 2020-01-23 2022-10-25 Bank Of America Corporation Intelligent encryption based on user and data properties
US11533173B2 (en) * 2020-06-11 2022-12-20 Lognovations Holdings, Llc Systems and methods for compression and encryption of data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59136880A (ja) * 1983-01-27 1984-08-06 Fujitsu Ltd デイジタル署名装置
JPH09200196A (ja) * 1996-01-24 1997-07-31 Brother Ind Ltd 暗号通信方式
JPH09230786A (ja) * 1996-02-28 1997-09-05 Hitachi Ltd データの暗号化方法及び装置
JPH1084339A (ja) * 1996-09-06 1998-03-31 Nippon Telegr & Teleph Corp <Ntt> ストリーム暗号による通信方法、ならびに通信システム
JPH10303879A (ja) * 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214195A (ja) 1997-01-30 1998-08-11 Nec Corp 複数のジョブステップを並列に実行するジョブ制御文生 成装置、ジョブ制御文生成方法およびジョブ制御文生成 プログラムを記録した記録媒体
JP3421700B2 (ja) * 1998-01-22 2003-06-30 富士通株式会社 データ圧縮装置及び復元装置並びにその方法
US6744388B1 (en) * 2002-06-19 2004-06-01 Xilinx, Inc. Hardware-friendly general purpose data compression/decompression algorithm
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
JP4936517B2 (ja) 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59136880A (ja) * 1983-01-27 1984-08-06 Fujitsu Ltd デイジタル署名装置
JPH09200196A (ja) * 1996-01-24 1997-07-31 Brother Ind Ltd 暗号通信方式
JPH09230786A (ja) * 1996-02-28 1997-09-05 Hitachi Ltd データの暗号化方法及び装置
JPH1084339A (ja) * 1996-09-06 1998-03-31 Nippon Telegr & Teleph Corp <Ntt> ストリーム暗号による通信方法、ならびに通信システム
JPH10303879A (ja) * 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015029426; 吉浦裕 他: 'モーバイル環境に適した圧縮/暗号通信方式(2) -圧縮/暗号同時実行アルゴリズム-' 第52回(平成8年前期)全国大会講演論文集(1) 基礎理論と基礎技術 ネットワーク 教育 応用 , 19960306, p.1-85-86 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160142741A (ko) * 2015-06-03 2016-12-13 삼성전자주식회사 컨텐츠를 암호화하기 위한 전자 장치 및 방법
KR102370842B1 (ko) * 2015-06-03 2022-03-08 삼성전자주식회사 컨텐츠를 암호화하기 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
US20120246485A1 (en) 2012-09-27
US8645713B2 (en) 2014-02-04

Similar Documents

Publication Publication Date Title
JP2012212138A (ja) 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法
JP6964688B2 (ja) 暗号文に対する近似演算を行う装置及び方法
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
KR102219476B1 (ko) 데이터를 암호화하는 방법 및 그를 위한 장치
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
US9305171B2 (en) Encryption apparatus, encryption method, decryption apparatus, decryption method and system
KR101767655B1 (ko) 감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
WO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
CN112199696A (zh) 基于白盒分组密码的加解密方法
KR101924047B1 (ko) 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치
WO2019053778A1 (ja) 登録端末、検索端末、検索サーバ、検索システム、登録プログラム及び検索プログラム
JP5884412B2 (ja) 変換プログラム、変換装置、変換方法、および変換システム
JP6348273B2 (ja) 情報処理システム
WO2023065772A1 (zh) 日志数据处理方法及装置、存储介质和电子设备
CN114390317B (zh) 面向流式传输视频的加密方法及系统
KR20130097814A (ko) 내장 기기에서의 정보 처리 장치, 및 정보 처리 방법
JP2012029271A (ja) 暗号化装置、復号装置、暗号化システム、暗号化方法、プログラム
CN108985109A (zh) 一种数据存储方法及装置
JP2019200382A (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
JP2006270343A (ja) 部分暗号化装置および方法ならびにプログラム
JP2016139861A (ja) 暗号化装置、暗号化方法及び配信システム
JP2015069192A (ja) 情報処理装置、暗号化方法
KR101375670B1 (ko) 데이터의 암호화/복호화 방법 및 이를 적용한 버스 시스템
JP2007134860A (ja) 暗号化プログラムおよび復号化プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150928

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160405