JPWO2002058039A1 - 算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラム - Google Patents

算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラム Download PDF

Info

Publication number
JPWO2002058039A1
JPWO2002058039A1 JP2002558246A JP2002558246A JPWO2002058039A1 JP WO2002058039 A1 JPWO2002058039 A1 JP WO2002058039A1 JP 2002558246 A JP2002558246 A JP 2002558246A JP 2002558246 A JP2002558246 A JP 2002558246A JP WO2002058039 A1 JPWO2002058039 A1 JP WO2002058039A1
Authority
JP
Japan
Prior art keywords
symbol
piecewise linear
key
arithmetic
linear mapping
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.)
Granted
Application number
JP2002558246A
Other languages
English (en)
Other versions
JP4086661B2 (ja
Inventor
田中 清
清 田中
Original Assignee
株式会社進化システム総合研究所
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 株式会社進化システム総合研究所 filed Critical 株式会社進化システム総合研究所
Publication of JPWO2002058039A1 publication Critical patent/JPWO2002058039A1/ja
Application granted granted Critical
Publication of JP4086661B2 publication Critical patent/JP4086661B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • H04N1/411Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
    • H04N1/413Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
    • H04N1/417Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/448Rendering the image unintelligible, e.g. scrambling
    • H04N1/4486Rendering the image unintelligible, e.g. scrambling using digital data encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本発明の算術型圧縮暗号装置は、シンボルの出現確率を予測するモデル器から出力された該シンボルの出現確率に基づいて前記シンボルの符号化をおこなう算術符号器であって、入力したシンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御して出力符号を圧縮および暗号化する。本発明の算術型圧縮暗号装置によれば、算術符号化による本来のデータ圧縮率を損なうことなく、高い安全性を得ることができる。また、単純な処理で効率良く出力符号を攪乱することができる。

Description

技術分野
この発明は、シンボルの出現確率を予測するモデル器から出力された該シンボルの出現確率に基づいて前記シンボルの符号化をおこなう算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラムに関し、特に、算術符号化法を用いてデータ圧縮と暗号化を同時に行う場合に、算術符号化による本来のデータ圧縮率を損なうことなく、高い安全性を得ることができる算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラムに関する。
従来の技術
近年のインターネットの著しい普及と充実により、利用者は自分のパソコンを用いて様々な情報を手軽に、瞬時に、そして世界中の相手と送受信できるようになった。特に最近は、コンピュータネットワークの容量が限られているにもかかわらず、通信トラフィックや通信容量は増加する一途であるため、高速なリアルタイム通信を保証するデータ圧縮技術への要求が高まっている。
一方、インターネットは世界中の多数のコンピュータが自由に接続されて構成され、特定の管理者のもとで運営されるものではないので、送信情報の安全性が必ずしも保障されるわけではない。また、インターネット上での諸問題に対する法的整備も不十分であり、しばしば秘匿性の高い重要情報が第三者に漏洩するなどの問題が生じ、送信情報の安全性を確保するための方策、すなわち情報セキュリティに対する必要性もますます高まっている。
これらのことから、今日では「データ圧縮技術」と「暗号化技術」が極めて重要な技術として位置づけられているが、従来はデータ圧縮技術と暗号化技術はそれぞれ別個の技術として開発されていた。このため、データ圧縮と暗号化の両者をおこなう場合には、まずデータを圧縮した後に暗号化を行ういわゆる2パス方式が採用されることになる。
しかし、対象となる送信情報によっては、かかる2パス方式では処理が複雑となるので、データ圧縮と暗号化を同時に1パスで行うことが求められる場合がある。例えば、オンデマンド出版などの応用では、極めて容量の大きい超高精細印刷画像(A4版カラー画像1枚の情報量は数百Mバイトにも及ぶ)を圧縮符号化しなければならず、かつ内容保全のためにさらに暗号化を施さなければならないので、従来の2パス方式では極めて処理が不便であり、処理を高速化することが望まれている。
このような立場から、高能率なデータ圧縮技術として知られる算術符号化法を用いてデータ圧縮と暗号化を同時に行う技術が提案されている。具体的には、この算術符号化法を実現する算術符号化器は、一般に、シンボルの出現確率を予測するモデル器と、このモデル器から出力されるシンボルの出現確率と実際の入力シンボルにより符号化を行う符号化器とから構成されるので、このモデル器または符号化器を対象として暗号化をおこなうことになる。
例えば、モデル器を暗号化対象とする技術としては、「Witten,″On the Privacy Afforded by Adaptive Text Compression″,Computer & Security,Vol.7,pp.397−408,1998(以下「Witten法」と言う)」や、「Liu,″Resisting the Bergen−Hogan Attack on Adaptive Arithmetic Coding″,Proc.IMA Conference on Coding and Cryptography,pp.199−208,1998(以下「Liu法」と言う)」や、「Uehara,″Attacking and Mending Arithmetic Coding Encryption Schemes″,Proc.Twenty−Second Australian Computer Science Conference,pp.408−419,1998(以下「Uehara法」と言う)」などが知られている。
このWitten法は、使用するモデル器とその初期値を暗号鍵とする技術であり、Liu法は、Witten法と同様にモデル器の初期値を暗号鍵とするとともに、符号化器において初期写像区間を鍵で選定し、さらに当初ダミーシンボルを符号化する技術であり、Uehara法は、Witten法と同様にモデル器の初期値を暗号鍵とするとともに、符号化器から出力される符号語にXORによるマスクキング演算を行う技術である。
また、符号化器を対象とする暗号化技術としては、「樽川,″算術符号を用いた秘密鍵暗号方式″,電子情報通信学会技術研究報告,IT91−34,1991(以下「樽川法」と言う)」や、特開平11−73102号公報に開示される秘密鍵暗号化復号化方法や、特開平6−112840号公報に開示される符号化復号化方法などが知られている。
この樽川法は、符号化器において鍵によりシンボルに対応する区間の入れ替えを行い符号化し、さらに当初ダミーシンボルを符号化する技術であり、特開平11−73102号公報に係る発明は、符号化器における初期写像区間の上限値を鍵としたものであり、特開平6−112840号公報に係る発明は、符号化器における初期シンボルの出現確率を鍵としたものである。
しかしながら、上記Witten法、Liu法およびUehara法のようなモデル器を暗号化対象とする従来技術によれば、使用するモデル器やその初期値を暗号鍵として使用しているために、モデル器が特定されると鍵が特定されやすいという問題がある。特に、算術符号化法を採用する国際標準方式などではモデル器が既知であるので、安全性が低下することになる。
一方、樽川法、特開平11−73102号公報、特開平6−112840号公報のような符号化器を暗号化対象とする従来技術によれば、出力符号に十分な攪拌性が得られないという問題や、ダミーシンボルの符号化により圧縮率が低下するという問題がある。
これらのことから、算術符号化法を用いてデータ圧縮と暗号化を同時に行う場合に、データ圧縮率および安全性を損なわない圧縮暗号化器をいかに実現するかが極めて重要な課題となっている。
発明の開示
この発明は、上述した従来技術による問題点(課題)を解消するためになされたものであり、算術符号化法を用いてデータ圧縮と暗号化を同時に行う場合に、算術符号化による本来のデータ圧縮率を損なうことなく、高い安全性を得ることができる算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明に係る算術型圧縮暗号装置は、シンボルの出現確率を予測するモデル器から出力された該シンボルの出現確率に基づいて前記シンボルの符号化をおこなう算術型圧縮暗号装置であって、前記モデル器から前記シンボルの出現確率を入力する出現確率入力手段と、前記出現確率入力手段により入力したシンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御して出力符号を圧縮および暗号化する圧縮暗号化手段とを備えたことを特徴とする。
更に、前記圧縮暗号化手段は、前記動的な区分線形写像の位置を前記暗号鍵で入れ替えて出力符号を攪乱する点に特徴がある。
また、前記圧縮暗号化手段は、前記動的な区分線形写像の傾きに前記暗号鍵で摂動をかけて出力符号を攪乱する点に特徴がある。
また、前記動的な区分線形写像の傾きおよび/または位置を前記暗号鍵に基づいて変動制御する際に、情報源の拡大を行って出力符号を攪乱する点に特徴がある。
発明を実施するための最良の形態
以下に添付図面を参照して、この発明に係る算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラムの好適な実施の形態について詳細に説明する。
算術型圧縮暗号装置の構成について
図1は、本実施の形態に係る算術型圧縮暗号装置の構成を示すブロック図である。同図に示すように、この算術型圧縮暗号装置10は、モデル器Mと、符号化器Nとからなる。
モデル器Mは、入力シンボル系列aを受け付け、時刻i(i=1,2,...,n)においてシンボル0,1をそれぞれ出現確率P(0)=α、P(1)=1−αで符号化器Nに出力するものである。
符号化器Nは、本発明に係る暗号化をおこなう処理部であり、算術符号化法の符号化過程において動的な区分線形写像を鍵で制御することにより、データ圧縮と暗号化を同時に行う。すなわち、この算術型圧縮暗号装置10は、算術符号化法の復号過程を、カオス軌道を生成する区分線形写像として知られるベルヌーイシフト写像の反復として捉えて、算術符号化法の符号化器Nにおいて暗号化を行っている。
なお、モデル器Mから出力される動的なシンボルの出現確率を考慮し、用いられる区分線形写像を一般化された動的なベルヌーイシフト写像として解釈しているため、任意のモデル器Mを使用することができる。このため、実用上の高いデータ圧縮率と安全性を同時に満たすことができる。また、従来技術の欄で説明したWitten法、Liu法及びUehara法などのモデル器を対象とする暗号化法やダミーシンボルを符号化する方法、出力符号にマスキング演算を行う方法と組み合わせて使用することもできる。
また、この算術型圧縮暗号装置10では、動的な区分線形写像を鍵を用いて制御することとしているので、得られる出力符号は算術符号化による本来のデータ圧縮率を損なわず、写像のドメイン[0,1]全体に乱雑かつ一様に分布し、第三者に解読の手がかりを与えにくくすることができる。
算術符号化法について
次に、本実施の形態の前提となる算術符号化法について説明する。なおここでは、モデル器Mが出力する第i番目のシンボルをa∈M、長さnのシンボル系列をa=a...a、空列をa=λと表すこととする。
このとき、1ビットのシンボルaについて、半開区間[0,1]はシンボルの出現確率によって図2に示す区間に割当てられる。符号化器では、当初、空列λに区間[0,1]を割当て、その下限をX(λ)=0、区間幅をW(λ)=1に設定する。
一般に、第iシンボルaまでのシンボル系列a=a...aに対する区間幅W(a)とその下限X(a)は
W(a)=W(ai−1)P(a) (1)
X(a)=X(ai−1)+W(ai−1)Y(a) (2)
により再帰的に決定される。ただし、このとき、X(a)はiビットのシンボル系列aに対して割当てられる区間の下限を示し、図2における1ビットのシンボルaに割当てられる区間の下限Y(a)とは異なる。
このような操作により、符号化されるnビットのシンボル系列aに対応する半開部分区間[X(a),X(a)+W(a)]が求められる。aに対応する符号語ψ(a)としては、区間[X(a),X(a)+W(a)]に含まれる1点を指定するが、通常その下限X(a)が採用される。
算術符号化法の復号は、符号化に使用した図2を使用して行う。まず、符号語をz=ψ(a)とする。zが図2のどちらのシンボルに対応する区間内に存在するかを判定することにより、復号すべきシンボル系列aの第1シンボルaが復号される。
一般に、第i番目のシンボルaは、
={zi−1−Y(ai−1)}/P(ai−1) (3)
によって再帰的に得られるz(i=2,3,...,n)が図2のどちらのシンボルに対応する区間内に存在するかを判定することにより復号される。
ところで、カオス軌道を生成する区分線形写像のひとつとして知られる一般化されたベルヌーイシフト写像は図3で示され、その反復過程は図47の(4)式で与えられる。
このとき、P(0)=α、P(1)=1−α、符号語ψ(a)を写像の初期値xとみなしてベルヌーイシフト写像を繰り返すと、各反復によって得られる軌道の値xは(3)式と(4)式の対応関係から、明らかに算術符号の復号過程で得られるzに等しいことがわかる。すなわち、算術符号の復号過程は、一般化された動的なベルヌーイシフト写像の反復で記述できる。
ベルヌーイシフト写像の反復によって得られる写像の軌道はエルゴード性を有し、暗号学上よい性質を示すことが知られている。これを一般化し、写像の傾きαを動的に変化させる(4)式による動的なベルヌーイシフト写像も同様な性質を有する。
データ圧縮および暗号化について
次に、本実施の形態に係る算術型圧縮暗号装置10について説明する。すでに述べたように、この算術型圧縮暗号装置10は、上記算術符号化法と異なり、算術符号化の符号化過程において動的な区分線形写像を鍵で制御することにより、データ圧縮と暗号化を同時に行っている。
具体的には、(1)動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する方法、(2)動的な区分線形写像の傾きを鍵で変化させて出力符号を攪乱する方法、(3)動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する方法、(4)動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する方法を採用する。そこで、以下ではこれらの方法についてさらに詳細に説明する。
(1)動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する方法
この方法では、図4及び、図47に示す(5)式、(6)式に示すように、図3の区分線形写像の位置を入れ替えた2種類の写像MとMを準備する。ただし、P(0)=α、P(1)=1−α(i=1,2,...,n)である。
従来の算術符号化法では、シンボルの復号が写像Mのみの反復で行われるが、本実施の形態では写像反復毎にMもしくはMのいずれかを鍵で任意に切り替えて使用する。そこで、例えばMを用いるときk =0、Mを用いるときk =1と表し、予め写像を切り替えるための鍵系列K=k □{0,1}(i=1,2,...,n)を準備しておく(Mを用いるときk =1、Mを用いるときk =0として規則を反転してもよいことは自明である)。ただし、K=k (j=1,2,...,m),m<nとしてk を繰り返し使用してもよい。
復号時にMもしくはMを任意に切り替えて写像を行うので、符号化時には復号に用いる各写像の合成写像を考慮して符号語に相当する区間を定めて行く。k を考慮すると、図2で定義した下限値Y(a)は図5に示すようにk の値によって異なる値をとる。
このような修正を考慮して、第i番目までのシンボル系列aに対する区間幅W(a)及びその下限X(a)(i=1,2,...,n)は、k の値を考慮して図5と(1)式および(2)式から決定される。
一例として、図6にn=3(α=2/3,α=3/4,α=1/2),K=101による区間分割の一例を従来法による分割(K=000と等価)と比較して示す。この図から、本実施の形態では鍵系列Kによってシンボル系列aに対応する区間の位置、すなわち符号語を任意に攪拌することができる。
次に、この符号化方法の処理手順について説明する。図7は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。同図に示すように、変数iを1に設定し(ステップS701)、α、k およびaを入力する(ステップS702)。
そして、このk が0であるか否か、aが0であるか否かを確認し(ステップS703,S704,S707)、k とaがともに0である場合には(ステップS704肯定)、
W(a)=W(ai−1)α
X(a)=X(ai−1
とし(ステップS705)、変数iをインクリメントした後(ステップS710)、変数iをnと比較し(ステップS711)、両者が等しい場合には(ステップS711肯定)、ψ(a)を出力する(ステップS712)。なお、両者が等しくない場合には(ステップS711否定)、ステップS702に移行して同様の処理を繰り返す。
また、k が0でaが1である場合には(ステップS704否定)、
W(a)=W(ai−1)(1−α
X(a)=X(ai−1)+W(a)α
とし(ステップS706)、同様の処理(ステップS710〜S712)を行う。
また、k が1でaが0である場合には(ステップS707肯定)、
W(a)=W(ai−1)α
X(a)=X(ai−1)+W(a)(1−α
とし(ステップS708)、同様の処理(ステップS710〜S712)を行う。
また、k とaがともに1である場合には(ステップS707否定)、
W(a)=W(ai−1)(1−α
X(a)=X(ai−1
とし(ステップS709)、同様の処理(ステップS710〜S712)を行う。
この方法で得られた符号語ψ(a)の復号は次のように行う。まず初期値x=ψ(a)とする。k の値と図4からxがどちらのシンボルに対応する区間にあるかを判定し、第1番目のシンボルaを復号する。次に、k =0ならばxを(5)式で写像し、k =1ならばxを(6)式で写像してxを決定し、同様に図4を用いてaを復号する。
一般に、k に対応する写像から得られたxが、図4のどちらのシンボルに対応する区間にあるかを判定してシンボルaを復号する。これをn回繰り返し、シンボル系列aを復号する。
図8は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。同図に示すように、x=ψ(a)とし、変数iを1に設定した後に(ステップS801)、k を入力する(ステップS802)。
そして、このk が0であるか否か、xがαよりも小さいか否かを確認し(ステップS803,S804,S807)、k が0でありxがαよりも小さい場合には(ステップS804肯定)、
=0
i+1=x/α
とし(ステップS805)、変数iをインクリメントした後(ステップS810)、変数iをnと比較し(ステップS811)、両者が等しい場合には(ステップS811肯定)、aを出力する(ステップS812)。なお、両者が等しくない場合には(ステップS811否定)、ステップS802に移行して同様の処理を繰り返す。
また、k が0でありxがα以上である場合には(ステップS804否定)、
=1
i+1=(x−α)/(1−α
とし(ステップS806)、同様の処理(ステップS810〜S812)を行う。
また、k が1でありxがαよりも小さい場合には(ステップS807肯定)、
=1
i+1=x/(1−α
とし(ステップS808)、同様の処理(ステップS810〜S812)を行う。
また、k が1でありxがα以上である場合には(ステップS807否定)、
=0
i+1=(x−1+α)/α
とし(ステップS809)、同様の処理(ステップS810〜S812)を行う。
このように、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱することにより、データ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。
(2)動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する方法
次に、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する方法について説明する。復号過程で用いる区分線形写像の傾きf’(x)は、明らかに1より大きく拡大写像となっている。従って、写像の傾きが摂動によって少しでも変化すると、得られる軌道はカオス的な性質から次第に全く異なる軌道を推移するようになる。その結果、シンボルの復号結果も同様に意味をなさなくなる。
このことを考慮し、ここでは図9に示すように第iシンボルaを符号化する際に、
α’=βα (7)
によって写像の傾きに摂動を加え、得られる出力符号を攪乱する。ただし、βを写像の摂動係数と呼び、鍵系列K=k (i=1,2,...,n)の要素k から決定し、圧縮率の低下を招かないように1の近傍値に設定する。
そして、図47に示す(8)式によって写像を反復する。ただし、P(0)=α、P(1)=1−αである。
従来の算術符号化では、シンボルの復号を(4)式の反復によって行うが、本発明では写像反復毎にまず(7)式によってαに摂動をかけ、(8)式による区分線形写像を繰り返すことにより行う。
復号時に摂動のかかったα’を用いて写像を行うので、符号化時には図10に定義する下限値Y(a)を用いる。このような修正を考慮して、第i番目までのシンボル系列aに対する区間幅W(a)及びその下限X(a)(i=1,2,...,n)は、図10と(1)式および(2)式から決定される。
鍵k の値から摂動係数βをどのように決めてもよいが、例えば1ビットの鍵を用いてk =0のときβ=0.9、k =1のときβ=1.1とした場合、図11にn=3(α=2/3,α=3/4,α=1/2),K=001による区間分割の一例を従来法による分割(摂動なし)と比較して示す。この図から、本実施の形態では、鍵系列Kによって、用いる区分線形写像の傾きが摂動により変化し、シンボル系列aに対応する区間の位置、すなわち符号語を任意に攪拌することができる。
次に、この符号化方法の処理手順について説明する。図12は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
同図に示すように、変数iを1に設定し(ステップS1201)、α、k およびaを入力し(ステップS1202)、k からβを決定した後に(ステップS1203)、α’=βαとする(ステップS1204)。
その後、aが0であるか否かを確認し(ステップS1205)、aが0の場合には(ステップS1205肯定)、
W(a)=W(ai−1)α
X(a)=X(ai−1
とし(ステップS1206)、変数iをインクリメントした後に(ステップS1208)、変数iをnと比較し(ステップS1209)、両者が等しい場合には(ステップS1209肯定)、ψ(a)を出力する(ステップS1210)。なお、両者が等しくない場合には(ステップS1209否定)、ステップS1202に移行して同様の処理を繰り返す。
これに対して、aが1である場合には(ステップS1205否定)、
W(a)=W(ai−1)(1−α’)
X(a)=X(ai−1)+W(a)α
とし(ステップS1207)、同様の処理(ステップS1208〜S1210)を行う。
この方法で得られた符号語ψ(a)の復号は次のように行う。まず初期値x=ψ(a)とし、鍵k の値から決定されるβを用いてαをα’に修正し、図10からxがどちらのシンボルに対応する区間にあるかを判定し、第1番目のシンボルaを復号する。次に、xに(8)式による写像を施しxを得て、同様にk の値から決定されるβを用いてαをα’に修正し、図10からxを復号する。
一般に、鍵k の値から決定されるβを用いてαをα’に修正し、(8)式による写像から得られたxが図10のどちらのシンボルに対応する区間にあるかを判定してシンボルaを復号する。これをn回繰り返し、シンボル系列aを復号する。
図13は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。同図に示すように、x=ψ(a)とし、変数iを1に設定する(ステップS1301)。そして、k を入力し(ステップS1302)、このk からβを決定した後に(ステップS1303)、α’=βαとする(ステップS1304)。
その後、xがα’よりも小さいか否かを確認し(ステップS1305)、xがα’よりも小さい場合には(ステップS1305肯定)、
=0
i+1=x/α
とし(ステップS1306)、変数iをインクリメントした後に(ステップS1308)、変数iをnと比較し(ステップS1309)、両者が等しい場合には(ステップS1309肯定)、aを出力する(ステップS1310)。なお、両者が等しくない場合には(ステップS1309否定)、ステップS1302に移行して同様の処理を繰り返す。
また、xがα’以上である場合には(ステップS1305否定)、
=1
i+1=(x−α’)/(1−α’)
とし(ステップS1307)、同様の処理(ステップS1308〜S1310)を行う。
このように、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合にも、β□1からほとんどデータ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。なお、(7)式によるαの摂動方法としては、(i)αに直接βを乗算する方法、(ii)αに微小な数値を演算(加算、減算、XOR等)する方法、(iii)αに対応するα’のテーブルを予め作成して用いる方法、などを利用できる。
(3)動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する方法
上記(2)に示した方法では、βが1に近い値をとるため、得られる符号語は従来法による符号語の近傍に分布する。その結果、符号化する系列aが決まると、鍵でβを変化させても得られる符号語は写像のドメイン[0,1]の一部に偏ってしまう。
そこで、図14及び、図47に示す(10)式、(11)式に示すように、まず鍵k (i=1,2,...,n)を用いて動的な区分線形写像の傾きに(7)式で摂動をかけ、さらに写像の位置を入れ替えた2種類の写像M’とM’を準備し、これらを復号時に1ビットの鍵k ∈{0,1}(i=1,2,...,n)で切り替える。これにより、図10は図15に拡張され、図15と(1)式および(2)式による符号化の結果は、従来法と比べてさらに異なるものとなる。その一例として、摂動に1ビットの鍵を使用し、n=3(α=2/3,α=3/4,α=1/2),Ks=001、Kr=101とした場合の区間分割の一例を従来法と比較して図16に示す。
摂動と写像入れ替えの効果により、得られる符号語の種類が著しく増加し、出力符号を写像のドメイン[0,1)全体に拡散させることができる。ただし、この方法を用いる場合、一般に写像反復毎に使用するk とk を合成した合成鍵K=k (i=1,2,...,n)を予め準備して用いる。また、鍵K=k (j=1,2,...,m)、m<nとしてk を繰り返し使用してもよい。
次に、この符号化方法の処理手順について説明する。図17は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
同図に示すように、変数iを1に設定し(ステップS1701)、α、k 、k およびaを入力する(ステップS1702)。その後、このk からβを決定し(ステップS1703)、α’=βαとする(ステップS1704)。
その後、このk が0であるか否か、aが0であるか否かを確認し(ステップS1705,S1706,S1709)、k とaがともに0である場合には(ステップS1706肯定)、
W(a)=W(ai−1)α
X(a)=X(ai−1
とし(ステップS1707)、変数iをインクリメントした後に(ステップS1712)、変数iをnと比較し(ステップS1713)、両者が等しい場合には(ステップS1713肯定)、ψ(a)を出力する(ステップS1714)。なお、両者が等しくない場合には(ステップS1713否定)、ステップS1702に移行して同様の処理を繰り返す。
また、k が0でaが1である場合には(ステップS1706否定)、
W(a)=W(ai−1)(1−α’)
X(a)=X(ai−1)+W(a)α
とし(ステップS1708)、同様の処理(ステップS1712〜S1714)を行う。
また、k が1でaが0である場合には(ステップS1709肯定)、
W(a)=W(ai−1)α
X(a)=X(ai−1)+W(a)(1−α’)
とし(ステップS1710)、同様の処理(ステップS1712〜S1714)を行う。
また、k とaがともに1である場合には(ステップS1709否定)、
W(a)=W(ai−1)(1−α’)
X(a)=X(ai−1
とし(ステップS1711)、同様の処理(ステップS1712〜S1714)を行う。
次に、復号化方法の処理手順について説明する。図18は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。
同図に示すように、x=ψ(a)とし、変数iを1に設定した後に(ステップS1801)、k およびk を入力する(ステップS1802)。その後、このk からβを決定し(ステップS1803)、α’=βαとする(ステップS1804)。
その後、このk が0であるか否か、xがα’よりも小さいか否かを確認し(ステップS1805,S1806,S1809)、k が0でありxがα’よりも小さい場合には(ステップS1806肯定)、
=0
i+1=x/α
とし(ステップS1807)、変数iをインクリメントした後(ステップS1812)、変数iをnと比較し(ステップS1813)、両者が等しい場合には(ステップS1813肯定)、aを出力する(ステップS1814)。なお、両者が等しくない場合には(ステップS1813否定)、ステップS1802に移行して同様の処理を繰り返す。
また、k が0でありxがα’以上である場合には(ステップS1806否定)、
=1
i+1=(x−α’)/(1−α’)
とし(ステップS1808)、同様の処理(ステップS1812〜S1814)を行う。
また、k が1でありxがα’よりも小さい場合には(ステップS1809肯定)、
=1
i+1=x/(1−α’)
とし(ステップS1810)、同様の処理(ステップS1812〜S1814)を行う。
また、k が1でありxがα’以上である場合には(ステップS1809否定)、
=0
i+1=(x−1+α’)/α
とし(ステップS1811)、同様の処理(ステップS1812〜S1814)を行う。
このように、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合にも、データ圧縮率を損なうことなく、出力される符号の撹拌性をさらに向上させ、高い安全性を保持することができる。
(4)動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する方法
ここでは、得られる符号語の種類数をさらに増加させることを考える。そのためにRビットのシンボル
=aRjRj+1...aR(j+1)−1 (11)
をまとめて符号化し、その合成写像に現れる2個の区分線形写像の[0,1]上の配置を任意に入れ替えて使用する。例えば、R=2のとき図19(a)に示すように4つの区分線形写像が現れるが、これを鍵によって任意に入れ替えた合成写像は図19(a),(b)に示す例を含めて4!=24通り存在する。
一般に、Rビットのシンボルをまとめて符号化する場合、(2)!通りの合成写像が存在し、同じRビットのシンボル系列に対応する符号語の種類数が著しく増加する。このとき、実際の符号の総数rは、図47の(12)式に示すような値となり、例えばR=1(情報源の拡大なし)で6回写像を反復しても2=64種類の符号語しか得られないのに対し、R=3で情報源を拡大し2回写像を行うと(2=214=16,384種類もの異なる符号語を得ることができる。
(j=1,2,...)の符号化は、まずcを構成する各シンボルの出現確率 P(a)を摂動係数βを用いてP’(a)に修正し、
P(c)=P’(aRj)P’(aRj+1)...P’(aR(j+
1)−1) (13)
を用いて、系列c=c...cに対応する区間幅
W(c)=W(cj−1)P(c) (14)
とその下限
X(c)=X(cj−1)+W(cj−1)Y(c) (15)
を再帰的に求めることにより行う。ただし、当初、空列λ(=c)に区間[0,1)を割当て、その下限をX(λ)=0、区間幅をW(λ)=1に設定することは、これまでの方法と同様である。
このように、cの符号化および対応する復号化の方法は情報源を拡大しないaの場合と基本的に同様である。しかし、鍵系列K=k ∈{0,1}(i=1,2,...,n)を用いる代わりに、cに対応する合成写像を、(2)!通りの合成写像の中から一意に選択するための鍵系列K=k (j=1,2,...)を用いる点が異なり、それによって出力符号の複雑さが著しく向上する。
このように動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する場合にも、データ圧縮率を損なうことなく、出力される符号の撹拌性をより一層向上させ、高い安全性を保持することができる。
上述してきたように、本実施の形態では、算術型圧縮暗号装置10の符号化器Nが、モデル器Mから入力した出現確率αに基づいて、動的な区分線形写像の位置を鍵で入れ替えるか、動的な区分線形写像の傾きを鍵で変化させるか、これらを組み合わせるか、情報源の拡大をおこなうよう構成したので、データ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。
(5)実施例3の方法をJBIG2に適用した実施例
第5実施例として、実施例3と同様に本発明の摂動法と写像位置の入れ替えを組み合わせてJBIG2の算術符号器として周知のMQコーダに適用した例を開示する。
図24は、第5実施例において、摂動法により状態遷移図から得られる確率推定値qを理想的な値の方向に鍵で制御(移動)する方法を示す説明図である。
周知のMQコーダにおいては、区間幅Aが16進数で8000(区間幅の最小値Rmin)からFFFF(区間幅の最大値Rmax)の間にある場合に、状態遷移図から得られる、区間幅Aが16進数でAAAAの時に正しい値となる確率推定値qをそのまま使用する。従って、図示するように、実際の区間幅A(a)が16進数でAAAAではない場合(図24の中央はA(a)が16進数でAAAAより小さい場合、右は大きい場合)には、符号化の計算に使用される確率推定値qと理想的な値q’との間にはずれδが存在する。
第5実施例においては、このずれδの方向および大きさを求め、理想的な値q’に近づく方向に符号化の計算に使用される確率推定値qを移動させる。そして、δが大きい場合には多数ビットの鍵データKを使用し、δが小さい場合には最低0ビットの鍵データKを使用して移動量を制御する。
従って、計算量は増すが、効率よく摂動をかけることができ、更に、摂動をかけることにより、符号化の計算に使用される確率推定値qがより理想的な値q’に近づくので、通常のMQコーダより符号化効率(圧縮率)が向上するという効果がある。
図20は、算術型圧縮暗号化装置をJBIG2で実装する場合の構成を示すブロック図である。周知のJBIG2の算術符号器(MQコーダ)は、大きく3つのブロックから成る。コンテクスト生成器は、情報源(入力シンボル系列a)からaを入力して、後述するコンテクスト(CX)を出力する。
モデル器は、コンテクスト生成器からコンテクストCXを入力し、また符号化器から後述する正規化の有無およびaがMPSか否かという情報を入力して、現在の状態であるインデックス(I(CX))およびMPSの値を出力する。
符号化器は、内部状態として区間幅A(ai−1)および区間の下限C(ai−1)の値を持ち、情報源a、インデックス(I(CX))およびMPSの値をを入力し、更に鍵データKを入力して、圧縮暗号データCDおよび正規化の有無およびaがMPSか否かという情報を出力する。本発明においては、符号化器の構成あるいは処理に特徴があり、コンテクスト生成器およびモデル器については、周知のMQコーダの構成および処理をそのまま採用可能であるので、詳細な説明は省略する。
図21は、JBIG2において、コンテクスト生成器で参照画素領域から16ビットの参照画素を抽出してコンテクストCXを生成する方法を示す説明図である。注目画素に対して、予め任意の方法で定められた参照画素位置rからr16の当該画素値が読み出され、16ビットのコンテクストCXが生成される。
以下、図20の符号化器およびモデル器の機能を実行する処理のフローチャートに従って動作を説明する。図27は、符号化器およびモデル器の機能を含む圧縮暗号化器における符号化プロセス全体を示すフローチャートである。
S10においては、後述する初期化処理(INITENC)が行われる。S11においては、コンテクストCXと1ビットの入力シンボルaを読み込む。S12においては、後述する符号化処理(ENCODE)が行われる。S13においては、全てのシンボルの符号化処理を終了したか否かが判定され、判定結果が否定の場合にはS11に移行するが、肯定の場合にはS14に移行して、後述する符号化完了処理(FLUSH)を実行して処理を終了する。
図28は、S10の初期化処理(INITENC)を示すフローチャートである。S20においては、区間幅Aを16進数で8000、区間の下限Cを0、データを書き出すファイルポインタBPをBPST−1(書き出し初期値−1)、符号化ビット数の計数に使用する変数CT(0になるとデータを書き出す)を12に設定する。S21においては、ファイルポインタの指す値Bが16進数でFFか否かが判定され、判定結果が否定の場合には処理を終了するが、肯定の場合にはS22に移行してCTを13に設定する。なお、図示はされていないが、初期化処理においてコンテクスト学習表の初期化も行われる。
図29は、S12の1ビットシンボルaの符号化処理(ENCODE)を示すフローチャートである。S30においては、シンボルaが0か否(=1)かが判定され、判定結果が肯定の場合にはS32に移行するが、否定の場合にはS31に移行する。S31においてはaが1である場合の符号化処理(CODE1)が行われる。また、S32においては、aが0である場合の符号化処理(CODE0)が行われる。
図30は、S31の符号化処理(CODE1)を示すフローチャートである。S40においては、後述する摂動処理(CHANGEQE)によりCQeを求める。S41においては、図22のコンテクスト学習表を参照して、コンテクストに対応するMPSが1か否かが判定され、判定結果が肯定の場合にはS43に移行し、否定の場合にはS42に移行する。
図22は、コンテクストに対応するインデックスI(CX)とMPSを動的に管理するコンテクスト学習表を示す説明図である。図示するように、各コンテクスト値毎に、MPS値およびその時点でのインデックスI(CX)を記憶する。MPSおよびI(CX)は時間と共に変化し、初期値は全て0である。
図30に戻って、S42においては、後述する、入力シンボルがLPSだった場合の写像切替処理(CODELPSENCRYPT)が行われ、また、S43においては、後述する、入力シンボルがMPSだった場合の写像切替処理(CODEMPSENCRYPT)が行われる。
図31は、S32の符号化処理(CODE0)を示すフローチャートである。S50においては、後述する摂動処理(CHANGEQE)によりCQeを求める。S51においては、図22のコンテクスト学習表を参照して、コンテクストに対応するMPSが0か否かが判定され、判定結果が肯定の場合にはS53に移行し、否定の場合にはS52に移行する。
S52においては、後述する、入力シンボルがLPSだった場合の写像切替処理(CODELPSENCRYPT)が行われ、また、S53においては、後述する、入力シンボルがMPSだった場合の写像切替処理(CODEMPSENCRYPT)が行われる。
図32は、S40、S50の摂動処理(CHANGEQE)を示すフローチャートである。この処理においては、まず使用する鍵データのビット数KeyBitNumを求め、これを使用してQeに摂動をかけたCQeを得る。
そこで、まずビット数の生成方法について説明する。本発明においては、図24の理想的なq’値と実際の値q(=Qe)との差δの対数logδを求め、これを使用する鍵データのビット数xとしている。
x=log|Qe−(Qe/0xAAAA)*A(a)|
ここで、区間幅A(a)の0xAAAAとの差をΔとすると、
A(a)=0xAAAA+Δ
であるので、
x=log|Qe−(Qe/0xAAAA)*(0xAAAA+Δ)|
x=log|Qe*Δ/0xAAAA|
x=logQe+log|Δ|−log0xAAAA
となる。従って、インデックスから得られるQeおよび区間幅A(a)から得られるΔから、logQeおよび(log|Δ|−log0xAAAA)の近似値をそれぞれテーブルを使用して求め、鍵データのビット数xを算出することができる。
図25は、logδを導出するためのlog|Δ|−log0xAAAAの近似値を与えるテーブルの内容を示す説明図である。区間幅Aの所定の範囲毎に、log|Δ|−log0xAAAAの近似値が記載されている。
図26は、logδを導出するために準備されるlogQeの近似値を与えるテーブルを示す説明図である。各インデックス毎にlogQeの近似値が記載されている。
但し、本発明においては、(log|Δ|−log0xAAAA)の近似値を以下に示す方法により、図25のテーブルは使用せずに高速に算出している。
図25に示す表では、log(|Δ|/0xAAAA)の計算値が?.5には少し正確ではないが、近似値として?.5を使用できる。この方式だと、Δに基づきテーブルを順に検索する必要はなく、上から(上位15ビット目から)数えて何ビット目に初めて1が立っているかを調べるだけでlog(|Δ|/0xAAAA)の値を求めることができる。例えば、Δ=0x0AB3だった場合、2進数に直すと「000101010110011」となり、上から数えて4番目に1が立っていることになる。ということは、1の立っているビット位置を確認するだけで図25の表の下から4番目の値よりも大きく、下から3番目の値よりも小さいことが判り、log(|Δ|/0xAAAA)は表の近似値から−4.5と−3.5の間のlog(|Δ|/0xAAAA)=−4が求まる。
また、ビットを確認する際にカウンターなどの変数を用いることで、すぐに目的のlog(|Δ|/0xAAAA)を求めることができる。即ち、Δにおいて1が立っているビットが上位15ビット目から数えてN番目とするとlog(|Δ|/0xAAAA)=−Nとなる。このように、図25の表の概念を用いれば、16進数のΔの値をメモリに記憶しておくこともなく、log2(|Δ|/0xAAAA)の計算した近似値もテーブルとしてメモリに記憶しておくことも不必要となる。
このようにそれぞれの値の近似値を求め、それらを足し合わせることで、目的であるx=logδを求めることが可能となる。即ち、図25の表の概念は用いているが、実際に図25の表の中身をメモリ上に記憶して使用しているわけではない。具体的に図32のアルゴリズムでは、KeyBitNumはx=logδを表しており、KEYBIT(I(CX))がlogQeを表しており、log2(|Δ|/0xAAAA)はcounterの値が表していることになり、S67のKeyBitNum=KEYBIT(I(CX))−counterによって、鍵ビット数xを決定している。実際には近似値を使用しているため、S68で示すように、KeyBitNumの計算された値がマイナスの値を示すことがあるので、そのときはKeyBitNum=0に補正する。
図32に戻って、S60においては区間幅Aが16進数でAAAAより小さいか否かが判定され、判定結果が肯定の場合にはS62に移行するが、否定の場合にはS61に移行する。S61においては、幅AからAAAAを減算し、また、S62においてはAAAAから幅Aを減算する。
S63においては、鍵データのビット数KeyBitNumを0に、変数CheckBitを15に、counterを1に設定する。S64においては図25に示すテーブル(2進数欄)を参照してΔのCheckBit桁が1になっているか否かが判定され、判定結果が肯定の場合にはS67に移行するが、否定の場合にはS65に移行する。S65においては、CheckBitから1を減算し、counterに1を加算する。S66においては、CheckBitが0か否かが判定され、判定結果が否定の場合にはS64に戻るが、肯定の場合にはS70に移行する。
S67においては、図26に示すテーブルを参照して、KEYBIT(I(CX))(=logQeの近似値:図26の近似値欄の値)を求め、KEYBIT(I(CX))からcounterを減算した値をKeyBitNumとする。
S68においてはKeyBitNumが負か否かが判定され、判定結果が肯定の場合にはS69に移行してKeyBitNumを0にする。S70においては、変数KeyBitsおよびcounterを0に設定し、S71においては、counter値とKeyBitNumが等しいか否かが判定され、判定結果が肯定の場合にはS74に移行するが、否定の場合にはS72に移行する。S72においては、鍵データKから1ビット読み込み、kとする。S73においては、KeyBitsを1ビット左へシフトし、KeyBitsの最下位ビットをkとする。また、counterに1を加算する。
S74においては、AがAAAAより小さいか否かが判定され、判定結果が肯定の場合にはS76に移行するが、否定の場合にはS75に移行する。S75においては、インデックスから図23の状態遷移表を参照して得られたQe値にKeyBitsを加算してCQeを得る。また、S76においては、図23の状態遷移表を参照して得られたQe値からKeyBitsを減算してCQeを得る。
図23は、JBIG2で用いられる状態(インデックス)遷移表を示す説明図である。0から46の各インデックス毎に、Qe値、MPSあるいはLPSが出現した場合それぞれの遷移先(次の)インデックス番号、SWITCH値が記載されている。SWITCH値とは、Qeが0.5に近い場合、LPSで正規化されたときにMPSの値を反転させるかいなかを示すフラグである。
図33は、S42、S52の写像切替処理(CODELPSENCRYPT)を示すフローチャートである。ここでは、鍵データKから読み込んだ1ビットの値kが1の時に区間を入れ替えるという、本発明の写像区間の入れ替え処理を含んでいる。S80においては、鍵データKから1ビット読み込みkとし、AからCQeを減算する。そしてAの値をInvQeに代入する。S81においては、AがCQeより小さいか否か判定され、判定結果が肯定の場合にはS85に移行するが、否定の場合にはS82に移行する。
S82においてはCQeをAに代入し、S83においては、鍵データkが1か否かが判定され、結果が肯定の場合にはS84に移行してCにInvQeを加算する。S85においては、鍵データkが0か否かが判定され、結果が肯定の場合にはS86に移行してCにCQeを加算する。
S87においては、インデックスから図23の状態遷移表を参照して得られるSWITCH(I(CX))が1か否かを判定し、判定結果が肯定の場合にはS88に移行して(1−MPS(CX))をMPS(CX)に代入する(反転させる)ことによって、図22のコンテクスト学習表のMPSを更新する。S89においては、図23の状態遷移表を参照して、NLPS(I(CX))を状態I(CX)に代入することによって、図22のコンテクスト学習表のインデックスを更新する。S90においては、後述する正規化処理(RENORME)が行われる。
図34は、S43、S53の写像切替処理(CODEMPSENCRYPT)を示すフローチャートである。ここでも、鍵データKから読み込んだ1ビットの値kが1の時に区間を入れ替えるという、本発明の写像区間の入れ替え処理を含んでいる。S100においては、鍵データKから1ビット読み込みkとし、AからCQeを減算する。そしてAの値をInvQeに代入する。S101においては、Aと16進数の8000の論理積が0か否か判定され、判定結果が肯定の場合にはS104に移行するが、否定の場合にはS102に移行する。S102においては鍵データkが0か否かが判定され、結果が肯定の場合にはS103に移行してCにCQeを加算し、処理を終了する。
S104においては、AがCQeより小さいか否か判定され、判定結果が肯定の場合にはS107に移行するが、否定の場合にはS105に移行する。S105においては、鍵データkが0か否かが判定され、結果が肯定の場合にはS106に移行してCにCQeを加算する。S107においてはCQeをAに代入し、S108においては、鍵データkが1か否かが判定され、結果が肯定の場合にはS109に移行してCにInvQeを加算する。
S110においては、図23の状態遷移表を参照して、NLPS(I(CX))を状態I(CX)に代入することによって、図22のコンテクスト学習表を更新する。S111においては、後述する正規化処理(RENORME)が行われる。
図35は、S90、S111の区間幅正規化処理(RENORME)を示すフローチャートである。S120においては、Aを1ビット左シフトし、Cを1ビット左シフトし、CTから1を減算する。S121においてはCTが0か否かが判定され、結果が肯定の場合にはS122に移行して、後述するバイト単位出力処理(BYTEOUT)が行われる。S123においては、Aと16進数8000との論理積が0か否かが判定され、判定結果が肯定の場合にはS120に戻るが、否定の場合には処理を終了する。
図36は、S122のバイト単位出力処理(BYTEOUT)を示すフローチャートである。S130においては、ファイルポインタの指す値Bが16進数でFFか否かが判定され、判定結果が肯定の場合にはS136に移行するが、否定の場合にはS131に移行する。S131においては、Cが16進数で8000000より小さいか否かが判定され、判定結果が肯定の場合にはS135に移行するが、否定の場合にはS132に移行する。S132においては、Bに1を加算する。
S133においては、Bが16進数でFFか否かが判定され、判定結果が否定の場合にはS135に移行するが、肯定の場合にはS134に移行する。S134においては、Cと16進数の7FFFFFFとの論理積をCに代入する。
S135においては、ファイルポインタBPに1を加算し、Cを19ビット右シフトしたものをBに代入し、Cと16進数の7FFFFとの論理積をCに代入し、CTを8に設定する。S136においては、BPに1を加算し、Cを20ビット右シフトしたものをBに代入し、Cと16進数のFFFFFとの論理積をCに代入し、CTを7に設定する。
図37は、S14の符号化完了処理(FLUSH)を示すフローチャートである。S140においては後述する最終ビット設定処理(SETBITS)が行われる。S141においてはCをCTビット左シフトする。S142においては前述したバイト単位出力処理(BYIEOUT)が行われ、S143においてはCをCTビット左シフトする。S144においては前述したバイト単位出力処理(BYTEOUT)が行われる。
S145においてはBが16進数でFFか否かが判定され、肯定の場合にはS147に移行するが、否定の場合にはS146に移行する。S146においてはBPに1を加算し、Bを16進数でFFに設定する。S147においては16進数でFFの後に7FFFが続いている場合には7FFFを取り除く(任意)。S148においてはBPに1を加算し、Bを16進数でACに設定し、BPに1を加算する。
図38は、S140の最終ビット設定処理(SETBITS)を示すフローチャートである。S150においては、(C+A)をTEMPCに代入し、下限Cと16進数のFFFFとの論理和をCに代入する。S151においてはCがTEMPC以上であるか否かが判定され、判定結果が否定の場合には処理を終了するが、肯定の場合にはS152に移行する。S152においてはCから16進数で8000を減算する。
図39は、算術型伸張復号装置をJBIG2で実装する場合の構成を示すブロック図である。コンテクスト生成器およびモデル器の機能は符号化装置と同一である。復号器は、入力データCD、鍵データK、インデックスI(CX)、MPSを入力し、基本的に符号化器と逆の処理を行って、復号したデータa、正規化の有無、aがMPSか否かという情報を出力する。
図40は、伸張復号器における復号プロセス全体を示すフローチャートである。S200においては、後述する初期化処理(INITDEC)を行う。S201においては、コンテクスト生成器からコンテクストCXを読み込む。S202においては後述する1ビットシンボルaの復号化処理(DECODE)が行われる。S203においては、全てのシンボルの処理を終了したか否かが判定され、判定結果が否定の場合にはS201に戻るが、肯定の場合には処理を終了する。
図41は、S200の初期化処理(INITDEC)を示すフローチャートである。S210においては、データを読み込むファイルポインタBPにBPST(読み込みアドレス値の初期値)を代入し、Bを左へ16ビットシフトしたものをCに代入する。S211においては、後述するバイト単位読み込み処理(BYTEIN)が行われ、S212においては、Cが左へ7ビットシフトされ、CTから7が減算され、Aに16進数で8000が設定される。
図42は、S202の1ビットシンボルaの復号処理(DECODE)を示すフローチャートである。S220においては、図32に示す摂動処理(CHANGEQE)が行われ、CQeが求められる。S221においては鍵データKから1ビット読み込みkとする。S222においては、kが1か否かが判定され、判定結果が肯定の場合にはS224に移行するが、否定の場合にはS223に移行する。S223においてはCQeをRepQeに代入する。また、S224においては(A−CQe)をRepQeに代入する。
S225においてはAからCQeを減算する。S226においてはChighがRepQeより小さいか否かが判定され、判定結果が肯定の場合にはS233に移行するが、否定の場合にはS227に移行する。S227においてはChighからRepQeを減算し、S228においてはkが1か否かが判定され、判定結果が肯定の場合にはS234に移行するが、否定の場合にはS229に移行する。
S229においては、Aと16進数の8000の論理積が0か否かが判定され、判定結果が肯定の場合にはS230に移行するが、否定の場合にはS232に移行する。S230においては、後述する復号処理(MPS_EXCHANGE DECRYPT)が行われ、aが求められる。S231においては後述する区間幅正規化処理(RENORMD)が行われる。S232においては、MPS(CX)の値がaに代入される。
S233においてはkが1か否かが判定され、判定結果が肯定の場合にはS229に移行するが、否定の場合にはS234に移行する。S234においては、後述する復号処理(LPS_EXCHANGE DECRYPT)が行われ、aが求められる。S235においては後述する区間幅正規化処理(RENORMD)が行われる。
図43は、S234の復号処理(LPS_EXCHANGE DECRYPT)を示すフローチャートである。この処理は1ビットシンボルがLPSとして復号された場合の処理である。S240においては、AがCQeより小さいか否かが判定され、判定結果が肯定の場合にはS241に移行するが、否定の場合にはS242に移行する。
S241においては、CQeがAに代入され、コンテクスト学習表を参照して、MPS(CX)の値がaに代入され、状態遷移表から得られるNMPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
S242においてはCQeがAに代入され、1−MPS(CX)の値がaに代入される。S243においては状態遷移表から得られるSWITCH(I(CX))が1か否かが判定され、判定結果が肯定の場合にはS244に移行して、1−MPS(CX)をMPS(CX)に代入する。S245においては、状態遷移表から得られるNLPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
図44は、S230の復号処理(MPS_EXCHANGE DECRYPT)を示すフローチャートである。この処理は1ビットシンボルがMPSとして復号された場合の処理である。S250においては、AがCQeより小さいか否かが判定され、判定結果が肯定の場合にはS251に移行するが、否定の場合にはS252に移行する。
S251においては、コンテクスト学習表を参照して、MPS(CX)の値がaに代入され、状態遷移表から得られる NMPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
S252においては、1−MPS(CX)の値がaに代入される。S253においては状態遷移表から得られる SWITCH(I(CX))が1か否かが判定され、判定結果が肯定の場合にはS254に移行して、1−MPS(CX)をMPS(CX)に代入する。S255においては、状態遷移表から得られるNLPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
図45は、S231、S235の区間幅正規化処理(RENORMD)を示すフローチャートである。S260においては、CTが0か否かが判定され、判定結果が肯定の場合にはS261に移行して、後述するバイト単位読み込み処理(BYTEIN)を実行する。S262においてはAおよびCをそれぞれ1ビット左シフトし、CTから1を減算する。S263においてはAと16進数の8000の論理積が0か否かが判定され、判定結果が肯定の場合にはS260に移行するが、否定の場合には処理を終了する。
図46は、S261のバイト単位読み込み処理(BYTEIN)を示すフローチャートである。S270においては、B(ファイルポインタBPが指す値)が16進数でFFか否かが判定され、判定結果が肯定の場合にはS271に移行するが、否定の場合にはS274に移行する。
S271においては、B1(アドレスBP+1が指す値)が16進数で8Fより大きいか否かが判定され、判定結果が肯定の場合にはS273に移行するが、否定の場合にはS272に移行する。S272においては、BPに1を加算し、Bを9ビット左シフトしたものをCに加算し、CTを7に設定する。S273においては、Cに16進数でFF00を加算し、CTを8に設定する。S274においては、BPに1を加算し、Bを8ビット左シフトしたものをCに加算し、CTを8に設定する。
産業上の利用可能性
以上説明したように、本発明によれば、モデル器からシンボルの出現確率を入力し、入力したシンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御して出力符号を圧縮および暗号化するよう構成したので、算術符号化法を用いてデータ圧縮と暗号化を同時に行う場合に、算術符号化による本来のデータ圧縮率を損なうことなく、高い安全性を得ることが可能な算術型圧縮暗号装置が得られるという効果を奏する。
また、動的な区分線形写像の位置を暗号鍵で入れ替えて出力符号を攪乱するよう構成したので、単純な処理で効率良く出力符号を攪乱することが可能な算術型圧縮暗号装置が得られるという効果を奏する。
また、動的な区分線形写像の傾きに暗号鍵で摂動をかけて出力符号を攪乱するよう構成したので、符号化効率の過度に低下させることなく、効率良く出力符号を攪乱することが可能な算術型圧縮暗号装置が得られるという効果を奏する。
また、動的な区分線形写像の傾きおよび/または位置を暗号鍵に基づいて変動制御する際に、情報源の拡大を行って出力符号を攪乱するよう構成したので、より一層出力符号を攪乱することが可能な算術型圧縮暗号装置が得られるという効果を奏する。
【図面の簡単な説明】
図1は、この発明の実施の形態に係る算術型圧縮暗号装置の構成を示すブロック図である。
図2は、シンボルの出現確率によって割り当てられる区間を示す図である。
図3は、カオス軌道を生成する区分線形写像のひとつとして知られる一般化されたベルヌーイシフト写像を示す図である。
図4は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合に用いる写像を示す図である。
図5は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の割り当て区間を示す図である。
図6は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の区間分割の一例を示す図である。
図7は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
図8は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。
図9は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合に用いる写像を示す図である。
図10、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の割り当て区間を示す図である。
図11は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の区間分割の一例を示す図である。
図12は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
図13は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。
図14は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合に用いる写像を示す図である。
図15は、図9および図14に示した区分線型写像を用いた場合の割り当て区間を示す図である。
図16は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の区間分割の一例を示す図である。
図17は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
図18は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。
図19は、情報源の拡大を行って出力符号を攪乱する場合の区分線形写像を示す図である。
図20は、算術型圧縮暗号装置をJBIG2で実装する場合の構成を示すブロック図である。
図21は、JBIG2において、コンテクスト生成器で参照画素領域から16ビットの参照画素を抽出してコンテクストを生成する方法を示す説明図である。
図22は、コンテクストに対応するインデックスI(CX)とMPSを動的に管理するコンテクスト学習表を示す説明図である。
図23は、JBIG2で用いられる状態(インデックス)遷移表を示す説明図である。
図24は、摂動法により状態遷移図から得られる確率推定値qを理想的な値の方向に鍵で制御(移動)する方法を示す説明図である。
図25は、logδを導出するために準備されるlogΔ−log0xAAAAの近似値を与えるテーブルを示す説明図である。
図26は、logδを導出するために準備されるlogQeの近似値を与えるテーブルを示す説明図である。
図27は、圧縮暗号化器における符号化プロセス全体を示すフローチャートである。
図28は、S10の初期化処理(INITENC)を示すフローチャートである。
図29は、S12の1ビットシンボルaの符号化処理(ENCODE)を示すフローチャートである。
図30は、S31の符号化処理(CODE1)を示すフローチャートである。
図31は、S32の符号化処理(CODE0)を示すフローチャートである。
図32は、S40、S50、S220の摂動処理(CHANGEQE)を示すフローチャートである。
図33は、S42、S52の写像切替処理(CODELPSENCRYPT)を示すフローチャートである。
図34は、S43、S53の写像切替処理(CODEMPSENCRYPT)を示すフローチャートである。
図35は、S90、S111の区間幅正規化処理(RENORME)を示すフローチャートである。
図36は、S122のバイト単位出力処理(BYTEOUT)を示すフローチャートである。
図37は、S14の符号化完了処理(FLUSH)を示すフローチャートである。
図38は、S140の最終ビット設定処理(SETBITS)を示すフローチャートである。
図39は、算術型伸張復号装置をJBIG2で実装する場合の構成を示すブロック図である。
図40は、伸張復号器における復号プロセス全体を示すフローチャートである。である。
図41は、S200の初期化処理(INITDEC)を示すフローチャートである。
図42は、S202の1ビットシンボルaの復号処理(DECODE)を示すフローチャートである。
図43は、S234の復号処理(LPS_EXCHANGE DECRYPT)を示すフローチャートである。
図44は、S230の復号処理(MPS_EXCHANGE DECRYPT)を示すフローチャートである。
図45は、S231、S235の区間幅正規化処理(RENORMD)を示すフローチャートである。
図46は、S261のバイト単位読み込み処理(BYTEIN)を示すフローチャートである。
図47は、数式を示す説明図である。
符号の説明
10は算術型圧縮暗号装置、Mはモデル器、Nは符号化器、αは 第iシンボルの出現確率、aは1ビットの入力シンボル、Y(a)はaに対する下限、aはnビットの入力シンボル系列、W(a)はaに対する区間幅、X(a)はW(a)の下限、Kは鍵系列、ψ(a)はaに対する符号語である。

Claims (7)

  1. 入力されたシンボルの出現確率を予測する予測手段と、
    シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段と、
    暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段と
    を備えたことを特徴とする算術型圧縮暗号装置。
  2. 前記制御手段は、前記動的な区分線形写像の位置を前記暗号鍵で入れ替えて出力符号を攪乱することを特徴とする請求項1に記載の算術型圧縮暗号装置。
  3. 前記制御手段は、前記動的な区分線形写像の傾きに前記暗号鍵で摂動をかけて出力符号を攪乱することを特徴とする請求項1に記載の算術型圧縮暗号装置。
  4. 前記動的な区分線形写像の傾きおよび位置の内の少なくとも一方を前記暗号鍵に基づいて制御する際に、情報源の拡大を行って出力符号を攪乱することを特徴とする請求項2または3のいずれかに記載の算術型圧縮暗号装置。
  5. 入力されたシンボルの出現確率を予測する予測手段と、シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段と、暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段とを備えた算術型圧縮暗号装置によって符号化された符号を入力し、暗号鍵を使用して符号を前記シンボルに復号する復号化手段を備えたことを特徴とする算術型圧縮暗号装置。
  6. 入力されたシンボルの出現確率を予測するステップと、
    シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御するステップと、
    暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなうステップと
    を含むことを特徴とする算術型圧縮暗号方法。
  7. コンピュータを、
    入力されたシンボルの出現確率を予測する予測手段、
    シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段、
    暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段
    として機能させるためのプログラム。
JP2002558246A 2001-01-22 2002-01-21 算術型圧縮暗号装置および算術型圧縮暗号復号装置 Expired - Fee Related JP4086661B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001013886 2001-01-22
JP2001013886 2001-01-22
PCT/JP2002/000366 WO2002058039A1 (fr) 2001-01-22 2002-01-21 Crypteur a compression arithmetique, procede de chiffrement a compression arithmetique et programme

Publications (2)

Publication Number Publication Date
JPWO2002058039A1 true JPWO2002058039A1 (ja) 2004-05-27
JP4086661B2 JP4086661B2 (ja) 2008-05-14

Family

ID=18880654

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002558246A Expired - Fee Related JP4086661B2 (ja) 2001-01-22 2002-01-21 算術型圧縮暗号装置および算術型圧縮暗号復号装置
JP2002558245A Expired - Fee Related JP4086660B2 (ja) 2001-01-22 2002-01-21 算術型圧縮暗号装置および算術型圧縮暗号復号装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2002558245A Expired - Fee Related JP4086660B2 (ja) 2001-01-22 2002-01-21 算術型圧縮暗号装置および算術型圧縮暗号復号装置

Country Status (2)

Country Link
JP (2) JP4086661B2 (ja)
WO (2) WO2002058039A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100390698C (zh) * 2004-11-04 2008-05-28 白根弟 防止木马或病毒窃取输入信息的方法
JP5713986B2 (ja) * 2012-12-03 2015-05-07 日本電信電話株式会社 符号化装置、方法、プログラム及び記録媒体
JP7023584B2 (ja) 2018-09-26 2022-02-22 東芝情報システム株式会社 公開鍵暗号システム、公開鍵暗号方法、公開鍵暗号プログラム
CN114419719B (zh) * 2022-03-29 2022-08-12 北京爱笔科技有限公司 一种生物特征的处理方法及装置

Also Published As

Publication number Publication date
WO2002058038A1 (fr) 2002-07-25
JP4086660B2 (ja) 2008-05-14
JP4086661B2 (ja) 2008-05-14
JPWO2002058038A1 (ja) 2004-05-27
WO2002058039A1 (fr) 2002-07-25

Similar Documents

Publication Publication Date Title
US5363099A (en) Method and apparatus for entropy coding
US6122379A (en) Method and apparatus for performing simultaneous data compression and encryption
US6122378A (en) Data compression/encryption method and system
Sharma et al. Data security using compression and cryptography techniques
JP2005504348A (ja) データセキュリティーの暗号体系
Kumar et al. A high capacity email based text steganography scheme using Huffman compression
Usama et al. An efficient secure data compression technique based on chaos and adaptive Huffman coding
SubhamastanRao et al. Simultaneous data compression and encryption
Suguna et al. Secure image communication through adaptive deer hunting optimization based vector quantization coding of perceptually encrypted images
Bonnet et al. Fixed-parameter approximability of Boolean MinCSPs
JP4086661B2 (ja) 算術型圧縮暗号装置および算術型圧縮暗号復号装置
Bakeva et al. Gaussian channel transmission of images and audio files using cryptcoding
Cao et al. Separable Reversible Data Hiding in Encrypted VQ‐Encoded Images
US6411714B1 (en) Data decompression/decryption method and system
JP6796716B2 (ja) 暗号化オペレーションの回数を減らした上でデータをセキュア化するための効率的暗号化方法
Padmapriya et al. Effect of Data Compression on Cipher Text Aiming Secure and Improved Data Storage
Gbashi Text Compression & Encryption Method Based on RNA and MTF
Prasetyo et al. A survey on data compression and cryptographic algorithms
Shoukat et al. An Improved Method of Vigenere Cipher to Securely Compress the Text by using Relative Frequency
Ibrahim Plain text encoding/decoding technique using a combination of huffman and run-length algorithms
Raju A study of joint lossless compression and encryption scheme
Ryabko Reduction of the secret key length in the perfect cipher by data compression and randomisation
Kieffer et al. Universal lossless data compression via binary decision diagrams
EP0810737A2 (en) Method and apparatus for performing simultaneous data compression and encryption
Shim et al. DH-LZW: Lossless data hiding method in LZW compression

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071228

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: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees