JP2007104118A - Protection method of secret information and communication apparatus - Google Patents

Protection method of secret information and communication apparatus Download PDF

Info

Publication number
JP2007104118A
JP2007104118A JP2005288893A JP2005288893A JP2007104118A JP 2007104118 A JP2007104118 A JP 2007104118A JP 2005288893 A JP2005288893 A JP 2005288893A JP 2005288893 A JP2005288893 A JP 2005288893A JP 2007104118 A JP2007104118 A JP 2007104118A
Authority
JP
Japan
Prior art keywords
information
server
data
control unit
shared key
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
JP2005288893A
Other languages
Japanese (ja)
Other versions
JP4794970B2 (en
Inventor
Toru Iino
徹 飯野
Shinichiro Matsuo
真一郎 松尾
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.)
NTT Data Group Corp
Original Assignee
NTT Data Corp
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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2005288893A priority Critical patent/JP4794970B2/en
Publication of JP2007104118A publication Critical patent/JP2007104118A/en
Application granted granted Critical
Publication of JP4794970B2 publication Critical patent/JP4794970B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method of securing and ensuring the protection of secret information such as a password and a key used by, e.g. the single sign-on. <P>SOLUTION: Both a client terminal 30 and a server 20 generate a shared key for information exchange through a secure channel on the basis of information generated by itself and information generated by the opposite party. The server 20 uses the shared key to encrypt the secret information. The server 20 generates new information for a next access when the server 20 uses the shared key to decrypt the encrypted data, stores part of the new information, encrypts the remaining new information by using its own shared key and transmits the encrypted information to the client terminal 30. The client terminal 30 decrypts the encrypted data received from the server 20 by using its own shared key, decrypts the remaining new information, and stores the remaining new information for the next access. The server 20 generates a new shared key on the basis of the new information for the next access, encrypts the secret information by using the new shared key and stores it for the next access together with part of the new information. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、秘密情報を安全に保護する方法、そのための装置に関する。より詳しくは、例えばサーバベースコンピューティングの環境において、シングルサインオンで複数サイト(サーバ)へアクセスするためのサイトアクセス用の権限情報をサーバ側に登録しておき、これをクライアント端末の側から安全に利用する手法に関する。   The present invention relates to a method for securely protecting confidential information and an apparatus therefor. More specifically, for example, in a server-based computing environment, site access authority information for accessing a plurality of sites (servers) by single sign-on is registered on the server side, and this is securely accessed from the client terminal side. It is related with the technique used for.

サーバベースコンピューティングの環境においてシングルサインオンの手法が知られている。シングルサインオンは、以下の手順で利用することができる。
(1)サーバ側に登録してあるサイトアクセス用パスワードに対してクライアント側からアクセスがあるたびに、サーバが異なるパスワード暗号用鍵を生成する。そして、このパスワード暗号用鍵でサイトアクセス用パスワードを暗号化してサーバ側に登録する。
(2)サーバが生成したパスワード暗号用鍵をクライアント側のICカードのようなセキュリティ媒体に登録する。
(3)サーバ側に登録したサイトアクセス用パスワードをユーザが利用する場合は、ユーザがクライアント側に登録されたパスワード暗号用鍵を利用し、クライアント端末とサーバとの間でセキュアチャネル、すなわち暗号通信によってセキュリティが確保された通信チャネルを確立する。このようなセキュアチャネルでは、パスワード暗号用鍵を用いてサーバ及びクライアント端末の双方が同一のセキュアチャネル用鍵を生成し、サーバとクライアント端末の双方が、このセキュアチャネル用鍵を共有する。
(4)セキュアチャネル用鍵を用いて、クライアント側に登録されたパスワード暗号用鍵、ユーザのログイン用のID及びパスワードを暗号化し、暗号データをクライアント端末からサーバに通知する。
(5)サーバは、クライアント端末から受信した暗号データをセキュアチャネル用鍵で復号し、そのユーザのログイン用のIDとパスワードでユーザの本人確認を行う。本人確認ができた場合、サーバは、暗号データを復号して得たパスワード暗号用鍵を用い、このパスワード暗号用鍵で暗号化されているサイトアクセス用パスワードを復号化して利用し、その結果をクライアント端末に通知する。
Single sign-on techniques are known in server-based computing environments. Single sign-on can be used in the following procedure.
(1) Each time the client accesses the site access password registered on the server, the server generates a different password encryption key. The password for site access is encrypted with this password encryption key and registered on the server side.
(2) The password encryption key generated by the server is registered in a security medium such as an IC card on the client side.
(3) When a user uses a password for site access registered on the server side, the user uses a password encryption key registered on the client side, and a secure channel, that is, encrypted communication between the client terminal and the server. To establish a secure communication channel. In such a secure channel, both the server and the client terminal generate the same secure channel key using the password encryption key, and both the server and the client terminal share the secure channel key.
(4) Using the secure channel key, encrypt the password encryption key, user login ID and password registered on the client side, and notify the encrypted data from the client terminal to the server.
(5) The server decrypts the encrypted data received from the client terminal with the secure channel key and verifies the identity of the user with the login ID and password of the user. If the identity is confirmed, the server uses the password encryption key obtained by decrypting the encrypted data, decrypts and uses the site access password encrypted with this password encryption key, and uses the result. Notify the client terminal.

上記のシングルサインオンによるサーバへのアクセス手法については、下記の特許文献1,2に、詳細に紹介されている。
特開2002−288139号公報 特開2000−259566号公報
The method for accessing the server by single sign-on described above is introduced in detail in Patent Documents 1 and 2 below.
JP 2002-288139 A Japanese Patent Laid-Open No. 2000-259566

しかしながら、従来の手法では、次のような問題があった。
サーバとクライアント端末の間で用いるセキュアチャネル用鍵と、サーバがサイトアクセス用パスワードを暗号化するためのパスワード暗号用鍵との2つの鍵が必要であるが、これらの鍵を同一にすると、サーバ側も鍵を保持することになるため、例えばサーバ管理者がサーバ側の鍵を不正に利用して、サイトアクセス用パスワードを勝手に使用できるという不都合が生じる。サーバ側に設定されている鍵の不正利用を防止するために、例えば秘密分散法を利用し、サーバ側とクライアント側とで鍵を分散することも考えられるが、しかし、その場合でも鍵を利用する際には、分散された鍵をサーバ側に通知するための通信路に暗号化鍵を使用するため、根本的な問題解決にはならない。さらに、クライアント側のトークンに鍵そのものを設定することも考えられるが、そうすると、ICカード等の高価なセキュリティ媒体を用いなければならなくなる。
However, the conventional method has the following problems.
Two keys are required: a secure channel key used between the server and the client terminal, and a password encryption key for the server to encrypt the site access password. Since the server also holds the key, for example, the server administrator can use the server-side key illegally and use the site access password without permission. In order to prevent unauthorized use of the key set on the server side, for example, the secret sharing method may be used and the key may be distributed between the server side and the client side. In this case, since the encryption key is used in the communication path for notifying the server side of the distributed key, the fundamental problem is not solved. Furthermore, although it is conceivable to set the key itself in the token on the client side, it is necessary to use an expensive security medium such as an IC card.

上述の問題を解決するパスワードや鍵、その他の秘密情報の保護方法は、未だ実現されていない。例えば、前述のサーバベースコンピューティングの環境において、シングルサインオンでクライアント端末が複数サイトへアクセスするためのサイトアクセス用パスワード情報をサーバ側で保持する形態では、サーバ側での不正使用の余地をなくすための方向性が示されていない。
本発明は、例えばシングルサインオンで使用するパスワードや鍵等の秘密情報の保護を安全且つ確実ならしめる手法を提供することを、主たる課題とするものである。
A method for protecting passwords, keys, and other secret information that solves the above problems has not yet been realized. For example, in the server-based computing environment described above, in the form where the server side holds password information for site access for a client terminal to access multiple sites by single sign-on, there is no room for unauthorized use on the server side. The direction for is not shown.
The main object of the present invention is to provide a method for ensuring safe and secure protection of secret information such as passwords and keys used in single sign-on, for example.

本発明は、秘密情報の保護方法及び通信装置により、上記の課題を解決する。
本発明が提供する秘密情報の保護方法は、通信路を介して接続された第1装置と第2装置の双方が、相手側で生成された情報(Wa/Wb)と自己側で生成した情報(C1/S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する段階と、前記第1装置が、前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この暗号データを前記第2装置に伝達する段階と、前記第2装置が、前記第1装置より受け取った前記暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する段階と、前記第1装置が、前記第2装置から受け取った暗号データを前記共有鍵(SK1)で復号して前記残部の新規情報(C2)を得、この残部の新規情報(C2)を次回アクセス用に保存する段階と、前記第2装置が、前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共通鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用に保存する段階とを有する方法である。
The present invention solves the above problems by a method for protecting secret information and a communication device.
The secret information protection method provided by the present invention is the information (Wa / Wb) generated on the partner side and the information generated on the own side by both the first device and the second device connected via the communication path. Generating a shared key (SK1) for exchanging information by converting the communication path into a secure channel based on (C1 / S1), and the first device wishes to register with the second device Encrypting secret information with the shared key (SK1) and transmitting the encrypted data to the second device; and the second device receives the encrypted data received from the first device with the shared key (SK1). To obtain the secret information and generate new information (C2 * S2) for next access, save a part (S2) of the new information (C2 * S2), and store the remaining new information ( C2) is encrypted with the shared key (SK1) and the second Transmitting to the device (client terminal), and the first device decrypts the encrypted data received from the second device with the shared key (SK1) to obtain the new information (C2) of the remaining portion. Storing the new information (C2) for the next access, the second device generates a new shared key (SK2) based on the new information (C2 * S2) for the next access, and The secret information decrypted with the common key (SK1) is encrypted with the new shared key (SK2) and stored together with the partial new information (S2) for the next access.

前記共有鍵を生成する段階は、例えば、前記第1装置が、自己が生成した乱数(C1)に基づいて第1データ(Wa)を生成し、この第1データ(Wa)を前記第2装置に伝達する段階と、前記第2装置が、前記第1装置より受け取った第1データ(Wa)と自己が生成した乱数(S1)とに基づいて第2データ(Wb)を生成し、この第2データ(Wb)を前記第1装置に伝達するとともに、前記第1データ(Wa)と前記自己が生成した乱数(S1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Kb)を生成する段階と、前記第1装置が、前記第2装置より受け取った第2データ(Wb)と自己が生成した前記乱数(C1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Ka)を生成する段階とを含み、これらの共有データの各々から前記共有鍵(SK1)を導出することにより実現される。   In the step of generating the shared key, for example, the first device generates first data (Wa) based on a random number (C1) generated by the first device, and the first data (Wa) is generated as the second device. And the second device generates second data (Wb) based on the first data (Wa) received from the first device and the random number (S1) generated by the second device. 2 data (Wb) is transmitted to the first device, and the hash value becomes a shared key (SK1) based on the first data (Wa) and the random number (S1) generated by itself. Kb) is generated, and the hash value is shared key (SK1) based on the second data (Wb) received by the first device from the second device and the random number (C1) generated by the first device. To generate shared data (Ka) Wherein the door is achieved by deriving the shared key (SK1) from each of these shared data.

本発明のある実施の態様では、前記秘密情報を2つの分散データに分ける。そして、前記第1装置が、前記2つの分散データを復元するためのシェアを保持するとともに、このシェアのハッシュ値を自己側で生成する情報とし、前記サーバが、前記2つの分散データの一方を前記共有鍵で暗号化して保持し、他方の分散データを自己側で生成する情報とすることにより、前記サーバが、前記2つの分散データと前記シェアとから前記秘密情報を復号可能にする。
本発明のある実施の態様では、前記第1装置が、前記第2装置を介した所定のサイトへのアクセス権限情報を前記秘密情報として前記第2装置に伝達する。そして、前記第2装置が、前記アクセス権限情報を取得し、このアクセス権限情報を前記メモリ領域に登録することにより、このアクセス権限情報を伴う前記第1装置から前記サイトへのアクセスを可能にする。
In one embodiment of the present invention, the secret information is divided into two distributed data. Then, the first device holds a share for restoring the two shared data, and generates a hash value of the share on its own side, and the server uses one of the two shared data. By encrypting and holding with the shared key and generating the other shared data on its own side, the server can decrypt the secret information from the two shared data and the share.
In an embodiment of the present invention, the first device transmits access authority information to a predetermined site via the second device to the second device as the secret information. Then, the second device acquires the access authority information and registers the access authority information in the memory area, thereby enabling access to the site from the first apparatus accompanied with the access authority information. .

