JP2010113168A - 暗号システム、暗号方法、及び暗号プログラム - Google Patents

暗号システム、暗号方法、及び暗号プログラム Download PDF

Info

Publication number
JP2010113168A
JP2010113168A JP2008286011A JP2008286011A JP2010113168A JP 2010113168 A JP2010113168 A JP 2010113168A JP 2008286011 A JP2008286011 A JP 2008286011A JP 2008286011 A JP2008286011 A JP 2008286011A JP 2010113168 A JP2010113168 A JP 2010113168A
Authority
JP
Japan
Prior art keywords
data
bytes
divided
decryption
byte
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
JP2008286011A
Other languages
English (en)
Other versions
JP5073635B2 (ja
Inventor
Hideaki Yamada
英明 山田
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2008286011A priority Critical patent/JP5073635B2/ja
Priority to PCT/JP2009/058435 priority patent/WO2010052944A1/ja
Publication of JP2010113168A publication Critical patent/JP2010113168A/ja
Application granted granted Critical
Publication of JP5073635B2 publication Critical patent/JP5073635B2/ja
Expired - Fee Related 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

Landscapes

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

Abstract

【課題】機密性、完全性、及び信頼性を備える新規なアルゴリズムを用いて構成された暗号システムの提供を課題とするものである。
【解決手段】システム1は、暗号処理機能4及び復号処理機能5を有する暗号PC2によって主に構成され、暗号処理機能4としての暗号対象データ取得手段12と、割合生成手段14と、データ取得手段15と、分割手段16と、転値手段17と、加算手段18と、暗号生成手段21とを主に具備し、復号処理機能5としての復号対象データ取得手段と、復号割合生成手段と、復号データ取得手段と、復号位置生成手段と、範囲指定手段と、減算手段と、逆転値手段と、復号生成手段とを主に具備する。
【選択図】図1

Description

本発明は、暗号システム、暗号方法、及び暗号プログラムに関するものであり、特に、高度な暗号処理によって、暗号文の解読の困難な高い“機密性”を保持し、かつ情報の改竄や破壊等を防ぐ“完全性(正真性)”、及び「なりすまし」等による被害を防ぐ情報の“信頼性”の三つの優れた機能を併せ持つ暗号処理システム等に関するものである。
近年の情報通信技術の発達及び情報通信機器の高機能化等に伴って、複数のコンピュータ同士をインターネット等の通信回線に接続し、データの送受を行う事が活発にされている。新たな通信手段として利用される電子メール等、金融機関の電算化処理システム等のビジネスでの使用も増えている。一方、家庭では、所謂インターネット通販の利用が増えている。このように各種情報やデータの送受を行う場合、通信経路の途中で第三者によって情報が不正に詐取される危険性がある。そのため、顧客データ等のビジネスにおける重要な情報や、インターネット通販における注文者の住所、氏名、クレジットカード番号等の個人情報を、何ら処理を施すことなく送受することは第三者による不正詐取の可能性が著しく高く、これらの情報をインターネット等の通信回線を通じてそのまま送ることは、情報漏洩の危険性が高く、躊躇することがあった。そこで、各種情報及びデータ等の送受の際には、送り手側で情報等を暗号し、さらに暗号されたデータを受取った受け手側で、認識可能な平文に復号の処理を行うことにより、通信回線を通じて送出される各種情報が、たとえ第三者が入手したとしても暗号データを解読するための鍵を知らない限り、その内容を見ることができず、通信内容の秘匿性及び機密性が保持される。
暗号処理の方式は、対称鍵暗号方式(共通鍵暗号方式)及び非対称鍵暗号方式(公開鍵暗号方式)の二つに大別できる。対称暗号方式の場合、暗号化のための暗号鍵と、暗号文を復号し、平文に戻すための復号鍵とが同一であり、送り手側は、暗号文とともに、共通の鍵を秘匿性の高い何らかの手法(Diffe−Hellman鍵共有方式等)で受け手側に送出する必要がある。一方、公開鍵暗号方式は、アルゴリズムとともに公開される公開鍵と、復号者のみが保管する秘密鍵とを用い、相手の公開鍵を使用して送り手側が平文を暗号化し、それを受け手側の秘密鍵で暗号文を復号するものである。共通鍵暗号方式の中には、「ストリーム暗号」と「ブロック暗号」の二つが一般に知られている。ストリーム暗号(Stream Cipher)は、逐次暗号とも呼ばれ、同一の鍵を使用して平文を1ビット単位若しくは1バイト単位で逐次的に処理するものである。そのため、1ビット若しくは1バイトの処理単位で同一処理を繰返し実施することになり、平文及び暗号文の対応関係の類推が比較的容易にできる欠点を有している。その結果、短時間での解読の可能性が示唆されている。なお、ストリーム暗号の一種である「バーナム暗号」は、乱数を用い、平文と同一長さの鍵を生成し、この鍵を1度の使用毎に破棄することにより、対応関係の類推を防止でき、理論的には第三者の解読が不可能であるとされている。しかし、処理毎に平文と同一長さの長大な鍵を生成する煩雑な処理が必要であり、鍵の生成、授受、及び管理等の運用上の課題が多く存在し、実用なものではなかった。
一方、ブロック暗号は、平文を一定数のビットからなるブロックに分割し、該ブロックに対して暗号処理を行う方式である。このとき、ブロック毎に換字処理や転値(シフト)処理等を組合わせることで仮に暗号データの一部についての対応関係が把握できても、暗号文全体の解読を行うことは極めて困難であり、機密性が十分に確保された。しかし、近年のコンピュータの解析能力の向上により、想定可能な全種類の鍵の組合わせを試みる全数探索法(Brute Force Search(Attack))と「差分解読法」や「線形解読法」等を組合わることで数百億から数千億パターンの鍵の中から解読又は解読の可能性を示唆することができ、解読に要する時間は年々短縮化されていた。そのため、将来的には実用的な時間で解読可能と予測され、完全な機密性の保証ができなかった。また、使用される鍵は、半導体チップに記録されていることが多く、暗号及び復号の際に必要に応じて読込まれていた。このときの消費電力や実行時間等の情報(サイドチャネル情報)を計測し、結果を解析することによって鍵を得るサイドチャネル攻撃が提案されている。これにより、半導体チップのメモリ内に記録された鍵であっても、単純電力解析や差分電力解析によるサイドチャネル攻撃によって暗号処理の際の消費電力を示す信号波形の解析によって、鍵の解読がなされ、暗号文の解読が可能となる(例えば、特許文献1参照)。そのため、係る攻撃に対する防御として、サイドチャネル攻撃に対する高耐性を有する暗号方法、暗号装置及び暗号プログラムの開発が行われている(例えば、特許文献2参照)。
特開2001−268072号公報 特開2008−141385号公報
暗号処理は、暗号化によって情報についての秘匿性及び機密性を確保し、通信過程で第三者によって何らかの改竄がなされ、正しいデータでない可能性を排除するためデータの完全性を保証する機能が求められ、第三者の所謂「なりすまし」等を防ぐための信頼性が求められていた。しかし、この三つの機能・特徴を合わせ持つ暗号アルゴリズムは従来において確認されておらず、上述のストリーム暗号方式及びブロック暗号方式の双方の利点を有する暗号アルゴリズムはなかった。そこで、本発明は、上記実情に鑑み、ストリーム暗号及びブロック暗号の双方の利点を有する新規なアルゴリズムを用いて構成された暗号システム、暗号方法、及び暗号プログラムの提供を課題とするものである。
上記の課題を解決するための構成である暗号対象データ取得手段とは、任意のバイト数の共通鍵データ及び暗号対象データを取得するものであり、例えば、暗号作成者がキーボード等から直接入力するもの、或いはメモリ等の記憶手段に記憶されたデータを読込むことで取得するものであってもよい。なお暗号対象データは、平文でも、最低一回以上の暗号処理が施されたもののいずれであっても構わない。また、共通鍵データ及び暗号対象データは、各々任意のバイト数で構成され、両者を合算した合算バイト数を基数で除算することによって第一データが生成される。ここで、基数(または底)とは、位取り記数法で指定された自然数Nをいい、例えば、10進数の場合、N=10であり、8進数の場合、N=8である。すなわち、ビットによって表すことの可能な数(通り)を示し、例えば、3ビットの場合、8進数として8通りとなり、4ビットの場合、16進数として16通りとなる。なお、第一データは、小数点以下第一位を四捨五入することによって整数の値が指定される。
データ取得手段とは、共通鍵データを構成するバイトの任意位置のバイト(例えば、最上位バイト)のバイト値データを取得し、さらに、任意バイトを構成するビットで、規定された任意の位置及び桁数(例えば、下3桁)のビット値データを取得するものである。1バイト=8ビットとした場合、下3桁の値は、2の3乗、すなわち、0〜7の何れかの値を2進法で表したものとなる。なお、バイト値データ等は予測不能な値であり、これを変数として使用することにより、暗号処理の乱数として使用できる。さらに、分割手段とは、共通鍵データ及び暗号対象データを構成するそれぞれのバイト数長さを対比し、何れか一方の長いバイト数のデータを分割し、他方の短いバイト数の短データ(共通鍵データまたは暗号対象データ)のバイト数長さと合わせた分割データ、及び、その余からなる分割余データを生成するものである。
さらに、ビット値データに基づいてデータ単位またはバイト単位で転値処理が行われる(転値手段)。例えば、ビット値データがn=2の場合、各バイト(ビット)をそれぞれ2つシフト(最上位側から最下位側等)する。これにより、データ等の並びが所定の値(ビット値データ)に基づいてずれる。ビット値データの値は、任意バイトの任意桁数(下3桁等)から求められる予測不可能な値である。その後、同一のバイト数長さに揃えた分割データ及び短データを規定の加算処理をすることにより、分割データ及び短データのバイト数の合計バイト数の加算データが生成される。ここで、加算処理の加算順序及び並び順は、加算規則に基づいて任意に規定されるため、加算データの各値から元の値を予測することは困難となる。例えば、8ビットの加算処理の場合、加算する値を“A”,“B”とすると、A+B≦255の場合、加算された値がそのまま加算結果として求められ、A+B>255の場合、A+B−255の値が加算結果として求められる。すなわち、多数の組合わせの可能性がある加算結果からは、“A”及び“B”を予測することは困難であり、仮に加算結果のみが第三者に漏出したとしても、“A”及び“B”の値を特定することは不可能となる。なお、上記は8ビットの場合を想定し、繰上がりの最大値を255としているが、1バイトをXビットとした場合には、“2のX乗−1”で最大値が表される。
すなわち、繰上げ分を所謂「桁落ち」する処理により、加算結果自体が偶発的な意味を有する値となり、解読を困難なものとしている。このとき、加算処理及び加算規則において、分割データ及び短データのそれぞれの任意位置(例えば、分割データの最上位バイト及び短データの最下位バイト)を基準点として設定し、これらを共通鍵データから求めたバイト値データmと排他的論理和(XOR)を計算することにより、共通鍵データ自体を取得しない限り、解読が不可能となり、解読の困難性をさらに高めている。特に基準点の位置は、第三者にとって想定不能であるため、より解読が困難となっている。また、分割余データの各ビット値を“1”→“0”、“0”→“1”のように、反転処理し、加算データの先頭または末尾のバイト端に結合することにより、共通鍵データ及び暗号対象データを合算した合算バイト数と同じバイト数の暗号データが生成される。係る暗号処理は、上述したように、分割処理、任意の値(ビット値データ)に基づく転値処理、反転処理、加算処理、及び結合処理により構築されているため、仮に一部の対応関係が外部に漏出し、解読されても、暗号データ全体としての解読を進めることは困難である。特に、暗号データを復号する場合には、各処理を逆から順次行う必要があり、処理の順番及び復号処理が正しくなければ最終的に平文に到達することができない。そのため、本システムによる平文等の暗号対象データの暗号処理は十分に機密性の高いものとなる。
さらに、本発明の暗号システムにおける回数データ取得手段とは、暗号処理の繰返回数を回数データとして取得するものである。なお、繰返回数の数が多ければ、より解読が困難となるものの、暗号及び復号のそれぞれの処理に要する時間が多大となり、実用的な回数データを指定することが好ましい。一方、第二データ生成手段とは、生成された第一データをさらに基数で除算することによって第二データを求めるものである。ここで、第二データは、除算結果を小数点以下第一位で四捨五入した整数値として求められる。なお、除算結果が1未満の場合は、1に近似する処理を行っても構わない。係る第二データの値は、分割位置データの決定のために、ビット値データの加算を繰返す回数を指定するものとして使用される。この値も予測不可能であり、乱数値として暗号処理に導入される。
さらに、データ指定手段とは、共通鍵データ及び暗号対象データ(暗号データ)が同一バイト数であり、各バイト数の差異に基づく分割処理が行えない、または暗号データが偶数で構成され、等分割によって同一バイト数の一対の等分割データとして生成されるときには、バイト数の長さで長データ及び短データを特定することができない。そこで、何れか一方を長データ及び他方を短データに指定することにより、事後の暗号処理を可能にできる。なお、係る指定を行わず、次処理を実行するものであっても構わない。分割位置生成手段は、第一データとビット値データの積算値を求め、さらに得られた積算値に生成された第二データの値によって指定される回数分、任意バイト(通常は最上位バイト)の次位置に相当する次位置バイト(例えば、下位バイト)へ移行し、位置バイトのビット値データの加算を繰返して分割位置データを生成するものであり、暗号分割手段によって暗号データの最上位バイトまたは最下位バイト側から、該分割位置データに基づいて、長データ及び短データに分割して生成するものである。すなわち、分割位置生成手段は、上記処理により、既に最低一度は暗号処理がなされた暗号データを再び分割し、暗号処理を繰返すために行うものである。このとき、分割位置データは、任意のビット値データを利用して求められているため、暗号データの分割位置も予測することのできないものとなる。
さらに、本発明の暗号システムによれば、復号処理において、暗号処理に使用した共通鍵データ、復号対象の暗号データ、及び暗号処理の繰返回数を示す回数データとを用いて暗号処理の逆の処理を原則として実行することにより、平文からなる暗号対象データに戻すことができる。ここで、共通鍵データの復号者への受渡は特に注意が必要であり、Diffie−Hellmann鍵交換方式のような復号者に限定して共通鍵データが渡るような処理をする必要がある。なお、暗号データは、共通鍵データがない限り、理論的には解読が困難であり、第三者の入手可能性が高い手段(電子メールの添付ファイル)等で送出するものであっても構わない。復号処理において、復号第一データ及び復号第二データは、上述した第一データ等と同一である。復号データ取得手段とは、復号のための基準となるバイト値データ及びビット値データを求めるものであり、繰返回数と共通鍵データのバイト数の長さを対比してバイト値データを取得したバイト(回数バイトまたは余バイト)の位置を特定し(復号データ取得手段)、これに基づいて復号位置データを求めることにより、暗号データを減算前データとその余の復号分割余データに特定し、復号の範囲を指定することができる。その後、暗号処理と基本的に逆の処理となる減算処理、逆転値処理、反転処理、及び結合処理を実行することにより、暗号データを復号データに生成することが可能となる。なお、得られた復号データが未だ暗号処理されている場合には、上記処理を指定された回数だけ繰返すことにより最終的に平文からなる復号データを得ることができる。
一方、本発明の暗号方法は、上記の暗号システムの複数の手段によって奏せられる各機能を時系列的に実施することにより、新規の暗号方法とすることができる。そして、係る暗号方法による暗号処理及び復号処理を実行することにより、上述の暗号システムによる作用効果を奏することができる。また、本発明の暗号プログラムは、プログラムを起動することにより、上記の暗号システムにおける暗号コンピュータによって、上述の暗号システムによる作用効果を奏することができる。
本発明の効果として、任意のバイト数から構成された共通鍵データを利用し、高度な機密性を有する暗号データを作成することができる。このとき、共通鍵データ及び暗号対象データの分割、第一データ等の取得、転値処理、暗号データの分割位置は、それぞれ任意若しくは予測不能な値で決定されるため、情報の安全性を極めて高いものとすることができる。特に、バイト値データ及びビット値データの取得は、予測不能な偶発的な乱数であり、係る値を暗号処理に利用することにより、分割位置の特定を困難とすることができる。また、加算処理の際の桁落処理により、一部が判明若しくは解読されたとしても、暗号データ全体の解読を行うことが極めて困難となる。
以下、本発明の一実施形態である暗号システム1(以下、「システム1」と称す)について、図1乃至図8に基づいて説明する。図1及び図2は本実施形態のシステム1の暗号処理及び復号処理に係る機能的構成を示すブロック図であり、図3,図4乃至図6,図7は暗号処理及び復号処理のアルゴリズムを模式的に示す説明図であり、図5,図8は暗号処理及び復号処理の流れを示すフローチャートである。システム1は、高度な処理能力を有するワークステーション等から構築される暗号コンピュータ2(以下、「暗号PC2」と称す)によって主に構成されている。暗号PC2は、内部に格納された暗号プログラム3によって、暗号PC2をシステム1として機能させることができる。暗号PC2は、図1及び図2に示すように、平文を暗号文等に変換する暗号処理に係る暗号処理機能4及び暗号文を平文に変換する復号処理に係る復号処理機能5に大別された二つの機能から構成されている。暗号処理機能4(図1参照)は、暗号処理の繰返回数を示す回数データRDを取得する回数データ取得手段11を一部機能として有し、共通鍵データK及び平文または既暗号処理の暗号文からなる暗号対象データFDをそれぞれ取得する暗号対象データ取得手段12と、第一データFA、及び該第一データFAから第二データSAを生成する第二データ生成手段13を含んでいる割合生成手段14と、共通鍵データKからバイト値データm及びビット値データnを取得するデータ取得手段15と、共通鍵データK及び暗号対象データFDのバイト数に基づいて分割データDV及び分割余データLOを生成する分割手段16と、分割データDVをデータ単位等で、ビット値データnの値に基づいて転値処理する転値手段17と、転値処理後の分割データDV’及び短データSN(図2参照)を予め規定した加算規則に則って加算処理し、分割データDV’及び短データSNを合計したバイト数の加算データADを生成する加算手段18と、分割余バイトLOを反転処理し、生成された反転データINを加算データADの最上位バイト19aのバイト端に結合し、暗号データEを生成する暗号生成手段21とを具備している。分割手段16の中には、共通鍵データK及び暗号対象データFDが同一バイト数で構成されている、または暗号処理後の暗号データEを同一バイト数の一対の等分割データEQで分割する場合、何れか一方の共通鍵データK及び暗号対象データFD若しくは等分割データEQを分割データDVとして指定し、他方を短データSNとして指定するデータ指定手段22と、第一データFAとビット値データnを積算し、得られた積算値に生成された第二データSAの値によって指定される回数分、任意バイト(共通鍵データKの最上位バイト23a)の次位置に相当する次位置バイト23bから下位バイト23c,23dへの移行及び下位バイトのビット値データnの加算を繰返して分割位置データDPを生成する分割位置生成手段25及び分割位置データDPに基づいて暗号データEを最下位バイト24側から分割し、長データLN(図4参照)及び短データSNを生成する暗号分割手段27を有し、取得した回数データRDによって暗号処理を繰返す暗号処理繰返手段28をさらに有している。
一方、暗号PC2の復号処理機能5(図2参照)は、共通鍵データK、復号対象となる暗号データE、及び回数データRDを取得する復号対象データ取得手段30と、暗号データEのバイト数を基数で除算してなる復号第一データDF及び復号第一データDFをさらに基数で除算してなる復号第二データDSを生成する復号割合生成手段31と、回数データRDによる繰返回数を示す回数値と、共通鍵データKのバイト数を対比し、共通鍵データKのバイト数が回数値と同一若しくは大の場合、共通鍵データKの最上位バイト23a側から回数値を数えた位置に相当する回数バイト32のバイト値データm及びビット値データnをそれぞれ取得し、一方、共通鍵データKのバイト数が回数値よりも小の場合、回数値を共通鍵データのバイト数で除算し、その余として算出された余値を最上位バイト23a側から数えた位置に相当する余バイト33のバイト値データm及びビット値データnをそれぞれ取得する復号データ取得手段34と、復号第一データDFに生成された復号第二データDSの値によって指定される回数分、次位置バイトの下位バイトへの移行及びビット値データnの加算を繰返して算出される復号位置データFPを生成する復号位置生成手段36と、復号位置データFPに基づいて、暗号データEを同一バイト数を有する減算前データMD及びその余からなる復号分割余データDLに分割する復号暗号分割手段37と、復号位置データFPの倍数が暗号データEのバイト数よりも大の場合、復号位置データの倍数から暗号データEのバイト数を減算し、得られた減算値によって暗号データEの最上位バイト35及び最下位バイトの何れか一方から数えた位置で分割して復号分割余データDLを取得し、暗号データEの下位側の復号分割データDbから分割された復号分割余データDLとして指定し、一方、復号位置データの倍数が暗号データEのバイト数よりも小の場合、暗号データEのバイト数から復号位置データの倍数を減算し、得られた減算値によって暗号データEの最上位バイト35及び最下位バイトの何れか一方から数えた位置で分割して復号分割余データDLを取得し、暗号データEの上位側の復号分割データDaから分割された復号分割余データDLとして指定し、復号位置データの倍数と暗号データEのバイト数とが等しい場合、復号分割余データDLをゼロとして指定する範囲指定手段39と、減算前データMDを予め規定した減算規則に則って減算処理し、分割データDV’及び短データSNを生成する減算手段40と、生成された分割データDV’に対し、データ単位若しくはバイト単位の少なくとも何れか一方で、ビット値データnに基づいて転値手段17と逆方向へ転値処理する逆転値手段41と、分割された復号分割余データDLをビット毎に反転処理し、生成された分割余データLOを転値処理された分割データDVの最上位バイト42aまたは最下位バイト42bの何れか一方のバイト端に結合し、共通鍵データK若しくは暗号データEの復号データDRを生成する復号生成手段43とを具備する。
なお、上記各手段は、いずれも暗号PC2に格納されている。さらに、暗号処理機能4及び復号処理機能5の双方に共通する構成として、各種データの記憶及び一時保存を含む記憶処理に係る半導体メモリやHDD等からなる記憶手段44を暗号PC2は具備している。記憶手段44は、予め記憶された共通鍵データKの他、暗号処理等の過程で生成される各種データを記憶することができる。なお、暗号処理等の過程で生成されたデータが漏出すると、第三者による解読を容易にする可能性が高くなる。そこで、データ等は揮発性の半導体メモリ(RAM等)に一時的に記憶し、処理が完了した後は、データは速やかに消失するものが望ましい。そのため、復号された復号データDRの保存も一定条件下に制限し、画面上に表示するのみ等の対策を施してもよい。記憶手段44は、暗号処理機能4及び復号処理機能5に共通する構成であり、図1及び図2は、それぞれ暗号処理及び復号処理に使用されるデータ等を抜粋し、その他のデータについては復号関連情報6及び暗号関連情報7としてまとめて図示している。また、各処理において一時的に生成される一部データ等については、図示を省略している。
加えて、暗号PC2は、該暗号PC2に対し、各種指令、操作、及びデータの入力等の処理を行うためのキーボード及びマウス等の操作端末からなる操作手段45と、暗号処理及び復号処理の進捗状況を確認し、最終的に暗号された暗号データE若しくは復号された復号データDRを視覚によって確認することができるように画面表示する液晶ディスプレイ等の表示装置からなる表示手段46とを含んで構成されている。なお、係る構成以外にも、通常のサーバーやパーソナルコンピュータにおいて使用される周知の周辺機器等の技術的構成を含んで構築されるものであっても構わない。
次に、システム1による暗号処理及び復号処理の具体例について、図3、図4、図6、及び図7の模式図、及び図5及び図8のフローチャートに基づいて説明する。システム1は、8バイトのバイト数長さの共通鍵データKによって、5バイトのバイト数長さの暗号対象の平文からなる暗号対象データFDを暗号処理するものについて例示する。暗号処理の繰返回数(回数データRDの値)は、“5”として設定し、暗号処理及び復号処理を5回繰返すものについて例示する。係る繰返回数は、高度な処理能力を有する暗号PC2においては、実用的な範囲のものであり、暗号処理及び復号処理に多大な時間を要するものではない。なお、本実施形態において、暗号処理及び復号処理を一つの暗号PC2において実施するものを例示しているが、これに限定されるものではなく、暗号処理及び復号処理をそれぞれ単一の機能として奏することのできるコンピュータ(暗号用コンピュータ及び復号用コンピュータ)を用いるものであっても構わない。この場合、暗号プログラム3は、それぞれの暗号処理機能4及び復号処理機能5をそれぞれ分離した二つのプログラムとして構築される必要がある。その他条件は、基数として“8”(8進数、8通り)を使用し、1バイトは8ビットから構成され、1バイトの値は“2の8乗”により、0〜255の間の何れかの値を示すものとする。
始めに、操作手段45によって直接入力されたデータK等を受付け、共通鍵データK、暗号対象データFD、及び回数データRDの暗号処理に必要な三つのデータを取得する(暗号対象データ取得工程:ステップS1(図3(a)参照))。図3(a)の四角形のマスの一つが1バイトを表し、紙面左方側が上位側及び右方側が下位側のバイトを示している。暗号PC2は、三つのデータK等を取得した後、第一データFA及び第二データSAをそれぞれ生成する(割合生成工程:ステップS2)。詳述すると、共通鍵データKのバイト数(8バイト)と、暗号対象データFDのバイト数(5バイト)を合算した合算バイト数(13バイト)を、1バイト当りの基数(8)で除算することにより、第一データFAを生成する(図3(a)参照)。ここでは、“13÷8=1.625”の計算式から、“第一データFA=1.625”となる。なお、本実施形態では、小数点以下第一位を四捨五入することにより、“≒2”として整数に近似する処理が行われる。一方、第二データSAは、第一データFAをさらに基数(8)で除算するものである(図3(a)参照)。この場合、“2÷8=0.25”となり、第二データSAの値が1以下になる。第二データSAの値が1以下の場合、第二データSAは最低でも1以上である必要があるため、第二データを“1”に繰上げる処理を行う。一方、1以上の第二データSAが生成された場合は、第一データFAと同様に小数点以下第一位を四捨五入する処理が行われる。
さらに別例を使用して説明すると、合算バイト数が120バイトの場合、第一データFAは、“120÷8=15”となり、一方、第二データSAは、“15÷8=1.8145≒2”として生成される。ここで、第二データSAは、後述のビット値データnに基づく分割処理を実施する際の処理回数の値として利用される。すなわち、第二データSAが、“2”である場合には、分割範囲を2回調整することができる。つまり、ビット値データnを最高で2回分足し込む処理を行うことが可能なことを示している。以上のことにより、合算バイト数の長さに対して求められる第一データFA、第二データSAが異なり、それらを用いて算出される分割位置データDPが第二データSAに基づいて変化するため、共通鍵データKが仮に同じであったとしても後述する暗号データEを分割する位置は予測することが困難となる。そして、共通鍵データKの左方端の最上位バイト(図3(b)参照))の値をバイト値データmとして取得し、さらに該最上位バイト23の任意桁数のビット値(ここでは、下3ビットの値)を、8進数で表したビット値データnとして取得する(データ取得工程:ステップS3)。なお、本実施形態では、“n=2”の値を取得したものとして処理を行う。
ここで、バイト値データm及びビット値データnは、後述する暗号処理を繰返し行う場合には、バイト値データmを取得した位置(ここでは、最上位バイト23a)から下位の位置(右隣り)の次位置バイト23bに移行し、係る次位置バイト23bからバイト値データm及びビット値データnをそれぞれ取得し、暗号処理の度に下位バイト23c,23d・・に移行して各値m,nを取得する。なお、複数回の暗号処理により、共通鍵データKの最下位バイトに到達した後は、再び最上位バイト23aに戻り、処理を繰返すこととなる。その後、暗号PC2は、暗号処理を実行する対象範囲を確定する処理を行う。なお、ステップS4は複数回に亘って暗号処理を行う場合の処理であり、処理回数が一回目の場合、分割位置データDPを生成することなく、短バイトデータSN及び長バイトデータLN(一回目の場合は、共通鍵データK及び暗号対象データFDに相当)の長さを対比するステップS5の処理に移行する。具体的に示すと、共通鍵データK及び暗号対象データFDの長さ(ここでは、8バイトと5バイト)を対比する(ステップS5)。そして、共通鍵データK及び暗号対象データFDのバイト数が異なっている場合(ステップS5においてYES)、何れか一方の長いバイト数の長データLN(ここでは、8バイトの共通鍵データKに相当)を二つに分割し、何れか他方の短データ(ここでは、5バイトの暗号対象データFDに相当)のバイト数に合わせた分割データDVと、長データLNから分割データDV分のバイト数を差し引いた分割余データLOとを生成する(分割工程:ステップS6(図3(c)参照))。つまり、分割データDVは、短データSNとしての暗号対象データFDを同じバイト数(5バイト)で構成され、一方、その余としてなる分割余データLOは、“8−5=3”によって、3バイトで構成されることとなる。ここで、共通鍵データK及び暗号対象データFDが、同一のバイト数で構成される場合(ステップS5においてNO:例えば、共に8バイトの場合)、両者の間で差異が生じないため、共通鍵データK及び暗号対象データFDの何れか一方を長データLN(分割データDV)として強制的に指定し、何れか他方を短データSNとして強制的に指定する(データ指定工程:ステップS7)。係る処理は、後述の暗号データEを同一バイト数の一対の等分割データEQに分割する場合も同様の処理を行う。係る場合、バイト数の長短に差異が見られないため、長データLNの分割処理がなされることはなく、分割余データLOのバイト数は、ゼロとなる。その後、ステップS8の処理に移行する。この場合、転値処理をキャンセルし、直接加算処理を行うものであっても構わない(図5破線参照)。
暗号PC2は、分割若しくは指定された分割データDVに対し、データ単位またはバイト単位によって、ビット値データn(=2)に基づいて転値処理を行う(転値工程:ステップS8(図3(d)参照)。ここで、転値処理(シフト処理)は、図3(d)に示すように、1バイト内の値を右にn個(=2個)シフトする処理(2ビット右シフト)を行う。このとき、転値処理の基準となるビット値データnは、共通鍵データKのバイト値データmから任意桁数のビット値として抽出されたものであり、第三者によって予測することは不可能な偶発的な数(乱数)である。そのため、第三者は、共通鍵データKを取得しない限り、転値処理前の元の分割データDVの値を知ることはできない。すなわち、ビット値データnに基づく転値処理によって、第三者の解読をさらに困難なものとしている。なお、転値処理は、上述のバイト単位で行うものではなく、ビット単位等で実施するものであっても構わず、さらに、所定の規則に基づいてデータ単位及びバイト単位で変化させるものであっても構わない。そして、転値処理された分割データDV’と短データSNを、所定の加算規則に従って加算処理し、分割データDV’(若しくは短データSN)の倍のバイト数を有する加算データADを生成する(加算工程:ステップS9(図4(a)参照)。ここで、加算規則の一例を、図4(a)に基づいて示すと、例えば、5バイトからなる分割データDV’の各バイトの位置及び値を前から(紙面左方側から)順にA,B,C,D,Eとして設定し、一方、短データSNは、前から順にF,G,H,I,Jとして設定する。そして、これにより、生成される加算データAD(バイト数=10)は、前から順にa,b,c,d,e,f,g,h,i,jとして表されるものとし、上記規定に従ってそれぞれ表記する。以下に、その加算規則の詳細の一例を示す。
<加算規則>
(1)分割データDV’の“A”を基準点とし、共通鍵データKのバイト値データmと排他的論理和(XOR)を算出し、算出結果を加算データADのaとして入力する。/(2)短データSNの“J”を基準点とし、共通鍵データKのバイト値データmと排他的論理和(XOR)を算出し、算出結果を加算データADのbとして入力する。/(3)DとFを加算し、加算結果をcとして入力する。/(4)GとEを加算し、加算結果をdとして入力する。/(5)CとGを加算し、加算結果をeとして入力する。/(6)HとDを加算し、加算結果をfとして入力する。/(7)BとHを加算し、加算結果をgとして入力する。/(8)IとCを加算し、加算結果をhとして入力する。/(9)AとIを加算し、加算結果をiとして入力する。/(10)JとBを加算し、加算結果をjとして入力する。
これにより、図4(b)に示される基準値a及び基準値bが、最上位バイト19a及びその次位置バイト19bにそれぞれ入力された加算データADが生成される。ここで、上記加算処理において、分割データDV’側の値(例えば、A)と、短データSN側の値(例えば、I)との2つの値は、加算データADのiの値が判明したとしても容易に推定することはできない。すなわち、本実施形態の加算処理では、それぞれの和が255以上になった場合、和から255を引いた数を加算結果として入力する桁落ちの処理を行っているため、係る式を満たす両者の値は数多く存在し、その特定は非常に困難である。すなわち、A+I≦255の場合、入力される加算結果は、そのまま“A+I”の値である。一方、A+I>255の場合、入力される加算結果は、“A+I−255”となる。これにより、仮に加算結果の“i”の値が第三者によって知られたとしても、“A”及び“I”の組合わせの可能性は膨大であり、両者を特定することは困難である。その後、得られた加算データADの最上位バイト19a(“a”の位置)の前に、分割余データLOの値を反転処理(“1”→“0”、“0”→“1”)した反転データINを接続し、暗号データEが完成する(暗号生成工程:ステップS10(図4(c)参照))。
これにより、十分に機密性の高い暗号データEが完成する。しかし、より機密性を高めるために、回数データRDに示された繰返回数の回数値に従って、暗号処理を繰返すことが行われる。すなわち、暗号処理の繰返回数が回数データRDで示された回数値よりも小さい場合(ステップS11においてYES)、ステップS3の処理に戻り、バイト値データm及びビット値データnを取得した後(ステップS3)、暗号データEから分割位置データDPを生成し(分割位置生成工程:ステップS4)、短バイトデータSN及び長バイトデータLNの対比(ステップS5)及び分割データDV、分割余データLO、及び短データSNにそれぞれ分割する(ステップS6)。具体的に説明すると、既に求めた第一データFA及び第二データSAを利用し、暗号データEを右(最下位バイト)から分割する処理を行う。始めに、ビット値データnに第一データFAを積算した積算値を求め、生成された第二データSAの値によって指定される回数分、前記ビット値データnの加算を繰返すことにより、分割位置データDPを生成する。例えば、第一データFAが“2”、現在のビット値データnが“2”、加算処理の回数を示す第二データSAが“1”の場合、積算値は、“2×2=4”となる。さらに、第二データSAにより1回の加算処理を行うことから、次位置バイト23bにおけるビット値データnを求め、“n=1”であることから、“4+1=5”が分割位置データDPとなる。そのため、暗号データEを右から5バイト分の位置で分割することで暗号処理に係る長データLN(=8バイト)と短データSNが(=5バイト)が生成される(図4(d)参照)。これにより、上記の暗号処理に係るステップを所定回数繰返すことが可能となる。このとき、暗号データEを分割する位置は、繰返回数毎に求めるビット値データn及び第一データFA等によって異なるため、予測をすることが困難である。そのため、解読困難な暗号データEを生成することができる。そして、回数データRDの回数と暗号処理の回数が同一の場合(ステップS11においてNO)、最終的な暗号データEが完成し、暗号処理が完了する(ステップS12)。上記暗号処理によって、共通鍵データKに基づく偶発性、転値処理による乱数化、及び加算規則による基準値等の決定の非容易性、基準値を除いた暗号、及びこれらに対する重複暗号の処理を行うことにより、強力な暗号及び乱数化の処理が可能となり、第三者によって解読困難なシステム1を構築することが可能となる。
次に、本実施形態のシステム1における復号処理の流れについて説明する。ここで、暗号データEを元の平文に復号する処理において、暗号処理と同一構成を有するもの、若しくは単純にその逆の処理を行うものについては、同一番号を付し、説明を簡略化するため詳細な説明を省略するものとする。まず、共通鍵データK、復号対象データとなる暗号データE、及び暗号処理の処理回数を示す回数データRDをそれぞれ取得する(復号対象データ取得工程:ステップT1(図6(a)参照))。そして、暗号データEのバイト数を基数(=8)で除算した復号第一データDF及びさらに復号第一データDFを基数で除算した復号第二データDSを生成する(復号割合生成工程:ステップT2)。なお、係る生成処理は、第一データFA及び第二データSAの生成処理と略同一であるため、ここでは説明を省略する。さらに、回数データRDによって指定される繰返回数の回数値(ここでは、“5”)と、取得した共通鍵データKのバイト数を対比し、共通鍵データKのバイト数が処理回数の値と同一若しくは大きい場合、処理回数の値によって指定される共通鍵データKの最上位バイト23aから回数値を数えた位置に相当する回数バイト32のバイト値データm及びビット値データnをそれぞれ取得し、一方、共通鍵データKのバイト数が回数値より小さい場合、回数値を共通鍵データKのバイト数で除算し、その余として算出された値(余値)を最上位バイト23aから数えた位置に相当する余バイト33のバイト値データm及びビット値データnをそれぞれ取得する(復号データ取得工程:ステップT3)。ここで、本実施形態の場合、回数値が“5”であり、共通鍵データKのバイト数は“8”であるため、前者の処理が行われ、最上位バイト23aから右に5つ数えた位置のバイト(回数バイト32)のバイト値データm及びビット値データnが取得される。
そして、取得したバイト値データm及びビット値データnを利用して、復号位置データFPを生成し(復号位置生成工程:ステップT4)、13バイトのバイト数(繰返し復号の場合、長データLN及び短データSNを規定の順序で結合した新たな復号対象データ)で構成された暗号データEにおける復号範囲を指定する(範囲指定工程:ステップT5)。なお、復号位置データFPの生成は、暗号処理において上述した分割位置データDPの生成と略同一であるため、ここでは説明を省略する。そして、復号位置データFPとして生成された値に基づいて、暗号データEにおける復号処理の範囲を決定する。ここで、復号位置データFPによって、暗号データEを減算前データMDと、その余からなる復号分割余データDLに分割する。すなわち、図6(b)に示すように、ビット値データnが“2”、復号第一データDFが“2”、及び、復号第二データDSが“1”の場合、生成される復号位置データFPは“5”となる。そして、復号位置データFPの倍数と暗号データEの長さを後述する方法で比較することにより、暗号処理範囲及び復号分割余バイトDLが確定することから、暗号データEを右から(最下位バイトから)5バイトずつ分割した一対の復号分割データDa,Dbと、その余からなる3バイトの復号分割余バイトDLに分割されることになる。さらに、係る処理において、最下位バイトから分割された一対の復号分割データDa,Dbが共通鍵データKまたは暗号対象データFDの何れかであるかの判定処理を行う(ステップT5)。ここで、暗号データEの長さが、生成された復号位置データFPの倍数よりも小さい場合、暗号データEの最上位バイト35から、“復号位置データFPの倍数−暗号データEのバイト数”の差分のバイト数が復号分割余データDLして指定され、かつ暗号データEの右方側の復号分割データDbから分割したものと判定され、一方、暗号データの長さが、生成された復号位置データFPの倍数よりも大きい場合、暗号データEの最上位バイト35から、“暗号データEのバイト数−復号位置データFPの倍数”の差分のバイト数が復号分割余データDLとして指定され、かつ暗号データEの左方側の復号分割データDaから分割したものと判定される。つまり、前者の場合、右方側の復号分割データDbの方が大きいことが示され、一方、後者の場合、左方側の復号分割データDaの方が大きいことが示されるため、復号分割余データDLの帰属する復号分割データDa,Dbが決定される。その後、生成した減算前データMDから減算規則に基づいた減算処理が行われる(減算工程:ステップT6(図7(a)参照))。本実施形態の場合、暗号処理における加算データADの生成の際に、加算規則(1)及び(2)において基準値a及び基準値bを加算データADの最上位バイト19a及び次位置バイト19bに入力して設定している。すなわち、上述したように、単純な減算処理では、それぞれの値を導き出すことが困難であるものの、共通鍵データK及びバイト値データmを得ることにより、係る基準値a及び基準値bの位置及び値を特定することができ、これに基づいてそれぞれの値を減算処理し、分割データDV’及び短データSNを生成することができる。減算規則は、図7(a)に図示し、基本的に加算処理と逆操作であるため、説明を省略する。
その後、範囲指定工程(ステップT5)によって、指定された復号分割余データDLを、ビット毎に反転処理することによって元の分割余データLOに戻し、さらに減算処理によって得られた分割データDV’を暗号処理と逆方向に転値処理し、分割データDVを得る(逆転値工程:ステップT7(図示省略))。そして、分割データDV(範囲指定工程によって特定されたDaまたはDb)と分割余データLOとを結合し、復号データDRを生成する(復号生成工程:ステップT8(図7(b)参照))。これにより、得られた長データLN及び短データSNの何れか一方が共通鍵データKであり、何れか他方が暗号対象データFDとなる。なお、回数データRDによって暗号処理が複数回実施されている場合には、上記の復号処理を回数データRDに基づいて繰返すことにより(図8破線矢印参照)、最終的に平文からなる復号データDRを得ることができ、復号処理が完了する。復号処理の繰返しについては、説明を簡略化するため、図示を省略している。このとき、復号データDRを得ると同時に、本実施形態のシステム1は、暗号処理に使用した共通鍵データKも生成されることとなる。そのため、復号者に対して復号処理のために与えられた共通鍵データK(復号用鍵)と、復号処理の過程で生成された共通鍵データK(生成鍵)とを対比することにより、復号処理の完全性、信頼性を確認することができる。すなわち、第三者によって暗号データEに改竄が施されている場合、正しい共通鍵データKを用いても、元の暗号対象データFDに復元されることがなく、また復号処理後のそれぞれの共通鍵データKが全く相違したものと認められる。すなわち、情報改竄の可能性を認識することができる。そのため、本実施形態のシステム1によれば、第三者に解読されることのない高度な機密性を有するとともに、共通鍵データKの対比による情報改竄がないことによるデータの完全性、及びこれに基づく情報の信頼性を有することとなる。
以上、本発明について好適な実施形態を挙げて説明したが、本発明の要旨を逸脱しない範囲において、種々の改良及び設計の変更が可能である。すなわち、暗号処理に時間に係るパラメータを付加し、暗号データEの保全に係る有効時間を設定するものであっても構わない。これにより、復号についての時間的な制限を付すことができる。また、暗号データEは、共通鍵データK及び暗号対象データFDに基づいて強力に乱数化されたものであり、暗号データを共通鍵データKの一種として利用することができる。そのため、Diffie−Hellmann鍵交換方式を採用し、本システムによって暗号処理された共通鍵データKを取得し、任意サイズで、かつ容易にバーナム暗号を処理する可能性を有する。この場合、鍵の長さに制約を受けることのない共通鍵を大量に作成可能となり、かつ鍵の交換及び乱数値を作成するための元データは、元来意味を有しない単なるデータであるため、共通鍵の授受は比較的自由に実施できる。そのため、従来に比して、鍵交換の手続きを簡略化することが可能となる。また、本発明の暗号処理システム1は、一般的なインターネットを通じた各端末間のデータの送受に係る使用に限定されるものではなく、例えば、携帯電話間のデータの送受や、従来はSSL等の暗号処理を行っていたシステムからの転換を容易に行うことが可能となり、幅広い分野においての応用を期待することができる。
暗号システムの暗号処理に係る機能的構成を示すブロック図である。 暗号システムの復号処理に係る機能的構成を示すブロック図である。 暗号処理のアルゴリズムを模式的に示す説明図である。 暗号処理のアルゴリズムを模式的に示す説明図である。 暗号PCにおける暗号処理の流れを示すフローチャートである。 復号処理のアルゴリズムを模式的に示す説明図である。 復号処理のアルゴリズムを模式的に示す説明図である。 暗号PCにおける復号処理の流れを示すフローチャートである。
符号の説明
1 システム(暗号システム)
2 暗号PC(暗号コンピュータ)
3 暗号プログラム
11 回数データ取得手段
12 暗号対象データ取得手段
13 第二データ生成手段
14 割合生成手段
15 データ取得手段
16 分割手段
17 転値手段
18 加算手段
21 暗号生成手段
22 データ指定手段
25 分割位置生成手段
27 暗号分割手段
28 暗号処理繰返手段
30 復号対象データ取得手段
31 復号割合生成手段
34 復号データ取得手段
36 復号位置生成手段
37 復号暗号分割手段
39 範囲指定手段
40 減算手段
41 逆転値手段
43 復号生成手段

Claims (7)

  1. 任意のバイト数で構成された共通鍵データ及び暗号処理の対象となる平文若しくは暗号処理済の暗号対象データを取得する暗号対象データ取得手段と、前記共通鍵データ及び前記暗号対象データのバイト数を合算し、得られた合算バイト数を基数で除算してなる第一データを生成する割合生成手段と、前記共通鍵データの任意位置における任意バイトのバイト値データ、及び前記任意バイトの任意桁数のビット値データを取得するデータ取得手段と、前記共通鍵データ及び前記暗号対象データを対比し、何れか一方の長いバイト数を有する長データを分割し、何れか他方の短いバイト数を有する短データのバイト数に合わせた分割データ及びその余からなる分割余データを生成する分割手段と、前記分割データをデータ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データの値に基づいて転値処理する転値手段と、転値処理された前記分割データ及び前記短データを規定の加算規則に則って加算処理し、前記分割データ及び前記短データを合計したバイト数を有する加算データを生成する加算手段と、前記分割余データをビット毎に反転処理し、生成された反転データを前記加算データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、暗号データを生成する暗号生成手段とを具備することを特徴とする暗号システム。
  2. 前記暗号対象データ取得手段は、暗号処理の繰返回数を示す回数データを取得する回数データ取得手段をさらに有し、前記割合生成手段は、前記第一データを前記基数でさらに除算してなる第二データを生成する第二データ生成手段をさらに有し、前記分割手段は、前記共通鍵データ及び前記暗号対象データが同一バイト数で構成されている、若しくは、暗号処理された前記暗号データを同一バイト数の一対の等分割データとして分割するときに、何れか一方の前記共通鍵データ及び前記暗号対象データ若しくは前記等分割データを前記分割データとして指定し、何れか他方を前記短データとして指定するデータ指定手段と、前記第一データと前記ビット値データを積算し、得られた積算値に生成された前記第二データの値によって指定される回数分、前記任意バイトの次位置に相当する次位置バイトへの移行及び前記位置バイトの前記ビット値データの加算を繰返して分割位置データを生成する分割位置生成手段及び前記分割位置データに基づいて前記暗号データを分割し、前記長データ及び前記短データを生成する暗号分割手段を有する暗号処理繰返手段とをさらに具備することを特徴とする請求項1に記載の暗号システム。
  3. 前記共通鍵データ、復号対象となる前記暗号データ、及び前記回数データを取得する復号対象データ取得手段と、前記暗号データのバイト数を前記基数で除算してなる復号第一データ、及び前記復号第一データを前記基数でさらに除算してなる復号第二データを生成する復号割合生成手段と、前記回数データに基づく回数値と前記共通鍵データのバイト数を対比し、前記共通鍵データのバイト数が前記回数値と同一若しくは大の場合、前記共通鍵データの前記任意バイトから前記回数値を数えた位置に相当する回数バイトの前記バイト値データ及び前記ビット値データを取得し、一方、前記共通鍵データのバイト数が前記回数値よりも小の場合、前記回数値を前記共通鍵データのバイト数で除算し、その余として算出された余値を前記任意バイトから数えた位置に相当する余バイトの前記バイト値データ及び前記ビット値データを取得する復号データ取得手段と、前記復号第一データに前記ビット値データを積算し、得られた復号積算値に生成された前記復号第二データの値によって指定される回数分、前記ビット値データを取得した前記回数バイト若しくは前記余バイトの次位置の前記次位置バイトへの移行及び前記ビット値データの加算を繰返して復号位置データを生成する復号位置生成手段と、前記復号位置データの倍数が前記暗号データのバイト数よりも大の場合、前記復号位置データの倍数から前記暗号データのバイト数を減算し、得られた減算値によって前記暗号データの最上位バイト及び最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの下位側から分割された復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数が前記暗号データのバイト数よりも小の場合、前記暗号データのバイト数から前記復号位置データの倍数を減算し、得られた減算値によって前記暗号データの前記最上位バイト及び前記最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの下位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数と前記暗号データのバイト数とが等しい場合、前記復号分割余データをゼロとして指定する範囲指定手段と、前記復号位置データ及び前記範囲指定手段に基づいて、前記暗号データを減算前データ、及びその余からなる前記復号分割余データに分割する復号暗号分割手段と、前記減算前データを予め規定した減算規則に則って減算処理し、前記分割データ及び前記短データを生成する減算手段と、生成された前記分割データに対し、データ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データに基づいて前記転値手段と逆方向へ転値処理する逆転値手段と、分割された前記復号分割余データをビット毎に反転処理し、生成された前記分割余データを転値処理された前記分割データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、前記共通鍵データ若しくは前記暗号データの復号データを生成する復号生成手段とを具備することを特徴とする請求項1または請求項2に記載の暗号システム。
  4. 任意のバイト数で構成された共通鍵データ及び暗号処理の対象となる平文若しくは暗号処理済の暗号対象データ、及び暗号処理の処理回数を示す回数データを取得する暗号対象データ取得工程、前記共通鍵データ及び前記暗号対象データのバイト数を合算し、得られた合算バイト数を基数で除算してなる第一データ、及び前記第一データを前記基数でさらに除算してなる第二データを生成する割合生成工程、前記共通鍵データの任意位置における任意バイトのバイト値データ、及び前記任意バイトの任意桁数のビット値データを取得するデータ取得工程、前記共通鍵データ及び前記暗号対象データを対比し、何れか一方の長いバイト数を有する長データを分割し、何れか他方の短いバイト数を有する短データのバイト数に合わせた分割データ及びその余からなる分割余データを生成するとともに、前記共通鍵データ及び前記暗号対象データが同一バイト数で構成されている、若しくは暗号処理された前記暗号データを同一バイト数の一対の等分割データとして分割するときに、何れか一方の前記共通鍵データ及び前記暗号対象データ若しくは前記等分割データを前記分割データとして指定し、何れか他方を前記短データとして指定するデータ指定工程、及び、前記第一データと前記ビット値データを積算し、得られた積算値に生成された前記第二データの値によって指定される回数分、前記任意バイトの次位置に相当する次位置バイトへの移行及び前記位置バイトの前記ビット値データの加算を繰返して分割位置データを生成する分割位置生成工程及び前記分割位置データに基づいて前記暗号データを分割し、前記長データ及び前記短データを生成する暗号分割工程を有する暗号処理繰返工程を有する分割生成工程、前記分割データをデータ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データの値に基づいて転値処理する転値工程、転値処理された前記分割データ及び前記短データを規定の加算規則に則って加算処理し、前記分割データ及び前記短データを合計したバイト数を有する加算データを生成する加算工程、前記分割余データをビット毎に反転処理し、生成された前記反転データを前記加算データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、暗号データを生成する暗号生成工程を具備することを特徴とする暗号方法。
  5. 前記共通鍵データ、復号対象となる前記暗号データ、及び前記回数データを取得する復号対象データ取得工程、前記暗号データのバイト数を前記基数で除算してなる復号第一データ、及び前記復号第一データを前記基数でさらに除算してなる復号第二データを生成する復号割合生成工程、前記回数データに基づく回数値と前記共通鍵データのバイト数を対比し、前記共通鍵データのバイト数が前記回数値と同一若しくは大の場合、前記共通鍵データの前記任意バイトから前記回数値を数えた位置に相当する回数バイトの前記バイト値データ及び前記ビット値データを取得し、一方、前記共通鍵データのバイト数が前記回数値よりも小の場合、前記回数値を前記共通鍵データのバイト数で除算し、その余として算出された余値を前記任意バイトから数えた位置に相当する余バイトの前記バイト値データ及び前記ビット値データを取得する復号データ取得工程、前記復号第一データに前記ビット値データを積算し、得られた復号積算値に生成された前記復号第二データの値によって指定される回数分、前記ビット値データを取得した前記回数バイト若しくは前記余バイトの次位置の前記次位置バイトへの移行及び前記ビット値データの加算を繰返して復号位置データを生成する復号位置生成工程、前記復号位置データの倍数が前記暗号データのバイト数よりも大の場合、前記復号位置データの倍数から前記暗号データのバイト数を減算し、得られた減算値によって前記暗号データの最上位バイト及び最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの下位側から分割された復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数が前記暗号データのバイト数よりも小の場合、前記暗号データのバイト数から前記復号位置データの倍数を減算し、得られた減算値によって前記暗号データの前記最上位バイト及び前記最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの下位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数と前記暗号データのバイト数とが等しい場合、前記復号分割余データをゼロとして指定する範囲指定工程、前記復号位置データ及び前記範囲指定工程に基づいて、前記暗号データを減算前データ、及びその余からなる前記復号分割余データに分割する復号暗号分割工程、前記減算前データを予め規定した減算規則に則って減算処理し、前記分割データ及び前記短データを生成する減算工程、生成された前記分割データに対し、データ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データに基づいて前記転値工程と逆方向へ転値処理する逆転値工程、分割された前記復号分割余データをビット毎に反転処理し、生成された前記分割余データを転値処理された前記分割データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、前記共通鍵データ若しくは前記暗号データの復号データを生成する復号生成工程を具備することを特徴とする請求項4に記載の暗号方法。
  6. 任意のバイト数で構成された共通鍵データ及び暗号処理の対象となる平文若しくは暗号処理済の暗号対象データ、及び暗号処理の処理回数を示す回数データを取得する暗号対象データ取得手段、前記共通鍵データ及び前記暗号対象データのバイト数を合算し、得られた合算バイト数を基数で除算してなる第一データ、及び前記第一データを前記基数でさらに除算してなる第二データを生成する割合生成手段、前記共通鍵データの任意位置における任意バイトのバイト値データ、及び前記任意バイトの任意桁数のビット値データを取得するデータ取得手段、前記共通鍵データ及び前記暗号対象データを対比し、何れか一方の長いバイト数を有する長データを分割し、何れか他方の短いバイト数を有する短データのバイト数に合わせた分割データ及びその余からなる分割余データを生成するとともに、前記共通鍵データ及び前記暗号対象データが同一バイト数で構成されている、若しくは暗号処理された前記暗号データを同一バイト数の一対の等分割データとして分割するときに、何れか一方の前記共通鍵データ及び前記暗号対象データ若しくは前記等分割データを前記分割データとして指定し、何れか他方を前記短データとして指定するデータ指定手段、及び、前記第一データと前記ビット値データを積算し、得られた積算値に生成された前記第二データの値によって指定される回数分、前記任意バイトの次位置に相当する次位置バイトへの移行及び前記位置バイトの前記ビット値データの加算を繰返して分割位置データを生成する分割位置生成手段及び前記分割位置データに基づいて前記暗号データを分割し、前記長データ及び前記短データを生成する暗号分割手段を有する暗号処理繰返手段とを有する分割データ生成手段、前記分割データをデータ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データの値に基づいて転値処理する転値手段、転値処理された前記分割データ及び前記短データを規定の加算規則に則って加算処理し、前記分割データ及び前記短データを合計したバイト数を有する加算データを生成する加算データ生成手段、及び前記分割余データをビット毎に反転処理し、生成された前記反転データを前記加算データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、暗号データを生成する暗号生成手段として、暗号コンピュータを機能させることを特徴とする暗号プログラム。
  7. 前記共通鍵データ、復号対象となる前記暗号データ、及び前記回数データを取得する復号対象データ取得手段、前記暗号データのバイト数を前記基数で除算してなる復号第一データ、及び前記復号第一データを前記基数でさらに除算してなる復号第二データを生成する復号割合生成手段、前記回数データに基づく暗号処理の繰返回数を示す回数値と、取得した前記共通鍵データのバイト数を対比し、前記共通鍵データのバイト数が前記回数値と同一若しくは大の場合、前記共通鍵データの前記任意バイトから前記回数値を数えた位置に相当する回数バイトの前記バイト値データ及び前記ビット値データを取得し、一方、前記共通鍵データのバイト数が前記回数値よりも小の場合、前記回数値を前記共通鍵データのバイト数で除算し、その余として算出された余値を前記任意バイトから数えた位置に相当する余バイトの前記バイト値データ及び前記ビット値データを取得する復号データ取得手段、前記復号第一データに前記ビット値データを積算し、得られた復号積算値に生成された前記復号第二データの値によって指定される回数分、前記ビット値データを取得した前記回数バイト若しくは前記余バイトの次位置の前記次位置バイトへの移行及び前記ビット値データの加算を繰返して復号位置データを生成する復号位置生成手段、前記復号位置データの倍数が前記暗号データのバイト数よりも大の場合、前記復号位置データの倍数から前記暗号データのバイト数を減算し、得られた減算値によって前記暗号データの最上位バイト及び最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの下位側から分割された復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数が前記暗号データのバイト数よりも小の場合、前記暗号データのバイト数から前記復号位置データの倍数を減算し、得られた減算値によって前記暗号データの前記最上位バイト及び前記最下位バイトの何れか一方から数えた位置で分割し、前記最下位バイト側から分割したときは前記暗号データの上位側から分割された前記復号分割余データとして指定し、一方、前記最上位バイト側から分割したときは前記暗号データの下位側から分割された前記復号分割余データとして指定し、前記復号位置データの倍数と前記暗号データのバイト数とが等しい場合、前記復号分割余データをゼロとして指定する範囲指定手段、前記復号位置データ及び前記範囲指定手段に基づいて、前記暗号データを減算前データ、及びその余からなる前記復号分割余データに分割する復号暗号分割手段、前記減算前データを予め規定した減算規則に則って減算処理し、前記分割データ及び前記短データを生成する減算手段、生成された前記分割データに対し、データ単位若しくはバイト単位の少なくとも何れか一方で、前記ビット値データに基づいて前記転値手段と逆方向へ転値処理する逆転値手段、及び分割された前記復号分割余データをビット毎に反転処理し、生成された前記分割余データを転値処理された前記分割データの最上位バイトまたは最下位バイトの何れか一方のバイト端に結合し、前記共通鍵データ若しくは前記暗号データの復号データを生成する復号生成手段として、前記暗号コンピュータをさらに機能させることを特徴とする請求項6に記載の暗号プログラム。
JP2008286011A 2008-11-07 2008-11-07 暗号システム、及び暗号プログラム Expired - Fee Related JP5073635B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008286011A JP5073635B2 (ja) 2008-11-07 2008-11-07 暗号システム、及び暗号プログラム
PCT/JP2009/058435 WO2010052944A1 (ja) 2008-11-07 2009-04-22 暗号システム、暗号方法、及び暗号プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008286011A JP5073635B2 (ja) 2008-11-07 2008-11-07 暗号システム、及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP2010113168A true JP2010113168A (ja) 2010-05-20
JP5073635B2 JP5073635B2 (ja) 2012-11-14

Family

ID=42152756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008286011A Expired - Fee Related JP5073635B2 (ja) 2008-11-07 2008-11-07 暗号システム、及び暗号プログラム

Country Status (2)

Country Link
JP (1) JP5073635B2 (ja)
WO (1) WO2010052944A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001007800A (ja) * 1999-06-22 2001-01-12 Hitachi Ltd 暗号化装置および方法
JP3225440B2 (ja) * 1990-05-18 2001-11-05 アスコム テック エージー デジタル信号ブロックの変換装置およびその使用方法
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271297A (ja) * 1994-03-31 1995-10-20 Toppan Printing Co Ltd 暗号化方法、暗号化装置、復号化方法、復号化装置、および、暗号システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3225440B2 (ja) * 1990-05-18 2001-11-05 アスコム テック エージー デジタル信号ブロックの変換装置およびその使用方法
JP2001007800A (ja) * 1999-06-22 2001-01-12 Hitachi Ltd 暗号化装置および方法
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法

Also Published As

Publication number Publication date
WO2010052944A1 (ja) 2010-05-14
JP5073635B2 (ja) 2012-11-14

Similar Documents

Publication Publication Date Title
Chen et al. Exploiting self-adaptive permutation–diffusion and DNA random encoding for secure and efficient image encryption
Al-Ghamdi et al. Security enhancement of shares generation process for multimedia counting-based secret-sharing technique
Ahmad et al. An experimental comparison of chaotic and non-chaotic image encryption schemes
Sathyanarayana et al. Symmetric Key Image Encryption Scheme with Key Sequences Derived from Random Sequence of Cyclic Elliptic Curve Points.
JP2011164607A (ja) シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム
CN111866018B (zh) 数据信息加密发送方法、装置、计算机设备及存储介质
JP2008513811A (ja) 計算変換の方法及びシステム
Vyakaranal et al. Performance analysis of symmetric key cryptographic algorithms
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
Ahmad et al. A secure network communication protocol based on text to barcode encryption algorithm
US11411720B2 (en) Key distribution system, terminal device, key distribution method, and program
Kumar et al. Overview of information security using genetic algorithm and chaos
Razzaque et al. An efficient S-box design scheme for image encryption based on the combination of a coset graph and a matrix transformer
MAQABLEH Analysis and design security primitives based on chaotic systems for ecommerce
Faragallah Digital image encryption based on the RC5 block cipher algorithm
Jana et al. A novel time-stamp-based audio encryption scheme using sudoku puzzle
Krishnamoorthy et al. Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography
US7436966B2 (en) Secure approach to send data from one system to another
CN115765963A (zh) 基于密文域可逆隐写的文字图像审计信息记录与提取方法
Adebayo et al. Data Privacy System Using Steganography and Cryptography
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
JP5073635B2 (ja) 暗号システム、及び暗号プログラム
Reddy et al. An efficient hybrid fuzzy image encryption models for the secured cloud accessing in portable robotics devices
Ullagaddi et al. Symmetric synchronous stream encryption using images
Rapolu et al. A Secure method for Image Signaturing using SHA-256, RSA, and Advanced Encryption Standard (AES)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120717

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150831

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees