JP2007065253A - 文字コード暗号処理プログラム、および文字コード暗号処理方法 - Google Patents

文字コード暗号処理プログラム、および文字コード暗号処理方法 Download PDF

Info

Publication number
JP2007065253A
JP2007065253A JP2005250818A JP2005250818A JP2007065253A JP 2007065253 A JP2007065253 A JP 2007065253A JP 2005250818 A JP2005250818 A JP 2005250818A JP 2005250818 A JP2005250818 A JP 2005250818A JP 2007065253 A JP2007065253 A JP 2007065253A
Authority
JP
Japan
Prior art keywords
character code
value
encryption
encrypted
plaintext
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
JP2005250818A
Other languages
English (en)
Other versions
JP4989055B2 (ja
Inventor
Shigeyuki Okubo
重行 大久保
Ryota Akiyama
良太 秋山
Toshihiro Suzuki
利弘 鈴木
Yuji Miyamoto
裕司 宮本
Takaoki Sasaki
孝興 佐々木
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 Broad Solution and Consulting Inc
Original Assignee
Fujitsu Broad Solution and Consulting Inc
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 Broad Solution and Consulting Inc filed Critical Fujitsu Broad Solution and Consulting Inc
Priority to JP2005250818A priority Critical patent/JP4989055B2/ja
Priority to US11/290,791 priority patent/US20070064946A1/en
Publication of JP2007065253A publication Critical patent/JP2007065253A/ja
Application granted granted Critical
Publication of JP4989055B2 publication Critical patent/JP4989055B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】データ長を変えずに文字コードを暗号化できるようにする。
【解決手段】 平文3が入力されると、平文符号化手段1bにより、平文3に含まれる文字コードが数値に変換される。次に、暗号化手段1dにより、平文符号化手段1bで得られた文字コード毎の数値が順次取得され、初期値が設定されたレジスタ1cの値を用いて、最初の数値が同一ビット数の暗号値に暗号化される。以後、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた数値の暗号化とが交互に繰り返され、入力された全ての数値が暗号化される。そして、文字コード生成手段1eにより、暗号化手段1dで得られた各暗号値が文字コードに変換され、暗号文4が生成される。
【選択図】 図1

Description

本発明は文字コードの暗号化を行うための文字コード暗号処理プログラム、および文字コード暗号処理方法に関し、特に文字コードに暗号化するための文字コード暗号処理プログラム、および文字コード暗号処理方法に関する。
コンピュータで取り扱われる一部のデータは、情報漏洩等を防ぐために暗号化される。暗号化アルゴリズムとしては、AES(Advanced Encryption Standard)やDES(Data Encryption Standard)など様々なアルゴリズムが考えられている(例えば、特許文献1参照)。
ところで、コンピュータで取り扱うデータには、文字コード列で記述されたデータがある。文字コードは、アルファベット、数字、漢字等の文字や記号に対して、1対1で割り当てられた固有の数字である。英数字のみであれば、1バイトの文字コードで表現することができる。漢字のように種類の多い文字は2バイトの文字コードで表現される。
このような文字コード列で記述されたデータを暗号化する場合、暗号化後も文字コードで表現できることが望まれる。その理由は以下の通りである。
例えば、SiftJISやEUC(Extended UNIX(登録商標) Code)では、1文字が2バイトの文字コードで表されるが、2バイト分(16ビット)の全てのビットが文字コードとして使用されているわけではない。すなわち、2バイト中の12〜13ビットを用いれば、日本語で日常使用される文字を表現することができる。そのため、文字コードを取り扱うプログラムでは、2バイト中の文字コードを表すビットのみを読み出す場合もある。このとき、2バイトの文字コード全体がAESやDESで暗号化されていると、一部のデータを読み出しても正しく復号することができない。
すなわち、既存のシステムで使用される文字コードを暗号化した場合、システムの正常動作を保証するには、暗号化後も文字コードとして認識可能でなければならない。
そこで、文字コード列の暗号化後も文字コードとなるような暗号化技術が考えられている。そのような暗号化技術としては、例えば、文字コード変換テーブル(乱数表)を用いる技術がある。
文字コード変換テーブルを用いる技術では、平文の文字と暗号文の文字とをマッピングした(文字間の対応関係を定義した)文字コード変換テーブルを予め用意する。そして、暗号化対象の平文が入力されると、平文内の個々の文字が文字コード変換テーブルでマッピングされた他の文字に変換される。この暗号化技術では、文字コード列から文字コード列へ変換できる。
ただし、文字コード変換テーブルを用いた場合、変換前の文字コードと変換後の文字コードとが1対1の関系となる。そのため、同じ文字が連続した場合、変換後も同じ文字が連続する。その結果、他人に解読される危険性が高くなり、機密性の高いデータには利用できない。
そこで、通常の暗号化アルゴリズムによる暗号データを文字コード化する技術が考えられている。暗号データを文字コード化する技術では、AESやDESによって暗号化されたバイナリデータを、BASE64等の技術を用いて文字コードに変換し直す。ここで、BCDは、10進数の各桁を、4ビットの2進数で表現したものである。また、BASE64は、電子メールに添付されたバイナリデータの内容を、文字コードに置換する技術である。
特開平8−227269号公報
しかし、暗号データを文字コード化する場合、変換後の文字列が、元の文字列よりも長くなってしまう。
例えば、文字コード「0x20」、「0x21」という2バイトコードの2文字(合わせて4バイト)をAESで暗号化し、「0xF901」という4バイトのバイナリデータが得られたものとする。このバイナリデータを2進数で表すと「1111100100000001」となる。バイナリデータをBASE64で文字コードに変換する場合、バイナリデータが6ビット毎に区切られる。そして、6ビット毎のデータが、それぞれ2バイトの文字コードとして取り扱われる。
具体的には、ビット数を6の倍数にするため、最後に2ビット分の「0」が付加され、「111110010000000100」となる。このデータの最初の6ビット「111110」が「0x3E」、次の6ビットが「010000」が「0x10」、最後の6ビット「000100」が「0x04」という文字コードとなる。結果的に6バイトの文字コードが生成される。
このように、暗号化によって文字コードの文字列が長くなると、その文字コードを処理するアプリケーションプログラムで正常に処理できない可能性がある。例えば、データベースにおける文字列の格納領域として、所定のデータ長分の領域が設けられている場合がある。その領域に格納すべき文字列を暗号化し文字列が長くなると、暗号化後のデータを所定の領域に格納することができないことがある。その結果、システムの正常動作が保証できなくなる。
本発明はこのような点に鑑みてなされたものであり、データ長を変えずに文字コードを暗号化できる文字コード暗号処理プログラム、および文字コード暗号処理方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような文字コード暗号処理プログラムが提供される。本発明に係る文字コード暗号処理プログラムは、文字コードの暗号化を行うために、図1に示す暗号化装置1の有する機能をコンピュータに実行させることができる。
変換テーブル記憶手段1aは、所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する。平文符号化手段1bは、少なくとも1つの文字コードで構成される平文3が入力されると、平文3を構成する文字コードの文字コード体系に対応する変換テーブルを参照し、平文3に含まれる文字コードを数値に変換する。暗号化手段1dは、平文符号化手段1bで得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタ1cの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化する。文字コード生成手段1eは、所定の文字コード体系に対応する変換テーブルを参照し、暗号化手段1dで得られた各暗号値を文字コードに変換する。
このような文字コード暗号化プログラムを実行するコンピュータに平文3が入力されると、平文符号化手段1bにより、平文3を構成する文字コードの文字コード体系に対応する変換テーブルが参照され、平文3に含まれる文字コードが数値に変換される。次に、暗号化手段1dにより、平文符号化手段1bで得られた文字コード毎の数値が順次取得され、初期値が設定されたレジスタ1cの値を用いて、最初の数値が同一ビット数の暗号値に暗号化され、以後、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた数値の暗号化とが交互に繰り返され、入力された全ての数値が暗号化される。そして、文字コード生成手段1eにより、所定の文字コード体系に対応する変換テーブルが参照され、暗号化手段1dで得られた各暗号値が文字コードに変換される。
また、上記課題を解決するために、コンピュータの演算処理によって文字コードを暗号化するための文字コード暗号処理方法において、所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルが変換テーブル記憶手段に予め記憶されており、少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換し、符号化によって得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化し、所定の文字コード体系に対応する前記変換テーブルを参照し、暗号化によって得られた各暗号値を文字コードに変換する、ことを特徴とする文字コード暗号処理方法が提供される。
このような文字コード暗号処理方法によれば、平文を構成する文字コードの文字コード体系に対応する変換テーブルが参照され、平文3に含まれる文字コードが数値に変換される。次に、符号化で得られた文字コード毎の数値が順次取得され、初期値が設定されたレジスタの値を用いて、最初の数値が同一ビット数の暗号値に暗号化され、以後、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた数値の暗号化とが交互に繰り返されることで、2つめ以降の数値が暗号化される。そして、所定の文字コード体系に対応する変換テーブルが参照され、暗号化で得られた各暗号値が文字コードに変換される。
本発明では、文字コードを数値に符号化し、前回の暗号値を用いて順次数値を暗号化し、暗号値を文字コードに戻すようにした。そのため、1文字分の文字コードは暗号化後も1文字分の文字コードとなり、文字数を変えることなく暗号化できる。しかも、平文中で同じ文字が連続しても暗号化後は異なる文字に変更され、高い安全性が確保できる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本実施の形態の概略を示す図である。図1に示すように、本実施の形態では、平文3を暗号化装置1で暗号化し、暗号文4を生成する。そして、その暗号文4を復号装置2で復号し、平文5を生成する。
暗号化装置1は、変換テーブル記憶手段1a、平文符号化手段1b、レジスタ1c、暗号化手段1d、および文字コード生成手段1eを有している。
変換テーブル記憶手段1aは、所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する。変換テーブルに登録可能な文字コードの数は、2のn乗(nは数値のビット長)となる。例えば、文字コードの種別数が2の12乗内に収まる場合、12ビットの数値に符号化される。
平文符号化手段1bは、少なくとも1つの文字コードで構成される平文3が入力されると、平文3を構成する文字コードの文字コード体系に対応する変換テーブルを参照し、平文3に含まれる文字コードを数値に変換する。例えば、図1の例では、「F」の文字コードが「3」の数値に変換されている。
暗号化手段1dは、平文符号化手段1bで得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタ1cの値を用いて、最初の数値を同一ビット数の暗号値に暗号化する。以後、暗号化手段1dは、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタ1cの値の更新と、更新されたレジスタ1cの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化する。
例えば、最初の数値が「3」であり、暗号化後に「5」となった場合、「5」の値を用いてレジスタ1cの値が更新される。そして、更新後のレジスタ1cの値を用いて、次の数値が暗号化される。
文字コード生成手段1eは、所定の文字コード体系に対応する変換テーブルを参照し、暗号化手段1dで得られた各暗号値を文字コードに変換する。平文3の文字コード体系と暗号文4の文字コード体系が同じであれば、共通の変換テーブルが参照される。図1の例では、共通の変換テーブルが参照され、暗号値「5」が「E」の文字コードに変換されている。変換処理で生成された文字コードによって暗号文4が構成される。
復号装置2は、変換テーブル記憶手段2a、暗号文符号化手段2b、レジスタ2c、復号手段2d、および文字コード再生手段2eを有している。
変換テーブル記憶手段2aは、所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する。
暗号文符号化手段2bは、少なくとも1つの文字コードで構成される暗号文が入力されると、暗号文4を構成する文字コードの文字コード体系に対応する変換テーブルを参照し、暗号文に含まれる文字コードを暗号値に変換する。
復号手段2dは、暗号文符号化手段2bで得られた文字コード毎の暗号値を順次取得し、初期値が設定されたレジスタ2cの値を用いて、最初の暗号値を同一ビット数に復号する。なお、レジスタ2cの初期値は、暗号化の際にレジスタ1cに設定された初期値と同じである。
以後、復号手段2dは、復号対象となった暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた暗号値の復号とを交互に繰り返すことで、2つめ以降の暗号値を復号する。
文字コード再生手段2eは、所定の文字コード体系に対応する変換テーブルを参照し、復号手段2dで得られた各数値を文字コードに変換する。変換よって生成された文字コードの列が平文5として出力される。
このような文字コード暗号化プログラムを実行するコンピュータに平文3が入力されると、平文符号化手段1bにより、平文3に含まれる文字コードが数値に変換される。次に、暗号化手段1dにより、平文符号化手段1bで得られた文字コード毎の数値が順次取得され、初期値が設定されたレジスタ1cの値を用いて、最初の数値が同一ビット数の暗号値に暗号化され、以後、暗号化によって得られた暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた数値の暗号化とが交互に繰り返され、入力された全ての数値が暗号化される。そして、文字コード生成手段1eにより、暗号化手段1dで得られた各暗号値が文字コードに変換され、暗号文4が生成される。
また、暗号文4が復号装置2に入力されると、暗号文符号化手段2bにより、暗号文4に含まれる文字コードが暗号値に変換される。次に、復号手段2dにより、暗号文符号化手段2bで得られた文字コード毎の暗号値が順次取得され、初期値が設定されたレジスタ2cの値を用いて、最初の暗号値が復号される。さらに、復号手段2dにより、復号対象となった暗号値の少なくとも一部を用いたレジスタの値の更新と、更新されたレジスタの値を用いた暗号値の復号とが交互に繰り返されることで、2つめ以降の暗号値が復号される。そして、文字コード再生手段2eにより、復号手段2dで得られた各数値が文字コードに変換され、平文5として出力される。
このようにして生成された平文5は、暗号化対象となった平文3と同じ内容を有している。すなわち、正しく復号される。しかも、暗号化の際には、1文字毎に暗号化が行われ、暗号化後も1文字の文字コードで表されるため、暗号化によって文字数が増大することがない。
さらに、暗号化の際にはレジスタが用いられ、レジスタの値が1文字暗号化する毎に更新されるため、同じ文字が連続していても、暗号化後にはそれぞれ異なる文字として出力される。その結果、単に文字コード変換テーブルを用いて、各文字の文字コードを別の文字コードに変換した場合に比べ、安全性が向上する。
このような文字コードの暗号化/復号の技術は、例えば、データベースに登録されるレコードの暗号化に利用できる。すなわち、データベースを構築したストレージデバイスに対する不正アクセスや、ストレージデバイスの盗難による情報の漏洩を防止するには、各データを暗号化して登録することが望まれる。その際、データベースには、文字列を登録するためのレコード格納領域に対し、格納できる文字数の制限が設けられていることがある。その場合、暗号化後においても、文字数が増加しないことが必要となる。
そこで、データベースに登録する文字列を暗号化する場合を例に採り、本発明の実施の形態を具体的に説明する。
[第1の実施の形態]
次に、第1の実施の形態の詳細を説明する。
図2は、第1の実施の形態のシステム構成例を示す図である。図2には、データベース110に格納する文字コードを暗号化する場合のシステム構成が示されている。
クライアント21は、ネットワーク10を介してサーバ100に接続されている。サーバ100には、データベース110が接続されている。
クライアント21は、ユーザが使用するコンピュータである。サーバ100は、データベース110の管理機能を有するコンピュータである。データベース110には、文字コード等の各種データが暗号化して格納されている。
この例では、サーバ100がデータベース110に対して文字コードの入出力を行う際に、その文字コードの暗号化、復号処理を行うものとする。また、サーバ100とクライアント21との間の通信も、DES等の技術を用いて暗号化して行うことができる。
図3は、第1の実施の形態に用いるサーバのハードウェア構成例を示す図である。サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、通信インタフェース106、およびストレージデバイスインタフェース107が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
ストレージデバイスインタフェース107は、データベース110に対してデータの入出力を行う通信インタフェースである。
以上のようなハードウェア構成によって、第1の実施の形態の処理機能を実現することができる。なお、図3には、サーバ100のハードウェア構成を示したが、クライアント21も同様のハードウェアで実現できる。
図4は、サーバの機能を示すブロック図である。サーバ100は、データベース管理部120、初期値記憶部131、共通鍵記憶部132、変換テーブル133、暗号化部140、および復号部150を有している。
データベース管理部120は、クライアント21からの要求に応じてデータベース110内のデータの入出力を行う。なお、データベース110に対して文字コードのデータを入力する際には、データベース管理部120は、暗号化部140を介してデータベース110へ文字コードを書き込む。また、データベース110から文字コードを出力する際には、データベース管理部120は、復号部150を介してデータベース110内の文字コードを取得する。
初期値記憶部131は、暗号化部140および復号部150における暗号化または復号処理で用いるシフトレジスタの初期値(initial vector)を記憶する記憶領域である。共通鍵記憶部132は、暗号化部140および復号部150における暗号化または復号処理で用いる共通の鍵データを記憶する記憶領域である。
変換テーブル133は、文字コードを所定のビット長のデータに符号化、またはその逆の変換を行うためのデータ変換テーブルである。変換テーブル133には、文字コードと数値との対応関係が設定されている。
暗号化部140は、データベース管理部120から受け取った文字コードを暗号化し、データベース110に格納する。暗号化に際しては、初期値記憶部131、共通鍵記憶部132、および変換テーブル133が参照される。
復号部150は、データベース管理部120からの要求に応じてデータベース110から暗号化された文字コードを取得し、その文字コードを復号する。そして、復号部150は、復号した文字コードをデータベース管理部120に渡す。復号に際しては、初期値記憶部131、共通鍵記憶部132、および変換テーブル133が参照される。
図5は、変換テーブルのデータ構造例を示す図である。変換テーブル133には、文字コードと数値との対応関係が示されている。具体的は、文字コードの格納領域に対して、その文字コードに対する数値がインデックスで示されている。
なお、図5の例では、説明を分かりやすくするために、A〜Hの範囲内の文字のみが処理対象となるものとしている。この場合、8種類(2の3乗)の数値が定義できればよい。従って、数値は、3ビットで示すことができる。
変換テーブル133への文字コードの格納順は、アルファベットの順番通りでもよいし、ランダムでもよい。図5の例では、数値「0」にGの文字コード「0x47]、数値「1」にBの文字コード「0x42」、数値「2」にAの文字コード「0x41」、数値「3」にFの文字コード「0x46」、数値「4」にCの文字コード「0x43」、数値「5」にEの文字コード「0x45」、数値「6」にHの文字コード「0x48」、数値「7」にDの文字コード「0x44」がそれぞれ格納されている。なお、図5に示す文字コードは、ASCII文字コード表に従っている。
次に、暗号化部140の処理機能について詳細に説明する。なお、第1の実施の形態では、暗号化アルゴリズムとして、AESのCFB(Cipher Feedback Mode)モードを用いるものとする。
図6は、暗号化部の機能を示すブロック図である。暗号化部140は、文字コード符号化部141、シフトレジスタ142、暗号化処理部143、暗号データ記憶部144、排他的論理和(XOR)演算部145、および文字コード生成部146を有している。
文字コード符号化部141は、データベース管理部120から平文31が入力されると、変換テーブル133を参照して、平文31を構成する各文字コードを3ビットの数値に符号化する。文字コード符号化部141は、文字コードから生成される数値を、排他的論理和演算部145に入力する。
シフトレジスタ142は、排他的論理和演算部145から演算結果が出力される毎に、所定のビット数分のデータをシフトすることができるレジスタである。この例では、シフトレジスタ142内のデータが左に3ビットシフトし、排他的論理和演算部145の演算結果が右側の3ビットに格納される。暗号化処理を開始する際には、初期値記憶部131に格納されている初期値がシフトレジスタ142に設定される。
暗号化処理部143は、シフトレジスタ142に設定された値を、共通鍵記憶部132に格納されている鍵データを用いて暗号化する。そして、暗号化処理部143は、暗号化されたデータを暗号データ記憶部144に格納する。
排他的論理和演算部145は、文字コード符号化部141から出力された3ビットの数値と、暗号データ記憶部144の先頭(左側)から3ビットのデータとの排他的論理和を演算する。排他的論理和演算部145は、演算結果をシフトレジスタ142と文字コード生成部146とに渡す。
文字コード生成部146は、変換テーブル133を参照し、排他的論理和演算部145の演算結果を文字コードに変換する。そして、文字コード生成部146は、変換後の文字コードを暗号文32としてデータベース110に格納する。
このような構成の暗号化部140において、平文31が入力されると、まず、文字コード符号化部141によって、その平文31が数値列に符号化される。
図7は、暗号化部内の文字コード符号化部の処理を示す図である。図7には、「FACE」という文字列が平文31として入力された場合の例が示されている。文字コード符号化部141は、変換テーブル133を参照し、平文31の先頭の文字から順に符号化する。この例では、「F」の文字が「3」に変換され、「A」の文字が「2」に変換され、「C」の文字が「4」に変換され、「E」の文字が「5」に変換されている。
変換された符号化データ33は、順次、排他的論理和演算部145に入力される。すると、排他的論理和演算部145と暗号化処理部143とが連携して動作し、符号化データ33の暗号化処理が行われる。
図8は、暗号化処理における各データの遷移状況を示す図である。この例では、符号化データ33を構成する3ビットずつの数値が「3」、「2」、「4」、「5」の順で入力されたときの各数値の暗号化状況が示されている。
第1の状態[ST1]には、符号化データ33の1つめの数値の暗号化状況が示されている。このとき、シフトレジスタ142には初期値が設定されている。そして、暗号化処理が開始されると、まず、暗号化処理部143によってシフトレジスタ142内の値が暗号化され、暗号データ記憶部144に格納される。このとき暗号化されたデータの先頭の3ビットの値は「6」であるものとする。
次に、排他的論理和演算部145によって、暗号データ記憶部144内の先頭の3ビットと符号化データ33の先頭の3ビットとの排他的論理和が計算される。図8の例では、「6」と「3」との排他的論理和が演算され、演算結果34aとして「5」が得られる。
第2の状態[ST2]には、符号化データ33の2つめの数値の暗号化状況が示されている。このとき、シフトレジスタ142は左に3ビットシフトされ、右の3ビットに前回の演算結果34aが格納されている。この状態で、暗号化処理部143によってシフトレジスタ142内の値が暗号化され、暗号データ記憶部144に格納される。このとき暗号化されたデータの先頭の3ビットの値は「1」であるものとする。
次に、排他的論理和演算部145によって、暗号データ記憶部144内の先頭の3ビットと符号化データ33の先頭の3ビットとの排他的論理和が計算される。図8の例では、「1」と「2」との排他的論理和が演算され、演算結果34bとして「3」が得られる。
以後同様に、符号化データ33を構成する数値の暗号化が行われる。
第3の状態[ST3]には、符号化データ33の3つめの数値の暗号化状況が示されている。この例では、「5」と「4」との排他的論理和の演算結果34cとして「1」が得られている。
第4の状態[ST4]には、符号化データ33の4つめの数値の暗号化状況が示されている。この例では、「5」と「5」との排他的論理和の演算結果34dとして「0」が得られている。
以上の処理によって得られた演算結果34a〜34dの列が、暗号データ34となる。暗号データ34は、文字コード生成部146に入力される。そして、文字コード生成部146によって、暗号文32に変換される。
図9は、暗号化部内の文字コード生成部の処理を示す図である。図9では、「5」、「3」、「1」、「0」の暗号データ34が文字コード生成部146に入力されている。文字コード生成部146は、変換テーブル133を参照し、暗号データ34の先頭の数値から順に文字コードに変換する。この例では、「5」の数値が「E」に変換され、「3」の数値が「F」に変換され、「1」の数値が「B」に変換され、「0」の数値が「G」に変換されている。このようにして得られた暗号文32がデータベース110に格納される。
次に、データベース110に格納された暗号文32を復号する場合の復号処理について詳細に説明する。
図10は、復号部の機能を示すブロック図である。復号部150は、文字コード符号化部151、シフトレジスタ152、暗号化処理部153、暗号データ記憶部154、排他的論理和演算部155、および文字コード生成部156を有している。
文字コード符号化部151は、データベース110から暗号文32を取得すると、変換テーブル133を参照して、暗号文32を構成する各文字コードを3ビットの数値に符号化する。文字コード符号化部151は、文字コードから生成される数値を、シフトレジスタ152と排他的論理和演算部155とに入力する。
シフトレジスタ152は、排他的論理和演算部155から演算結果が出力される毎に、所定のビット数分のデータをシフトすることができるレジスタである。この例では、シフトレジスタ152内のデータが左に3ビットシフトし、文字コード符号化部151から出力された数値が右側の3ビットに格納される。復号処理を開始する際には、初期値記憶部131に格納されている初期値がシフトレジスタ152に設定される。
暗号化処理部153は、シフトレジスタ152に設定された値を、共通鍵記憶部132に格納されている鍵データを用いて暗号化する。そして、暗号化処理部153は、暗号化されたデータを暗号データ記憶部154に格納する。
排他的論理和演算部155は、文字コード符号化部151から出力された3ビットの数値と、暗号データ記憶部154の先頭(左側)から3ビットのデータとの排他的論理和を演算する。排他的論理和演算部155は、演算結果を文字コード生成部156に渡す。
文字コード生成部156は、変換テーブル133を参照し、排他的論理和演算部155の演算結果を文字コードに変換する。そして、文字コード生成部156は、変換後の文字コードで構成される平文35をデータベース管理部120に渡す。
このような構成の復号部150において、暗号文32が入力されると、まず、文字コード符号化部151によって、その暗号文32が数値列に符号化される。
図11は、復号部内の文字コード符号化部の処理を示す図である。図11には、「EFBG」という文字列が暗号文32として入力された場合の例が示されている。文字コード符号化部151は、変換テーブル133を参照し、暗号文32の先頭の文字から順に符号化する。この例では、「E」の文字が「5」に変換され、「F」の文字が「3」に変換され、「B」の文字が「1」に変換され、「G」の文字が「0」に変換されている。
変換された符号化データ36は、暗号文32を生成した際の暗号データ34と同じ内容である。符号化データ36は、順次、排他的論理和演算部155に入力される。すると、排他的論理和演算部155と暗号化処理部153とが連携して動作し、符号化データ36の復号処理が行われる。
図12は、復号処理における各データの遷移状況を示す図である。この例では、符号化データ36を構成する3ビットずつの数値が「5」、「3」、「1」、「0」の順で入力されたときの各数値の暗号化状況が示されている。
第1の状態[ST11]には、符号化データ36の1つめの数値の復号状況が示されている。このとき、シフトレジスタ152には初期値が設定されている。そして、暗号化処理が開始されると、まず、暗号化処理部153によってシフトレジスタ152内の値が暗号化され、暗号データ記憶部154に格納される。このとき暗号データ記憶部154に格納されたデータは、暗号化時の第1の状態において暗号データ記憶部144に格納されたデータ(図8の[ST1]参照)と同じ値である。従って、暗号化されたデータの先頭の3ビットの値は「6」である。
次に、排他的論理和演算部155によって、暗号データ記憶部154内の先頭の3ビットと符号化データ36の先頭の3ビットとの排他的論理和が計算される。図12の例では、「6」と「5」との排他的論理和が演算され、演算結果37aとして「3」が得られる。この演算結果37aは、暗号化時の第1の状態において排他的論理和演算部145が演算対象とした符号化データ33を構成する数値(図8の[ST1]参照)と同じ値となる。すなわち、元の値に復号されている。
第2の状態[ST12]には、符号化データ36の2つめの数値の復号状況が示されている。このとき、シフトレジスタ152は左に3ビットシフトされ、右の3ビットに前回の排他的論理和演算において演算対象とされた数値が格納されている。この状態で、暗号化処理部153によってシフトレジスタ152内の値が暗号化され、暗号データ記憶部154に格納される。このとき暗号化されたデータの先頭の3ビットの値は「1」となる。
次に、排他的論理和演算部155によって、暗号データ記憶部154内の先頭の3ビットと符号化データ36の先頭の3ビットとの排他的論理和が計算される。図8の例では、「1」と「3」との排他的論理和が演算され、演算結果37bとして「2」が得られる。
以後同様に、符号化データ36を構成する数値の暗号化が行われる。
第3の状態[ST13]には、符号化データ36の3つめの数値の復号状況が示されている。この例では、「5」と「1」との排他的論理和の演算結果37cとして「4」が得られている。
第4の状態[ST14]には、符号化データ36の4つめの数値の復号状況が示されている。この例では、「5」と「0」との排他的論理和の演算結果37dとして「5」が得られている。
以上の処理によって得られた演算結果37a〜37dの列が、復号済データ37となる。この復号済データ37は、暗号化の際の符号化データ33(図7参照)と同じ内容である。復号済データ37は、文字コード生成部156に入力される。そして、文字コード生成部156によって、平文35に変換される。
図13は、復号部内の文字コード生成部の処理を示す図である。図13では、「3」、「2」、「4」、「5」の復号済データ37が文字コード生成部156に入力されている。文字コード生成部156は、変換テーブル133を参照し、復号済データ37の先頭の数値から順に文字コードに変換する。この例では、「3」の数値が「F」に変換され、「2」の数値が「A」に変換され、「4」の数値が「C」に変換され、「5」の数値が「E」に変換されている。このようにして得られた平文35がデータベース管理部120に渡される。
平文35は、「FACE]という文字列になっており、暗号化時に入力された平文31と同じ内容である。すなわち、正しく復号されていることが分かる。しかも、データベース110に格納された時点では、「EFBG」という文字列を示す文字コードで格納されている。この文字コードのデータ長は、入力された平文31のデータ長と同じである。すなわち、データ長を変えずに文字コードのデータ形式で暗号化され、暗号化された文字コードが復号されている。
[第2の実施の形態]
次に第2の実施の形態について説明する。第2の実施の形態は、複数の文字コードの暗号化を並列処理するものである。なお、第2の実施の形態では、文字コードを13ビットの数値(2の13乗=8192種のキャラクタ空間)に符号化するものとする。
図14は、並列処理を行う暗号化部の構成を示す図である。変換テーブル133aは、2バイトの文字コードと13ビットの数値との対応関係が登録されている。
暗号化部140aは、文字コード符号化部141a、シフトレジスタ142a、暗号化処理部143a、暗号データ記憶部144a、9つの排他的論理和演算部145a,145b,145c,・・・,145i、および文字コード生成部146aを有している。
文字コード符号化部141aは、平文が入力されると、その平文の先頭から9文字分の文字コードを取得し、各文字コードを変換テーブル133aに基づいて13ビットの数値に符号化する。文字コード符号化部141aは、その後も同様に9文字ずつ符号化する。符号化された9文字分の数値は、それぞれ個別の排他的論理和演算部145a,145b,145c,・・・,145iに入力される。
シフトレジスタ142aは、16バイト分のデータを格納できる。暗号化処理の開始時には、初期値記憶部131aに予め格納されている16バイトの初期値が、シフトレジスタ142aに格納される。その後、9文字分の暗号化が行われる毎に、シフトレジスタ142a内の値が、左に13ビットシフトされる。そのとき、右端の13ビットには、排他的論理和演算部145aの演算結果が設定される。
暗号化処理部143aは、共通鍵記憶部132aに格納されている鍵データを用いて、シフトレジスタ142a内の値を暗号化する。この例では、シフトレジスタ142a内に16バイトのデータが格納されているため、16バイトの暗号データが生成される。暗号化処理部143aで生成された暗号データは、暗号データ記憶部144aに格納される。
暗号データ記憶部144aは、暗号化処理部143aで暗号化された16バイトのデータを記憶する。暗号データ記憶部144aに格納されたデータは、先頭から13ビットずつに分けられ、細分化されたそれぞれのデータが排他的論理和演算部145a,145b,145c,・・・,145iに入力される。
排他的論理和演算部145a,145b,145c,・・・,145iは、暗号データ記憶部144aから入力された13ビットのデータと、文字コード符号化部141aから入力された13ビットのデータとの排他的論理和を演算する。そして、排他的論理和演算部145a,145b,145c,・・・,145iは、演算結果を文字コード生成部146aに渡す。
文字コード生成部146aは、変換テーブル133aを参照し、排他的論理和演算部145a,145b,145c,・・・,145iから入力された各演算結果を、文字コードに変換する。
このような構成の暗号化部140aによれば、平文が入力されると、9文字ずつ並列処理で暗号化される。なお、並列処理数を9としたのは、暗号データ記憶部144aに格納されるデータが16バイト(128ビット)であり、そのデータから取り出すことのできる13ビットずつのデータの最大数が9個だからである。
図15は、並列処理を行う復号部の構成を示す図である。
復号部150は、文字コード符号化部151a、シフトレジスタ152a、暗号化処理部153a、暗号データ記憶部154a、9つの排他的論理和演算部155a,155b,155c,・・・,155i、および文字コード生成部156aを有している。
文字コード符号化部151aは、暗号文が入力されると、その暗号文の先頭から9文字分の文字コードを取得し、各文字コードを変換テーブル133aに基づいて13ビットの数値に符号化する。文字コード符号化部151aは、その後も同様に9文字ずつ符号化する。符号化された9文字分の数値は、それぞれ個別の排他的論理和演算部155a,155b,155c,・・・,155iに入力される。
シフトレジスタ152aは、16バイト分のデータを格納できる。暗号化処理の開始時には、初期値記憶部131aに予め格納されている16バイトの初期値が、シフトレジスタ152aに格納される。その後、9文字分の暗号化が行われる毎に、シフトレジスタ152a内の値が、左に13ビットシフトされる。そのとき、右端の13ビットには、文字コード符号化部151aが符号化した最初の13ビットの数値が設定される。
暗号化処理部153aは、共通鍵記憶部132aに格納されている鍵データを用いて、シフトレジスタ152a内の値を暗号化する。この例では、シフトレジスタ152a内に16バイトのデータが格納されているため、16バイトの暗号データが生成される。暗号化処理部153aで生成された暗号データは、暗号データ記憶部154aに格納される。
暗号データ記憶部154aは、暗号化処理部153aで暗号化された16バイトのデータを記憶する。暗号データ記憶部154aに格納されたデータは、先頭から13ビットずつに分けられ、細分化されたそれぞれのデータが排他的論理和演算部155a,155b,155c,・・・,155iに入力される。
排他的論理和演算部155a,155b,155c,・・・,155iは、暗号データ記憶部154aから入力された13ビットのデータと、文字コード符号化部151aから入力された13ビットのデータとの排他的論理和を演算する。そして、排他的論理和演算部155a,155b,155c,・・・,155iは、演算結果を文字コード生成部156aに渡す。
文字コード生成部156aは、変換テーブル133aを参照し、排他的論理和演算部155a,155b,155c,・・・,155iから入力された各演算結果を、文字コードに変換する。
このような構成の復号部150aによれば、暗号文が入力されると、9文字ずつ並列処理で復号される。並列処理を行うことにより、処理の高速化が図れる。
[応用例]
変換テーブル133,133aにおいて、任意の文字コードに除外コードを設定することもできる。除外コードは、対応する文字コードを暗号化の対象外とすることを指定するフラグである。除外コードが設定された文字コードに関しては、文字コード符号化部141,151,141a,151aで符号化されず、そのまま文字コード生成部146,156,146a,156aに渡される。
文字コード生成部146,156,146a,156aでは、除外コードに対応する文字コードを、そのまま暗号文(復号時には平文)に含める。その際、暗号化または復号前の文字列を構成したときの文字コードの配列に従って、暗号化または復号された文字コードの配列内に符号化の対象から除外された文字コードを挿入する。
このように除外コードを設けることにより、エスケープシーケンスに用いる終端文字等を、暗号化せずにそのまま暗号文に含めることができる。
また、除外コードが設定された文字コードについては、暗号化または復号の結果出力からも除外することができる。その場合、文字コード符号化部141,151,141a,151aは、除外コードが設定された文字コードが入力されると、その文字コードを破棄する。これにより、例えば、終端文字等が不要な場合、その文字コードを処理結果から除外することができる。
また、文字コード符号化部141,151,141a,151aと文字コード生成部146,156,146a,156aとで、異なる変換テーブルを参照することもできる。例えば、EUCコードの文字をUNICODEの文字に暗号化(または復号)する場合、文字コード符号化部141,151,141a,151aは、EUCコードに対応する変換テーブルを参照し、文字コード生成部146,156,146a,156aは、UNICODEに対応する変換テーブルを参照する。
なお、複数の変換テーブルを用いる場合、同一の文字(文字コードは文字コード体系毎に異なる)を符号化する際の数値は、全ての変換テーブルで共通であることが必要である。例えば、「A」の文字コードを符号化する場合、文字コード体系に拘わらず特定の数値に符号化される。
また、上記の第1,第2の実施の形態では、暗号化および復号をサーバ100で行っているが、それらをクライアント21で行うこともできる。その場合、初期値記憶部、共通鍵記憶部、変換テーブル、暗号化部、および復号部がクライアント21内に設けられる。
さらに、平文の暗号化と暗号文の復号とを、個別のコンピュータで行うこともできる。その場合、平文を暗号化するコンピュータには、初期値記憶部、共通鍵記憶部、変換テーブル、および暗号化部が設けられる。一方、暗号文を復号するコンピュータには、初期値記憶部、共通鍵記憶部、変換テーブル、および復号部が設けられる。このとき、それぞれのコンピュータの初期値記憶部と共通鍵記憶部との内容は共通でなければならない。また、平文を暗号化するコンピュータの文字コード生成部が参照する変換テーブルと、暗号文を復号するコンピュータの文字コード符号化部が参照する変換テーブルとの内容も共通でなければならない。
また、暗号化方式として共通鍵方式を用いるのではなく、公開鍵方式を採用することもできる。その場合、暗号化の際の鍵データと復号の際の鍵データとは異なる値となる。
また、上記の例では、シフトレジスタを用いた暗号化のモードとしてCFBモードを用いているが、ブロック暗号化モードとしては、前回の暗号化によって生成された暗号値が次回の暗号化で使用されるような連鎖関系があればよい。このような連鎖関系があれば、同じ文字が連続していても、暗号化後には異なる文字として出力される。連鎖関系があるブロック暗号化モードとしては、OFB(Oftput Feed Back)モードやCBC(Cipher Block Chaining)モードがある。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、サーバが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 文字コードを暗号化するための文字コード暗号処理プログラムにおいて、
コンピュータを、
所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する変換テーブル記憶手段、
少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換する平文符号化手段、
前記平文符号化手段で得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化する暗号化手段、
所定の文字コード体系に対応する前記変換テーブルを参照し、前記暗号化手段で得られた各暗号値を文字コードに変換する文字コード生成手段、
として機能させることを特徴とする文字コード暗号処理プログラム。
(付記2) 前記暗号化手段は、前記レジスタの値を更新する際には、前記レジスタの値を所定の方向にシフトさせ、シフト処理によって空いた記憶領域に暗号値の少なくとも一部の値を格納することを特徴とする付記1記載の文字コード暗号処理プログラム。
(付記3) 前記変換テーブル記憶手段は、任意の文字コードを暗号化の対象から除外することを示す除外コードを記憶しており、
前記平文符号化手段は、前記除外コードによって指定された文字コードについては、符号化の対象から除外し、
前記文字コード生成手段は、前記平文を構成したときの文字コードの配列に従って、暗号値からの変換によって得られた文字コードの配列内に前記平文符号化手段で符号化の対象から除外された文字コードを挿入することを特徴とする付記1記載の文字コード暗号処理プログラム。
(付記4) 前記変換テーブル記憶手段は、任意の文字コードを暗号化の対象から除外することを示す除外コードを記憶しており、
前記平文符号化手段は、前記除外コードによって指定された文字コードを破棄することを特徴とする付記1記載の文字コード暗号処理プログラム。
(付記5) 前記暗号化手段は、前記レジスタへの初期値の設定および値の更新毎に、複数の数値を並列処理で暗号化することを特徴する付記1記載の文字コード暗号処理プログラム。
(付記6) 前記コンピュータを、さらに、
少なくとも1つの文字コードで構成される暗号文が入力されると、前記暗号文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記暗号文に含まれる文字コードを暗号値に変換する暗号文符号化手段、
前記暗号文符号化手段で得られた文字コード毎の暗号値を順次取得し、前記初期値が設定された前記レジスタの値を用いて、最初の暗号値を同一ビット数に復号し、以後、復号対象となった暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた暗号値の復号とを交互に繰り返すことで、2つめ以降の暗号値を復号する復号手段、
所定の文字コード体系に対応する前記変換テーブルを参照し、前記復号手段で得られた各数値を文字コードに変換する文字コード再生手段、
として機能させることを特徴とする付記1記載の文字コード暗号処理プログラム。
(付記7) コンピュータの演算処理によって文字コードを暗号化するための文字コード暗号処理方法において、
所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルが変換テーブル記憶手段に予め記憶されており、少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換し、
符号化によって得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化し、
所定の文字コード体系に対応する前記変換テーブルを参照し、暗号化によって得られた各暗号値を文字コードに変換する、
ことを特徴とする文字コード暗号処理方法。
(付記8) 文字コードを暗号化するための文字コード暗号処理装置において、
所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する変換テーブル記憶手段と、
少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換する平文符号化手段と、
前記平文符号化手段で得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化する暗号化手段と、
所定の文字コード体系に対応する前記変換テーブルを参照し、前記暗号化手段で得られた各暗号値を文字コードに変換する文字コード生成手段と、
を有することを特徴とする文字コード暗号処理装置。
本実施の形態の概略を示す図である。 第1の実施の形態のシステム構成例を示す図である。 第1の実施の形態に用いるサーバのハードウェア構成例を示す図である。 サーバの機能を示すブロック図である。 変換テーブルのデータ構造例を示す図である。 暗号化部の機能を示すブロック図である。 暗号化部内の文字コード符号化部の処理を示す図である。 暗号化処理における各データの遷移状況を示す図である。 暗号化部内の文字コード生成部の処理を示す図である。 復号部の機能を示すブロック図である。 復号部内の文字コード符号化部の処理を示す図である。 復号処理における各データの遷移状況を示す図である。 復号部内の文字コード生成部の処理を示す図である。 並列処理を行う暗号化部の構成を示す図である。 並列処理を行う復号部の構成を示す図である。
符号の説明
1 暗号化装置
1a、2a 変換テーブル記憶手段
1b 平文符号化手段
1c、2c レジスタ
1d 暗号化手段
1e 文字コード生成手段
2 復号装置
2b 暗号文符号化手段
2d 復号手段
2e 文字コード再生手段
3、5 平文
4 暗号文

Claims (5)

  1. 文字コードを暗号化するための文字コード暗号処理プログラムにおいて、
    コンピュータを、
    所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルを記憶する変換テーブル記憶手段、
    少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換する平文符号化手段、
    前記平文符号化手段で得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化する暗号化手段、
    所定の文字コード体系に対応する前記変換テーブルを参照し、前記暗号化手段で得られた各暗号値を文字コードに変換する文字コード生成手段、
    として機能させることを特徴とする文字コード暗号処理プログラム。
  2. 前記暗号化手段は、前記レジスタの値を更新する際には、前記レジスタの値を所定の方向にシフトさせ、シフト処理によって空いた記憶領域に暗号値の少なくとも一部の値を格納することを特徴とする請求項1記載の文字コード暗号処理プログラム。
  3. 前記暗号化手段は、前記レジスタへの初期値の設定および値の更新毎に、複数の数値を並列処理で暗号化することを特徴する請求項1記載の文字コード暗号処理プログラム。
  4. 前記コンピュータを、さらに、
    少なくとも1つの文字コードで構成される暗号文が入力されると、前記暗号文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記暗号文に含まれる文字コードを暗号値に変換する暗号文符号化手段、
    前記暗号文符号化手段で得られた文字コード毎の暗号値を順次取得し、前記初期値が設定された前記レジスタの値を用いて、最初の暗号値を同一ビット数に復号し、以後、復号対象となった暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた暗号値の復号とを交互に繰り返すことで、2つめ以降の暗号値を復号する復号手段、
    所定の文字コード体系に対応する前記変換テーブルを参照し、前記復号手段で得られた各数値を文字コードに変換する文字コード再生手段、
    として機能させることを特徴とする請求項1記載の文字コード暗号処理プログラム。
  5. コンピュータの演算処理によって文字コードを暗号化するための文字コード暗号処理方法において、
    所定の文字コード体系の文字コードと所定のビット長の数値との間で相互に変換するための対応関係が登録された少なくとも1つの変換テーブルが変換テーブル記憶手段に予め記憶されており、少なくとも1つの文字コードで構成される平文が入力されると、前記平文を構成する文字コードの文字コード体系に対応する前記変換テーブルを参照し、前記平文に含まれる文字コードを数値に変換し、
    符号化によって得られた文字コード毎の数値を順次取得し、初期値が設定されたレジスタの値を用いて、最初の数値を同一ビット数の暗号値に暗号化し、以後、暗号化によって得られた暗号値の少なくとも一部を用いた前記レジスタの値の更新と、更新された前記レジスタの値を用いた数値の暗号化とを交互に繰り返すことで、2つめ以降の数値を暗号化し、
    所定の文字コード体系に対応する前記変換テーブルを参照し、暗号化によって得られた各暗号値を文字コードに変換する、
    ことを特徴とする文字コード暗号処理方法。
JP2005250818A 2005-08-31 2005-08-31 文字コード暗号処理プログラム、および文字コード暗号処理方法 Active JP4989055B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005250818A JP4989055B2 (ja) 2005-08-31 2005-08-31 文字コード暗号処理プログラム、および文字コード暗号処理方法
US11/290,791 US20070064946A1 (en) 2005-08-31 2005-12-01 Computer-readable recording medium recording a character code encryption program, and a character code encryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005250818A JP4989055B2 (ja) 2005-08-31 2005-08-31 文字コード暗号処理プログラム、および文字コード暗号処理方法

Publications (2)

Publication Number Publication Date
JP2007065253A true JP2007065253A (ja) 2007-03-15
JP4989055B2 JP4989055B2 (ja) 2012-08-01

Family

ID=37884137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005250818A Active JP4989055B2 (ja) 2005-08-31 2005-08-31 文字コード暗号処理プログラム、および文字コード暗号処理方法

Country Status (2)

Country Link
US (1) US20070064946A1 (ja)
JP (1) JP4989055B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152059A (ja) * 2006-12-19 2008-07-03 Fujitsu Broad Solution & Consulting Inc 暗号処理プログラム、暗号処理方法および暗号処理装置
JP2009038639A (ja) * 2007-08-02 2009-02-19 Square Enix Holdings Co Ltd 暗号化データ作成装置、暗号化データ作成方法、および暗号化データ作成プログラム
JP2011529219A (ja) * 2008-07-24 2011-12-01 アリババ・グループ・ホールディング・リミテッド ウェブクローラアクセスを阻止するためのシステム及び方法
JP2012514353A (ja) * 2008-12-29 2012-06-21 ノーテル・ネットワークス・リミテッド 通信チャネルでの暗号化の存在を隠すための帯域効率的な方法及びシステム
KR20160097811A (ko) * 2015-02-10 2016-08-18 한국전자통신연구원 형태 보존 암호화에서 한글의 인코딩 및 디코딩 방법 및 그 장치
KR20160117500A (ko) * 2014-02-03 2016-10-10 에이.티 코뮤니케이션즈 가부시끼가이샤 문장인식장치, 문장인식방법 및 프로그램
KR20190092945A (ko) * 2018-01-31 2019-08-08 제주대학교 산학협력단 영상 메타정보 보안 방법 및 이를 이용한 암호화된 영상 데이터 검색 방법
KR200495799Y1 (ko) * 2021-07-02 2022-08-22 권홍 차량 통행료 자동지불단말기

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080024332A1 (en) * 2006-07-27 2008-01-31 George Simonson Method and Apparatus for Protecting Data
US8958554B2 (en) * 2009-11-30 2015-02-17 Red Hat, Inc. Unicode-compatible stream cipher
TW201205331A (en) * 2010-07-28 2012-02-01 Atp Electronics Taiwan Inc Data secure system, method of storing and reading data
TW201205337A (en) * 2010-07-28 2012-02-01 Atp Electronics Taiwan Inc Download management system
US8345876B1 (en) 2012-03-06 2013-01-01 Robert Samuel Sinn Encryption/decryption system and method
US20150113286A1 (en) * 2012-03-21 2015-04-23 Irdeto Canada Corporation Method and system for chain transformation
US9094378B1 (en) * 2013-08-16 2015-07-28 Google Inc. Homomorphic cryptography on numerical values in digital computing
IL233720A (en) * 2014-07-20 2017-06-29 Yinnon Kadishson Yanay Text encryption method
US11669673B2 (en) * 2021-06-15 2023-06-06 Tableau Software, LLC Encoding variable length characters using simultaneous processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348441A (ja) * 2003-05-22 2004-12-09 Toyota Motor Corp 車両識別コード記憶装置および車両識別コード記憶方法
JP2005141282A (ja) * 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003107B2 (en) * 2000-05-23 2006-02-21 Mainstream Encryption Hybrid stream cipher
US20040202318A1 (en) * 2001-10-04 2004-10-14 Chih-Chung Lu Apparatus for supporting advanced encryption standard encryption and decryption
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
WO2005103908A1 (ja) * 2004-04-26 2005-11-03 Matsushita Electric Industrial Co., Ltd. 暗号又は復号を行うコンピュータシステム及びコンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348441A (ja) * 2003-05-22 2004-12-09 Toyota Motor Corp 車両識別コード記憶装置および車両識別コード記憶方法
JP2005141282A (ja) * 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008152059A (ja) * 2006-12-19 2008-07-03 Fujitsu Broad Solution & Consulting Inc 暗号処理プログラム、暗号処理方法および暗号処理装置
JP2009038639A (ja) * 2007-08-02 2009-02-19 Square Enix Holdings Co Ltd 暗号化データ作成装置、暗号化データ作成方法、および暗号化データ作成プログラム
JP2011529219A (ja) * 2008-07-24 2011-12-01 アリババ・グループ・ホールディング・リミテッド ウェブクローラアクセスを阻止するためのシステム及び方法
JP2014211897A (ja) * 2008-07-24 2014-11-13 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ウェブクローラアクセスを阻止するためのシステム及び方法
JP2012514353A (ja) * 2008-12-29 2012-06-21 ノーテル・ネットワークス・リミテッド 通信チャネルでの暗号化の存在を隠すための帯域効率的な方法及びシステム
KR20160117500A (ko) * 2014-02-03 2016-10-10 에이.티 코뮤니케이션즈 가부시끼가이샤 문장인식장치, 문장인식방법 및 프로그램
KR101852703B1 (ko) * 2014-02-03 2018-06-04 에이.티 코뮤니케이션즈 가부시끼가이샤 문장인식장치 및 문장인식방법
US10360821B2 (en) 2014-02-03 2019-07-23 AT Communications Co., Ltd. Sentence recognition device, sentence recognition method, and recording medium
KR20160097811A (ko) * 2015-02-10 2016-08-18 한국전자통신연구원 형태 보존 암호화에서 한글의 인코딩 및 디코딩 방법 및 그 장치
KR102173677B1 (ko) * 2015-02-10 2020-11-03 한국전자통신연구원 형태 보존 암호화에서 한글의 인코딩 및 디코딩 방법 및 그 장치
KR20190092945A (ko) * 2018-01-31 2019-08-08 제주대학교 산학협력단 영상 메타정보 보안 방법 및 이를 이용한 암호화된 영상 데이터 검색 방법
KR102108542B1 (ko) * 2018-01-31 2020-05-07 제주대학교 산학협력단 영상 메타정보 보안 방법 및 이를 이용한 암호화된 영상 데이터 검색 방법
KR200495799Y1 (ko) * 2021-07-02 2022-08-22 권홍 차량 통행료 자동지불단말기

Also Published As

Publication number Publication date
US20070064946A1 (en) 2007-03-22
JP4989055B2 (ja) 2012-08-01

Similar Documents

Publication Publication Date Title
JP4989055B2 (ja) 文字コード暗号処理プログラム、および文字コード暗号処理方法
JP5060119B2 (ja) 暗号処理プログラム、暗号処理方法および暗号処理装置
JP3229148B2 (ja) 暗号化方法およびシステム
JP5744377B2 (ja) 対称鍵データ暗号化の方法
US7995750B2 (en) Privacy-preserving concatenation of strings
US8600048B1 (en) Format-translating encryption systems
JPH04365240A (ja) 暗号化方式
US20120284528A1 (en) Multi-purpose multi-dimensional, variable and multi-key e-mail and data encryption method
US8467526B2 (en) Key evolution method and system of block ciphering
US10917403B2 (en) Systems and methods for variable-length encoding and decoding for enhancing computer systems
JP5060079B2 (ja) 暗号処理プログラム
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
Ahmad et al. Protection of the texts using Base64 and MD5
JP6091394B2 (ja) 情報処理装置、暗号化方法
KR20220137024A (ko) 대칭 비동기 생성 암호화 방법
JP4644053B2 (ja) 暗号化装置及び方法、復号化装置及び方法
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
JP6202969B2 (ja) 情報処理装置、暗号化方法
Kumar et al. BRRC: A hybrid approach using block cipher and stream cipher
JP2006506025A5 (ja)
CN113259438B (zh) 模型文件的发送方法和装置及模型文件的接收方法和装置
Savant et al. Data Solution
CN117436110A (zh) 数据加密、数据解密方法和装置
JP2023152132A (ja) 暗号化装置、暗号化方法及び暗号化プログラム
KR100450766B1 (ko) 셀룰라 오토마타를 이용한 암호 및 복호 방법과 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110708

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120222

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120228

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120427

R150 Certificate of patent or registration of utility model

Ref document number: 4989055

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350