本発明の通信装置は、例えば上記の第1装置として機能する第1の通信装置と、上記の第2装置として機能する第2の通信装置である。
第1の通信装置は、通信路を介して接続された第2装置との間で双方向の通信を行う通信装置であって、前記通信路をセキュアチャネル化して情報交換を行うために前記第2装置と共有する共有鍵(SK1)を生成する鍵情報生成手段と、秘密情報を自己の前記共有鍵(SK1)で暗号化した暗号データを前記第2装置へ伝達するとともに、前記第2装置で当該第2装置の前記共有鍵(SK1)で暗号化された、次回アクセス用の新規情報(C2*S2)の部分的な新規情報(C2)を前記共有鍵(SK1)で復号して次回アクセス用に保存する暗号・復号手段とを備えている。
The communication device of the present invention is, for example, a first communication device that functions as the first device and a second communication device that functions as the second device.
The first communication device is a communication device that performs two-way communication with a second device connected via a communication channel, and the first communication device is used to exchange information by converting the communication channel into a secure channel. A key information generating means for generating a shared key (SK1) shared with the two devices, and transmitting encrypted data obtained by encrypting secret information with the shared key (SK1) of the device to the second device, and the second device Then, the partial new information (C2) of the new information (C2 * S2) for next access encrypted with the shared key (SK1) of the second device is decrypted with the shared key (SK1) next time. And encryption / decryption means for storing for access.

第2の通信装置は、通信路を介して接続された第1装置との間で双方向の通信を行う通信装置であって、前記通信路をセキュアチャネル化して情報交換を行うために前記第1装置と共有する共有鍵(SK1)を生成する鍵情報生成手段と、前記第1装置から受け取った、秘密情報を前記共有鍵で暗号化した暗号データを前記共有鍵(SK1)で復号化することにより前記秘密情報を得る暗号・復号手段と、この暗号・復号手段が前記秘密情報を復号した後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置へ伝達させる情報生成手段とを備えている。
前記鍵情報生成手段は、前記第1装置で生成された情報(Wa)と自己側で生成した情報(S1)とに基づいて前記共有鍵(SK1)を生成し、他方、前記情報生成手段が前記次回アクセス用の新規情報(C2*S2)を生成したときは、当該次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するように構成されており、前記暗号・復号手段は、前記復号された秘密情報を前記新たに生成した共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用に保存するように構成されている。
The second communication device is a communication device that performs bidirectional communication with the first device connected via a communication channel, and the second communication device is configured to exchange information by converting the communication channel into a secure channel. Key information generating means for generating a shared key (SK1) shared with one device, and decrypting the encrypted data received from the first device with the shared key encrypted with the shared key using the shared key (SK1) Thus, the encryption / decryption means for obtaining the secret information, and after the encryption / decryption means decrypts the secret information, new information (C2 * S2) for next access is generated, and the new information (C2 * S2) Information generation means for storing a part (S2) of the information and encrypting the remaining new information (C2) with the shared key (SK1) and transmitting the encrypted information to the first device.
The key information generating unit generates the shared key (SK1) based on the information (Wa) generated by the first device and the information (S1) generated by itself, while the information generating unit When new information for next access (C2 * S2) is generated, a new shared key (SK2) is generated based on the new information for next access (C2 * S2). The encryption / decryption means is configured to encrypt the decrypted secret information with the newly generated shared key (SK2) and store it for the next access together with the part of new information (S2). Yes.

本発明では、第1装置と第2装置との間でセキュアチャネル化するための鍵と、第2装置にある秘密情報を暗号化するための鍵を同じにしつつ、第1装置と第2装置の双方のもつ情報がないと共有鍵が生成できないので、鍵管理負担を軽減することができ、それでいて、秘密情報を管理する第2装置側での不正を防止することができる。   In the present invention, the first device and the second device are made the same for the secure channel between the first device and the second device and the key for encrypting the secret information in the second device. Since the shared key cannot be generated without the information of both, it is possible to reduce the key management burden, and to prevent fraud on the second device side managing the secret information.

[第1実施の形態]
本発明は、例えば図1に示されるパスワード認証鍵交換システムとしての実施が可能である。この実施の形態のパスワード認証鍵交換システムは、インターネット等で構成されるネットワーク10に接続されるサーバ20と、このネットワーク10を介してサーバ20に接続されるクライアント端末30と、サーバ20に接続されたサイト40を含んで構成される。サイトは、ひとまとまりに公開可能なWebページ群を保有する情報処理システムであり、実質的にはサーバである。なお、図1では、便宜上1つのサイト40のみが示されているが、サイトの数はいくつであってもよい。
[First Embodiment]
The present invention can be implemented as, for example, the password authentication key exchange system shown in FIG. The password authentication key exchange system of this embodiment is connected to a server 20 connected to a network 10 constituted by the Internet, a client terminal 30 connected to the server 20 via the network 10, and the server 20. The site 40 is configured. A site is an information processing system that has a group of Web pages that can be disclosed together, and is essentially a server. In FIG. 1, only one site 40 is shown for convenience, but any number of sites may be used.

サーバ20は、ネットワーク10を介して通信を行うためのインターフェイス(以下、「I/F」と略す)21と、後述する各種処理を実行する制御部(以下、クライアント30のものと区別する必要があるときは「サーバ制御部」と称する)22と、サーバデータベース(以下、データベースを「DB」と略す)23とを備えている。サーバ制御部22は、コンピュータプログラムを読み込んで実行する一種のコンピュータである。サーバ制御部22は、このコンピュータプログラムを実行することにより、鍵情報生成手段、暗号・復号手段、情報生成手段の機能を形成する。   The server 20 needs to be distinguished from an interface (hereinafter abbreviated as “I / F”) 21 for performing communication via the network 10 and a control unit (hereinafter referred to as the client 30) that executes various processes described later. A server database (hereinafter referred to as “DB”) 23 and a server database (hereinafter referred to as “server control unit”) 22 are provided. The server control unit 22 is a kind of computer that reads and executes a computer program. The server control unit 22 executes the computer program to form functions of a key information generation unit, an encryption / decryption unit, and an information generation unit.

クライアント端末30は、ネットワーク10を介して通信を行うためのI/F31と、後述する各種処理を実行する制御部(以下、サーバ20のものと区別する必要があるときは「クライアント制御部」と称する)32と、パスワードや後述する乱数を保存するためのメモリ33とを備えている。クライアント制御部32は、コンピュータプログラムを読み込んで実行する一種のコンピュータである。このコンピュータプログラムは、サーバ20からダウンロードしたアプリケーションやトークンなどに実装しても良い。クライアント制御部32は、このコンピュータプログラムを実行することにより、鍵情報生成手段、暗号・復号手段の機能を形成する。
サイト40は、ネットワーク10を介して通信を行うためのI/F41と、サイト運営に必要な処理を実行するサイト制御部42と、サイトDB43を備えている。サイト制御部42もまた、コンピュータプログラムを読み込んで実行する一種のコンピュータである。
The client terminal 30 includes an I / F 31 for performing communication via the network 10 and a control unit (hereinafter referred to as “client control unit” when it is necessary to distinguish from the server 20). 32) and a memory 33 for storing a password and a random number to be described later. The client control unit 32 is a kind of computer that reads and executes a computer program. This computer program may be installed in an application downloaded from the server 20 or a token. The client control unit 32 executes the computer program to form functions of a key information generation unit and an encryption / decryption unit.
The site 40 includes an I / F 41 for performing communication via the network 10, a site control unit 42 that executes processing necessary for site operation, and a site DB 43. The site control unit 42 is also a kind of computer that reads and executes a computer program.

サーバ20とクライアント端末30は、ネットワーク10上に暗号化通信を行うためのセキュアチャネルを共有鍵を用いて確立し、暗号化したデータの通信を行う。また、サーバ20は、クライアント端末30から受信したサイトアクセス用パスワードを上述した共有鍵を用いて暗号化し、この暗号化したサイトアクセス用パスワードをサーバDB23に登録する。   The server 20 and the client terminal 30 establish a secure channel for performing encrypted communication on the network 10 using a shared key, and perform communication of encrypted data. In addition, the server 20 encrypts the site access password received from the client terminal 30 using the above-described shared key, and registers the encrypted site access password in the server DB 23.

このようにセキュアチャネルで用いる共有鍵は、サーバ20とクライアント端末30の双方が保持する別々の情報(例えば乱数)を用いて生成する鍵であり、この共有鍵の生成には、例えばDiffie Hellmanの鍵交換方式を用いる。
サーバ20とクライアント端末30との間における鍵交換には、後述するパスワード認証鍵交換プロトコルを利用する。このパスワード認証鍵交換プロトコルで共有した鍵(共有鍵)を、サイトアクセス用パスワードをクライアント端末30からサーバ20に通知する際の暗号化及び復号化に利用するとともに、サーバ20側におけるサイトアクセス用パスワードの暗号化にも利用する。
As described above, the shared key used in the secure channel is a key generated using different information (for example, random numbers) held by both the server 20 and the client terminal 30. For generation of this shared key, for example, Diffie Hellman's A key exchange method is used.
For key exchange between the server 20 and the client terminal 30, a password authentication key exchange protocol described later is used. The key (shared key) shared by this password authentication key exchange protocol is used for encryption and decryption when notifying the server access password from the client terminal 30 to the server 20, and the site access password on the server 20 side. It is also used for encryption.

また、サイトアクセス用パスワードを一度利用した後に、サーバ20は、乱数を生成する。この乱数は、クライアント端末30がサイト40に次回アクセスする際に利用する次回用の共有鍵の生成に用いられる。サーバ20は、この次回用の乱数を任意に二分割し、一方を前回の共有鍵で暗号化し、サーバ20側からクライアント端末30に通知する。サーバ20は、二分割した乱数の他方をサーバ20側で保持する。
また、サーバ20は、次回用の共有鍵でサイトアクセス用パスワードを暗号化し、これを保持する。この暗号化が済むと、サーバ20は、次回用の共有鍵を削除する。
クライアント端末30と、サーバ20とが、二分割した乱数の一方と他方をそれぞれ保持し、次回の共有鍵を生成する際に用いるため、次回の処理においても、セキュアチャネルを確立する時の鍵は同一の鍵となり、この共有鍵を用いてサイト用アクセスパスワードを暗号化する。
In addition, after using the site access password once, the server 20 generates a random number. This random number is used to generate a shared key for the next time used when the client terminal 30 accesses the site 40 next time. The server 20 arbitrarily divides the random number for the next time into two, encrypts one with the previous shared key, and notifies the client terminal 30 from the server 20 side. The server 20 holds the other of the two divided random numbers on the server 20 side.
Further, the server 20 encrypts the site access password with the next shared key and holds it. When this encryption is completed, the server 20 deletes the shared key for the next time.
Since the client terminal 30 and the server 20 respectively hold one and the other of the divided random numbers and generate the next shared key, the key for establishing the secure channel is also used in the next processing. It becomes the same key, and the site access password is encrypted using this shared key.

以上のような手法により、複数のサイトアクセス用パスワードを暗号化してサーバDB23に登録すれば、クライアント端末30は、シングルサインオンで複数のサイトにアクセスすることができる。   If a plurality of site access passwords are encrypted and registered in the server DB 23 by the method as described above, the client terminal 30 can access a plurality of sites by single sign-on.

[動作例]
次に、この実施の形態に係るパスワード認証鍵交換システムにおいて、サーバ20と、クライアント端末30とが、ネットワーク10を通じて、実際には複数存在するサイト40にシングルサインオンでアクセスするときの動作例を示す。
この通信は、サイトアクセス用パスワードの登録処理と、サイトアクセス用パスワードの利用処理とに大別される。
[Operation example]
Next, in the password authentication key exchange system according to this embodiment, an operation example when the server 20 and the client terminal 30 access a plurality of sites 40 that actually exist via the network 10 by single sign-on. Show.
This communication is roughly divided into a site access password registration process and a site access password use process.

<サイトアクセス用パスワード登録処理>
図2ないし図4は、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワード登録処理の手順を時系列的に示している。このサイトアクセス用パスワードの登録処理に際しては、ユーザのユーザIDとパスワードπが対応付けられて事前にサーバ20のサーバDB23に登録されているものとする。
<Site access password registration process>
FIG. 2 to FIG. 4 show a sequence of password registration processing for site access using a password authentication key exchange protocol in time series. In this site access password registration process, it is assumed that the user ID of the user and the password π are associated with each other and registered in the server DB 23 of the server 20 in advance.

サーバ制御部22と、クライアント制御部32との間における通信は、すべてI/F21、ネットワーク10及びI/F31を通じて行われるため、以下では、この記載を省略するが、特に、サーバ制御部22と、クライアント制御部32とが共有鍵を用いてデータを暗号化して通信を行う場合、通信チャネルはセキュアチャネルとなる。
また、図5は、サーバ20のサーバDB23内と、クライアント端末30のメモリ内におけるデータ構造を示す。
なお、図2ないし図4における処理(1)〜(26)は、具体的には、図1に示す機能ブロックにおいて行われる。
Since all communication between the server control unit 22 and the client control unit 32 is performed through the I / F 21, the network 10, and the I / F 31, this description is omitted below. When the client control unit 32 performs communication by encrypting data using a shared key, the communication channel is a secure channel.
FIG. 5 shows a data structure in the server DB 23 of the server 20 and in the memory of the client terminal 30.
The processing (1) to (26) in FIGS. 2 to 4 is specifically performed in the functional block shown in FIG.

(1)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、I/F31を通じてトークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードπを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator)をクライアント端末30に入力する。 (1) When the user operates the client terminal 30 to access the server 20, the client control unit 32 secures a token through the I / F 31. The user inputs the user ID and password π to the client terminal 30. At this time, the user inputs site information (for example, URL (Uniform Resource Locator)) to be accessed to the client terminal 30.

(2)クライアント制御部32は、後述する共有鍵を生成するための乱数C1を生成する。
(3)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(2) The client control unit 32 generates a random number C1 for generating a shared key described later.
(3) The client control unit 32 notifies the server control unit 22 of the site information that the user desires to access and the user ID.

(4)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(5)サーバ制御部22は、(4)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、共有鍵生成用の乱数S1を生成する。また、このとき、サーバ制御部22は、(3)の処理で通知を受けたサイト情報をユーザIDと対応付けてサーバDB23に登録する。
(6)サーバ制御部22は、(4)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(4) The server control unit 22 confirms whether the user ID notified from the client control unit 32 is registered in the server DB 23.
(5) When the server control unit 22 confirms that the user ID is registered in the server DB 23 in the process (4), the server control unit 22 generates a random number S1 for generating a shared key. At this time, the server control unit 22 registers the site information notified in the process (3) in the server DB 23 in association with the user ID.
(6) When the server control unit 22 confirms that the user ID is not registered in the server DB 23 in the process (4), the server control unit 22 notifies the client terminal 30 of an error.

(7)クライアント制御部32は、(1)の処理でユーザによってパスワードπが入力されると、このパスワードπのハッシュ値H(π)を生成し、ハッシュ値H(π)と、(2)の処理で生成した乱数C1とを用いて、クライアントデータWaを生成する。
(8)クライアント制御部32は、(7)の処理で生成したクライアントデータWaをサーバ制御部22に通知する。
(7) When the password π is input by the user in the process (1), the client control unit 32 generates a hash value H (π) of the password π, and the hash value H (π), (2) The client data Wa is generated using the random number C1 generated by the above process.
(8) The client control unit 32 notifies the server control unit 22 of the client data Wa generated in the process (7).

ここで、クライアントデータWaは、パスワードπのハッシュ値をH(π)、離散対数のドメインパラメータをk,qとすると、下記式により求めることができる。
g1 = H(π)^k mod q
Wa = g1^C1 mod q
Here, the client data Wa can be obtained by the following equation, where H (π) is a hash value of the password π and k and q are domain parameters of discrete logarithm.
g1 = H (π) ^ k mod q
Wa = g1 ^ C1 mod q

(9)サーバ制御部22は、(8)の処理でクライアント制御部32において生成されたクライアントデータWaが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているか等を確認する。
(10) サーバ制御部22は、(9)の処理でクライアントデータWaが正しく計算されていることを確認した場合には、(4)の処理でクライアント端末30から受信したユーザIDに対応するパスワードπをサーバDB23から読み出し、そのハッシュ値H(π)と、(5)の処理で生成した乱数S1とを用いて、サーバデータWbを生成する。さらに、サーバ制御部22は、このサーバデータWbをクライアント制御部32に通知する。
(9) The server control unit 22 confirms whether the client data Wa generated in the client control unit 32 in the process (8) is correctly calculated. For example, in the case of calculation by mod q, it is confirmed whether the obtained value is a value equal to or less than q-1.
(10) If the server control unit 22 confirms that the client data Wa is correctly calculated in the process (9), the password corresponding to the user ID received from the client terminal 30 in the process (4) π is read from the server DB 23, and server data Wb is generated using the hash value H (π) and the random number S1 generated in the process (5). Further, the server control unit 22 notifies the server control unit 32 of the server data Wb.

サーバデータWbは、例えば、下記式により求めることができる。
g1 = H(π)^k mod q
Wb = g1^S1 mod q
The server data Wb can be obtained by the following equation, for example.
g1 = H (π) ^ k mod q
Wb = g1 ^ S1 mod q

(11)サーバ制御部22は、(9)の処理でクライアントデータWaが正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、乱数S1を消去する。
(12)サーバ制御部22は、(9)の処理で正確性を確認したクライアントデータWaと、(5)の処理で生成した乱数S1を用いて鍵交換共有データKbを生成する。
この鍵交換共有データKbのハッシュ値が、共有鍵SK1となる。つまり、サーバ制御部22で生成する共有鍵SK1は、以下のようになる。Hはハッシュ関数である。
SK1=H(Kb||Pi)
(11) When the server control unit 22 confirms that the client data Wa is not correctly calculated in the process of (9), the server control unit 22 notifies the client control unit 32 of an error. At this time, the server control unit 22 deletes the random number S1.
(12) The server control unit 22 generates the key exchange shared data Kb using the client data Wa whose accuracy has been confirmed by the process (9) and the random number S1 generated by the process (5).
The hash value of the key exchange shared data Kb becomes the shared key SK1. That is, the shared key SK1 generated by the server control unit 22 is as follows. H is a hash function.
SK1 = H (Kb || Pi)

(13)クライアント制御部32は、サーバデータWbが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているか等を確認する。
(14)クライアント制御部32は、(13)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(2)の処理で生成した乱数C1と、サーバ制御部22から通知されたサーバデータWbとを消去する。
(15)クライアント制御部32は、(12)の処理でサーバ制御部22から通知されたサーバデータWbと、(2)の処理で生成した乱数C1とを用いて鍵交換共有データKaを生成する。この鍵交換共有データKaのハッシュ値が、共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SK1は、以下のようになる。
SK1=H(Ka||Pi)
(13) The client control unit 32 confirms whether the server data Wb is correctly calculated. For example, in the case of calculation by mod q, it is confirmed whether the obtained value is a value equal to or less than q-1.
(14) When the client control unit 32 confirms that the confirmation data is not correctly calculated in the process (13), the client control unit 32 notifies the server control unit 22 of an error, and generates the random number C1 generated in the process (2). And the server data Wb notified from the server control unit 22 are deleted.
(15) The client control unit 32 generates key exchange shared data Ka using the server data Wb notified from the server control unit 22 in the process (12) and the random number C1 generated in the process (2). . The hash value of this key exchange shared data Ka becomes a shared key. That is, the shared key SK1 generated by the client control unit 32 is as follows.
SK1 = H (Ka || Pi)

(16)クライアント制御部32は、鍵交換共有データKa、クライアントデータWa、サーバデータWb、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wa|Wb|Ka|g))をサーバ制御部22に通知する。 (16) The client control unit 32 receives the confirmation data (H (| parameter | Wa | Wb | Ka | g)) that concatenates key exchange shared data Ka, client data Wa, server data Wb, and other necessary information. The server control unit 22 is notified.

ここで、サーバ制御部22が生成する鍵交換共有データKbと、クライアント制御部32が生成する鍵交換共有データKaとは、Diffie Hellmanの鍵交換方式によれば、以下の通り一致する。
任意の素数a(1<=a<=q-1)に対してa = g^b mod qとなる素数bが存在する(qは、この条件を満たす任意の素数)。
Ka= b^C1 mod q
=( g1^S1 mod q)^C1 mod q
=(g1^S1)^C1 mod q = g1^S1・C1 mod q
Kb= a^C1 mod q= g1^C1 mod p)^S1 mod q
=(g1^C1)^S1 mod q
= g1^C1・S1 mod q
である。この通り、KaとKbは一致する。
Here, the key exchange shared data Kb generated by the server control unit 22 and the key exchange shared data Ka generated by the client control unit 32 match as follows according to the Diffie Hellman key exchange method.
For any prime number a (1 <= a <= q-1), there exists a prime number b such that a = g ^ b mod q (q is an arbitrary prime number that satisfies this condition).
Ka = b ^ C1 mod q
= (G1 ^ S1 mod q) ^ C1 mod q
= (G1 ^ S1) ^ C1 mod q = g1 ^ S1 · C1 mod q
Kb = a ^ C1 mod q = g1 ^ C1 mod p) ^ S1 mod q
= (G1 ^ C1) ^ S1 mod q
= G1 ^ C1 · S1 mod q
It is. In this way, Ka and Kb match.

(17)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wa|Wb|Ka|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wa|Wb|Kb|g))とが一致するかどうかを確認する。確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(18)サーバ制御部22は、(17)の処理において、サーバ側の確認データとクライアント側の確認データとが不一致であることを確認した場合には、エラーであることをクライアント制御部32に通知するとともに、乱数S1と確認データを消去する。
(17) The server control unit 22 confirms the confirmation data (H (| parameter | Wa | Wb | Ka | g)) notified from the client control unit 32 and the corresponding server-side confirmation data (H (| parameter) | Wa | Wb | Kb | g)) is matched. If the confirmation data match is confirmed, the client control unit 32 is notified accordingly.
(18) When the server control unit 22 confirms that the server-side confirmation data and the client-side confirmation data do not match in the processing of (17), the server control unit 22 notifies the client control unit 32 of an error. At the same time, the random number S1 and the confirmation data are deleted.

(19)クライアント制御部32は、ユーザがサーバ20への登録を希望するサイトアクセス用パスワードを(15)の処理で生成した共有鍵SK1で暗号化し、セキュアチャネルを通じて、この暗号データをサーバ制御部22に通知する。 (19) The client control unit 32 encrypts the site access password that the user desires to register with the server 20 with the shared key SK1 generated in the process (15), and transmits this encrypted data to the server control unit through the secure channel. 22 is notified.

(20)サーバ制御部22は、(12)の処理で生成した共有鍵SK1を用いて、クライアント制御部32から通知された暗号データを復号化することにより、サイトアクセス用パスワードを得る。
(21)サーバ制御部22は、(20)の処理で取得したサイトアクセス用パスワードを用いて、そのサイト40にログインし、クライアント制御部32から通知を受けたサイトアクセス用パスワードが正しいか否かを確認する。
(22)サーバ制御部22は、(21)の処理において、サイトアクセス用パスワードに対応するサイト40に正しくログインできなかった場合は、クライアント制御部32にエラーであることを通知し、サイトアクセス用パスワードの再入力を求める。
(23)サーバ制御部22は、サイトアクセス用パスワードに対応するサイト40に正しくログインできた場合は、乱数(C2*S2)を生成する。サーバ制御部22は、乱数(C2*S2)を任意に二分割し、その一方の乱数S2をサーバDB23に登録し、他方の乱数C2を(12)の処理で生成した共有鍵SK1で暗号化して、セキュアチャネルを通じて、クライアント制御部32に通知する。
(20) The server control unit 22 obtains a site access password by decrypting the encrypted data notified from the client control unit 32 using the shared key SK1 generated in the process of (12).
(21) The server control unit 22 logs in to the site 40 using the site access password acquired in the process of (20), and whether or not the site access password notified from the client control unit 32 is correct. Confirm.
(22) In the process of (21), the server control unit 22 notifies the client control unit 32 that an error has occurred if the login to the site 40 corresponding to the site access password is not successful, and for site access. Require password re-entry.
(23) The server control unit 22 generates a random number (C2 * S2) when successfully logging in to the site 40 corresponding to the site access password. The server control unit 22 arbitrarily divides the random number (C2 * S2) into two, registers one random number S2 in the server DB 23, and encrypts the other random number C2 with the shared key SK1 generated in the process of (12). The client control unit 32 is notified through the secure channel.

