JPH11109855A - Enciphering device and enciphering method - Google Patents
Enciphering device and enciphering methodInfo
- Publication number
- JPH11109855A JPH11109855A JP9272738A JP27273897A JPH11109855A JP H11109855 A JPH11109855 A JP H11109855A JP 9272738 A JP9272738 A JP 9272738A JP 27273897 A JP27273897 A JP 27273897A JP H11109855 A JPH11109855 A JP H11109855A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- encryption
- function
- data
- password
- 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
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、例えば暗号通信を
行うシステムに用いられる暗号化装置に係り、特に多次
元ベクトルを用いて原文データを暗号化する暗号化装置
及び暗号化方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encryption device used in, for example, a system for performing cryptographic communication, and more particularly to an encryption device and an encryption method for encrypting original data using a multidimensional vector.
【0002】[0002]
【従来の技術】計算機やネットワークをはじめとする情
報システムでは、不特定多数のユーザが使用する環境下
にあって、悪意のユーザによる情報の盗聴や改竄などが
大きな問題となっており、その対策として暗号化技術を
利用する場合が多い。2. Description of the Related Art In an information system such as a computer and a network, in an environment where an unspecified number of users use it, eavesdropping or falsification of information by a malicious user has become a serious problem. In many cases, encryption technology is used.
【0003】暗号化技術として一般的に知られている手
法として、下記の文献に示されているものが詳しい。 文献「Communications of the
ACM Vol.21,No.2(1978)p12
0.A Method for Obtaining
Digital Signatures and Pu
blic−KeyCryptosystems:R.
L.Rivest,A.Shamir,and L.A
dleman,MIT Laboratory for
Cmputer Science and Depa
rtment of Mathmatics.」 この文献で発表された暗号化手法は、一般からかなり強
力なものとして受入れられ、RSA(Rivest−S
hamir−Adleman)法と呼ばれている。ま
た、このRSA法から派生させられた手法が電子商取引
における「著名」の認証手段として開発され、実用化さ
れつつある。As a technique generally known as an encryption technique, the technique disclosed in the following document is detailed. Reference "Communications of the
ACM Vol. 21, No. 2 (1978) p12
0. A Method for Obtaining
Digital Signatures and Pu
Brick-KeyCryptosystems: R.
L. Rivest, A .; Shamir, and L.M. A
dleman, MIT Laboratory for
Computer Science and Depa
rtment of Mathmatics. The encryption technique disclosed in this document has been accepted by the public as fairly strong, and RSA (Rivest-S
hamir-Adleman) method. In addition, a method derived from the RSA method has been developed as a “famous” authentication means in electronic commerce and is being put to practical use.
【0004】RSA法は、素因数分解の困難さを利用し
た公開鍵(非対称)暗号方式であり、データを累乗した
結果を大きな整数で割った余り(剰余)を暗号文にす
る。このRSA法の特徴は、2つの素数(pおよびq)
の積から元の2つの素数を見つけ出すのが困難で、たと
え、2つの素数の積か知られたとしても、pおよびq、
更には解読演算を推定することが困難であるということ
にある。[0004] The RSA method is a public key (asymmetric) cryptosystem utilizing the difficulty of factorization, and the remainder (remainder) obtained by dividing the result of raising the data to a large integer is used as a ciphertext. The feature of this RSA method is that two prime numbers (p and q)
It is difficult to find the original two prime numbers from the product of p and q, even if the product of the two prime numbers is known.
Furthermore, it is difficult to estimate the decryption operation.
【0005】[0005]
【発明が解決しようとする課題】前述したRSA法自体
はそれなりに実用的であり、信頼性も、暗号鍵としての
データのビット長が十分である場合には、かなり高いも
のになることが保証されている。この信頼性を確保する
ために、現在は256ビット長の暗号鍵データを使うの
が主流となっているが、ときとしてこれでは短かすぎ、
さらに512ビットや1024ビットのデータ長の暗号
鍵の必要性が論じられている。The above-mentioned RSA method itself is practical as such, and the reliability is guaranteed to be considerably high when the bit length of the data as the encryption key is sufficient. Have been. In order to ensure this reliability, it is currently the mainstream to use 256-bit encryption key data, but this is sometimes too short,
Further, the necessity of an encryption key having a data length of 512 bits or 1024 bits is discussed.
【0006】しかしながら、データ長は計算機の演算精
度と演算速度で事実上制限されるため、やたらにビット
長を長くすることは、長期的に見たとき、必ずしも得策
とは言えない。However, since the data length is practically limited by the calculation accuracy and the calculation speed of the computer, it is not always advisable to increase the bit length excessively in the long term.
【0007】つまり、RSA法およびRSA法から派生
させられた暗号化手法は、計算機の性能によって、その
信頼性が制約されといった問題点があった。また、暗号
鍵のビット長の変更に起因する認証システムの信頼性試
験等にも大幅な変更が必要となるといった問題点もあ
る。That is, the RSA method and the encryption method derived from the RSA method have a problem that the reliability is restricted by the performance of the computer. There is also a problem that a significant change is required for a reliability test or the like of the authentication system due to a change in the bit length of the encryption key.
【0008】本発明はこのような点に鑑みなされたもの
で、高精度の演算能力を必要とせずに暗号化を行うこと
ができ、しかも、信頼性が高く、アプリケーションの追
加、変更が容易な暗号化を実現することのできる暗号化
装置及び暗号化方法を提供することを目的とする。The present invention has been made in view of the above points, and it is possible to perform encryption without requiring high-precision arithmetic capability, and it is highly reliable, and it is easy to add or change an application. It is an object of the present invention to provide an encryption device and an encryption method that can realize encryption.
【0009】[0009]
【課題を解決するための手段】本発明の暗号化装置は、
暗号化の対象となる原文データを取得する原文データ取
得手段と、n(n≧1)次元の空間の閉領域内に定義さ
れたベクトルを逐次的に生成するベクトル生成手段と、
前記原文取得手段によって得られた原文データと前記ベ
クトル生成手段によって生成されたベクトルの成分との
論理演算をビット単位で行って暗号文データを生成する
論理演算手段とを具備したことを特徴とする。The encryption device of the present invention comprises:
Original data acquisition means for acquiring original data to be encrypted; vector generation means for sequentially generating vectors defined in a closed region of an n-dimensional (n ≧ 1) space;
A logical operation unit that performs a logical operation of the original text data obtained by the original text acquisition unit and a component of the vector generated by the vector generation unit on a bit-by-bit basis to generate ciphertext data. .
【0010】このような構成によれば、n(n≧1)次
元の空間の閉領域内に定義されたベクトルが逐次的に生
成され、暗号化の対象となる原文データと前記ベクトル
の成分との論理演算により、暗号文データが生成され
る。According to such a configuration, vectors defined in a closed region of an n (n ≧ 1) -dimensional space are sequentially generated, and the original text data to be encrypted and the components of the vector are , Ciphertext data is generated.
【0011】このように、多次元のベクトルの要素で原
文データを暗号化することにより、RSA法のような高
精度の演算能力を必要とせずに暗号化を行うことがで
き、しかも、信頼性が高く、アプリケーションの追加、
変更が容易な暗号化を実現することができる。As described above, by encrypting the original text data with the elements of the multi-dimensional vector, the encryption can be performed without requiring a high-precision operation capability such as the RSA method. High, adding applications,
Encryption that can be easily changed can be realized.
【0012】[0012]
【発明の実施の形態】以下、図面を参照して本発明の一
実施形態を説明する。本発明は、あるグループの人が共
通のセキュリティデバイス(暗号化装置)を持ってデー
タ通信する場合での暗号化処理に関するものである。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. The present invention relates to an encryption process in a case where a group of people carries out data communication with a common security device (encryption device).
【0013】図1は暗号通信を行うシステムの構成を示
す概念図である。図中11a,11bはパーソナルコン
ピュータ(以下、PCと称す)、12a,12bはセキ
ュリティデバイスであり、ここではユーザAが所有する
PC11aとユーザBが所有するPC11bとの間でデ
ータ通信を行う場合を想定している。FIG. 1 is a conceptual diagram showing the configuration of a system for performing cryptographic communication. In the figure, reference numerals 11a and 11b denote personal computers (hereinafter, referred to as PCs), and reference numerals 12a and 12b denote security devices. Here, data communication is performed between the PC 11a owned by the user A and the PC 11b owned by the user B. I assume.
【0014】PC11a,11bは汎用コンピュータで
あり、それぞれにセキュリティデバイス12a,12b
の接続が可能である。セキュリティデバイス12a,1
2bは、ICカードからなる。このセキュリティデバイ
ス12a,12bには、工場出荷時にある程度の情報が
書き込まれている。ある程度の情報とは、当該ICカー
ドの製造番号、グループの各メンバーのユーザID、暗
号化キー(秘密キーP1 ,P2 )に関する情報である。
これらの情報は、グループの各メンバーに共通の情報で
あり、非公開である。The PCs 11a and 11b are general-purpose computers and have security devices 12a and 12b, respectively.
Connection is possible. Security device 12a, 1
2b is composed of an IC card. Some information is written in the security devices 12a and 12b at the time of shipment from the factory. The information to some extent is the information on the serial number of the IC card, the user ID of each member of the group, and the encryption keys (secret keys P 1 and P 2 ).
This information is common to each member of the group and is not disclosed.
【0015】図2は前記PC11aおよびセキュリティ
デバイス12aの回路構成を示すブロック図である。な
お、PC11bおよびセキュリティデバイス12bの構
成についても同様である。FIG. 2 is a block diagram showing a circuit configuration of the PC 11a and the security device 12a. The same applies to the configurations of the PC 11b and the security device 12b.
【0016】PC11aは汎用コンピュータからなり、
CPU21を備え、主プログラムの起動によりデータ処
理を実行する。このCPU21には、システムバスを介
して記憶装置22、RAM23、キーボード24、表示
部25、カードI/F(インタフェース)26が接続さ
れている。The PC 11a comprises a general-purpose computer,
It has a CPU 21 and executes data processing by activating a main program. A storage device 22, a RAM 23, a keyboard 24, a display unit 25, and a card I / F (interface) 26 are connected to the CPU 21 via a system bus.
【0017】記憶装置22は、例えばハードディスク装
置やフロッピーディスク装置、CD−ROM装置などか
らなり、各種のデータやプログラム等を記憶するもので
あり、ここでは暗号化の対象となる原文データや、後述
する認証ファイルなどを記憶している。また、この記憶
装置22には、記録媒体(ディスク等)に記憶されたプ
ログラムがインストールされる。CPU21は、この記
憶装置22にインストールされたプログラムを読み込
み、同プログラムに従った処理を実行する。The storage device 22 is composed of, for example, a hard disk device, a floppy disk device, a CD-ROM device, etc., and stores various data, programs, etc. Here, original data to be encrypted, Authentication file to be stored. In addition, a program stored in a recording medium (such as a disk) is installed in the storage device 22. The CPU 21 reads the program installed in the storage device 22 and executes processing according to the program.
【0018】RAM23は、本装置のメインメモリとし
て機能し、本装置の処理に必要な各種データを記憶する
ものである。キーボード24は、データの入力や各種フ
ァンクションの指示を行うための入力装置である。表示
部25は、例えばCRT (Cathode Ray Tube) やLCD
(Liquid Crystal Display) などからなり、データの表
示を行うための表示装置である。The RAM 23 functions as a main memory of the apparatus and stores various data necessary for processing of the apparatus. The keyboard 24 is an input device for inputting data and instructing various functions. The display unit 25 is, for example, a CRT (Cathode Ray Tube) or an LCD.
(Liquid Crystal Display), etc., for displaying data.
【0019】また、カードI/F26は、コネクタ27
を介してセキュリティデバイス12aを接続し、そのセ
キュリティデバイス12aとの間でデータの入出力制御
を行う。The card I / F 26 has a connector 27
The security device 12a is connected via the security device 12a, and data input / output control is performed with the security device 12a.
【0020】一方、セキュリティデバイス12aはIC
カードからなり、CPU31を備え、副プログラムの起
動によりデータ処理を実行する。このCPU31には、
システムバスを介してROM32、RAM33、フラッ
シュメモリ36が接続されている。On the other hand, the security device 12a is an IC
It comprises a card, has a CPU 31, and executes data processing by activating a sub-program. In this CPU 31,
The ROM 32, the RAM 33, and the flash memory 36 are connected via a system bus.
【0021】ROM32には、セキュリティデバイス1
2aとしての機能を実現するための副プログラムを記憶
している。RAM33は、セキュリティデバイス12a
の処理に必要な各種データを記憶するものであり、ここ
ではPC11aから送信されたデータを一時格納してお
くための入力バッファ34と、PC11aに送信するデ
ータを一時格納しておくための出力バッファ35を有す
る。The security device 1 is stored in the ROM 32.
A sub-program for realizing the function as 2a is stored. The RAM 33 stores the security device 12a
Here, an input buffer 34 for temporarily storing data transmitted from the PC 11a, and an output buffer for temporarily storing data to be transmitted to the PC 11a. 35.
【0022】フラッシュメモリ36は、図3に示すデー
タベース41を記憶しておくための記憶装置として用い
られる。図3に示すように、このデータベース41は、
前述した各メンバー共通の情報(非公開情報)と各メン
バー毎に固有の情報(公開情報)とで構成される。各メ
ンバー共通の情報(非公開情報)とは、製造番号、グル
ープの各メンバーのユーザID、暗号化鍵データ(秘密
キーP1 ,P2 )である。各メンバー毎に固有の情報
(公開情報)とは、暗号化鍵データ(公開キーP3 ,P
4 )とパスワードである。なお、パスワードは、公開キ
ーの一部として用いられる。The flash memory 36 is used as a storage device for storing the database 41 shown in FIG. As shown in FIG. 3, this database 41
Each member includes the above-mentioned information common to each member (non-public information) and information unique to each member (public information). The information common to each member (non-public information) is a serial number, a user ID of each member of the group, and encryption key data (secret keys P 1 and P 2 ). The information (public information) unique to each member is the encryption key data (public keys P 3 , P
4 ) and password. The password is used as a part of the public key.
【0023】また、コネクタ37は、セキュリティデバ
イス12aをPC11aに電気的に接続するためのもの
である。ここで、図1のシステムにおいて、暗号通信を
行う場合の動作を簡単に説明しておく。The connector 37 is for electrically connecting the security device 12a to the PC 11a. Here, the operation in the case of performing the cryptographic communication in the system of FIG. 1 will be briefly described.
【0024】まず、ICカードとして用いられるセキュ
リティデバイス12a,12bをグループの各メンバー
に渡す。このセキュリティデバイス12a,12bには
データベース41が設けられており、そのデータベース
41には、予め製造番号、グループの各メンバーのユー
ザID、暗号化鍵データ(秘密キーP1 ,P2 )が登録
されている。First, security devices 12a and 12b used as IC cards are delivered to each member of the group. The security device 12a, the database 41 is provided in 12b, to its database 41, pre-production number, the user ID of each member of the group, the encrypted key data (private key P 1, P 2) is registered ing.
【0025】各メンバーは、このセキュリティデバイス
12a,12bに暗号化キー(公開キーP3 ,P4 )と
パスワードを書き込む。ここで書き込まれた情報は、デ
ータベース41の公開部分に格納される。Each member writes an encryption key (public keys P 3 and P 4 ) and a password into the security devices 12a and 12b. The information written here is stored in the public part of the database 41.
【0026】ここで、例えばPC11aからPC11b
に暗号通信する場合には、各メンバー(ユーザA,B)
はセキュリティデバイス12a,12bをPC11a,
11bにそれぞれ差し込んで暗号化を行う。この場合、
本発明において、暗号化のアルゴリズムは、後述するベ
クトル発生による。Here, for example, from PC 11a to PC 11b
When encrypted communication is performed on each member (users A and B)
Connects the security devices 12a and 12b to the PC 11a,
11b for encryption. in this case,
In the present invention, the encryption algorithm is based on vector generation described later.
【0027】このときのベクトルを発生させる関数、あ
るいは用いられる定数を暗号化キー(秘密・公開キー)
で決定する。暗号化された文書は公開キーと共に相手方
に送信される。受信側では、受け取った公開キーと自分
が持っている秘密キーで、その暗号化文書を復号化す
る。At this time, a function for generating a vector or a constant to be used is converted into an encryption key (secret / public key).
Determined by The encrypted document is sent to the other party together with the public key. The receiving side decrypts the encrypted document with the received public key and its own private key.
【0028】次に、同実施形態の動作について説明す
る。ここでは、図1に示すPC11aとセキュリティデ
バイス12aに着目して、(a)ユーザ登録、(b)デ
ータ暗号化の2つのモードに分けて、それぞれの処理動
作について説明する。Next, the operation of the embodiment will be described. Here, paying attention to the PC 11a and the security device 12a shown in FIG. 1, the respective processing operations will be described in two modes of (a) user registration and (b) data encryption.
【0029】(a)ユーザ登録 まず、ユーザはセキュリティデバイス12aを用いた暗
号通信を行うに際し、ユーザ登録を行う。これは、セキ
ュリティデバイス12a(ICカード)を貰ったメンバ
ーが自分のPC11aに前記図3の公開部分に関する情
報を登録することである。(A) User Registration First, the user performs user registration when performing encrypted communication using the security device 12a. This means that the member who has received the security device 12a (IC card) registers information relating to the disclosed portion of FIG. 3 in his / her PC 11a.
【0030】図4(a),(b)はユーザ登録時のPC
11aとセキュリティデバイス12aの処理動作を示す
フローチャートである。ユーザはPC11a上の主プロ
グラムを通し、ユーザ認証データをPC11aに入力す
る(ステップA11)。この場合、ユーザ認証データと
は、ユーザIDとする。主プログラムは、ここで入力さ
れたユーザIDをセキュリティデバイス12aの入力バ
ッファ34に転送する(ステップA12)。そして、制
御をセキュリティデバイス12a上の副プログラムに渡
す。FIGS. 4A and 4B show PCs at the time of user registration.
11 is a flowchart illustrating processing operations of the security device 11a and the security device 12a. The user inputs user authentication data to the PC 11a through the main program on the PC 11a (step A11). In this case, the user authentication data is a user ID. The main program transfers the user ID input here to the input buffer 34 of the security device 12a (Step A12). Then, control is passed to the sub-program on the security device 12a.
【0031】セキュリティデバイス12a側では、副プ
ログラムが入力バッファ34にデータが存在することを
確認すると、それを読み込む(ステップB11)。そし
て、副プログラムは、セキュリティデバイス12a上の
フラッシュメモリ36をアクセスし、このフラッシュメ
モリ36に設けられたデータベース41の中に、ユーザ
認証データとして入力されたユーザIDが登録されてい
るか否かをチェックする(ステップB12)。On the security device 12a side, when the subprogram confirms that data exists in the input buffer 34, it reads it (step B11). Then, the sub-program accesses the flash memory 36 on the security device 12a and checks whether or not the user ID input as the user authentication data is registered in the database 41 provided in the flash memory 36. (Step B12).
【0032】その結果、データベース41に当該ユーザ
IDが登録されていない場合には(ステップB12のN
o)、グループのメンバーでないと判断され、以後の処
理は中断される(ステップB13)。As a result, if the user ID is not registered in the database 41 (N in step B12)
o), it is determined that the user is not a member of the group, and the subsequent processing is interrupted (step B13).
【0033】一方、データベース41に当該ユーザID
が登録されている場合には(ステップB12のYe
s)、グループのメンバーであると判断され、パスワー
ドおよび暗号化キー(公開キー)の要求がPC11aに
対して行われる(ステップB14)。On the other hand, the user ID is stored in the database 41.
Is registered (Yes in step B12)
s) The user is determined to be a member of the group, and a request for a password and an encryption key (public key) is made to the PC 11a (step B14).
【0034】ユーザは、この要求に従ってパスワードお
よび暗号化キー(公開キー)を入力する(ステップA1
3)。PC11a上の主プログラムは、ここで入力され
たパスワードおよび暗号化キー(公開キー)をセキュリ
ティデバイス12aの入力バッファ34に転送する(ス
テップA14)。なお、パスワードは公開キーの一部と
して用いられる。The user inputs a password and an encryption key (public key) according to this request (step A1).
3). The main program on the PC 11a transfers the password and the encryption key (public key) input here to the input buffer 34 of the security device 12a (Step A14). The password is used as a part of the public key.
【0035】このようにして、グループメンバーとして
認められたユーザからパスワードおよび暗号化キー(公
開キー)が入力されると、セキュリティデバイス12a
の副プログラムはそれらの入力情報を読み込み、必要に
応じて暗号化した上で、フラッシュメモリ36に設けら
れたデータベース41の公開部分に書き込む(ステップ
B15)。As described above, when the password and the encryption key (public key) are input by the user who has been recognized as a group member, the security device 12a
The sub-program reads the input information, encrypts the information if necessary, and writes it in the public part of the database 41 provided in the flash memory 36 (step B15).
【0036】この時点で、ユーザが暗号化に使用する数
学関数が決定される。この数学関数の中で使われる複数
の定数は、固定化されている。なお、本発明では、この
数学関数として多次元ベクトルを用いていることが特徴
であるが、それについては後に説明する。At this point, the mathematical function used by the user for encryption is determined. The constants used in this mathematical function are fixed. Note that the present invention is characterized in that a multidimensional vector is used as the mathematical function, which will be described later.
【0037】これらの情報処理の後、副プログラムはデ
ータベース41のレポートを作成し(ステップB1
6)、これをセキュリティデバイス12a上の出力バッ
ファ35に格納した後、制御をPC11a上の主プログ
ラムに渡す(ステップB17)。After the information processing, the subprogram creates a report of the database 41 (step B1).
6) After storing this in the output buffer 35 on the security device 12a, control is passed to the main program on the PC 11a (step B17).
【0038】ここで、前記レポートには、主プログラム
がユーザ認証に使用するデータが暗号化された上で書き
込まれている。PC11a側では、主プログラムがセキ
ュリティデバイス12a上の出力バッファ35にデータ
があることを確認した上でそれを読み込み、記憶装置2
2にファイルデータとして書き込む(ステップA1
5)。ここで書き込まれたファイルデータは認証ファイ
ルとなり、以降の暗号通信を実行する際のユーザ認証に
使用される(ステップA16)。Here, data used by the main program for user authentication is encrypted and written in the report. On the PC 11a side, the main program confirms that there is data in the output buffer 35 on the security device 12a, reads the data, and reads the data.
2 as file data (step A1).
5). The file data written here becomes an authentication file, which is used for user authentication when performing subsequent encrypted communication (step A16).
【0039】(b)データ暗号化 ここで言うデータ暗号化とは、実際に作成文書を暗号化
して送信することを指す。(B) Data encryption The data encryption referred to here means that a created document is actually encrypted and transmitted.
【0040】図5(a),(b)はデータ暗号化時のP
C11aとセキュリティデバイス12aの処理動作を示
すフローチャートである。ユーザはセキュリティデバイ
ス12a(ICカード)をPC11aに装着した状態
で、自分のユーザIDとパスワードを入力する(ステッ
プC11)。このユーザIDとパスワードの入力によ
り、PC11a上の主プログラムは、記憶装置22に格
納された認証ファイルを参照して、ユーザ認証を行う
(ステップC12)。FIGS. 5 (a) and 5 (b) show the Ps at the time of data encryption.
It is a flowchart which shows the processing operation of C11a and the security device 12a. The user enters his / her user ID and password with the security device 12a (IC card) attached to the PC 11a (step C11). By inputting the user ID and the password, the main program on the PC 11a performs user authentication with reference to the authentication file stored in the storage device 22 (Step C12).
【0041】この認証結果により(ステップC12
1)、ユーザが登録ユーザでない場合(C121のN
o)、主プログラムは終了手続きに入る(ステップC1
6)。ユーザが登録ユーザであることを確認した場合
(C121のYes)、主プログラムは、このとき入力
されたユーザIDとパスワードをセキュリティデバイス
12aに送る(ステップC13)。Based on this authentication result (step C12)
1) If the user is not a registered user (N of C121)
o), the main program enters a termination procedure (step C1)
6). When it is confirmed that the user is a registered user (Yes in C121), the main program sends the user ID and password input at this time to the security device 12a (Step C13).
【0042】セキュリティデバイス12a側では、副プ
ログラムが前記ユーザIDとパスワードを読み込む(ス
テップD11)。そして、副プログラムは、それらの情
報とフラッシュメモリ36に設けられたデータベース4
1の内容とを比較して、ユーザが正当な使用者であるこ
とを認証する(ステップD12)。On the security device 12a side, the sub-program reads the user ID and the password (step D11). The subprogram stores the information and a database 4 provided in the flash memory 36.
Then, the user is authenticated as a valid user by comparing with the contents of step 1 (step D12).
【0043】このユーザ認証の結果、副プログラムはユ
ーザがセキュリティシステムの登録者であるか否かを記
述した認証レポートを作成し、この認証レポートをセキ
ュリティデバイス12aに転送して、制御をPC11a
上の主プログラムに渡す(ステップD13)。As a result of the user authentication, the subprogram creates an authentication report describing whether the user is a registrant of the security system, transfers the authentication report to the security device 12a, and controls the PC 11a.
It is passed to the above main program (step D13).
【0044】PC11a側では、主プログラムがセキュ
リティデバイス12aから送られてきた認証レポートを
読み込み、セキュリティデバイス12a側にてユーザ認
証が行われたことを確認する(ステップC14)。On the PC 11a side, the main program reads the authentication report sent from the security device 12a, and confirms that user authentication has been performed on the security device 12a side (step C14).
【0045】ここで、前記ユーザ認証で登録ユーザであ
ることが否定された場合、つまり、認証レポートに非登
録者である旨が記述されていた場合には(ステップC1
5のNo)、PC11aの主プログラムはユーザにその
旨を通知し、処理を中断する(ステップC16)。Here, when the user authentication denies that the user is a registered user, that is, when the authentication report describes that he is a non-registered user (step C1).
(No in 5), the main program of the PC 11a notifies the user to that effect and suspends the processing (step C16).
【0046】また、前記ユーザ認証で登録ユーザである
ことが確認された場合、つまり、認証レポートに登録者
である旨が記述されていた場合には(ステップC15の
Yes)、PC11aの主プログラムは以下のような暗
号通信を実行することになる。When the user authentication confirms that the user is a registered user, that is, when the authentication report indicates that the user is a registered user (Yes in step C15), the main program of the PC 11a executes The following encrypted communication will be executed.
【0047】すなわち、主プログラムは、記憶装置22
の中から暗号化の対象となる原文データ(作成文書)を
読み出し、これに前記認証レポートを添付してセキュリ
ティデバイス12aの入力バッファ34に転送し、制御
をセキュリティデバイス12a上の副プログラムに渡す
(ステップC17)。That is, the main program is stored in the storage device 22.
, Read the original text data (creation document) to be encrypted, attach the authentication report thereto and transfer it to the input buffer 34 of the security device 12a, and pass control to the subprogram on the security device 12a ( Step C17).
【0048】なお、原文書に認証レポートを添付するの
は、セキュリティデバイス12aが認証した登録者から
の文書であることを、セキュリティデバイス12aに確
認させるためである。The reason why the authentication report is attached to the original document is to make the security device 12a confirm that the document is from a registrant authenticated by the security device 12a.
【0049】セキュリティデバイス12a側では、副プ
ログラムがPC11aから送られてきた原文データを読
み込む(ステップD14)。その際、原文データに認証
レポートが添付されていなければ(ステップD15のN
o)、登録者からの文書でないと判断され、以後の処理
は中断される(ステップD16)。On the security device 12a side, the subprogram reads the original text data sent from the PC 11a (step D14). At this time, if the authentication report is not attached to the original data (N in step D15)
o), it is determined that the document is not a document from the registrant, and the subsequent processing is interrupted (step D16).
【0050】一方、原文データに認証レポートが添付さ
れていれば(ステップD15のYes)、登録者からの
文書であると判断され、副プログラムは後述する多次元
ベクトルを用いた暗号化方式により当該原文データを暗
号化する(ステップD17)。そして、副プログラム
は、復号キー(公開キー)と共に暗号文データ(暗号化
文書)をセキュリティデバイス12aの出力バッファ3
5に格納して、これらをPC11aに送信する(ステッ
プD18)。On the other hand, if the authentication report is attached to the original text data (Yes in step D15), it is determined that the document is a document from the registrant, and the subprogram is encrypted by an encryption method using a multidimensional vector described later. The original data is encrypted (step D17). Then, the subprogram sends the ciphertext data (encrypted document) together with the decryption key (public key) to the output buffer 3 of the security device 12a.
5 and transmits them to the PC 11a (step D18).
【0051】PC11a上の主プログラムは、セキュリ
ティデバイス12aから復号キーおよび暗号文データ
(暗号化文書)を受け取ることにより(ステップC1
8)、これをPC11aの記憶装置22上のファイルと
して出力するか、あるいは、電子メール等の通信用ソフ
トウエアに制御を渡して、外部(図1のPC11b)に
送信する(ステップC19)。The main program on the PC 11a receives the decryption key and the encrypted data (encrypted document) from the security device 12a (step C1).
8) Either output this as a file on the storage device 22 of the PC 11a, or transfer the control to communication software such as e-mail to transmit it to the outside (PC 11b in FIG. 1) (step C19).
【0052】次に、セキュリティデバイス12aで実行
される暗号化の処理動作について説明する。図6(a)
は暗号化の処理動作を示すフローチャートである。Next, an encryption processing operation performed by the security device 12a will be described. FIG. 6 (a)
Is a flowchart showing an encryption processing operation.
【0053】暗号化の対象となる原文データ(メッセー
ジデータ)をMとする(ステップE11)。このデータ
Mは、バイナリデータである。セキュリティデバイス1
2a上の副プログラムは、まず、このデータMに対して
bit単位でスクランブル1をかける(ステップE1
2)。こうして得られたデータをM´とする(ステップ
E13)。The original text data (message data) to be encrypted is set to M (step E11). This data M is binary data. Security device 1
The subprogram on 2a first scrambles the data M in units of bits (step E1).
2). The data thus obtained is defined as M '(step E13).
【0054】ここで、副プログラムは、このデータM´
に数学的に順次生成される乱数をXOR(排他的論理
和)して暗号化を行う(ステップE14)。このとき、
乱数の発生の関数に多次元ベクトルrを用いることが本
発明の特徴である。この場合、多次元ベクトルrを発生
させる関数、あるいは、その関数に用いられる定数は暗
号化キー(秘密・公開キー)で決定される。Here, the subprogram uses the data M '
Then, XOR (exclusive OR) is performed on the random numbers generated mathematically in sequence and encryption is performed (step E14). At this time,
It is a feature of the present invention that a multidimensional vector r is used as a function for generating random numbers. In this case, a function for generating the multidimensional vector r or a constant used for the function is determined by an encryption key (a secret / public key).
【0055】すなわち、副プログラムは、暗号化に際
し、データベース41から秘密キー(P1 ,P2 )およ
び公開キー(P3 ,P4 )を読み出し、それらの暗号化
キーを定数として用いた関数に従って多次元ベクトルr
を生成し、M´XOR rといった論理演算を行ってデータ
Mを暗号化する。こうして得られた暗号文データをCと
する(ステップE15)。That is, the subprogram reads the secret keys (P 1 , P 2 ) and the public keys (P 3 , P 4 ) from the database 41 upon encryption, and follows the function using the encrypted keys as constants. Multidimensional vector r
Is generated, and a logical operation such as M′XOR r is performed to encrypt the data M. The ciphertext data thus obtained is set as C (step E15).
【0056】具体的に説明すると、例えば図7に示すよ
うに、rが3次元ベクトル(x,y,z)であり、その
ベクトル成分x,y,zの計算精度が16bitである
とする。この3次元ベクトルr(x,y,z)を後述す
る式(1)に従ってr0 ,r1 ,r2 ,r3 …といった
ように順次発生する。More specifically, as shown in FIG. 7, for example, it is assumed that r is a three-dimensional vector (x, y, z), and the vector components x, y, z have a calculation accuracy of 16 bits. The three-dimensional vector r (x, y, z) is sequentially generated as r 0 , r 1 , r 2 , r 3, ... According to equation (1) described later.
【0057】今、データMが8bitデータの並びとし
て、m0 m1 m2 m3 m4 m5 m6…と与えられたとき
(1文字8bitの文字列)、Mは前記計算精度(16
bit)に基づいて、その要素の2つ(8bit)ずつ
に分解される。そして、3次元ベクトルがr0 である場
合には、データMとr0 (x0 ,y0 ,z0 )とのXO
R(排他的論理和)により、(xXOR m0 m1 )(yXO
R m2 m3 )(zXORm4 m5 )…といった計算が行わ
れ、この計算結果として、C0 C1 C2 C3 C4 C5 …
といった暗号文データCが得られる。[0057] Now, as a sequence of data M 8bit data, m 0 m 1 m 2 m 3 m 4 m 5 m 6 ... when given as (1 character 8bit string), M is the calculation accuracy (16
bit), the element is decomposed into two (8 bits) each. If the three-dimensional vector is r 0 , the XO of data M and r 0 (x 0 , y 0 , z 0 )
The R (exclusive OR), (xXOR m 0 m 1 ) (yXO
Rm 2 m 3 ) (zXORm 4 m 5 )... As a result of this calculation, C 0 C 1 C 2 C 3 C 4 C 5 .
Is obtained.
【0058】副プログラムは、このようにして得られた
データCに対して、さらにbit単位でスクランブル2
をかける(ステップE16)。こうして得られたデータ
をC´とし、最終的な暗号文データとして出力する(ス
テップE17)。The subprogram further scrambles the data C obtained in this manner in units of bits.
(Step E16). The data obtained in this way is designated as C 'and is output as final ciphertext data (step E17).
【0059】なお、前記の処理で、C´を改めてM´と
見なして前記同様の暗号化を繰り返すことによって、復
号化の困難さのレベルを上げることができる。また、こ
のときの多次元ベクトルrを生成する関数の形を変えれ
ば、復号化の困難さはさらに増すことになる。In the above-described processing, the level of difficulty in decryption can be increased by repeating C-like encryption with M 'regarded as C'. Further, if the form of the function for generating the multidimensional vector r is changed, the difficulty of decoding will be further increased.
【0060】次に、セキュリティデバイス12aで実行
される復号化の処理動作について説明する。図6(b)
は復号化の処理動作を示すフローチャートである。Next, the decryption processing operation executed by the security device 12a will be described. FIG. 6 (b)
Is a flowchart showing a decoding processing operation.
【0061】復号化は、基本的には前記暗号化処理の逆
の処理を行えば良い。すなわち、暗号文データをC´と
すると(ステップF11)、セキュリティデバイス12
a上の副プログラムは、まず、このデータCに対してb
it単位で前記暗号化時に行ったスクランブル2とは逆
のスクランブル2をかける(ステップF12)。これに
より、スクランブル2をかける前のデータCが得られる
(ステップF13)。For decryption, basically, the reverse process of the above-described encryption process may be performed. That is, assuming that the ciphertext data is C '(step F11), the security device 12
First, the subprogram on a
The scramble 2 opposite to the scramble 2 performed at the time of the encryption is applied in units of it (step F12). Thus, data C before scrambling 2 is obtained (step F13).
【0062】次に、副プログラムは、CXOR rといった
計算を行ってデータCを復号化する(ステップF1
4)。これにより、暗号化を行う前のデータM´が得ら
れる(ステップF15)。Next, the subprogram decrypts the data C by performing a calculation such as CXORr (step F1).
4). As a result, data M 'before encryption is obtained (step F15).
【0063】そして、副プログラムは、このデータM´
に対してもbit単位で前記暗号化時に行ったスクラン
ブル1とは逆のスクランブル1をかける(ステップF1
2)。これにより、スクランブル1をかける前のデータ
つまり原文データMが得られる(ステップF17)。Then, the sub-program uses the data M '
, A scramble 1 reverse to the scramble 1 performed at the time of the encryption is applied in units of bits (step F1).
2). As a result, data before scrambling 1, that is, original text data M is obtained (step F17).
【0064】なお、暗号化の処理で、C´を改めてM´
と見なして暗号化を繰り返したり、多次元ベクトルrを
生成する関数の形を変えたりする処理が加わっていれ
ば、その処理に対応させて復号化の処理を行うものとす
る。In the encryption process, C ′ is changed to M ′ again.
If processing for repeating encryption or changing the form of the function for generating the multidimensional vector r is added, the decryption processing is performed in accordance with the processing.
【0065】ところで、本発明では、多次元ベクトルr
を用いた暗号化において、多次元ベクトルrを扱う関数
を決定するパラメータ(定数)の集合Pを2つの部分に
分けて、 P={Ps ,Pp } と表わす。ここで、Ps は秘密パラメータであり、デー
タベース41の非公開部分に格納される暗号化キー(秘
密キーP1 ,P2 )に相当する。Pp は公開パラメータ
であり、データベース41の公開部分に格納される暗号
化キー(公開キーP3 ,P4 )に相当する。Pp はPs
と共にユーザ認証とデータの暗号化と復号化に使用され
る。In the present invention, the multidimensional vector r
, A set P of parameters (constants) that determines a function that handles a multidimensional vector r is divided into two parts and expressed as P = {P s , P p }. Here, P s is a secret parameter and corresponds to an encryption key (secret key P 1 , P 2 ) stored in a secret part of the database 41. P p is a public parameter, and corresponds to an encryption key (public keys P 3 and P 4 ) stored in the public part of the database 41. P p is P s
It is used for user authentication and data encryption and decryption.
【0066】なお、本実施形態では、Ps を2つ、Pp
を2つとしているが、パラメータの数はこれに限られな
いことは明らかである。次に、本発明の暗号化の方法に
ついて、さらに詳しく説明する。In this embodiment, two P s and two P p
It is obvious that the number of parameters is not limited to this. Next, the encryption method of the present invention will be described in more detail.
【0067】n(n≧1)次元の空間を張るベクトルを
rとし、その初期値r0 から逐次的に新しいベクトルr
i (i=0,1,2,3…)を発生する関数をRとす
る。このとき、ri は以下のような式(1)で表わされ
る。A vector extending in an n (n ≧ 1) -dimensional space is represented by r, and a new vector r is sequentially obtained from its initial value r 0.
Let R be a function that generates i (i = 0, 1, 2, 3...). At this time, r i is represented by the following equation (1).
【0068】 ri =A・R(P,ri-1 )ri-1 +c …(1) ここで、Aは適当な定数係数である。Pは関数に使用さ
れる定数の集合であり、データベース41の非公開部分
に格納される暗号化キー(秘密キーP1 ,P2)と、デ
ータベース41の公開部分に格納される暗号化キー(公
開キーP3 ,P4 )が使用される。cはベクトルを並進
移動する定数ベクトルである。R i = A · R (P, r i−1 ) r i−1 + c (1) where A is an appropriate constant coefficient. P is a set of constants used in the function, and includes an encryption key (private key P 1 , P 2 ) stored in a private part of the database 41 and an encryption key (private key P 1 , P 2 ) stored in the public part of the database 41. Public keys P 3 , P 4 ) are used. c is a constant vector that translates the vector.
【0069】前記式(1)において、係数Aは関数Rに
適当な制約(例えば|R|≦1)を設けたときに、各ベ
クトルが多次元空間の閉空間領域内に存在するための条
件を与える。定数ベクトルcはベクトルri が収斂する
とき、「トリビアル」な点(例えばr=0のような無意
味な点)にならないことを保証する(勿論c=0も許さ
れる)。In the above equation (1), the coefficient A is a condition for each vector to exist in a closed space region of the multidimensional space when an appropriate constraint (for example, | R | ≦ 1) is provided for the function R. give. When the constant vector c vector r i converges, (also permitted course c = 0) guaranteed that not a "trivial" point (e.g., meaningless terms such as r = 0).
【0070】n次元空間では、ベクトルrはn個の要素
を持つ。r=(x1 ,x2 …xn )。計算機上では、数
値データ一般に、コンパイラが定義するビット長(m)
の精度(例えば8バイト又は64ビット)で表現されて
いる。したがって、ベクトルの逐次生成法のある瞬間に
n×mのデータの精度でベクトルrを再現できないと、
それに続くベクトルrは正確には再現できない(あるい
はそうなるような関数Rを定義する)。これは、ベクト
ルrの初期値r0 についても同様で、初期値r0 をn×
mのデータの精度で再現したときにのみ、それに続くベ
クトルr1 ,r2 ,r3 …の再現性が保証される。In the n-dimensional space, the vector r has n elements. r = (x 1 , x 2 ... x n ). On a computer, numerical data is generally the bit length (m) defined by the compiler
(For example, 8 bytes or 64 bits). Therefore, if the vector r cannot be reproduced with an accuracy of n × m data at a certain moment in the vector sequential generation method,
The following vector r cannot be reproduced exactly (or defines a function R such that). This also applies to the initial value r 0 of the vector r, n × the initial value r 0
Only when the data is reproduced with the precision of m data, the reproducibility of the following vectors r 1 , r 2 , r 3 ... is guaranteed.
【0071】本発明の暗号化は、前記式(1)を用いて
得られたベクトルrの成分を、そのデータ定義長に応じ
て1個乃至複数個並べて、その総ビット長に対応した文
字列(1文字あたり8ビットが普通)とビット毎の排他
論理演算(XOR)を行う。これを第1暗号化とする。
これについは、前記図7で述べた通りある。In the encryption according to the present invention, one or more components of the vector r obtained by using the above equation (1) are arranged according to the data definition length, and a character string corresponding to the total bit length is arranged. (8 bits per character is normal) and exclusive logical operation (XOR) for each bit. This is referred to as first encryption.
This is as described in FIG.
【0072】この手続きは暗号解読への対策となる。こ
の場合、再度式(1)、関数Rを変えてて新しいベクト
ルを発生させ、第1暗号化と同じ手法により暗号化を行
っても良い。これを第2暗号化とする。This procedure is a measure against decryption. In this case, a new vector may be generated by changing equation (1) and the function R again, and encryption may be performed by the same method as the first encryption. This is referred to as second encryption.
【0073】具体的な例として、n=2の場合を考え
る。まず、ri-1 をこの平面に立てた法線の周りにθだ
けが回転する演算として、Rを定義すれば、Rは2×2
のマトリックスとなり、次のように表わされる。As a specific example, consider the case where n = 2. First, if R is defined as an operation in which only θ rotates around the normal that sets ri -1 on this plane, R is 2 × 2
And is expressed as follows.
【0074】[0074]
【数1】 (Equation 1)
【0075】この場合、θは一種の媒介変数となってい
る。すなわち、媒介変数がri-1 の関数として与えら
れ、 θ(r)=f(P,r) …(3) で表わされるとき、前記式(2)で表わされる変換は、
形式的に前記式(1)で表わされる。In this case, θ is a kind of parameter. That is, when the parameter is given as a function of r i−1 and θ (r) = f (P, r) (3), the conversion represented by the above equation (2) becomes
Formally represented by the above equation (1).
【0076】なお、前記式(3)において、Pは関数f
に使われる定数の集合として定義されるものであり、デ
ータベース41の非公開部分に格納される暗号化キー
(秘密キーP1 ,P2 )と、データベース41の公開部
分に格納される暗号化キー(公開キーP3 ,P4 )が使
用される。In the above equation (3), P is a function f
Are defined as a set of constants used in the database 41. An encryption key (private key P 1 , P 2 ) stored in a secret part of the database 41 and an encryption key stored in a public part of the database 41 (Public keys P 3 and P 4 ) are used.
【0077】このように、逐次的に発生させた多次元空
間を張るベクトルrを暗号化に使うことで、RSAのよ
うな暗号化に比べ、計算機の処理精度や処理能力に依存
しない暗号化を実現できる。As described above, by using a vector r that spans a multidimensional space generated sequentially for encryption, encryption independent of the processing accuracy and processing ability of a computer can be performed as compared with encryption such as RSA. realizable.
【0078】また、アプリの追加、変更も容易に行うこ
とができる。さらに、暗号の解読には、前記式(1)の
定数係数A,定数P(秘密・公開キー),定数ベクトル
c、そしてベクトルの初期値r0 を正確に与える必要が
あるため、これは殆ど不可能に近い。Further, an application can be easily added or changed. Furthermore, in order to decipher the encryption, it is necessary to accurately provide the constant coefficient A, the constant P (secret / public key), the constant vector c, and the initial value r 0 of the vector in the above equation (1). Near impossible.
【0079】例えば3次元ベクトルを考え、Pが5個の
定数を含むとすれば、初期値r0 として与えられるべき
数値の数は、 1(A)+5(P)+3(r0 )+3(c)=12 となり、その各々が8桁の実数である場合には、10
-96 の確率で、全てのベクトルが再現される。この確率
は殆ど0に近く、暗号解読は不可能に近いことを意味す
る。For example, if a three-dimensional vector is considered and P includes five constants, the number of numerical values to be given as the initial value r 0 is 1 (A) +5 (P) +3 (r 0 ) +3 ( c) = 12, each of which is an 8-digit real number, 10
All vectors are reproduced with a probability of -96 . This probability is almost zero, meaning that decryption is nearly impossible.
【0080】さらに、この発明で用いられる方法では、
回転R(θ)のθを与える関数fを明示的に与える必要
があり、このことが暗号の復号化をより複雑にしている
ことを意味する。Further, in the method used in the present invention,
It is necessary to explicitly give a function f that gives θ of the rotation R (θ), which means that the decryption of the encryption is more complicated.
【0081】なお、前記実施形態では、秘密キーおよび
公開キーを定義として決定される関数を用いてベクトル
を生成したが、少なくとも公開キーを定義として決定さ
れる関数を用いてベクトルを生成するようにしても良
い。In the above embodiment, the vector is generated using the function determined by defining the secret key and the public key. However, the vector is generated using at least the function determined by defining the public key. May be.
【0082】また、ベクトル発生の関数を決定する各定
数(A,P,C)は使用開始時に決めたものを固定的に
使い、関数型も固定としたが、例えば関数を決定する定
数にパスワード(公開キーの一部として使用される暗号
化キー)の依存性を持たせるなどの応用も可能である。
以下にその応用例を示す。The constants (A, P, C) for determining the vector generation function are fixed at the start of use and the function type is fixed. (Encryption key used as a part of public key) can be applied.
An application example is shown below.
【0083】(第2の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような関数を用
いた暗号化において、その関数を決定する各定数にパス
ワードの依存性を持たせる。なお、パスワードは、公開
キーの一部として用いられるものである。また、関数型
は固定とする。すなわち、前記式(1)において、 A→A(K) P→P(K) c→c(K) とする。ここで、Aは定数係数、Pは関数に使用される
定数の集合(秘密・公開キー)、cはベクトルを並進移
動する定数ベクトル、そして、Kはパスワードである。(Second Embodiment) Vectors defined in a closed area of an n-dimensional (n ≧ 1) space are sequentially generated,
In encryption using a function in which the generated vectors do not match each other, each constant that determines the function has a password dependency. The password is used as a part of the public key. The function type is fixed. That is, in the above equation (1), A → A (K) P → P (K) c → c (K). Here, A is a constant coefficient, P is a set of constants (private / public keys) used in the function, c is a constant vector that translates the vector, and K is a password.
【0084】パスワードKはユーザによって入力され、
データベース41の公開部分に格納されている。副プロ
グラムは、このデータベース41からパスワードKを読
み出し、そのパスワードKに基づいて前記式(1)の各
定数(A,P,C)を決定する。そして、これらの定数
を用いた関数によって、多次元ベクトルを生成して、デ
ータの暗号化を行う。The password K is input by the user,
It is stored in the public part of the database 41. The sub-program reads the password K from the database 41, and determines each constant (A, P, C) of the above equation (1) based on the password K. Then, a multidimensional vector is generated by a function using these constants, and data is encrypted.
【0085】このように、関数を決定する各定数にパス
ワードの依存性を持たせることにより、各定数が固定的
であった場合に比べ、暗号の安全性をさらに向上させる
ことができる。As described above, by giving each of the constants determining the function the dependency of the password, the security of the encryption can be further improved as compared with the case where each of the constants is fixed.
【0086】(第3の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような関数を用
いた暗号化において、その関数を決定する各定数にパス
ワードおよび実時間の依存性を持たせる。なお、パスワ
ードは、公開キーの一部として用いられるものである。
また、関数型は固定とする。すなわち、前記式(1)に
おいて、 A→A(K,t) P→P(K,t) c→c(K,t) とする。ここで、Aは定数係数、Pは関数に使用される
定数の集合(秘密・公開キー)、cはベクトルを並進移
動する定数ベクトル、そして、Kはパスワード、tは実
時間である。(Third Embodiment) A vector defined in a closed region of an n-dimensional (n ≧ 1) space is sequentially generated,
In encryption using a function in which the generated vectors do not match, each constant that determines the function has a dependency on a password and real time. The password is used as a part of the public key.
The function type is fixed. That is, in the above equation (1), A → A (K, t) P → P (K, t) c → c (K, t). Here, A is a constant coefficient, P is a set of constants (private / public keys) used for the function, c is a constant vector that translates the vector, K is a password, and t is real time.
【0087】パスワードKはユーザによって入力され、
データベース41の公開部分に格納されている。副プロ
グラムは、このデータベース41からパスワードKを読
み出し、そのパスワードKと実時間tに基づいて前記式
(1)の各定数(A,P,C)を決定する。そして、こ
れらの定数を用いた関数によって、多次元ベクトルを生
成して、データの暗号化を行う。The password K is input by the user,
It is stored in the public part of the database 41. The sub-program reads out the password K from the database 41 and determines each constant (A, P, C) of the above equation (1) based on the password K and the real time t. Then, a multidimensional vector is generated by a function using these constants, and data is encrypted.
【0088】このように、関数を決定する各定数にパス
ワードの依存性を持たせ、さらに、各定数に実時間の依
存性を持たせることにより、各定数がパスワードだけで
なく、実時間によっても変化することになり、暗号の安
全性をさらに向上させることができる。As described above, by giving each of the constants for determining the function the dependency of the password, and by giving each of the constants the dependency of the real time, each of the constants is determined not only by the password but also by the real time. Therefore, the security of the encryption can be further improved.
【0089】(第4の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような関数を用
いた暗号化において、その関数を決定する各定数にパス
ワードおよび実時間の依存性を持たせる。なお、パスワ
ードは、公開キーの一部として用いられるものである。
また、関数型の選択にパスワード依存性を持たせる。す
なわち、前記式(1)において、 A→A(K,t) P→P(K,t) c→c(K,t) とし、且つ、 R→Rk とする。ここで、Aは定数係数、Pは関数に使用される
定数の集合(秘密・公開キー)、cはベクトルを並進移
動する定数ベクトル、そして、Kはパスワード、tは実
時間、Rは関数である。(Fourth Embodiment) Vectors defined in a closed region of an n-dimensional (n ≧ 1) space are sequentially generated,
In encryption using a function in which the generated vectors do not match, each constant that determines the function has a dependency on a password and real time. The password is used as a part of the public key.
In addition, the function type selection has a password dependency. That is, in the above equation (1), A → A (K, t) P → P (K, t) c → c (K, t), and R → R k . Here, A is a constant coefficient, P is a set of constants used for the function (secret / public key), c is a constant vector that translates the vector, K is a password, t is real time, and R is a function. is there.
【0090】パスワードKはユーザによって入力され、
データベース41の公開部分に格納されている。副プロ
グラムは、このデータベース41からパスワードKを読
み出し、そのパスワードKと実時間tに基づいて前記式
(1)の各定数(A,P,C)を決定する。The password K is input by the user,
It is stored in the public part of the database 41. The sub-program reads out the password K from the database 41 and determines each constant (A, P, C) of the above equation (1) based on the password K and the real time t.
【0091】また、副プログラムは、これらの定数を用
いる関数RをパスワードKに応じて選択する。そして、
この選択された関数Rによって、多次元ベクトルを生成
して、データの暗号化を行う。The subprogram selects a function R using these constants according to the password K. And
By using the selected function R, a multidimensional vector is generated and data is encrypted.
【0092】このように、関数を決定する各定数にパス
ワードの依存性を持たせ、さらに、各定数に実時間の依
存性を持たせ、かつ、関数をパスワードに応じて選択す
ることにより、各定数がパスワードだけでなく、実時間
によっても変化し、しかも、それらの定数を用いる関数
自体がパスワードにて選択されるため、暗号化の精度を
さらに向上させることができる。As described above, each constant for determining a function has a password dependency, each constant has a real-time dependency, and a function is selected according to a password. The constants change not only with the password but also with the real time, and since the function itself using the constants is selected by the password, the accuracy of the encryption can be further improved.
【0093】(第5の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような関数を用
いた暗号化において、その関数を決定する各定数にパス
ワードおよび実時間の依存性を持たせる。なお、パスワ
ードは、公開キーの一部として用いられるものである。
また、関数型の選択にパスワードおよび実時間の依存性
を持たせる。すなわち、前記式(1)において、 A→A(K,t) P→P(K,t) c→c(K,t) とし、且つ R→Rk,t とする。ここで、Aは定数係数、Pは関数に使用される
定数の集合(秘密・公開キー)、cはベクトルを並進移
動する定数ベクトル、そして、Kはパスワード、tは実
時間、Rは関数である。(Fifth Embodiment) Vectors defined in a closed region of an n-dimensional (n ≧ 1) space are sequentially generated,
In encryption using a function in which the generated vectors do not match, each constant that determines the function has a dependency on a password and real time. The password is used as a part of the public key.
In addition, the selection of the function type is made dependent on the password and the real time. That is, in the above equation (1), A → A (K, t) P → P (K, t) c → c (K, t) and R → R k, t . Here, A is a constant coefficient, P is a set of constants used for the function (secret / public key), c is a constant vector that translates the vector, K is a password, t is real time, and R is a function. is there.
【0094】パスワードKはユーザによって入力され、
データベース41の公開部分に格納されている。副プロ
グラムは、このデータベース41からパスワードKを読
み出し、そのパスワードKと実時間tに基づいて前記式
(1)の各定数(A,P,C)を決定する。The password K is input by the user,
It is stored in the public part of the database 41. The sub-program reads out the password K from the database 41 and determines each constant (A, P, C) of the above equation (1) based on the password K and the real time t.
【0095】また、副プログラムは、これらの定数を用
いる関数RをパスワードKおよび実時間tに応じて選択
する。そして、この選択された関数Rによって、多次元
ベクトルを生成して、データの暗号化を行う。The subprogram selects a function R using these constants according to the password K and the real time t. Then, a multidimensional vector is generated by the selected function R, and data is encrypted.
【0096】このように、関数を決定する各定数にパス
ワードの依存性を持たせ、さらに、各定数に実時間の依
存性を持たせ、かつ、関数をパスワードと実時間に応じ
て選択することにより、各定数がパスワードだけでな
く、実時間によっても変化し、しかも、それらの定数を
用いる関数自体がパスワードと実時間に応じてにて選択
されるため、暗号の安全性をさらに向上させることがで
きる。As described above, each constant for determining a function has a password dependency, each constant has a real-time dependency, and a function is selected according to the password and the real time. Therefore, each constant changes not only with the password but also with the real time, and the function itself using those constants is selected according to the password and the real time, thereby further improving the security of encryption. Can be.
【0097】(第6の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような複数の関
数を線形結合して新たな関数を定義するものであり、そ
の結合される各々の関数に対し、関数を決定する定数に
パスワードおよび実時間の依存性を持たせる。なお、パ
スワードは、公開キーの一部として用いられるものであ
る。また、関数型の選択にパスワードおよび実時間依存
性を持たせる。さらに、線形結合係数にパスワードおよ
び実時間の依存性を持たせる。(Sixth Embodiment) Vectors defined in a closed region of an n (n ≧ 1) -dimensional space are sequentially generated,
A new function is defined by linearly combining a plurality of functions whose respective generated vectors do not coincide with each other. For each of the combined functions, a password and a real-time Make it dependent. The password is used as a part of the public key. In addition, the selection of the function type is made dependent on the password and the real time. Further, the linear combination coefficient is made dependent on the password and the real time.
【0098】すなわち、n(n≧1)次元の空間を張る
ベクトルをrとし、その初期値r0から逐次的に新しい
ベクトルri (i=0,1,2,3…)を発生する関数
をRj (j=0,1,2,3…)としたとき、 ri =Σj Wj (K,t){Aj (K,t)Rj,k,t (Pj (K,t),ri-1 )+cj } …(4) によって、新しいベクトルを発生させる。That is, a vector extending in an n (n ≧ 1) -dimensional space is defined as r, and a function for sequentially generating new vectors r i (i = 0, 1, 2, 3,...) From its initial value r 0. Where R j (j = 0, 1, 2, 3,...), R i = Σ j W j (K, t) {A j (K, t) R j, k, t (P j (K , T), r i-1 ) + c j } (4) to generate a new vector.
【0099】ここで、Aは定数係数、Pは関数に使用さ
れる定数の集合(秘密・公開キー)、cはベクトルを並
進移動する定数ベクトル、そして、Kはパスワード、t
は実時間、Rは関数である。また、Wは線形結合係数で
ある。Here, A is a constant coefficient, P is a set of constants (secret / public keys) used for the function, c is a constant vector that translates the vector, K is a password, t
Is real time and R is a function. W is a linear combination coefficient.
【0100】パスワードKはユーザによって入力され、
データベース41の公開部分に格納されている。副プロ
グラムは、このデータベース41からパスワードKを読
み出し、そのパスワードKと実時間tに基づいて前記式
(4)の各定数(A,P,C)を決定する。副プログラ
ムは、複数の関数を線形結した関数Rj をパスワードK
および実時間tに応じて選択する。The password K is input by the user,
It is stored in the public part of the database 41. The sub-program reads the password K from the database 41 and determines each constant (A, P, C) of the above equation (4) based on the password K and the real time t. Subprogram, password K function R j with a plurality of functions linearly formation
And according to the actual time t.
【0101】また、この関数Rj に用いられる線形結合
係数Wj をパスワードKおよび実時間tによって決定す
る。そして、この選択された関数Rj によって、多次元
ベクトルを生成して、データの暗号化を行う。The linear combination coefficient W j used for the function R j is determined by the password K and the real time t. Then, this selected function R j, and generating a multidimensional vector, encrypts the data.
【0102】このように、複数の関数の線形結合した新
たな関数を用い、各々の関数に対し、関数を決定する定
数にパスワードおよび実時間の依存性を持たせると共
に、関数の選択にパスワードおよび実時間依存性を持た
せ、さらに、線形結合係数にパスワードおよび実時間の
依存性を持たせることで、暗号の安全性をさらに向上さ
せることができる。As described above, a new function obtained by linearly combining a plurality of functions is used. For each function, a constant for determining the function has a password and a real-time dependency. By providing real-time dependency, and by giving the linear combination coefficient a password and real-time dependency, the security of encryption can be further improved.
【0103】(第7の実施形態)n(n≧1)次元の空
間の閉領域内に定義されたベクトルを逐次的に生成し、
その生成された各ベクトルが一致しないような関数を用
いた暗号化において、関数型は使用者が任意に定義し、
本体暗号化アルゴリズムに使用時にダイナミックに結合
して使えるようにする。(Seventh Embodiment) Vectors defined in a closed region of an n-dimensional (n ≧ 1) space are sequentially generated,
In encryption using a function that does not match each generated vector, the function type is arbitrarily defined by the user,
Dynamically combine with the main body encryption algorithm when used so that it can be used.
【0104】すなわち、すでにコンパイル済みの暗号化
の「基本プログラム」に、多次元ベクトルを逐次発生さ
せるためにユーザが定義した関数をコンパイルしたもの
を、全プログラム実行時にダイナミックにリンクして使
うようにする。このようにすれば、ハッカー等の悪意あ
るユーザによる解読を殆ど不可能にするという効果が期
待される。In other words, a function obtained by compiling a user-defined function for sequentially generating multidimensional vectors into an already-encrypted “basic program” is dynamically linked and used at the time of executing all programs. I do. In this way, it is expected that a malicious user, such as a hacker, will make decoding almost impossible.
【0105】[0105]
【発明の効果】以上のように本発明によれば、n(n≧
1)次元の空間の閉領域内に定義されたベクトルを逐次
的に生成し、暗号化の対象となる原文データと前記ベク
トルの成分との論理演算により、暗号文データを生成す
るようにしたため、RSA法のような高精度の演算能力
を必要とせずに暗号化を行うことができ、しかも、信頼
性が高く、アプリケーションの追加、変更が容易な暗号
化を実現することができる。As described above, according to the present invention, n (n ≧ n)
1) Vectors defined in a closed area of a dimensional space are sequentially generated, and ciphertext data is generated by a logical operation between original text data to be encrypted and components of the vectors. Encryption can be performed without requiring a high-precision operation capability such as the RSA method, and furthermore, encryption with high reliability and easy addition and change of applications can be realized.
【図1】本発明の一実施形態に係る暗号通信を行うシス
テムの構成を示す概念図。FIG. 1 is a conceptual diagram showing the configuration of a system for performing cryptographic communication according to an embodiment of the present invention.
【図2】前記システムに用いられるPCおよびセキュリ
ティデバイスの回路構成を示すブロック図。FIG. 2 is a block diagram showing a circuit configuration of a PC and a security device used in the system.
【図3】前記セキュリティデバイス上のデータベースの
構成を示す図。FIG. 3 is a view showing a configuration of a database on the security device.
【図4】同実施形態におけるユーザ登録時のPCとセキ
ュリティデバイスの処理動作を示すフローチャート。FIG. 4 is an exemplary flowchart showing processing operations of the PC and the security device at the time of user registration in the embodiment.
【図5】同実施形態におけるデータ暗号化時のPCとセ
キュリティデバイスの処理動作を示すフローチャート。FIG. 5 is an exemplary flowchart showing processing operations of the PC and the security device at the time of data encryption in the embodiment.
【図6】同実施形態における暗号化および復号化の処理
動作を示すフローチャート。FIG. 6 is an exemplary flowchart showing processing operations of encryption and decryption in the embodiment.
【図7】本発明による多次元ベクトルを用いた暗号化の
演算方法を説明するための図。FIG. 7 is a diagram for explaining a calculation method of encryption using a multidimensional vector according to the present invention.
11a,11b…PC 12a,12b…セキュリティデバイス 21…CPU 22…記憶装置 23…RAM 24…キーボード 25…表示部 26…カードI/F 27…コネクタ 31…CPU 32…ROM 33…RAM 34…入力バッファ 35…出力バッファ 36…フラッシュメモリ 37…コネクタ 41…データベース 11a, 11b PC 12a, 12b Security device 21 CPU 22 Storage device 23 RAM 24 Keyboard 25 Display unit 26 Card I / F 27 Connector 31 CPU 32 ROM 33 RAM 34 Input buffer 35 output buffer 36 flash memory 37 connector 41 database
Claims (8)
る原文データ取得手段と、 n(n≧1)次元の空間の閉領域内に定義されたベクト
ルを逐次的に生成するベクトル生成手段と、 前記原文取得手段によって得られた原文データと前記ベ
クトル生成手段によって生成されたベクトルの成分との
論理演算をビット単位で行って暗号文データを生成する
論理演算手段とを具備したことを特徴とする暗号化装
置。1. An original text data acquisition unit for acquiring original text data to be encrypted, and a vector generation unit for sequentially generating a vector defined in a closed region of an n (n ≧ 1) -dimensional space. A logical operation unit for performing a logical operation of the original text data obtained by the original text acquisition unit and a component of the vector generated by the vector generation unit in bit units to generate ciphertext data. Encryption device.
密キーを定義として決定される関数であって、生成する
各ベクトルが一致することがない関数を用いてベクトル
を逐次的に生成することを特徴とする請求項1記載の暗
号化装置。2. The method according to claim 1, wherein the vector generating means sequentially generates the vectors using a function determined by defining at least a secret key, wherein each of the generated vectors does not match. The encryption device according to claim 1, wherein
開キーを定義として決定される関数であって、生成する
各ベクトルが一致することがない関数を用いてベクトル
を逐次的に生成することを特徴とする請求項1記載の暗
号化装置。3. The method according to claim 2, wherein the vector generation means sequentially generates the vectors using a function determined by defining a secret key and a public key, and the generated vectors do not match. The encryption device according to claim 1, wherein:
した定数で決定される関数を用いてベクトルを逐次的に
生成することを特徴とする請求項1記載の暗号化装置。4. The encryption apparatus according to claim 1, wherein said vector generation means sequentially generates vectors using a function determined by a constant depending on real time.
成する関数の選択に公開キーの依存性を持たせることを
特徴とする請求項1記載の暗号化装置。5. The encryption apparatus according to claim 1, wherein said vector generation means makes the selection of a function for generating a vector depend on a public key.
成する関数の選択に公開キーおよび実時間の依存性を持
たせることを特徴とする請求項1記載の暗号化装置。6. The encryption apparatus according to claim 1, wherein said vector generation means makes the selection of a function for generating a vector have a dependency on a public key and real time.
結合して新たな関数を定義し、この定義された関数を用
いてベクトルを逐次的に生成することを特徴とする請求
項1記載の暗号化装置。7. The method according to claim 1, wherein said vector generation means defines a new function by combining a plurality of functions, and sequentially generates a vector using the defined function. Encryption device.
義されたベクトルを逐次的に生成し、 暗号化の対象となる原文データと前記生成されたベクト
ルの成分との論理演算をビット単位で行って暗号文デー
タを生成することを特徴とする暗号化方法。8. A logical operation of sequentially generating vectors defined in a closed region of an n (n ≧ 1) -dimensional space, and performing an operation on original text data to be encrypted and components of the generated vectors In bit units to generate ciphertext data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27273897A JP3773226B2 (en) | 1997-10-06 | 1997-10-06 | Encryption device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27273897A JP3773226B2 (en) | 1997-10-06 | 1997-10-06 | Encryption device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003144894A Division JP2003348074A (en) | 2003-05-22 | 2003-05-22 | Device and method for encryption |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11109855A true JPH11109855A (en) | 1999-04-23 |
JP3773226B2 JP3773226B2 (en) | 2006-05-10 |
Family
ID=17518095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27273897A Expired - Lifetime JP3773226B2 (en) | 1997-10-06 | 1997-10-06 | Encryption device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3773226B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001101055A (en) * | 1999-09-30 | 2001-04-13 | Casio Comput Co Ltd | Data base managing device, data base system, enciphering device and ercording medium |
JP2013213930A (en) * | 2012-04-02 | 2013-10-17 | Tokyo Univ Of Science | Encryption device, decryption device and program |
JP2014017556A (en) * | 2012-07-05 | 2014-01-30 | Tokyo Univ Of Science | Shared secret key generation device, encryption device, decryption device, and program |
-
1997
- 1997-10-06 JP JP27273897A patent/JP3773226B2/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001101055A (en) * | 1999-09-30 | 2001-04-13 | Casio Comput Co Ltd | Data base managing device, data base system, enciphering device and ercording medium |
JP2013213930A (en) * | 2012-04-02 | 2013-10-17 | Tokyo Univ Of Science | Encryption device, decryption device and program |
JP2014017556A (en) * | 2012-07-05 | 2014-01-30 | Tokyo Univ Of Science | Shared secret key generation device, encryption device, decryption device, and program |
Also Published As
Publication number | Publication date |
---|---|
JP3773226B2 (en) | 2006-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100401225B1 (en) | Database management apparatus | |
Liu et al. | Privacy-preserving outsourced calculation toolkit in the cloud | |
US6628786B1 (en) | Distributed state random number generator and method for utilizing same | |
KR100406754B1 (en) | Forward-secure commercial key escrow system and escrowing method thereof | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
CN108737115B (en) | Private attribute set intersection solving method with privacy protection | |
US20060251247A1 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor | |
CN111162894B (en) | Statistical analysis method for outsourcing cloud storage medical data aggregation with privacy protection | |
WO1998054633A1 (en) | Method and apparatus for signing and sealing objects | |
JP3794457B2 (en) | Data encryption / decryption method | |
JP2004512570A (en) | Method and apparatus using an insecure cryptographic accelerator | |
Sandhia et al. | Secure sharing of data in cloud using MA-CPABE with elliptic curve cryptography | |
Sarkar et al. | A multi-instance cancelable fingerprint biometric based secure session key agreement protocol employing elliptic curve cryptography and a double hash function | |
JP2003152716A (en) | Qualification authentication method employing variable authentication information | |
JP3773226B2 (en) | Encryption device | |
TWI701931B (en) | Digital signature method with hierarchical mechanism and hardware wallet device suitable therefore | |
JP2003348074A (en) | Device and method for encryption | |
Mujawar et al. | An Attribute-Based Encryption Method Using Outsourced Decryption and Hierarchical Access Structure | |
Ali et al. | Data Inspection and Access Control for 5 G Edge Computing-Enabled Internet of Medical Things | |
JP2002063139A (en) | Terminal equipment and server device and terminal authenticating method | |
AbdElminaam et al. | FHE-Chaos NHCP: Developing a Novel Secure Framework for Cloud Computing Environment | |
Vollala et al. | Energy-Efficient Modular Exponential Techniques for Public-Key Cryptography | |
CN114567436B (en) | Biological characteristic data security access control method | |
WO2023276740A1 (en) | Third party device, secure computation system, and program | |
JP3982013B2 (en) | Access control information generating apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060213 |
|
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: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140224 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |