JPWO2002058039A1 - 算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラム - Google Patents
算術型圧縮暗号装置、算術型圧縮暗号方法およびプログラム Download PDFInfo
- 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
Links
- 238000007906 compression Methods 0.000 title claims abstract description 48
- 230000006835 compression Effects 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims description 234
- 238000013507 mapping Methods 0.000 claims abstract description 105
- 230000003094 perturbing effect Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 abstract description 63
- 238000013144 data compression Methods 0.000 abstract description 24
- 238000010586 diagram Methods 0.000 description 31
- 230000007704 transition Effects 0.000 description 17
- 238000010606 normalization Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 239000002131 composite material Substances 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 5
- 238000013019 agitation Methods 0.000 description 4
- 230000000739 chaotic effect Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/417—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information using predictive or differential encoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/44—Secrecy systems
- H04N1/448—Rendering the image unintelligible, e.g. scrambling
- H04N1/4486—Rendering 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は、入力シンボル系列anを受け付け、時刻i(i=1,2,...,n)においてシンボル0,1をそれぞれ出現確率P(0)=αi、P(1)=1−αiで符号化器Nに出力するものである。
符号化器Nは、本発明に係る暗号化をおこなう処理部であり、算術符号化法の符号化過程において動的な区分線形写像を鍵で制御することにより、データ圧縮と暗号化を同時に行う。すなわち、この算術型圧縮暗号装置10は、算術符号化法の復号過程を、カオス軌道を生成する区分線形写像として知られるベルヌーイシフト写像の反復として捉えて、算術符号化法の符号化器Nにおいて暗号化を行っている。
なお、モデル器Mから出力される動的なシンボルの出現確率を考慮し、用いられる区分線形写像を一般化された動的なベルヌーイシフト写像として解釈しているため、任意のモデル器Mを使用することができる。このため、実用上の高いデータ圧縮率と安全性を同時に満たすことができる。また、従来技術の欄で説明したWitten法、Liu法及びUehara法などのモデル器を対象とする暗号化法やダミーシンボルを符号化する方法、出力符号にマスキング演算を行う方法と組み合わせて使用することもできる。
また、この算術型圧縮暗号装置10では、動的な区分線形写像を鍵を用いて制御することとしているので、得られる出力符号は算術符号化による本来のデータ圧縮率を損なわず、写像のドメイン[0,1]全体に乱雑かつ一様に分布し、第三者に解読の手がかりを与えにくくすることができる。
算術符号化法について
次に、本実施の形態の前提となる算術符号化法について説明する。なおここでは、モデル器Mが出力する第i番目のシンボルをai∈M、長さnのシンボル系列をan=a1a2...an、空列をa0=λと表すこととする。
このとき、1ビットのシンボルaiについて、半開区間[0,1]はシンボルの出現確率によって図2に示す区間に割当てられる。符号化器では、当初、空列λに区間[0,1]を割当て、その下限をX(λ)=0、区間幅をW(λ)=1に設定する。
一般に、第iシンボルaiまでのシンボル系列ai=a1a2...aiに対する区間幅W(ai)とその下限X(ai)は
W(ai)=W(ai−1)P(ai) (1)
X(ai)=X(ai−1)+W(ai−1)Y(ai) (2)
により再帰的に決定される。ただし、このとき、X(ai)はiビットのシンボル系列aiに対して割当てられる区間の下限を示し、図2における1ビットのシンボルaiに割当てられる区間の下限Y(ai)とは異なる。
このような操作により、符号化されるnビットのシンボル系列anに対応する半開部分区間[X(an),X(an)+W(an)]が求められる。anに対応する符号語ψ(an)としては、区間[X(an),X(an)+W(an)]に含まれる1点を指定するが、通常その下限X(an)が採用される。
算術符号化法の復号は、符号化に使用した図2を使用して行う。まず、符号語をz1=ψ(an)とする。z1が図2のどちらのシンボルに対応する区間内に存在するかを判定することにより、復号すべきシンボル系列anの第1シンボルa1が復号される。
一般に、第i番目のシンボルaiは、
zi={zi−1−Y(ai−1)}/P(ai−1) (3)
によって再帰的に得られるzi(i=2,3,...,n)が図2のどちらのシンボルに対応する区間内に存在するかを判定することにより復号される。
ところで、カオス軌道を生成する区分線形写像のひとつとして知られる一般化されたベルヌーイシフト写像は図3で示され、その反復過程は図47の(4)式で与えられる。
このとき、P(0)=αi、P(1)=1−αi、符号語ψ(an)を写像の初期値x1とみなしてベルヌーイシフト写像を繰り返すと、各反復によって得られる軌道の値xiは(3)式と(4)式の対応関係から、明らかに算術符号の復号過程で得られるziに等しいことがわかる。すなわち、算術符号の復号過程は、一般化された動的なベルヌーイシフト写像の反復で記述できる。
ベルヌーイシフト写像の反復によって得られる写像の軌道はエルゴード性を有し、暗号学上よい性質を示すことが知られている。これを一般化し、写像の傾きαiを動的に変化させる(4)式による動的なベルヌーイシフト写像も同様な性質を有する。
データ圧縮および暗号化について
次に、本実施の形態に係る算術型圧縮暗号装置10について説明する。すでに述べたように、この算術型圧縮暗号装置10は、上記算術符号化法と異なり、算術符号化の符号化過程において動的な区分線形写像を鍵で制御することにより、データ圧縮と暗号化を同時に行っている。
具体的には、(1)動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する方法、(2)動的な区分線形写像の傾きを鍵で変化させて出力符号を攪乱する方法、(3)動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する方法、(4)動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する方法を採用する。そこで、以下ではこれらの方法についてさらに詳細に説明する。
(1)動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する方法
この方法では、図4及び、図47に示す(5)式、(6)式に示すように、図3の区分線形写像の位置を入れ替えた2種類の写像M0とM1を準備する。ただし、P(0)=αi、P(1)=1−αi(i=1,2,...,n)である。
従来の算術符号化法では、シンボルの復号が写像M0のみの反復で行われるが、本実施の形態では写像反復毎にM0もしくはM1のいずれかを鍵で任意に切り替えて使用する。そこで、例えばM0を用いるときkr i=0、M1を用いるときkr i=1と表し、予め写像を切り替えるための鍵系列Kr=kr i□{0,1}(i=1,2,...,n)を準備しておく(M0を用いるときkr i=1、M1を用いるときkr i=0として規則を反転してもよいことは自明である)。ただし、Kr=kr j(j=1,2,...,m),m<nとしてkr jを繰り返し使用してもよい。
復号時にM0もしくはM1を任意に切り替えて写像を行うので、符号化時には復号に用いる各写像の合成写像を考慮して符号語に相当する区間を定めて行く。kr iを考慮すると、図2で定義した下限値Y(ai)は図5に示すようにkr iの値によって異なる値をとる。
このような修正を考慮して、第i番目までのシンボル系列aiに対する区間幅W(ai)及びその下限X(ai)(i=1,2,...,n)は、kr iの値を考慮して図5と(1)式および(2)式から決定される。
一例として、図6にn=3(α1=2/3,α2=3/4,α3=1/2),Kr=101による区間分割の一例を従来法による分割(Kr=000と等価)と比較して示す。この図から、本実施の形態では鍵系列Krによってシンボル系列anに対応する区間の位置、すなわち符号語を任意に攪拌することができる。
次に、この符号化方法の処理手順について説明する。図7は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。同図に示すように、変数iを1に設定し(ステップS701)、αi、kr iおよびaiを入力する(ステップS702)。
そして、このkr iが0であるか否か、aiが0であるか否かを確認し(ステップS703,S704,S707)、kr iとaiがともに0である場合には(ステップS704肯定)、
W(ai)=W(ai−1)αi
X(ai)=X(ai−1)
とし(ステップS705)、変数iをインクリメントした後(ステップS710)、変数iをnと比較し(ステップS711)、両者が等しい場合には(ステップS711肯定)、ψ(an)を出力する(ステップS712)。なお、両者が等しくない場合には(ステップS711否定)、ステップS702に移行して同様の処理を繰り返す。
また、kr iが0でaiが1である場合には(ステップS704否定)、
W(ai)=W(ai−1)(1−αi)
X(ai)=X(ai−1)+W(ai)αi
とし(ステップS706)、同様の処理(ステップS710〜S712)を行う。
また、kr iが1でaiが0である場合には(ステップS707肯定)、
W(ai)=W(ai−1)αi
X(ai)=X(ai−1)+W(ai)(1−αi)
とし(ステップS708)、同様の処理(ステップS710〜S712)を行う。
また、kr iとaiがともに1である場合には(ステップS707否定)、
W(ai)=W(ai−1)(1−αi)
X(ai)=X(ai−1)
とし(ステップS709)、同様の処理(ステップS710〜S712)を行う。
この方法で得られた符号語ψ(an)の復号は次のように行う。まず初期値x1=ψ(an)とする。kr 1の値と図4からx1がどちらのシンボルに対応する区間にあるかを判定し、第1番目のシンボルa1を復号する。次に、kr 2=0ならばx1を(5)式で写像し、kr 2=1ならばx1を(6)式で写像してx2を決定し、同様に図4を用いてa2を復号する。
一般に、kr iに対応する写像から得られたxiが、図4のどちらのシンボルに対応する区間にあるかを判定してシンボルa1を復号する。これをn回繰り返し、シンボル系列anを復号する。
図8は、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。同図に示すように、x1=ψ(an)とし、変数iを1に設定した後に(ステップS801)、kr iを入力する(ステップS802)。
そして、このkr iが0であるか否か、xiがαiよりも小さいか否かを確認し(ステップS803,S804,S807)、kr iが0でありxiがαiよりも小さい場合には(ステップS804肯定)、
ai=0
xi+1=xi/αi
とし(ステップS805)、変数iをインクリメントした後(ステップS810)、変数iをnと比較し(ステップS811)、両者が等しい場合には(ステップS811肯定)、anを出力する(ステップS812)。なお、両者が等しくない場合には(ステップS811否定)、ステップS802に移行して同様の処理を繰り返す。
また、kr iが0でありxiがαi以上である場合には(ステップS804否定)、
ai=1
xi+1=(xi−αi)/(1−αi)
とし(ステップS806)、同様の処理(ステップS810〜S812)を行う。
また、kr iが1でありxiがαiよりも小さい場合には(ステップS807肯定)、
ai=1
xi+1=xi/(1−αi)
とし(ステップS808)、同様の処理(ステップS810〜S812)を行う。
また、kr iが1でありxiがαi以上である場合には(ステップS807否定)、
ai=0
xi+1=(xi−1+αi)/αi
とし(ステップS809)、同様の処理(ステップS810〜S812)を行う。
このように、動的な区分線形写像の位置を鍵で入れ替えて出力符号を攪乱することにより、データ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。
(2)動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する方法
次に、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する方法について説明する。復号過程で用いる区分線形写像の傾きf’(x1)は、明らかに1より大きく拡大写像となっている。従って、写像の傾きが摂動によって少しでも変化すると、得られる軌道はカオス的な性質から次第に全く異なる軌道を推移するようになる。その結果、シンボルの復号結果も同様に意味をなさなくなる。
このことを考慮し、ここでは図9に示すように第iシンボルaiを符号化する際に、
αi’=βiαi (7)
によって写像の傾きに摂動を加え、得られる出力符号を攪乱する。ただし、βiを写像の摂動係数と呼び、鍵系列Ks=ks i(i=1,2,...,n)の要素ks iから決定し、圧縮率の低下を招かないように1の近傍値に設定する。
そして、図47に示す(8)式によって写像を反復する。ただし、P(0)=αi、P(1)=1−αiである。
従来の算術符号化では、シンボルの復号を(4)式の反復によって行うが、本発明では写像反復毎にまず(7)式によってαiに摂動をかけ、(8)式による区分線形写像を繰り返すことにより行う。
復号時に摂動のかかったαi’を用いて写像を行うので、符号化時には図10に定義する下限値Y(ai)を用いる。このような修正を考慮して、第i番目までのシンボル系列aiに対する区間幅W(ai)及びその下限X(ai)(i=1,2,...,n)は、図10と(1)式および(2)式から決定される。
鍵ks iの値から摂動係数βiをどのように決めてもよいが、例えば1ビットの鍵を用いてks i=0のときβi=0.9、ks i=1のときβi=1.1とした場合、図11にn=3(α1=2/3,α2=3/4,α3=1/2),Ks=001による区間分割の一例を従来法による分割(摂動なし)と比較して示す。この図から、本実施の形態では、鍵系列Ksによって、用いる区分線形写像の傾きが摂動により変化し、シンボル系列anに対応する区間の位置、すなわち符号語を任意に攪拌することができる。
次に、この符号化方法の処理手順について説明する。図12は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
同図に示すように、変数iを1に設定し(ステップS1201)、αi、ks iおよびaiを入力し(ステップS1202)、ks iからβiを決定した後に(ステップS1203)、αi’=βiαiとする(ステップS1204)。
その後、aiが0であるか否かを確認し(ステップS1205)、aiが0の場合には(ステップS1205肯定)、
W(ai)=W(ai−1)αi’
X(ai)=X(ai−1)
とし(ステップS1206)、変数iをインクリメントした後に(ステップS1208)、変数iをnと比較し(ステップS1209)、両者が等しい場合には(ステップS1209肯定)、ψ(an)を出力する(ステップS1210)。なお、両者が等しくない場合には(ステップS1209否定)、ステップS1202に移行して同様の処理を繰り返す。
これに対して、aiが1である場合には(ステップS1205否定)、
W(ai)=W(ai−1)(1−αi’)
X(ai)=X(ai−1)+W(ai)αi’
とし(ステップS1207)、同様の処理(ステップS1208〜S1210)を行う。
この方法で得られた符号語ψ(an)の復号は次のように行う。まず初期値x1=ψ(an)とし、鍵ks 1の値から決定されるβ1を用いてα1をα1’に修正し、図10からx1がどちらのシンボルに対応する区間にあるかを判定し、第1番目のシンボルa1を復号する。次に、x1に(8)式による写像を施しx2を得て、同様にks 2の値から決定されるβ2を用いてα2をα2’に修正し、図10からx2を復号する。
一般に、鍵ks iの値から決定されるβiを用いてαiをαi’に修正し、(8)式による写像から得られたxiが図10のどちらのシンボルに対応する区間にあるかを判定してシンボルaiを復号する。これをn回繰り返し、シンボル系列anを復号する。
図13は、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。同図に示すように、x1=ψ(an)とし、変数iを1に設定する(ステップS1301)。そして、ks iを入力し(ステップS1302)、このks iからβiを決定した後に(ステップS1303)、αi’=βiαiとする(ステップS1304)。
その後、xiがαi’よりも小さいか否かを確認し(ステップS1305)、xiがαi’よりも小さい場合には(ステップS1305肯定)、
ai=0
xi+1=xi/αi’
とし(ステップS1306)、変数iをインクリメントした後に(ステップS1308)、変数iをnと比較し(ステップS1309)、両者が等しい場合には(ステップS1309肯定)、anを出力する(ステップS1310)。なお、両者が等しくない場合には(ステップS1309否定)、ステップS1302に移行して同様の処理を繰り返す。
また、xiがαi’以上である場合には(ステップS1305否定)、
ai=1
xi+1=(xi−αi’)/(1−αi’)
とし(ステップS1307)、同様の処理(ステップS1308〜S1310)を行う。
このように、動的な区分線形写像の傾きに鍵で摂動をかけて出力符号を攪乱する場合にも、βi□1からほとんどデータ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。なお、(7)式によるαiの摂動方法としては、(i)αiに直接βiを乗算する方法、(ii)αiに微小な数値を演算(加算、減算、XOR等)する方法、(iii)αiに対応するαi’のテーブルを予め作成して用いる方法、などを利用できる。
(3)動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する方法
上記(2)に示した方法では、βiが1に近い値をとるため、得られる符号語は従来法による符号語の近傍に分布する。その結果、符号化する系列anが決まると、鍵でβiを変化させても得られる符号語は写像のドメイン[0,1]の一部に偏ってしまう。
そこで、図14及び、図47に示す(10)式、(11)式に示すように、まず鍵ks i(i=1,2,...,n)を用いて動的な区分線形写像の傾きに(7)式で摂動をかけ、さらに写像の位置を入れ替えた2種類の写像M0’とM1’を準備し、これらを復号時に1ビットの鍵kr i∈{0,1}(i=1,2,...,n)で切り替える。これにより、図10は図15に拡張され、図15と(1)式および(2)式による符号化の結果は、従来法と比べてさらに異なるものとなる。その一例として、摂動に1ビットの鍵を使用し、n=3(α1=2/3,α2=3/4,α3=1/2),Ks=001、Kr=101とした場合の区間分割の一例を従来法と比較して図16に示す。
摂動と写像入れ替えの効果により、得られる符号語の種類が著しく増加し、出力符号を写像のドメイン[0,1)全体に拡散させることができる。ただし、この方法を用いる場合、一般に写像反復毎に使用するks iとkr iを合成した合成鍵K=ks ikr i(i=1,2,...,n)を予め準備して用いる。また、鍵K=ks jkr j(j=1,2,...,m)、m<nとしてks jkr jを繰り返し使用してもよい。
次に、この符号化方法の処理手順について説明する。図17は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の符号化時の処理手順を示すフローチャートである。
同図に示すように、変数iを1に設定し(ステップS1701)、αi、ks i、kr iおよびaiを入力する(ステップS1702)。その後、このks iからβiを決定し(ステップS1703)、αi’=βiαiとする(ステップS1704)。
その後、このkr iが0であるか否か、aiが0であるか否かを確認し(ステップS1705,S1706,S1709)、kr iとaiがともに0である場合には(ステップS1706肯定)、
W(ai)=W(ai−1)αi’
X(ai)=X(ai−1)
とし(ステップS1707)、変数iをインクリメントした後に(ステップS1712)、変数iをnと比較し(ステップS1713)、両者が等しい場合には(ステップS1713肯定)、ψ(an)を出力する(ステップS1714)。なお、両者が等しくない場合には(ステップS1713否定)、ステップS1702に移行して同様の処理を繰り返す。
また、kr iが0でaiが1である場合には(ステップS1706否定)、
W(ai)=W(ai−1)(1−αi’)
X(ai)=X(ai−1)+W(ai)αi’
とし(ステップS1708)、同様の処理(ステップS1712〜S1714)を行う。
また、kr iが1でaiが0である場合には(ステップS1709肯定)、
W(ai)=W(ai−1)αi’
X(ai)=X(ai−1)+W(ai)(1−αi’)
とし(ステップS1710)、同様の処理(ステップS1712〜S1714)を行う。
また、kr iとaiがともに1である場合には(ステップS1709否定)、
W(ai)=W(ai−1)(1−αi’)
X(ai)=X(ai−1)
とし(ステップS1711)、同様の処理(ステップS1712〜S1714)を行う。
次に、復号化方法の処理手順について説明する。図18は、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合の復号化時の処理手順を示すフローチャートである。
同図に示すように、x1=ψ(an)とし、変数iを1に設定した後に(ステップS1801)、ks iおよびkr iを入力する(ステップS1802)。その後、このks iからβiを決定し(ステップS1803)、αi’=βiαiとする(ステップS1804)。
その後、このkr iが0であるか否か、xiがαi’よりも小さいか否かを確認し(ステップS1805,S1806,S1809)、kr iが0でありxiがαi’よりも小さい場合には(ステップS1806肯定)、
ai=0
xi+1=xi/αi’
とし(ステップS1807)、変数iをインクリメントした後(ステップS1812)、変数iをnと比較し(ステップS1813)、両者が等しい場合には(ステップS1813肯定)、anを出力する(ステップS1814)。なお、両者が等しくない場合には(ステップS1813否定)、ステップS1802に移行して同様の処理を繰り返す。
また、kr iが0でありxiがαi’以上である場合には(ステップS1806否定)、
ai=1
xi+1=(xi−αi’)/(1−αi’)
とし(ステップS1808)、同様の処理(ステップS1812〜S1814)を行う。
また、kr iが1でありxiがαi’よりも小さい場合には(ステップS1809肯定)、
ai=1
xi+1=xi/(1−αi’)
とし(ステップS1810)、同様の処理(ステップS1812〜S1814)を行う。
また、kr iが1でありxiがαi’以上である場合には(ステップS1809否定)、
ai=0
xi+1=(xi−1+αi’)/αi’
とし(ステップS1811)、同様の処理(ステップS1812〜S1814)を行う。
このように、動的な区分線形写像を鍵で制御する際に(1)〜(2)の方法を任意に組み合わせて出力符号を攪乱する場合にも、データ圧縮率を損なうことなく、出力される符号の撹拌性をさらに向上させ、高い安全性を保持することができる。
(4)動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する方法
ここでは、得られる符号語の種類数をさらに増加させることを考える。そのためにRビットのシンボル
cj=aRjaRj+1...aR(j+1)−1 (11)
をまとめて符号化し、その合成写像に現れる2R個の区分線形写像の[0,1]上の配置を任意に入れ替えて使用する。例えば、R=2のとき図19(a)に示すように4つの区分線形写像が現れるが、これを鍵によって任意に入れ替えた合成写像は図19(a),(b)に示す例を含めて4!=24通り存在する。
一般に、Rビットのシンボルをまとめて符号化する場合、(2R)!通りの合成写像が存在し、同じRビットのシンボル系列に対応する符号語の種類数が著しく増加する。このとき、実際の符号の総数rは、図47の(12)式に示すような値となり、例えばR=1(情報源の拡大なし)で6回写像を反復しても26=64種類の符号語しか得られないのに対し、R=3で情報源を拡大し2回写像を行うと(27)2=214=16,384種類もの異なる符号語を得ることができる。
cj(j=1,2,...)の符号化は、まずcjを構成する各シンボルの出現確率 P(ai)を摂動係数βiを用いてP’(ai)に修正し、
P(cj)=P’(aRj)P’(aRj+1)...P’(aR(j+
1)−1) (13)
を用いて、系列cj=c1c2...cjに対応する区間幅
W(cj)=W(cj−1)P(cj) (14)
とその下限
X(cj)=X(cj−1)+W(cj−1)Y(cj) (15)
を再帰的に求めることにより行う。ただし、当初、空列λ(=c0)に区間[0,1)を割当て、その下限をX(λ)=0、区間幅をW(λ)=1に設定することは、これまでの方法と同様である。
このように、cjの符号化および対応する復号化の方法は情報源を拡大しないaiの場合と基本的に同様である。しかし、鍵系列Kr=kr i∈{0,1}(i=1,2,...,n)を用いる代わりに、cjに対応する合成写像を、(2R)!通りの合成写像の中から一意に選択するための鍵系列Ke=ke j(j=1,2,...)を用いる点が異なり、それによって出力符号の複雑さが著しく向上する。
このように動的な区分線形写像を(1)〜(3)の方法によって鍵で制御する際に情報源の拡大を行って出力符号を攪乱する場合にも、データ圧縮率を損なうことなく、出力される符号の撹拌性をより一層向上させ、高い安全性を保持することができる。
上述してきたように、本実施の形態では、算術型圧縮暗号装置10の符号化器Nが、モデル器Mから入力した出現確率αiに基づいて、動的な区分線形写像の位置を鍵で入れ替えるか、動的な区分線形写像の傾きを鍵で変化させるか、これらを組み合わせるか、情報源の拡大をおこなうよう構成したので、データ圧縮率を損なうことなく、出力される符号の撹拌性を向上させ、高い安全性を保持することができる。
(5)実施例3の方法をJBIG2に適用した実施例
第5実施例として、実施例3と同様に本発明の摂動法と写像位置の入れ替えを組み合わせてJBIG2の算術符号器として周知のMQコーダに適用した例を開示する。
図24は、第5実施例において、摂動法により状態遷移図から得られる確率推定値qkを理想的な値の方向に鍵で制御(移動)する方法を示す説明図である。
周知のMQコーダにおいては、区間幅Aが16進数で8000(区間幅の最小値Rmin)からFFFF(区間幅の最大値Rmax)の間にある場合に、状態遷移図から得られる、区間幅Aが16進数でAAAAの時に正しい値となる確率推定値qkをそのまま使用する。従って、図示するように、実際の区間幅A(ai)が16進数でAAAAではない場合(図24の中央はA(ai)が16進数でAAAAより小さい場合、右は大きい場合)には、符号化の計算に使用される確率推定値qkと理想的な値qk’との間にはずれδが存在する。
第5実施例においては、このずれδの方向および大きさを求め、理想的な値qk’に近づく方向に符号化の計算に使用される確率推定値qkを移動させる。そして、δが大きい場合には多数ビットの鍵データKを使用し、δが小さい場合には最低0ビットの鍵データKを使用して移動量を制御する。
従って、計算量は増すが、効率よく摂動をかけることができ、更に、摂動をかけることにより、符号化の計算に使用される確率推定値qkがより理想的な値qk’に近づくので、通常のMQコーダより符号化効率(圧縮率)が向上するという効果がある。
図20は、算術型圧縮暗号化装置をJBIG2で実装する場合の構成を示すブロック図である。周知のJBIG2の算術符号器(MQコーダ)は、大きく3つのブロックから成る。コンテクスト生成器は、情報源(入力シンボル系列an)からaiを入力して、後述するコンテクスト(CX)を出力する。
モデル器は、コンテクスト生成器からコンテクストCXを入力し、また符号化器から後述する正規化の有無およびaiがMPSか否かという情報を入力して、現在の状態であるインデックス(I(CX))およびMPSの値を出力する。
符号化器は、内部状態として区間幅A(ai−1)および区間の下限C(ai−1)の値を持ち、情報源ai、インデックス(I(CX))およびMPSの値をを入力し、更に鍵データKを入力して、圧縮暗号データCDおよび正規化の有無およびaiがMPSか否かという情報を出力する。本発明においては、符号化器の構成あるいは処理に特徴があり、コンテクスト生成器およびモデル器については、周知のMQコーダの構成および処理をそのまま採用可能であるので、詳細な説明は省略する。
図21は、JBIG2において、コンテクスト生成器で参照画素領域から16ビットの参照画素を抽出してコンテクストCXを生成する方法を示す説明図である。注目画素に対して、予め任意の方法で定められた参照画素位置r1からr16の当該画素値が読み出され、16ビットのコンテクストCXが生成される。
以下、図20の符号化器およびモデル器の機能を実行する処理のフローチャートに従って動作を説明する。図27は、符号化器およびモデル器の機能を含む圧縮暗号化器における符号化プロセス全体を示すフローチャートである。
S10においては、後述する初期化処理(INITENC)が行われる。S11においては、コンテクストCXと1ビットの入力シンボルaiを読み込む。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ビットシンボルaiの符号化処理(ENCODE)を示すフローチャートである。S30においては、シンボルaiが0か否(=1)かが判定され、判定結果が肯定の場合にはS32に移行するが、否定の場合にはS31に移行する。S31においてはaiが1である場合の符号化処理(CODE1)が行われる。また、S32においては、aiが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の理想的なqk’値と実際の値qk(=Qe)との差δの対数log2δを求め、これを使用する鍵データのビット数xとしている。
x=log2|Qe−(Qe/0xAAAA)*A(ai)|
ここで、区間幅A(ai)の0xAAAAとの差をΔとすると、
A(ai)=0xAAAA+Δ
であるので、
x=log2|Qe−(Qe/0xAAAA)*(0xAAAA+Δ)|
x=log2|Qe*Δ/0xAAAA|
x=log2Qe+log2|Δ|−log20xAAAA
となる。従って、インデックスから得られるQeおよび区間幅A(ai)から得られるΔから、log2Qeおよび(log2|Δ|−log20xAAAA)の近似値をそれぞれテーブルを使用して求め、鍵データのビット数xを算出することができる。
図25は、log2δを導出するためのlog2|Δ|−log20xAAAAの近似値を与えるテーブルの内容を示す説明図である。区間幅Aの所定の範囲毎に、log2|Δ|−log20xAAAAの近似値が記載されている。
図26は、log2δを導出するために準備されるlog2Qeの近似値を与えるテーブルを示す説明図である。各インデックス毎にlog2Qeの近似値が記載されている。
但し、本発明においては、(log2|Δ|−log20xAAAA)の近似値を以下に示す方法により、図25のテーブルは使用せずに高速に算出している。
図25に示す表では、log2(|Δ|/0xAAAA)の計算値が?.5には少し正確ではないが、近似値として?.5を使用できる。この方式だと、Δに基づきテーブルを順に検索する必要はなく、上から(上位15ビット目から)数えて何ビット目に初めて1が立っているかを調べるだけでlog2(|Δ|/0xAAAA)の値を求めることができる。例えば、Δ=0x0AB3だった場合、2進数に直すと「000101010110011」となり、上から数えて4番目に1が立っていることになる。ということは、1の立っているビット位置を確認するだけで図25の表の下から4番目の値よりも大きく、下から3番目の値よりも小さいことが判り、log2(|Δ|/0xAAAA)は表の近似値から−4.5と−3.5の間のlog2(|Δ|/0xAAAA)=−4が求まる。
また、ビットを確認する際にカウンターなどの変数を用いることで、すぐに目的のlog2(|Δ|/0xAAAA)を求めることができる。即ち、Δにおいて1が立っているビットが上位15ビット目から数えてN番目とするとlog2(|Δ|/0xAAAA)=−Nとなる。このように、図25の表の概念を用いれば、16進数のΔの値をメモリに記憶しておくこともなく、log2(|Δ|/0xAAAA)の計算した近似値もテーブルとしてメモリに記憶しておくことも不必要となる。
このようにそれぞれの値の近似値を求め、それらを足し合わせることで、目的であるx=log2δを求めることが可能となる。即ち、図25の表の概念は用いているが、実際に図25の表の中身をメモリ上に記憶して使用しているわけではない。具体的に図32のアルゴリズムでは、KeyBitNumはx=log2δを表しており、KEYBIT(I(CX))がlog2Qeを表しており、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))(=log2Qeの近似値:図26の近似値欄の値)を求め、KEYBIT(I(CX))からcounterを減算した値をKeyBitNumとする。
S68においてはKeyBitNumが負か否かが判定され、判定結果が肯定の場合にはS69に移行してKeyBitNumを0にする。S70においては、変数KeyBitsおよびcounterを0に設定し、S71においては、counter値とKeyBitNumが等しいか否かが判定され、判定結果が肯定の場合にはS74に移行するが、否定の場合にはS72に移行する。S72においては、鍵データKから1ビット読み込み、ksとする。S73においては、KeyBitsを1ビット左へシフトし、KeyBitsの最下位ビットをksとする。また、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ビットの値krが1の時に区間を入れ替えるという、本発明の写像区間の入れ替え処理を含んでいる。S80においては、鍵データKから1ビット読み込みkrとし、AからCQeを減算する。そしてAの値をInvQeに代入する。S81においては、AがCQeより小さいか否か判定され、判定結果が肯定の場合にはS85に移行するが、否定の場合にはS82に移行する。
S82においてはCQeをAに代入し、S83においては、鍵データkrが1か否かが判定され、結果が肯定の場合にはS84に移行してCにInvQeを加算する。S85においては、鍵データkrが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ビットの値krが1の時に区間を入れ替えるという、本発明の写像区間の入れ替え処理を含んでいる。S100においては、鍵データKから1ビット読み込みkrとし、AからCQeを減算する。そしてAの値をInvQeに代入する。S101においては、Aと16進数の8000の論理積が0か否か判定され、判定結果が肯定の場合にはS104に移行するが、否定の場合にはS102に移行する。S102においては鍵データkrが0か否かが判定され、結果が肯定の場合にはS103に移行してCにCQeを加算し、処理を終了する。
S104においては、AがCQeより小さいか否か判定され、判定結果が肯定の場合にはS107に移行するが、否定の場合にはS105に移行する。S105においては、鍵データkrが0か否かが判定され、結果が肯定の場合にはS106に移行してCにCQeを加算する。S107においてはCQeをAに代入し、S108においては、鍵データkrが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を入力し、基本的に符号化器と逆の処理を行って、復号したデータai、正規化の有無、aiがMPSか否かという情報を出力する。
図40は、伸張復号器における復号プロセス全体を示すフローチャートである。S200においては、後述する初期化処理(INITDEC)を行う。S201においては、コンテクスト生成器からコンテクストCXを読み込む。S202においては後述する1ビットシンボルaiの復号化処理(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ビットシンボルaiの復号処理(DECODE)を示すフローチャートである。S220においては、図32に示す摂動処理(CHANGEQE)が行われ、CQeが求められる。S221においては鍵データKから1ビット読み込みkrとする。S222においては、krが1か否かが判定され、判定結果が肯定の場合にはS224に移行するが、否定の場合にはS223に移行する。S223においてはCQeをRepQeに代入する。また、S224においては(A−CQe)をRepQeに代入する。
S225においてはAからCQeを減算する。S226においてはChighがRepQeより小さいか否かが判定され、判定結果が肯定の場合にはS233に移行するが、否定の場合にはS227に移行する。S227においてはChighからRepQeを減算し、S228においてはkrが1か否かが判定され、判定結果が肯定の場合にはS234に移行するが、否定の場合にはS229に移行する。
S229においては、Aと16進数の8000の論理積が0か否かが判定され、判定結果が肯定の場合にはS230に移行するが、否定の場合にはS232に移行する。S230においては、後述する復号処理(MPS_EXCHANGE DECRYPT)が行われ、aiが求められる。S231においては後述する区間幅正規化処理(RENORMD)が行われる。S232においては、MPS(CX)の値がaiに代入される。
S233においてはkrが1か否かが判定され、判定結果が肯定の場合にはS229に移行するが、否定の場合にはS234に移行する。S234においては、後述する復号処理(LPS_EXCHANGE DECRYPT)が行われ、aiが求められる。S235においては後述する区間幅正規化処理(RENORMD)が行われる。
図43は、S234の復号処理(LPS_EXCHANGE DECRYPT)を示すフローチャートである。この処理は1ビットシンボルがLPSとして復号された場合の処理である。S240においては、AがCQeより小さいか否かが判定され、判定結果が肯定の場合にはS241に移行するが、否定の場合にはS242に移行する。
S241においては、CQeがAに代入され、コンテクスト学習表を参照して、MPS(CX)の値がaiに代入され、状態遷移表から得られるNMPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
S242においてはCQeがAに代入され、1−MPS(CX)の値がaiに代入される。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)の値がaiに代入され、状態遷移表から得られる NMPS(I(CX))がインデックスI(CX)に代入され、コンテクスト学習表が更新される。
S252においては、1−MPS(CX)の値がaiに代入される。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は、摂動法により状態遷移図から得られる確率推定値qkを理想的な値の方向に鍵で制御(移動)する方法を示す説明図である。
図25は、log2δを導出するために準備されるlog2Δ−log20xAAAAの近似値を与えるテーブルを示す説明図である。
図26は、log2δを導出するために準備されるlog2Qeの近似値を与えるテーブルを示す説明図である。
図27は、圧縮暗号化器における符号化プロセス全体を示すフローチャートである。
図28は、S10の初期化処理(INITENC)を示すフローチャートである。
図29は、S12の1ビットシンボルaiの符号化処理(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ビットシンボルaiの復号処理(DECODE)を示すフローチャートである。
図43は、S234の復号処理(LPS_EXCHANGE DECRYPT)を示すフローチャートである。
図44は、S230の復号処理(MPS_EXCHANGE DECRYPT)を示すフローチャートである。
図45は、S231、S235の区間幅正規化処理(RENORMD)を示すフローチャートである。
図46は、S261のバイト単位読み込み処理(BYTEIN)を示すフローチャートである。
図47は、数式を示す説明図である。
符号の説明
10は算術型圧縮暗号装置、Mはモデル器、Nは符号化器、αiは 第iシンボルの出現確率、aiは1ビットの入力シンボル、Y(ai)はaiに対する下限、anはnビットの入力シンボル系列、W(an)はanに対する区間幅、X(an)はW(an)の下限、Kは鍵系列、ψ(an)はanに対する符号語である。
Claims (7)
- 入力されたシンボルの出現確率を予測する予測手段と、
シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段と、
暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段と
を備えたことを特徴とする算術型圧縮暗号装置。 - 前記制御手段は、前記動的な区分線形写像の位置を前記暗号鍵で入れ替えて出力符号を攪乱することを特徴とする請求項1に記載の算術型圧縮暗号装置。
- 前記制御手段は、前記動的な区分線形写像の傾きに前記暗号鍵で摂動をかけて出力符号を攪乱することを特徴とする請求項1に記載の算術型圧縮暗号装置。
- 前記動的な区分線形写像の傾きおよび位置の内の少なくとも一方を前記暗号鍵に基づいて制御する際に、情報源の拡大を行って出力符号を攪乱することを特徴とする請求項2または3のいずれかに記載の算術型圧縮暗号装置。
- 入力されたシンボルの出現確率を予測する予測手段と、シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段と、暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段とを備えた算術型圧縮暗号装置によって符号化された符号を入力し、暗号鍵を使用して符号を前記シンボルに復号する復号化手段を備えたことを特徴とする算術型圧縮暗号装置。
- 入力されたシンボルの出現確率を予測するステップと、
シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御するステップと、
暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなうステップと
を含むことを特徴とする算術型圧縮暗号方法。 - コンピュータを、
入力されたシンボルの出現確率を予測する予測手段、
シンボルの出現確率に基づく動的な区分線形写像を暗号鍵で制御する制御手段、
暗号鍵で制御された動的な区分線形写像に基づいて前記シンボルの符号化をおこなう圧縮符号化手段
として機能させるためのプログラム。
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)
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 | 北京爱笔科技有限公司 | 一种生物特征的处理方法及装置 |
-
2002
- 2002-01-21 JP JP2002558246A patent/JP4086661B2/ja not_active Expired - Fee Related
- 2002-01-21 WO PCT/JP2002/000366 patent/WO2002058039A1/ja active Application Filing
- 2002-01-21 JP JP2002558245A patent/JP4086660B2/ja not_active Expired - Fee Related
- 2002-01-21 WO PCT/JP2002/000365 patent/WO2002058038A1/ja active Application Filing
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 |