(24)クライアント制御部32は、(15)の処理で生成した共有鍵SK1を用いて、サーバ制御部22から受け取った暗号データを復号化し、(23)の処理で二分割された乱数の一方の乱数C2を得る。クライアント制御部32は、この乱数C2をトークンに設定する。
(25)クライアント制御部32は、トークンに乱数C2を設定し、サーバ制御部22に通知する。クライアント制御部32は、乱数C2をサーバ制御部22に通知した後に、トークンを返却するため乱数C2をトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみに乱数を保持し、クライアントメモリ33には登録しなくても良い。
このときのクライアントメモリ33内のデータ構造は、図5(b)に示す通りである。
(24) The client control unit 32 uses the shared key SK1 generated in the process (15) to decrypt the encrypted data received from the server control unit 22, and one of the random numbers divided into two in the process (23) To obtain a random number C2. The client control unit 32 sets this random number C2 as a token.
(25) The client control unit 32 sets the random number C2 in the token and notifies the server control unit 22 of it. After notifying the server control unit 22 of the random number C2, the client control unit 32 removes the random number C2 from the token and registers it in the client memory 33 in order to return the token. When the token user uses a plurality of client terminals, the random number is held only in the token and may not be registered in the client memory 33.
The data structure in the client memory 33 at this time is as shown in FIG.

(26)サーバ制御部22は、クライアント制御32から乱数C2をトークンに設定した旨の通知を受けると、次回用の乱数(C2*S2)を用いて共有鍵SK2を生成する。さらに、サーバ制御部22は、サイトアクセス用パスワードを共有鍵SK2で暗号化し、乱数S2とともにサーバDB23に登録する。また、サーバ制御部22は、生成した次回用の共有鍵SK2を削除する。このときのサーバDB23内のデータ構造は、図5(a)に示す通りである。 (26) Upon receiving notification from the client control 32 that the random number C2 has been set as a token, the server control unit 22 generates the shared key SK2 using the next random number (C2 * S2). Furthermore, the server control unit 22 encrypts the site access password with the shared key SK2, and registers it in the server DB 23 together with the random number S2. Further, the server control unit 22 deletes the generated next-time shared key SK2. The data structure in the server DB 23 at this time is as shown in FIG.

以上のように、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワードの登録処理によれば、サーバ20とクライアント端末30との間で確立するセキュアチャネルで用いる共有鍵と、サイトアクセス用パスワードを暗号化する鍵とを同一の鍵にしつつ、この共有鍵を生成するために必要な乱数をサーバ20側と、クライアント端末30側とで分割して保持するので、不正者がサーバ20にアクセスしても、共有鍵を生成することのできない、安全性の高いパスワード認証鍵交換システムを提供することができる。   As described above, according to the registration process of the site access password using the password authentication key exchange protocol, the shared key used in the secure channel established between the server 20 and the client terminal 30 and the site access password are encrypted. Since the random number necessary to generate this shared key is divided and held on the server 20 side and the client terminal 30 side while the same key is used as an encryption key, an unauthorized person accesses the server 20 In addition, a highly secure password authentication key exchange system that cannot generate a shared key can be provided.

<サイトアクセス用パスワード利用処理>
図6ないし図9は、サイトアクセス用パスワード利用処理のための手順説明図である。図6ないし図9における処理(31)〜(58)は、具体的には、図1に示す機能ブロックにおいて行われる。このサイトアクセス用パスワードの利用処理は、基本的にはサイトアクセス用パスワードの登録処理に準ずる処理である。また、サーバ制御部22と、クライアント制御部32との間における通信は、すべてI/F21、ネットワーク10及びI/F31を通じて行われるため、以下では、この記載を省略する。
なお、サイトアクセス用パスワード利用処理は、サーバ20とクライアント端末30とよって繰り返し行われる処理であるため、ここでは、説明を一般化するために、サイトアクセス用パスワード登録処理における乱数C1、乱数S1、クライアントデータWa、サーバデータWb、共有鍵鍵交換共有データKa、Kb、及び、共有鍵SK1に相当する値を、それぞれ、乱数Cx、乱数Sx、クライアントデータWax、サーバデータWbx、共有鍵鍵交換共有データKax、Kbx、及び、共有鍵SKxとする。xは世代数を表し、例えば、乱数S(x+1)は、乱数Sxを生成した処理の次回処理で生成された一世代後の乱数であることを意味する。
<Password access processing for site access>
6 to 9 are explanatory diagrams of procedures for site access password use processing. The processing (31) to (58) in FIGS. 6 to 9 is specifically performed in the functional block shown in FIG. The site access password use process is basically a process similar to the site access password registration process. In addition, since all communication between the server control unit 22 and the client control unit 32 is performed through the I / F 21, the network 10, and the I / F 31, this description is omitted below.
Note that the site access password utilization process is a process repeatedly performed by the server 20 and the client terminal 30, and here, in order to generalize the description, the random number C1, the random number S1, Values corresponding to the client data Wa, the server data Wb, the shared key key exchange shared data Ka, Kb, and the shared key SK1, respectively, are the random number Cx, the random number Sx, the client data Wax, the server data Wbx, and the shared key key exchange shared. It is assumed that data Kax, Kbx, and shared key SKx. x represents the number of generations. For example, the random number S (x + 1) means a random number after one generation generated in the next process of the process of generating the random number Sx.

(31)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、トークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードπを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator) をクライアント端末30に入力する。
(32)クライアント制御部32は、クライアントメモリ33内に登録されている乱数Cxをトークンに設定する。なお、事前にトークンに乱数Cxが登録されている場合は、省略しても良い。
(33)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(31) When the user operates the client terminal 30 to access the server 20, the client control unit 32 secures a token. The user inputs the user ID and password π to the client terminal 30. At this time, the user inputs site information (for example, URL (Uniform Resource Locator)) desired to be accessed to the client terminal 30.
(32) The client control unit 32 sets the random number Cx registered in the client memory 33 as a token. If the random number Cx is registered in advance in the token, it may be omitted.
(33) The client control unit 32 notifies the server control unit 22 of the site information that the user desires to access and the user ID.

(34)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(35)サーバ制御部22は、(34)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、このユーザIDに対応する乱数SxをサーバDB23から読み出す。
(36)サーバ制御部22は、(34)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(34) The server control unit 22 confirms whether or not the user ID notified from the client control unit 32 is registered in the server DB 23.
(35) When the server control unit 22 confirms that the user ID is registered in the server DB 23 in the process (34), the server control unit 22 reads the random number Sx corresponding to the user ID from the server DB 23.
(36) The server control unit 22 notifies the client terminal 30 of an error when confirming that the user ID is not registered in the server DB 23 in the process of (34).

(37)クライアント制御部32は、(31)の処理でユーザによって入力されたパスワードπのハッシュ値H(π)を生成し、このH(π)と、(32)の処理でトークンに設定した乱数Cxとを用いて、クライアントデータWaxを生成する。
(38)クライアント制御部32は、(37)の処理で生成したクライアントデータWaxをサーバ制御部22に通知する。
(37) The client control unit 32 generates the hash value H (π) of the password π input by the user in the process of (31), and sets this H (π) and the token in the process of (32). Client data Wax is generated using the random number Cx.
(38) The client control unit 32 notifies the server control unit 22 of the client data Wax generated in the process of (37).

クライアントデータWaxは、下記式により求めることができる。
g1’ = H(π)^k mod q
Wax = g1’^Cx mod q
The client data Wax can be obtained by the following formula.
g1 ′ = H (π) ^ k mod q
Wax = g1 '^ Cx mod q

(39)サーバ制御部22は、(38)の処理でクライアント制御部32において生成されたクライアントデータWaxが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているかを確認する。
(40) サーバ制御部22は、(39)の処理でクライアントデータWaxが正しく計算されていることを確認した場合には、(34)の処理でクライアント端末30から受信したユーザIDに対応するパスワードπをサーバDB23から読み出し、このパスワードπのハッシュ値H(π)と、(35)の処理で用いた乱数Sxとを用いて、サーバデータWbxを生成する。さらに、サーバ制御部22は、このサーバデータWbxをクライアント制御部32に通知する。
(39) The server control unit 22 confirms whether the client data Wax generated in the client control unit 32 in the process of (38) is correctly calculated. For example, when an operation is performed using mod q, it is confirmed whether the obtained value is a value equal to or less than q-1.
(40) When the server control unit 22 confirms that the client data Wax is correctly calculated in the process of (39), the password corresponding to the user ID received from the client terminal 30 in the process of (34) π is read from the server DB 23, and server data Wbx is generated using the hash value H (π) of the password π and the random number Sx used in the process (35). Further, the server control unit 22 notifies the server control unit 32 of the server data Wbx.

サーバデータWbxは、下記式により求めることができる。
g1’ = H(π)^k mod q
Wbx = g1’^Sx mod q
Server data Wbx can be obtained by the following equation.
g1 ′ = H (π) ^ k mod q
Wbx = g1 ′ ^ Sx mod q

(41)サーバ制御部22は、(39)の処理でクライアントデータWaxが正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、乱数Sxを消去する。
(42)サーバ制御部22は、(39)の処理で正しく計算されていることを確認したクライアントデータWaxと、(35)の処理で読み出した乱数Sxを用いて鍵交換共有データKbxを生成する。この鍵交換共有データKbxのハッシュ値が、共有鍵となる。つまり、サーバ制御部22で生成する共有鍵SKxは、以下のようになる。
SKx=Hash(Kbx||Pi)
(41) When the server control unit 22 confirms that the client data Wax is not correctly calculated in the processing of (39), the server control unit 22 notifies the client control unit 32 of an error. At this time, the server control unit 22 deletes the random number Sx.
(42) The server control unit 22 generates the key exchange shared data Kbx using the client data Wax confirmed to be correctly calculated in the process (39) and the random number Sx read in the process (35). . The hash value of this key exchange shared data Kbx becomes a shared key. That is, the shared key SKx generated by the server control unit 22 is as follows.
SKx = Hash (Kbx || Pi)

(43)クライアント制御部32は、サーバデータWbxが正しく計算されているかを確認する。例えばmod qによる演算をしている場合は、q−1以下の値になっているか等を確認する。
(44)クライアント制御部32は、(43)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(35)の処理で読み出した乱数Sxと、サーバ制御部22から通知されたサーバデータWbxとを消去する。
(45)クライアント制御部32は、(42)の処理でサーバ制御部22から通知されたサーバデータWbxと、(35)の処理で読み出した乱数Sxを用いて鍵交換共有データKaxを生成する。この鍵交換共有データKaxのハッシュ値が、共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SKxは、以下のようになる。
SKx=H(Kax||Pi)
(43) The client control unit 32 confirms whether the server data Wbx is correctly calculated. For example, in the case of calculation by mod q, it is confirmed whether the value is q−1 or less.
(44) When the client control unit 32 confirms that the confirmation data is not correctly calculated in the process of (43), the client control unit 32 notifies the server control unit 22 of an error, and reads the random number Sx read in the process of (35). And the server data Wbx notified from the server control unit 22 are deleted.
(45) The client control unit 32 generates key exchange shared data Kax using the server data Wbx notified from the server control unit 22 in the process (42) and the random number Sx read in the process (35). The hash value of this key exchange shared data Kax becomes a shared key. That is, the shared key SKx generated by the client control unit 32 is as follows.
SKx = H (Kax || Pi)

なお、鍵交換共有データKaxとKbxとの同一性については、サイトアクセス用パスワード登録処理における鍵交換共有データKaとKbとが同一であることと同じ理由により説明が付くので、省略する。
(46)クライアント制御部32は、鍵交換共有データKax、クライアントデータWax、サーバデータWbx、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wax|Wbx|Kax|g))をサーバ制御部22に通知する。
Note that the identity between the key exchange shared data Kax and Kbx is omitted because it will be explained for the same reason that the key exchange shared data Ka and Kb in the site access password registration process are identical.
(46) The client control unit 32 receives the key exchange shared data Kax, the client data Wax, the server data Wbx, and confirmation data (H (| parameter | Wax | Wbx | Kax | g)) concatenated with other necessary information. The server control unit 22 is notified.

(47)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wax|Wbx|Kax|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wax|Wbx|Kbx|g))とが一致するか確認する。サーバ制御部22は、これらの確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(48)サーバ制御部22は、(47)の処理において、サーバ側の確認データと、クライアント側の確認データの不一致を確認した場合には、エラーであることをクライアント制御部32に通知するとともに、乱数Cxと確認データを消去する。
(47) The server control unit 22 confirms the notification data (H (| parameter | Wax | Wbx | Kax | g)) notified from the client control unit 32 and the corresponding server-side confirmation data (H (| parameter) | Wax | Wbx | Kbx | g)) is matched. When the server control unit 22 confirms the coincidence of these confirmation data, the server control unit 22 notifies the client control unit 32 to that effect.
(48) When the server control unit 22 confirms inconsistency between the server side confirmation data and the client side confirmation data in the processing of (47), the server control unit 22 notifies the client control unit 32 of an error. The random number Cx and the confirmation data are erased.

(49)サーバ制御部22は、(47)の処理において、サーバ側の確認データと、クライアント側の確認データとの一致を確認した場合には、共有鍵SKxで暗号化されているサイトアクセス用パスワードを復号化する。
(50)サーバ制御部22は、ユーザIDに対応するサイト情報をサーバDB23から読み出し、サイト40に接続するために使用する接続データ(アドレス等)をクライアント制御部32に通知する。
(49) When the server control unit 22 confirms that the server side confirmation data matches the client side confirmation data in the process of (47), the server control unit 22 uses the shared key SKx for site access. Decrypt the password.
(50) The server control unit 22 reads site information corresponding to the user ID from the server DB 23 and notifies the client control unit 32 of connection data (address, etc.) used to connect to the site 40.

(51)クライアント制御部32は、サーバ20を経由して、サイト40にアクセスする。ユーザは、サイト40によるサービスを利用することができる。
(52)クライアント制御部32は、サイト40へのアクセスを終了するかを繰り返し確認する。この処理は、ユーザがクライアント端末30に終了する旨を入力するまでクライアント制御部32によって繰り返し実行される。
(53)ユーザによってクライアント端末30にサイト40へのアクセスを終了する旨が入力されると、クライアント制御部32は、サーバ制御部22にサイトをログオフする旨を通知する。
(54)サーバ制御部22は、サイト40からログオフする。
(51) The client control unit 32 accesses the site 40 via the server 20. The user can use the service provided by the site 40.
(52) The client control unit 32 repeatedly confirms whether to end the access to the site 40. This process is repeatedly executed by the client control unit 32 until the user inputs an end message to the client terminal 30.
(53) When the user inputs to the client terminal 30 that the access to the site 40 is terminated, the client control unit 32 notifies the server control unit 22 that the site is to be logged off.
(54) The server control unit 22 logs off from the site 40.

(55)サーバ制御部22は、乱数C(x+1)*S(x+1)を生成する。サーバ制御部22は、乱数C(x+1)*S(x+1)を任意に二分割し、その一方の乱数S(x+1)をサーバDB23に登録し、他方の乱数C(x+1)を共有鍵SKxで暗号化して、セキュアチャネルを通じて、クライアント制御部32に通知する。
(56)クライアント制御部32は、共有鍵SKxを用いて、サーバ制御部22から受け取った暗号データを復号化し、二分割された乱数の一方の乱数C(x+1)を得る。クライアント制御部32は、この乱数C(x+1)をトークンに設定する。
(55) The server control unit 22 generates a random number C (x + 1) * S (x + 1). The server control unit 22 arbitrarily divides the random number C (x + 1) * S (x + 1) into two, registers one random number S (x + 1) in the server DB 23, and the other random number C (x + 1) with the shared key SKx. It encrypts and notifies the client control part 32 through a secure channel.
(56) The client control unit 32 decrypts the encrypted data received from the server control unit 22 using the shared key SKx, and obtains one random number C (x + 1) of the two divided random numbers. The client control unit 32 sets this random number C (x + 1) as a token.

(57)クライアント制御部32は、トークンに乱数C(x+1)を設定し、サーバ制御部22に通知する。なお、クライアント制御部32は、乱数C(x+1)をサーバ制御部22に通知した後に、トークンを返却するため乱数C(x+1)をトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみに乱数を保持し、クライアントメモリ33には登録しなくとも良い。
(58)サーバ制御部22は、クライアント制御32から乱数C(x+1)をトークンに設定した旨の通知を受けると、次回用の乱数C(x+1)*S(x+1)を用いて共有鍵SK(x+1)を生成する。また、サーバ制御部22は、サイトアクセス用パスワードを共有鍵SK(x+1)で暗号化し、乱数S(x+1)とともにサーバDB23に登録する。さらに、サーバ制御部22は、生成した次回用の共有鍵SK(x+1)を削除する。
(57) The client control unit 32 sets a random number C (x + 1) in the token and notifies the server control unit 22 of it. The client control unit 32 notifies the server control unit 22 of the random number C (x + 1), and then removes the random number C (x + 1) from the token and registers it in the client memory 33 in order to return the token. When the token user uses a plurality of client terminals, the random number is held only in the token and does not have to be registered in the client memory 33.
(58) Upon receiving notification from the client control 32 that the random number C (x + 1) has been set as a token, the server control unit 22 uses the next random number C (x + 1) * S (x + 1) to share the key SK ( x + 1) is generated. Further, the server control unit 22 encrypts the site access password with the shared key SK (x + 1) and registers it in the server DB 23 together with the random number S (x + 1). Further, the server control unit 22 deletes the generated next-time shared key SK (x + 1).

以上のように、第1実施形態のパスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワードの利用処理によれば、サーバ20とクライアント端末30との間で確立するセキュアチャネルで用いる共有鍵と、サイトアクセス用パスワードを暗号化する鍵とを同一の鍵にしつつ、この共有鍵を生成するために必要な乱数をサーバ20側と、クライアント端末30側とで分割して保持するので、不正者がサーバ20にアクセスしても、共有鍵を生成することのできない、安全性の高いパスワード認証鍵交換システムを提供することができる。   As described above, according to the process for using the password for site access using the password authentication key exchange protocol according to the first embodiment, the shared key used in the secure channel established between the server 20 and the client terminal 30, the site While the same key is used as the key for encrypting the access password, the random number necessary for generating this shared key is divided and held on the server 20 side and the client terminal 30 side, so that an unauthorized person can Therefore, it is possible to provide a highly secure password authentication key exchange system in which the shared key cannot be generated even if the access to the access key 20 is performed.

なお、以上の説明では、サーバ20上にあるサイトアクセス用パスワードを共有鍵で暗号化することによって保護する手法を示したが、共有鍵を用いて保護する対象は、サイトアクセス用パスワードに限定されず、個人のみが利用する秘密鍵や権限情報などの個人情報を、さらには個人情報を含むアプリケーション、ワンタイムで利用するチケット設定などを秘密情報として保護することも可能である。   In the above description, the method of protecting the site access password on the server 20 by encrypting with the shared key has been described. However, the object to be protected using the shared key is limited to the site access password. In addition, it is possible to protect personal information such as a secret key and authority information used only by an individual, as well as an application including the personal information and a ticket setting used for one time as secret information.

クライアント端末30には、利用毎に毎回異なる乱数が通知し設定されるだけなので、トークンとしてメモリーカードなどを利用することができ、且つリモートに設定したパスワードなどの個人情報の保護を、サーバでの鍵の管理負担を軽減しつつ実現できる。   Since the client terminal 30 is only notified and set a different random number every time it is used, a memory card or the like can be used as a token, and personal information such as a password set remotely can be protected at the server. This can be achieved while reducing the key management burden.

[第2実施形態]
次に、本発明の第2実施形態を説明する。第2実施形態では、図1に示したサイト40において、秘密分散法を用いて、サイトアクセス用パスワードとシェアから2つの分散データを生成する。クライアント端末30は、2つの分散データを復元するためのシェアを保持し、シェアのハッシュ値をクライアント端末30が利用する乱数にする。サーバ20は、分散データの一方を共有鍵で暗号化して保持し、他方の分散データを乱数として利用する。
サーバ20とクライアント端末30との間で形成するセキュアチャネルで用いる暗号化のための共有鍵は、サーバ20が有する乱数と、クライアント端末30が有する乱数とを利用して生成した共有鍵となる。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. In the second embodiment, at the site 40 shown in FIG. 1, two shared data are generated from the site access password and the share using the secret sharing method. The client terminal 30 holds a share for restoring the two shared data, and uses the hash value of the share as a random number used by the client terminal 30. The server 20 encrypts and holds one of the distributed data with a shared key, and uses the other distributed data as a random number.
The shared key for encryption used in the secure channel formed between the server 20 and the client terminal 30 is a shared key generated by using the random number that the server 20 has and the random number that the client terminal 30 has.

クライアント端末30がサイト40にアクセスする際には、セキュアチャネルで共有鍵を生成し、サーバ20がこの共有鍵を用いて暗号化された分散データを復号化する。サーバ20は、さらに分散された2つの分散データとシェアを用いてサイトアクセスパスワードを生成する。このようにして、クライアント端末30は、サーバ20を介して、実際には複数あるサイト40にシングルサインオンすることができる。   When the client terminal 30 accesses the site 40, a shared key is generated on the secure channel, and the server 20 decrypts the distributed data encrypted using the shared key. The server 20 generates a site access password using the two further distributed data and shares. In this manner, the client terminal 30 can actually single-sign on to a plurality of sites 40 via the server 20.

[動作例]
次に、第2実施形態において、サーバ20と、クライアント端末30とが、ネットワーク10を通じて通信を行い、実際には複数存在するサイト40にシングルサインオンでアクセスするときの動作例を示す。この通信は、サイトアクセス用パスワードの登録処理と、サイトアクセス用パスワードの利用処理とに大別される。
[Operation example]
Next, in the second embodiment, an example of operation when the server 20 and the client terminal 30 communicate via the network 10 and actually access a plurality of sites 40 by single sign-on will be described. This communication is roughly divided into a site access password registration process and a site access password use process.

<サイトアクセス用パスワード登録処理>
図10〜図11は、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワード登録処理の手順説明図である。このサイトアクセス用パスワードの登録処理に際しては、ユーザのユーザIDとパスワードφが対応付けられて事前にサーバ20のサーバDB23に登録されているものとする。また、サーバ制御部22、クライアント制御部32及びサイト制御部42の間における通信は、すべてI/F21、ネットワーク10、I/F31及びI/F41を通じて行われるため、以下では、この記載を省略する。また、図12は、サーバ20のサーバDB23内と、クライアント端末30のメモリ内におけるデータ構造説明図である。
なお、図10及び図11における処理(101)〜(118)は、具体的には、図1に示す機能ブロックにおいて行われる。
<Site access password registration process>
10 to 11 are explanatory diagrams of procedures for password registration processing for site access using the password authentication key exchange protocol. In this site access password registration process, it is assumed that the user ID of the user and the password φ are associated with each other and registered in the server DB 23 of the server 20 in advance. In addition, since communication among the server control unit 22, the client control unit 32, and the site control unit 42 is all performed through the I / F 21, the network 10, the I / F 31 and the I / F 41, this description is omitted below. . FIG. 12 is an explanatory diagram of the data structure in the server DB 23 of the server 20 and in the memory of the client terminal 30.
Note that the processing (101) to (118) in FIGS. 10 and 11 is specifically performed in the functional block shown in FIG.

(101)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、I/F31を通じてトークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードφを入力する。
(102)クライアント制御部32は、ユーザIDに対応するクライアントメモリ33内のデータを読み込み、サイトアクセス用パスワードをサイト40で登録済みかを確認する。具体的には、ユーザIDに対応するクライアントメモリ33内のデータにシェアが存在するか否かを確認する。
(103)クライアント制御部32は、(102)の処理でユーザIDに対応するクライアントメモリ33内のデータにシェアが存在しないことを確認した場合は、I/F31及びネットワーク10を通じ、サーバ20経由でそのユーザが登録を希望するサイトアクセス用パスワードをサイト40に通知する。
(101) When the user operates the client terminal 30 to access the server 20, the client control unit 32 secures a token through the I / F 31. The user inputs the user ID and password φ into the client terminal 30.
(102) The client control unit 32 reads the data in the client memory 33 corresponding to the user ID, and confirms whether the site access password has been registered in the site 40. Specifically, it is confirmed whether or not a share exists in the data in the client memory 33 corresponding to the user ID.
(103) When the client control unit 32 confirms that there is no share in the data in the client memory 33 corresponding to the user ID in the process of (102), it passes through the server 20 via the I / F 31 and the network 10. The site is notified of the site access password that the user desires to register.

(104)サイト制御部42は、クライアント制御部32から通知されたサイトアクセス用パスワードをユーザIDと対応付けてサイトDB43に登録する。
(105)サイト制御部42は、サーバ20のサーバDB23にサイトアクセス用パスワードの分散データを設定するために必要な設定コードと、クライアント端末30が利用するトークンに設定させるシェアとを任意に生成し、ネットワーク10を通じてクライアント端末30のクライアント制御部32に通知する。
(104) The site control unit 42 registers the site access password notified from the client control unit 32 in the site DB 43 in association with the user ID.
(105) The site control unit 42 arbitrarily generates a setting code necessary for setting the distributed data of the password for site access in the server DB 23 of the server 20 and a share to be set in the token used by the client terminal 30. And notifies the client control unit 32 of the client terminal 30 through the network 10.

(106)クライアント制御部32は、(105)の処理でサイト制御部42から通知された設定コードとシェアをクライアントメモリ33に登録する。このときのメモリ33内のデータ構造は、図12(b)に示す通りである。
(107)クライアント制御部32は、サーバアクセス用パスワードφを次式に代入して、g2値を生成する。
g2=H(φ)^k mod q
(106) The client control unit 32 registers the setting code and the share notified from the site control unit 42 in the process of (105) in the client memory 33. The data structure in the memory 33 at this time is as shown in FIG.
(107) The client control unit 32 substitutes the server access password φ into the following equation to generate a g2 value.
g2 = H (φ) ^ k mod q

(108)クライアント制御部32は、(106)の処理でクライアントメモリ33に保存したシェアと、(107)の処理で生成された値g2とを次式に代入してクライアントデータWa’を生成する。クライアント制御部32は、クライアントデータWa’をサイト制御部42に通知する。
Wa’=g2^H(シェア) mod q
(108) The client control unit 32 generates the client data Wa ′ by substituting the share saved in the client memory 33 in the process (106) and the value g2 generated in the process (107) into the following expression. . The client control unit 32 notifies the site control unit 42 of the client data Wa ′.
Wa ′ = g2 ^ H (share) mod q

(109)サイト制御部42は、(105)の処理で生成した設定コードをキー情報として、サイトアクセス用パスワード、シェア、及び、クライアントデータWa’をサイトDB43に保存する。
(110)サーバ制御部22とクライアント制御部32との間で共有鍵を生成する。すなわち、(108)で生成したクライアントデータWa’と乱数とに基づいて生成されるサーバデータWb’とを用いて、実施の形態1における(9)から(18)の処理と同様の処理を実行することにより、サーバ制御部22及びクライアント制御部32は、共有鍵SK1’をそれぞれ生成する。
この結果、サーバ20とクライアント端末30は、共有鍵SK1’を共有する。
(109) The site control unit 42 saves the site access password, the share, and the client data Wa ′ in the site DB 43 using the setting code generated in the process (105) as key information.
(110) A shared key is generated between the server control unit 22 and the client control unit 32. That is, using the client data Wa ′ generated in (108) and the server data Wb ′ generated based on the random number, processing similar to the processing from (9) to (18) in the first embodiment is executed. As a result, the server control unit 22 and the client control unit 32 generate the shared key SK1 ′, respectively.
As a result, the server 20 and the client terminal 30 share the shared key SK1 ′.

(111)クライアント制御部32は、クライアントメモリ33に登録してある設定コードを共有鍵SK1’で暗号化し、セキュアチャネルを通じてサーバ制御部22に通知する。
(112)サーバ制御部22は、共有鍵SK1’を用いて、暗号化された設定コードを復号化するとともに、後述する分散データ1を暗号化するための次回処理用の共有鍵を生成する際に利用する共有鍵生成パラメータPi’と、設定コードとを、サイト制御部42に通知する。
(111) The client control unit 32 encrypts the setting code registered in the client memory 33 with the shared key SK1 ′ and notifies the server control unit 22 through the secure channel.
(112) The server control unit 22 uses the shared key SK1 ′ to decrypt the encrypted setting code and generate a shared key for the next process for encrypting the distributed data 1 to be described later The site control unit 42 is notified of the shared key generation parameter Pi ′ used for the setting and the setting code.

(113)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一であるかを確認する。
(114)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一でないことを確認した場合は、ネットワーク10を通じて、クライアント制御部32にエラーであることを通知する。
(115)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一であることを確認した場合は、(105)の処理で生成した設定コードをサイトDB43から削除し、サイトDB43内において、その設定コードに対応するサイトアクセス用パスワードとシェアを読み出し、このサイトアクセス用パスワードとシェアとから分散データ1及び分散データ2を生成する。
分散データ2=p+x*a+x*b
分散データ1=p+y*a+y*b
ここで、P=サイト用パスワード、[a,b]はシェア,[x,y]は任意の乱数である。
なお、分散の方法は、本方式に限定されるものではない。また、シェアのサイズは、ユーザの利用頻度によって変更しても良い。
(113) The site control unit 42 confirms whether the setting code notified from the server control unit 22 is the same as the setting code generated in the process (105).
(114) When the site control unit 42 confirms that the setting code notified from the server control unit 22 is not the same as the setting code generated in the process (105), the site control unit 42 sends the setting code to the client control unit 32 through the network 10. Notify that there is an error.
(115) When the site control unit 42 confirms that the setting code notified from the server control unit 22 is the same as the setting code generated in the process (105), the site control unit 42 generates the process in the process (105). The setting code is deleted from the site DB 43, the site access password and the share corresponding to the setting code are read in the site DB 43, and the distributed data 1 and the distributed data 2 are generated from the site access password and the share.
Distributed data 2 = p + x * a + x * b
Distributed data 1 = p + y * a + y * b
Here, P = site password, [a, b] is a share, and [x, y] is an arbitrary random number.
Note that the method of dispersion is not limited to this method. The size of the share may be changed according to the usage frequency of the user.

(116)サイト制御部42は、設定コードに対応するクライアントデータWa’をサイトDB43から読み出し、このクライアントデータWa’と分散データ2とを次式に代入して鍵交換共有データZを生成する。
Z = Wa’^分散データ2 mod q
(116) The site control unit 42 reads the client data Wa ′ corresponding to the setting code from the site DB 43, and generates the key exchange shared data Z by substituting the client data Wa ′ and the distributed data 2 into the following equation.
Z = Wa '^ distributed data 2 mod q

(117)サイト制御部42は、鍵交換共有データZと、サーバ20から受信した共有鍵生成パラメータPi’とを用いて共有鍵SKx’を生成し、(115)の処理で生成した分散データ1を暗号化すると、暗号化した分散データ1と暗号化していない分散データ2とをネットワーク10を通じてサーバ20に通知する。なお、サイト制御部42が生成する共有鍵SKx’は、以下のようになる。
SKx’=Hash(Z||Pi’)
(118)サーバ制御部22は、サイト制御部42から通知された、暗号化された分散データ1と、暗号化されていない分散データ2とをユーザIDと対応付けてサーバDB23に登録する。このときのサーバDB23内のデータ構造は、図12(a)に示す通りである。
(117) The site control unit 42 generates the shared key SKx ′ using the key exchange shared data Z and the shared key generation parameter Pi ′ received from the server 20, and the distributed data 1 generated by the process of (115) Is encrypted, the encrypted distributed data 1 and the unencrypted distributed data 2 are notified to the server 20 through the network 10. The shared key SKx ′ generated by the site control unit 42 is as follows.
SKx ′ = Hash (Z || Pi ′)
(118) The server control unit 22 registers the encrypted distributed data 1 and the unencrypted distributed data 2 notified from the site control unit 42 in the server DB 23 in association with the user ID. The data structure in the server DB 23 at this time is as shown in FIG.

以上により、サイトアクセス用パスワード登録処理は終了する。サーバ20には、サイトアクセス用パスワードは登録されていない。   Thus, the site access password registration process ends. The server 20 has no registered site access password.

<サイトアクセス用パスワード利用処理>
図13ないし図16は、サイトアクセス用パスワード利用処理の手順説明図である。また、サーバ制御部22、クライアント制御部32及びサイト制御部42の間における通信は、すべてI/F21、ネットワーク10、I/F31及びI/F41を通じて行われるため、以下では、この記載を省略する。なお、図13ないし図16における処理(131)〜(158)は、具体的には、図1に示す機能ブロックにおいて行われる。
このサイトアクセス用パスワードの利用処理は、基本的にはサイトアクセス用パスワードの登録処理に準ずる処理である。
<Password access processing for site access>
FIG. 13 to FIG. 16 are explanatory diagrams of procedures for the password access processing for site access. In addition, since communication among the server control unit 22, the client control unit 32, and the site control unit 42 is all performed through the I / F 21, the network 10, the I / F 31 and the I / F 41, this description is omitted below. . Note that the processes (131) to (158) in FIGS. 13 to 16 are specifically performed in the functional blocks shown in FIG.
The site access password use process is basically a process similar to the site access password registration process.

(131)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、トークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードφを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator) をクライアント端末30に入力する。
(132)クライアント制御部32は、クライアントメモリ33内に登録されているシェアのハッシュ値をトークンに設定する。なお、事前にトークンにシェアのハッシュ値が設定されている場合は省略しても良い。
(133)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(131) When the user operates the client terminal 30 to access the server 20, the client control unit 32 secures a token. The user inputs the user ID and password φ into the client terminal 30. At this time, the user inputs site information (for example, URL (Uniform Resource Locator)) desired to be accessed to the client terminal 30.
(132) The client control unit 32 sets the hash value of the share registered in the client memory 33 in the token. If a share hash value is set in advance in the token, it may be omitted.
(133) The client control unit 32 notifies the server control unit 22 of the site information that the user desires to access and the user ID.

(134)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(135)サーバ制御部22は、(134)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、このユーザIDに対応する分散データ2をサーバDB23から読み出す。
(136)サーバ制御部22は、(134)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(134) The server control unit 22 confirms whether or not the user ID notified from the client control unit 32 is registered in the server DB 23.
(135) When the server control unit 22 confirms that the user ID is registered in the server DB 23 in the process (134), the server control unit 22 reads the distributed data 2 corresponding to the user ID from the server DB 23.
(136) When the server control unit 22 confirms that the user ID is not registered in the server DB 23 in the process of (134), the server control unit 22 notifies the client terminal 30 of an error.

(137)クライアント制御部32は、(131)の処理でユーザによって入力されたパスワードφのハッシュ値Hash(φ)を生成し、このパスワードφのハッシュ値Hash(φ)と、(132)の処理でトークンに設定した乱数(シェアのハッシュ値H(シェア))とを用いてクライアントデータWax’を生成する。
(138)クライアント制御部32は、(137)の処理で生成したクライアントデータWax’をサーバ制御部22に通知する。
(137) The client control unit 32 generates the hash value Hash (φ) of the password φ input by the user in the process of (131), the hash value Hash (φ) of this password φ, and the process of (132) The client data Wax ′ is generated using the random number (share hash value H (share)) set in the token.
(138) The client control unit 32 notifies the server control unit 22 of the client data Wax ′ generated by the processing of (137).

ここで、クライアントデータWax’は、例えば、次のように算出することができる。
パスワードφのハッシュ値H(φ)を用いて、下記式によりg2を求める。
g2=H(φ)^k mod q
Wax’ = g2^H(シェア) mod q
Here, the client data Wax ′ can be calculated as follows, for example.
Using the hash value H (φ) of the password φ, g2 is obtained by the following formula.
g2 = H (φ) ^ k mod q
Wax '= g2 ^ H (share) mod q

(139)サーバ制御部22は、(138)の処理でクライアント制御部32において生成されたクライアントデータWax’が正しく計算されているかを確認する。例えば、mod q演算をしている場合は、得られる値がq−1以下の値になっているかを確認する。
(140)サーバ制御部22は、(139)の処理でクライアントデータWax’が正しく計算されていることを確認した場合には、(134)の処理でクライアント端末30から受信したユーザIDに対応するパスワードφをサーバDB23から読み出し、このパスワードφのハッシュ値Hash(φ)と、(135)の処理で用いた分散データ2とを用いて、サーバデータWbx’を生成する。さらに、サーバ制御部22は、このサーバデータWbx’をクライアント制御部32に通知する。
(139) The server control unit 22 confirms whether the client data Wax ′ generated in the client control unit 32 in the process (138) is correctly calculated. For example, when a mod q operation is performed, it is confirmed whether the obtained value is a value equal to or less than q-1.
(140) When the server control unit 22 confirms that the client data Wax ′ is correctly calculated in the process of (139), the server control unit 22 corresponds to the user ID received from the client terminal 30 in the process of (134). The password φ is read from the server DB 23, and server data Wbx ′ is generated using the hash value Hash (φ) of the password φ and the distributed data 2 used in the process of (135). Further, the server control unit 22 notifies the server control unit 32 of the server data Wbx ′.

サーバデータWbx’は、下記式により求めることができる。
g2=H(φ)^k mod q
Wbx’ = g2^分散データ2 mod q
Server data Wbx ′ can be obtained by the following equation.
g2 = H (φ) ^ k mod q
Wbx ′ = g2 ^ distributed data 2 mod q

(141)サーバ制御部22は、(139)の処理でクライアントデータWax’が正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、分散データ2を消去する。
(142)サーバ制御部22は、(139)の処理で正確性を確認したクライアントデータWax’と、(135)の処理で読み出した分散データ2を用いて鍵交換共有データKbx’を生成する。この鍵交換共有データKbxのハッシュ値が、共有鍵となる。つまり、サーバ制御部22で生成する共有鍵SKx’は、以下のようになる。
SKx’=H(Kbx’||Pi)
(141) If the server control unit 22 confirms that the client data Wax ′ has not been correctly calculated in the process of (139), the server control unit 22 notifies the client control unit 32 of an error. At this time, the server control unit 22 deletes the distributed data 2.
(142) The server control unit 22 generates key exchange shared data Kbx ′ by using the client data Wax ′ whose accuracy has been confirmed by the process (139) and the distributed data 2 read by the process (135). The hash value of this key exchange shared data Kbx becomes a shared key. That is, the shared key SKx ′ generated by the server control unit 22 is as follows.
SKx ′ = H (Kbx ′ || Pi)

(143)クライアント制御部32は、サーバデータWbx’が正しく計算されているかを確認する。例えば、mod q演算をしている場合は、得られる値がq−1以下の値になっているかを確認する。
(144)クライアント制御部32は、(143)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(135)の処理で読み出した分散データ2と、サーバ制御部22から通知されたサーバデータWbx’とを消去する。
(145)クライアント制御部32は、(142)の処理でサーバ制御部22から通知されたサーバデータWbx’と、(135)の処理で読み出した分散データ2を用いて鍵交換共有データKax’を生成する。この鍵交換共有データKax’のハッシュ値が共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SKx’は、以下のようになる。
SKx’=H(Kax’||Pi)
(146)クライアント制御部32は、鍵交換共有データKax、クライアントデータWax’、サーバデータWbx’、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wax’|Wbx’|Kax|g))をサーバ制御部22に通知する。
(143) The client control unit 32 confirms whether the server data Wbx ′ is correctly calculated. For example, when a mod q operation is performed, it is confirmed whether the obtained value is a value equal to or less than q-1.
(144) If the client control unit 32 confirms that the confirmation data is not correctly calculated in the processing of (143), the client control unit 32 notifies the server control unit 22 of an error and reads the distributed data read out in the processing of (135). 2 and server data Wbx ′ notified from the server control unit 22 are deleted.
(145) The client control unit 32 uses the server data Wbx ′ notified from the server control unit 22 in the process (142) and the shared data 2 read out in the process (135) to obtain the key exchange shared data Kax ′. Generate. The hash value of this key exchange shared data Kax ′ becomes the shared key. That is, the shared key SKx ′ generated by the client control unit 32 is as follows.
SKx '= H (Kax' || Pi)
(146) The client control unit 32 confirms the key exchange shared data Kax, client data Wax ′, server data Wbx ′, and other necessary information (H (| parameter | Wax ′ | Wbx ′ | Kax | g)) is notified to the server control unit 22.

(147)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wax’|Wbx’|Kax|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wax’|Wbx’|Kbx|g))とが一致するか確認する。サーバ制御部22は、これらの確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(148)サーバ制御部22は、(147)の処理において、サーバ側の確認データと、クライアント側の確認データの不一致を確認した場合には、エラーであることをクライアント制御部32に通知するとともに、分散データ2と確認データを消去する。
(147) The server control unit 22 confirms the confirmation data (H (| parameter | Wax ′ | Wbx ′ | Kax | g)) notified from the client control unit 32 and the corresponding confirmation data (H ( | Parameter | Wax ′ | Wbx ′ | Kbx | g)) is confirmed to match. When the server control unit 22 confirms the coincidence of these confirmation data, the server control unit 22 notifies the client control unit 32 to that effect.
(148) In the process of (147), the server control unit 22 notifies the client control unit 32 of an error when confirming a mismatch between the server-side confirmation data and the client-side confirmation data. The distributed data 2 and the confirmation data are deleted.

(149)サーバ制御部22は、共有鍵SKx’で暗号化されている分散データ1を復号化する。
(150)サーバ制御部22は、分散データ1と分散データ2とをクライアント制御部32に通知する。
(149) The server control unit 22 decrypts the distributed data 1 encrypted with the shared key SKx ′.
(150) The server control unit 22 notifies the client control unit 32 of the distributed data 1 and the distributed data 2.

(151)クライアント制御部32は、シェアと、分散データ1及び分散データ2とを用いてサイトアクセス用パスワードを復元し、サーバ20を経由して、サイト40にアクセスする。ユーザは、サイト40によるサービスを利用することができる。
(152)クライアント制御部32は、サイト40へのアクセスを終了するかを繰り返し確認する。この処理は、ユーザがクライアント端末30に終了する旨を入力するまで繰り返し実行される。
(153)ユーザによってクライアント端末30にサイト40へのアクセスを終了する旨が入力されると、クライアント制御部32は、サーバ制御部22にサイトをログオフする旨を通知する。
(154)サーバ制御部22は、サイト40からログオフする。
(151) The client control unit 32 restores the site access password using the share and the distributed data 1 and the distributed data 2, and accesses the site 40 via the server 20. The user can use the service provided by the site 40.
(152) The client control unit 32 repeatedly confirms whether to end the access to the site 40. This process is repeatedly executed until the user inputs an end message to the client terminal 30.
(153) When the user inputs to the client terminal 30 that the access to the site 40 is terminated, the client control unit 32 notifies the server control unit 22 that the site is to be logged off.
(154) The server control unit 22 logs off from the site 40.

(155)サイト制御部42は、サーバ20のサーバDB23にサイトアクセス用パスワードの分散データを設定するために必要な設定コードと、クライアント端末30が利用するトークンに設定させるシェアとを任意に生成し、ネットワーク10を通じてクライアント端末30のクライアント制御部32に通知する。これらの設定コードとシェアは、前回処理のものとは異なる値を有する。
(156)クライアント制御部32は、共有鍵SK(x+1)’を用いて、サーバ制御部22から受け取った暗号データを復号化し、次回処理用のシェアを得る。クライアント制御部32は、この次回処理用のシェアのハッシュ値をトークンに設定する。
(155) The site control unit 42 arbitrarily generates a setting code necessary for setting the distributed data of the site access password in the server DB 23 of the server 20 and a share to be set in the token used by the client terminal 30. And notifies the client control unit 32 of the client terminal 30 through the network 10. These setting codes and shares have different values from those of the previous process.
(156) The client control unit 32 decrypts the encrypted data received from the server control unit 22 using the shared key SK (x + 1) ′ to obtain a share for the next processing. The client control unit 32 sets the hash value of the share for next processing in the token.

(157)クライアント制御部32は、トークンに次回処理用のシェアのハッシュ値を設定し、サーバ制御部22に通知する。なお、クライアント制御部32は、次回処理用のシェアをサーバ制御部22に通知した後に、トークンを返却するため次回処理用のシェアをトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみにシェアを保持し、クライアントメモリ33に登録してなくとも良い。
(158)サーバ制御部22は、クライアント制御32から次回処理用のシェアをトークンに設定した旨の通知を受けると、次回用のシェアのハッシュ値と次回用の分散データ2を用いて共有鍵SK(x+1)’を生成する。さらに、サーバ制御部22は、分散データ1を共有鍵SK(x+1)’で暗号化し、暗号化していない分散データ2とともにサーバDB23に登録する。また、サーバ制御部22は、生成した次回用の共有鍵SK(x+1)’を削除する。
(157) The client control unit 32 sets the hash value of the share for next processing in the token and notifies the server control unit 22 of it. The client control unit 32 notifies the server control unit 22 of the next processing share, and then removes the next processing share from the token and registers it in the client memory 33 in order to return the token. When the token user uses a plurality of client terminals, the token need not be stored in the client memory 33 and held only in the token.
(158) When the server control unit 22 receives notification from the client control 32 that the share for the next processing has been set in the token, it uses the hash value of the next share and the shared data 2 for the next time to use the shared key SK. (x + 1) ′ is generated. Further, the server control unit 22 encrypts the distributed data 1 with the shared key SK (x + 1) ′ and registers it in the server DB 23 together with the unencrypted distributed data 2. Also, the server control unit 22 deletes the generated next-time shared key SK (x + 1) ′.

以上、第2実施形態によれば、クライアント端末30経由でのみサイトアクセス用パスワードの利用が可能になるので、サーバ20側での不正をより厳密に防ぐことができる。   As described above, according to the second embodiment, since the site access password can be used only via the client terminal 30, fraud on the server 20 side can be prevented more strictly.

本発明の第1実施形態に係るパスワード認証鍵交換システムの全体構成図。1 is an overall configuration diagram of a password authentication key exchange system according to a first embodiment of the present invention. 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。Explanatory drawing of the procedure of the password registration process for site access by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。Explanatory drawing of the procedure of the password registration process for site access by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。Explanatory drawing of the procedure of the password registration process for site access by 1st Embodiment. 第1実施形態で使用するデータの構造例を示す図。The figure which shows the structural example of the data used by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the site access password utilization process by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the site access password utilization process by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the site access password utilization process by 1st Embodiment. 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the site access password utilization process by 1st Embodiment. 第2実施形態によるサイトアクセス用パスワード登録処理の手順説明図。Explanatory drawing of the procedure of the password registration process for site access by 2nd Embodiment. 第2実施形態によるサイトアクセス用パスワード登録処理の手順説明図。Explanatory drawing of the procedure of the password registration process for site access by 2nd Embodiment. 第2実施形態で使用するデータの構造例を示す図。The figure which shows the structural example of the data used by 2nd Embodiment. 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the password use process for site access by 2nd Embodiment. 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the password use process for site access by 2nd Embodiment. 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the password use process for site access by 2nd Embodiment. 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。Explanatory drawing of the procedure of the password use process for site access by 2nd Embodiment.

符号の説明Explanation of symbols

10・・・ネットワーク、20・・・サーバ、21,31,41・・・I/F、22・・・サーバ制御部、23・・・サーバDB、30・・・クライアント端末、31・・・I/F、32・・・クライアント制御部、33・・・クライアントメモリ、40・・・サイト、42・・・サイト制御部。   DESCRIPTION OF SYMBOLS 10 ... Network, 20 ... Server, 21, 31, 41 ... I / F, 22 ... Server control part, 23 ... Server DB, 30 ... Client terminal, 31 ... I / F, 32 ... client control unit, 33 ... client memory, 40 ... site, 42 ... site control unit.

Claims (6)

通信路を介して接続された第1装置と第2装置の双方が、相手側で生成された情報(Wa/Wb)と自己側で生成した情報(C1/S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する段階と、
前記第1装置が、前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この暗号データを前記第2装置に伝達する段階と、
前記第2装置が、前記第1装置より受け取った前記暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する段階と、
前記第1装置が、前記第2装置から受け取った暗号データを前記共有鍵(SK1)で復号して前記残部の新規情報(C2)を得、この残部の新規情報(C2)を次回アクセス用に保存する段階と、
前記第2装置が、前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共通鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用に保存する段階とを有する、暗号化された秘密情報の保護方法。
Both the first device and the second device connected via the communication channel are configured to communicate with each other based on information (Wa / Wb) generated on the partner side and information (C1 / S1) generated on the own side. Generating a shared key (SK1) for exchanging information using a secure channel;
The first device encrypts secret information desired to be registered in the second device with the shared key (SK1), and transmits the encrypted data to the second device;
After the second device decrypts the encrypted data received from the first device with the shared key (SK1) and obtains the secret information, it generates new information (C2 * S2) for next access, Storing a part (S2) of the new information (C2 * S2), encrypting the remaining new information (C2) with the shared key (SK1), and transmitting the encrypted information to the first device (client terminal);
The first device decrypts the encrypted data received from the second device with the shared key (SK1) to obtain the remaining new information (C2), and uses the remaining new information (C2) for next access. Saving, and
The second device generates a new shared key (SK2) based on the new information (C2 * S2) for next access, and the secret information decrypted with the common key (SK1) is added to the new shared key. A method of protecting encrypted secret information, comprising: encrypting with (SK2), and storing the information for the next access together with the partial new information (S2).
前記共有鍵を生成する段階は、
前記第1装置が、自己が生成した乱数(C1)に基づいて第1データ(Wa)を生成し、この第1データ(Wa)を前記第2装置に伝達する段階と、
前記第2装置が、前記第1装置より受け取った第1データ(Wa)と自己が生成した乱数(S1)とに基づいて第2データ(Wb)を生成し、この第2データ(Wb)を前記第1装置に伝達するとともに、前記第1データ(Wa)と前記自己が生成した乱数(S1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Kb)を生成する段階と、
前記第1装置が、前記第2装置より受け取った第2データ(Wb)と自己が生成した前記乱数(C1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Ka)を生成する段階とを含み、
これらの共有データの各々から前記共有鍵(SK1)を導出する、
請求項1記載の保護方法。
Generating the shared key comprises:
The first device generates first data (Wa) based on a random number (C1) generated by the first device, and transmits the first data (Wa) to the second device;
The second device generates second data (Wb) based on the first data (Wa) received from the first device and the random number (S1) generated by the second device, and the second data (Wb) is generated. A step of generating shared data (Kb) whose hash value becomes a shared key (SK1) based on the first data (Wa) and the random number (S1) generated by the self, as well as being transmitted to the first device. When,
Based on the second data (Wb) received by the first device from the second device and the random number (C1) generated by the first device, shared data (Ka) whose hash value becomes the shared key (SK1) is obtained. Including a stage of generating,
Deriving the shared key (SK1) from each of these shared data,
The protection method according to claim 1.
前記秘密情報を2つの分散データに分け、
前記第1装置が、前記2つの分散データを復元するためのシェアを保持するとともに、このシェアのハッシュ値を自己側で生成する情報(C1)とし、
前記第2装置が、前記2つの分散データの一方を前記共有鍵(SK1)で暗号化して保持し、他方の分散データを自己側で生成する情報(S1)とすることにより、前記第2装置が、前記2つの分散データと前記シェアとから前記秘密情報を復号可能にする、
請求項2記載の保護方法。
Dividing the secret information into two distributed data,
The first device holds a share for restoring the two distributed data, and generates a hash value of this share on its own side (C1),
The second device encrypts and holds one of the two shared data with the shared key (SK1), and sets the other shared data as information (S1) generated on its own side, whereby the second device Makes it possible to decrypt the secret information from the two distributed data and the share.
The protection method according to claim 2.
前記第1装置が、前記第2装置を介した所定のサイトへのアクセス権限情報を前記秘密情報として前記第2装置に伝達し、
前記第2装置が、前記アクセス権限情報を取得し、このアクセス権限情報を前記メモリ領域に登録することにより、このアクセス権限情報を伴う前記第1装置から前記サイトへのアクセスを可能にする、
請求項1又は2記載の保護方法。
The first device transmits access authority information to a predetermined site via the second device as the secret information to the second device,
The second device obtains the access authority information and registers the access authority information in the memory area, thereby enabling access to the site from the first apparatus with the access authority information.
The protection method according to claim 1 or 2.
通信路を介して接続された第2装置との間で双方向の通信を行う通信装置であって、
前記通信路をセキュアチャネル化して情報交換を行うために前記第2装置と共有する共有鍵(SK1)を生成する鍵情報生成手段と、
秘密情報を自己の前記共有鍵(SK1)で暗号化した暗号データを前記第2装置へ伝達するとともに、前記第2装置で当該第2装置の前記共有鍵(SK1)で暗号化された、次回アクセス用の新規情報(C2*S2)の部分的な新規情報(C2)を前記共有鍵(SK1)で復号して次回アクセス用に保存する暗号・復号手段とを備えている、通信装置。
A communication device that performs bidirectional communication with a second device connected via a communication path,
Key information generating means for generating a shared key (SK1) shared with the second device in order to exchange information by making the communication channel a secure channel;
The encrypted data obtained by encrypting secret information with the shared key (SK1) of itself is transmitted to the second device, and the next time the second device is encrypted with the shared key (SK1) of the second device. A communication apparatus comprising: encryption / decryption means for decrypting partial new information (C2) of new information for access (C2 * S2) with the shared key (SK1) and storing it for next access.
通信路を介して接続された第1装置との間で双方向の通信を行う通信装置であって、
前記通信路をセキュアチャネル化して情報交換を行うために前記第1装置と共有する共有鍵(SK1)を生成する鍵情報生成手段と、
前記第1装置から受け取った、秘密情報を前記共有鍵で暗号化した暗号データを前記共有鍵(SK1)で復号化することにより前記秘密情報を得る暗号・復号手段と、
この暗号・復号手段が前記秘密情報を復号した後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置へ伝達させる情報生成手段とを備えており、
前記鍵情報生成手段は、前記第1装置で生成された情報(Wa)と自己側で生成した情報(S1)とに基づいて前記共有鍵(SK1)を生成し、他方、前記情報生成手段が前記次回アクセス用の新規情報(C2*S2)を生成したときは、当該次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するように構成されており、前記暗号・復号手段は、前記復号された秘密情報を前記新たに生成した共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用に保存するように構成されている、通信装置。
A communication device that performs bidirectional communication with a first device connected via a communication path,
Key information generating means for generating a shared key (SK1) shared with the first device in order to exchange information by converting the communication path into a secure channel;
Encryption / decryption means for obtaining the secret information by decrypting the encrypted data obtained by encrypting the secret information with the shared key received from the first device with the shared key (SK1);
After the encryption / decryption means decrypts the secret information, it generates new information (C2 * S2) for next access, stores a part (S2) of the new information (C2 * S2), and stores the remaining new information. Information generating means for encrypting information (C2) with the shared key (SK1) and transmitting it to the first device;
The key information generating unit generates the shared key (SK1) based on the information (Wa) generated by the first device and the information (S1) generated by itself, while the information generating unit When new information for next access (C2 * S2) is generated, a new shared key (SK2) is generated based on the new information for next access (C2 * S2). The encryption / decryption means is configured to encrypt the decrypted secret information with the newly generated shared key (SK2) and store it for the next access together with the part of new information (S2). Communication equipment.
JP2005288893A 2005-09-30 2005-09-30 Secret information protection method and communication apparatus Active JP4794970B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005288893A JP4794970B2 (en) 2005-09-30 2005-09-30 Secret information protection method and communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005288893A JP4794970B2 (en) 2005-09-30 2005-09-30 Secret information protection method and communication apparatus

Publications (2)

Publication Number Publication Date
JP2007104118A true JP2007104118A (en) 2007-04-19
JP4794970B2 JP4794970B2 (en) 2011-10-19

Family

ID=38030648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005288893A Active JP4794970B2 (en) 2005-09-30 2005-09-30 Secret information protection method and communication apparatus

Country Status (1)

Country Link
JP (1) JP4794970B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009065226A (en) * 2007-09-04 2009-03-26 Kddi Corp Authenticated key exchange system, authenticated key exchange method and program
US8738059B2 (en) 2009-06-18 2014-05-27 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
CN104852796A (en) * 2015-04-13 2015-08-19 南昌大学 Quantum dialogue protocol based on continuous variable and controlled by multiple parties
US9137346B2 (en) 2009-06-18 2015-09-15 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
US9143903B2 (en) 2012-10-19 2015-09-22 Qualcomm Incorporated Requesting and providing acknowledgements to specific PTT talk spurts
JP2019514269A (en) * 2016-03-29 2019-05-30 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. System and method for distribution of identity information based key material and certificate

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075468A (en) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk Internet education system, client server system and recording medium
JP2003037587A (en) * 2001-07-26 2003-02-07 Matsushita Electric Ind Co Ltd Method for generating session key
JP2004234648A (en) * 2003-01-10 2004-08-19 Matsushita Electric Ind Co Ltd Group entry approval system, server apparatus, and client apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075468A (en) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk Internet education system, client server system and recording medium
JP2003037587A (en) * 2001-07-26 2003-02-07 Matsushita Electric Ind Co Ltd Method for generating session key
JP2004234648A (en) * 2003-01-10 2004-08-19 Matsushita Electric Ind Co Ltd Group entry approval system, server apparatus, and client apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009065226A (en) * 2007-09-04 2009-03-26 Kddi Corp Authenticated key exchange system, authenticated key exchange method and program
US8738059B2 (en) 2009-06-18 2014-05-27 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
US9137346B2 (en) 2009-06-18 2015-09-15 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
US9143903B2 (en) 2012-10-19 2015-09-22 Qualcomm Incorporated Requesting and providing acknowledgements to specific PTT talk spurts
CN104852796A (en) * 2015-04-13 2015-08-19 南昌大学 Quantum dialogue protocol based on continuous variable and controlled by multiple parties
JP2019514269A (en) * 2016-03-29 2019-05-30 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. System and method for distribution of identity information based key material and certificate

Also Published As

Publication number Publication date
JP4794970B2 (en) 2011-10-19

Similar Documents

Publication Publication Date Title
US7688975B2 (en) Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure
CN109088889B (en) SSL encryption and decryption method, system and computer readable storage medium
US8059818B2 (en) Accessing protected data on network storage from multiple devices
EP1500226B1 (en) System and method for storage and retrieval of a cryptographic secret from a plurality of network enabled clients
US7231526B2 (en) System and method for validating a network session
EP2020797B1 (en) Client-server Opaque token passing apparatus and method
US8644516B1 (en) Universal secure messaging for cryptographic modules
TWI288552B (en) Method for implementing new password and computer readable medium for performing the method
US7334255B2 (en) System and method for controlling access to multiple public networks and for controlling access to multiple private networks
KR101130415B1 (en) A method and system for recovering password protected private data via a communication network without exposing the private data
US7266705B2 (en) Secure transmission of data within a distributed computer system
CN110868291B (en) Data encryption transmission method, device, system and storage medium
JP4794970B2 (en) Secret information protection method and communication apparatus
CN114244508A (en) Data encryption method, device, equipment and storage medium
CN110519222B (en) External network access identity authentication method and system based on disposable asymmetric key pair and key fob
US10764260B2 (en) Distributed processing of a product on the basis of centrally encrypted stored data
JP2005175992A (en) Certificate distribution system and certificate distribution method
JP5841954B2 (en) Secure authentication method
KR100681005B1 (en) Key roaming method, and method for the same
CA3210990C (en) End to end encryption with roaming capabilities
JP7337763B2 (en) Communication system, communication method and program
KR100842014B1 (en) Accessing protected data on network storage from multiple devices
CA3225987A1 (en) End to end encryption with roaming capabilities
JP2023163173A (en) Secure reconstruction of private key
KR20210126944A (en) Method for Sharing Secret Information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080318

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100325

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110411

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4794970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350