JP2021185642A - License key with digital signature - Google Patents

License key with digital signature Download PDF

Info

Publication number
JP2021185642A
JP2021185642A JP2020090173A JP2020090173A JP2021185642A JP 2021185642 A JP2021185642 A JP 2021185642A JP 2020090173 A JP2020090173 A JP 2020090173A JP 2020090173 A JP2020090173 A JP 2020090173A JP 2021185642 A JP2021185642 A JP 2021185642A
Authority
JP
Japan
Prior art keywords
information
information processing
key
character string
program
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.)
Pending
Application number
JP2020090173A
Other languages
Japanese (ja)
Inventor
大 益滿
Masaru Masumitsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2020090173A priority Critical patent/JP2021185642A/en
Publication of JP2021185642A publication Critical patent/JP2021185642A/en
Pending legal-status Critical Current

Links

Images

Abstract

To provide a program and an information processing system that enable transfer of arbitrary information from an information processing device to another information processing device.SOLUTION: In an information processing system, an information processing device 1 sends a key to an information processing device 2 using an encrypted communication network N, and information created by the information processing device 2 is encrypted by the key and uploaded in a storage device 3. The information processing device 1 accepts input of a license code that distinguishes the information from other information, and identifies and downloads information to be downloaded from the information stored in the storage device 3 on the basis of the license code.SELECTED DRAWING: Figure 1-2

Description

本発明は、情報処理装置から他の情報処理装置へ任意の情報を転送することを可能にするプログラム及び情報処理システムに関する。 The present invention relates to a program and an information processing system that enable transfer of arbitrary information from an information processing device to another information processing device.

従来、利用者に情報を入力させ、この情報に基づいてライセンスキーを生成する技術が知られている。 Conventionally, there is known a technique of having a user input information and generating a license key based on this information.

特願2020−010439Japanese Patent Application No. 2020-010439

しかし、特許文献1に開示された技術では、長い文字列を授受しなければならないという問題がある。 However, the technique disclosed in Patent Document 1 has a problem that a long character string must be exchanged.

本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、第1の情報処理装置が暗号化された通信網を用いて第2情報処理装置に鍵を送付し、第2情報処理装置が、前記鍵を用いて暗号化した情報を第3記憶装置に記憶させ、第1情報処理装置が、該情報をダウンロードする情報処理システムすることにある。 The present invention has been made in view of such circumstances, and an object of the present invention is to send a key to a second information processing device using an encrypted communication network of the first information processing device. The second information processing device stores the information encrypted by using the key in the third storage device, and the first information processing device downloads the information.

本発明の一態様の情報処理システムは、
第1情報処理装置は、鍵を暗号化された通信網を用いて第2情報処理装置に送付し、該第2情報処理装置が作成した情報は、前記鍵によって暗号化され第3記憶装置にアップロードされ、情報処理装置1は、該情報を他の情報と識別するライセンスコードの入力を受け付け、情報処理装置1は、該ライセンスコードに基づいて、第3記憶装置に記憶された情報から、ダウンロードすべき情報を特定しダウンロードする。
The information processing system of one aspect of the present invention is
The first information processing device sends the key to the second information processing device using the encrypted communication network, and the information created by the second information processing device is encrypted by the key and stored in the third storage device. Upon being uploaded, the information processing apparatus 1 accepts input of a license code that distinguishes the information from other information, and the information processing apparatus 1 downloads from the information stored in the third storage device based on the license code. Identify and download the information to be done.

本発明の一側面によれば、第2情報処理装置が作成した情報を第3記憶装置に記憶させ、該情報より小さい情報をライセンスコードとして第1情報処理装置に入力され、第1情報処理装置は、前記第3記憶装置に記憶された情報から、ダウンロードすべき情報を特定しダウンロードすることが可能。 According to one aspect of the present invention, the information created by the second information processing device is stored in the third storage device, information smaller than the information is input to the first information processing device as a license code, and the first information processing device is used. Can identify and download the information to be downloaded from the information stored in the third storage device.

情報処理装置を示すブロック図Block diagram showing an information processing device 実施の形態1に係る情報処理システムの構成を示すブロック図Block diagram showing the configuration of the information processing system according to the first embodiment 実施の形態1に係る、情報処理装置1と、情報処理装置2を示すブロック図The block diagram which shows the information processing apparatus 1 and the information processing apparatus 2 which concerns on Embodiment 1. 情報処理装置1が、前記情報処理装置1を他の情報処理装置と識別できる情報(ID)を作成し、情報処理装置2に送付し、情報処理装置2は前記IDを書き込んだ情報を作成し、前記情報処理装置1が読み取ることができる形態で情報処理装置2が他の情報処理装置または記憶装置に記憶させる情報処理システムに関する図The information processing device 1 creates information (ID) that can identify the information processing device 1 from other information processing devices and sends it to the information processing device 2, and the information processing device 2 creates information in which the ID is written. A diagram relating to an information processing system in which the information processing device 2 stores in another information processing device or storage device in a form that can be read by the information processing device 1. 実施の形態1に係る情報処理装置が、識別情報201を作成する処理に関する図The figure regarding the process which the information processing apparatus which concerns on Embodiment 1 creates identification information 201. 処理部302に関する図The figure about the processing part 302 ステップS313を示すフローチャート(連想配列から文字列)Flowchart showing step S313 (character string from associative array) ステップS315を示すフローチャート(文字列から連想配列)Flowchart showing step S315 (associative array from character string) 処理部303に関する図The figure about the processing part 303 識別情報201を表示部15に表示する場合の例Example of displaying the identification information 201 on the display unit 15. 実施の形態1に係る情報処理装置2が、識別情報201を用いて、ライセンスコード241bと、ファイル241cと、を作成する処理に関する図The figure regarding the process which the information processing apparatus 2 which concerns on Embodiment 1 creates the license code 241b and the file 241c using the identification information 201. 実施の形態2に係る情報処理装置がファイルおよびライセンスコードを作成する処理に関する図The figure regarding the process which the information processing apparatus which concerns on Embodiment 2 creates a file and a license code. 実施の形態1に係る情報処理装置2が、ライセンスコード241bと、ファイル241cと、に基づいて、少なくとも有効情報401を読み取る処理に関する図The figure regarding the process which the information processing apparatus 2 which concerns on Embodiment 1 read at least valid information 401 based on a license code 241b and a file 241c. 実施の形態Aに係る処理のフローチャートFlowchart of processing according to embodiment A ステップSa102を示すフローチャート(連想配列から文字列)Flowchart showing step Sa102 (character string from associative array) ステップSa102を示すフローチャート(連想配列から文字列)Flowchart showing step Sa102 (character string from associative array) 実施の形態Bに係る処理のフローチャートFlowchart of processing according to embodiment B 図Bを参照しながら説明した形態により施した電子署名を検証する処理のフローチャートA flowchart of a process for verifying an electronic signature given in the form described with reference to FIG. B.

<実施の形態1>本実施の形態を、図1−1を参照して説明する。図1−1は、情報処理装置を示すブロック図。情報処理装置1は、インターネット、LAN(Local Area Network)または携帯電話網などの通信網Nによりほかの情報処処理装置と相互に接続されている。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたはスマートフォン等。情報処理装置1は、CPU(Central Prosessing Unit)11、記憶部12、RAM(Random Access Memory)13、入力部14、表示部15、通信部16、をそなえる。 <Embodiment 1> The present embodiment will be described with reference to FIG. 1-1. FIG. 1-1 is a block diagram showing an information processing apparatus. The information processing device 1 is interconnected with other information processing devices by a communication network N such as the Internet, a LAN (Local Area Network), or a mobile phone network. The information processing device 1 is, for example, a server device, a personal computer, a smartphone, or the like. The information processing device 1 includes a CPU (Central Processing Unit) 11, a storage unit 12, a RAM (Random Access Memory) 13, an input unit 14, a display unit 15, and a communication unit 16.

CPU11について。CPU11は、バスを介してハードウェア各部と接続されている。CPU11は、例えば1もしくは複数のCPUまたはマルチコアCPU等をそなえる。CPU11は、記憶部12に記憶されたプログラム12Pに従いハードウェア各部を制御する。CPU11は、記憶媒体(図示しない)に記録されたプログラムをドライブ部(図示しない)に読み取らせ、読み取ったプログラムを記憶部12に、プログラム12Pとして記憶させる形態であってもよい。CPU11は、必要に応じてプログラム12Pを記憶部12からRAM13にロードし、ロードしたプログラム12Pに従って各署の処理を実行する。 About CPU11. The CPU 11 is connected to each part of the hardware via a bus. The CPU 11 includes, for example, one or a plurality of CPUs or a multi-core CPU. The CPU 11 controls each hardware unit according to the program 12P stored in the storage unit 12. The CPU 11 may be in a form in which a drive unit (not shown) reads a program recorded on a storage medium (not shown), and the read program is stored in the storage unit 12 as a program 12P. The CPU 11 loads the program 12P from the storage unit 12 into the RAM 13 as needed, and executes the processing of each station according to the loaded program 12P.

記憶部12について。記憶部12は、例えばハードディスクまたは大容量メモリ等。記憶部12は、CPU11が処理を行う際に必要な種々のデータおよびプログラム12Pを格納する。 About the storage unit 12. The storage unit 12 is, for example, a hard disk, a large-capacity memory, or the like. The storage unit 12 stores various data and the program 12P necessary for the CPU 11 to perform processing.

プログラム12Pについて。プログラム12Pは、情報処理装置1の外部からダウンロードされてもよく、予め記憶部12に記憶されていてもよい。この場合、情報処理装置1は、ドライブ部(図示しない)をそなえない形態であってもよい。 About program 12P. The program 12P may be downloaded from the outside of the information processing apparatus 1 or may be stored in the storage unit 12 in advance. In this case, the information processing apparatus 1 may be in a form that does not include a drive unit (not shown).

RAM13について。RAM13は、例えばSRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等。RAM13は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。 About RAM13. The RAM 13 is, for example, a SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), a flash memory, or the like. The RAM 13 also functions as a storage unit, and temporarily stores various data generated when various programs are executed by the CPU 11.

入力部14について。入力部14は、マウスまたはキーボードなどの入力デバイス。入力部14は、受け付けた操作情報をCPU11へ送信する。 About input unit 14. The input unit 14 is an input device such as a mouse or a keyboard. The input unit 14 transmits the received operation information to the CPU 11.

表示部15について。表示部15は、CPU11から送信された画像データを表示する。表示部15は、例えば液晶ディスプレイ等。 About the display unit 15. The display unit 15 displays the image data transmitted from the CPU 11. The display unit 15 is, for example, a liquid crystal display or the like.

通信部16について。通信部16は、例えば無線LANカードまたは携帯電話用通信モジュール等。通信部16は、通信網Nを介し各種情報を送受信する。 About communication unit 16. The communication unit 16 is, for example, a wireless LAN card, a communication module for a mobile phone, or the like. The communication unit 16 transmits and receives various information via the communication network N.

図1−2は、実施の形態1に係る情報処理システムの構成を示すブロック図。 FIG. 1-2 is a block diagram showing a configuration of an information processing system according to the first embodiment.

情報処理システムは、情報処理装置1、情報処理装置2、記憶装置3をそなえる。 The information processing system includes an information processing device 1, an information processing device 2, and a storage device 3.

情報処理装置1および情報処理装置2について。情報処理装置1および情報処理装置2は、図1を参照して説明したものと同様。情報処理装置1および情報処理装置2および記憶装置3は、通信網Nに接続されている。 About information processing device 1 and information processing device 2. The information processing device 1 and the information processing device 2 are the same as those described with reference to FIG. The information processing device 1, the information processing device 2, and the storage device 3 are connected to the communication network N.

記憶装置3について。記憶装置3は、サーバ装置などのコンピュータ。記憶装置3は、CPU31、記憶装置32、RAM33、通信部34をそなえる(記憶装置のCPU31は、プログラム32Pに基づいて、情報処理装置2から転送された情報を通信部34を介して、例えば記憶部32に記憶する。)(記憶装置のCPU31は、プログラム32Pに基づいて、情報処理装置1から発せられた要求に基づいて、記憶部32に記憶されている情報を、通信部34を介して、情報処理装置1に転送する(情報処理装置1は、プログラム12Pに基づいて、記憶部32に記憶されている情報をダウンロードする)。)。 About storage device 3. The storage device 3 is a computer such as a server device. The storage device 3 includes a CPU 31, a storage device 32, a RAM 33, and a communication unit 34 (the CPU 31 of the storage device stores information transferred from the information processing device 2 based on the program 32P, for example, via the communication unit 34. (Stored in the storage unit 32.) (The CPU 31 of the storage device stores the information stored in the storage unit 32 via the communication unit 34 based on the request issued from the information processing device 1 based on the program 32P. (The information processing device 1 downloads the information stored in the storage unit 32 based on the program 12P).

CPU31について。CPU31は、記憶部32に記憶されたプログラム32Pにしたがいハードウェア各部を制御する。 About CPU31. The CPU 31 controls each hardware unit according to the program 32P stored in the storage unit 32.

通信部34について。 About communication unit 34.

通信部34は、通信網Nを介して各種情報を送受信する。 The communication unit 34 transmits and receives various information via the communication network N.

図1−3は、実施の形態1に係る、情報処理装置1と、情報処理装置2を示すブロック図。 FIG. 1-3 is a block diagram showing an information processing device 1 and an information processing device 2 according to the first embodiment.

通信網Nについて。通信網Nは、情報処理装置1と情報処理装置2を接続している。 About communication network N. The communication network N connects the information processing device 1 and the information processing device 2.

情報処理装置2について。CPU21、記憶部22、RAM23、入力部24、表示部25、通信部26は、情報処理装置1における、CPU11、記憶部12、RAM13、入力部14、表示部15、通信部16、と同様。 About information processing device 2. The CPU 21, the storage unit 22, the RAM 23, the input unit 24, the display unit 25, and the communication unit 26 are the same as the CPU 11, the storage unit 12, the RAM 13, the input unit 14, the display unit 15, and the communication unit 16 in the information processing device 1.

図2は、情報処理装置1が、前記情報処理装置1を他の情報処理装置と識別できる情報(ID)を作成し、情報処理装置2に送付し、情報処理装置2は前記IDを書き込んだ情報を作成し、前記情報処理装置1が読み取ることができる形態で情報処理装置2が他の情報処理装置または記憶装置に記憶させる情報処理システムに関する図。 In FIG. 2, the information processing apparatus 1 creates information (ID) that can identify the information processing apparatus 1 from other information processing apparatus, sends the information (ID) to the information processing apparatus 2, and the information processing apparatus 2 writes the ID. FIG. 3 is a diagram relating to an information processing system in which information is created and stored in another information processing device or storage device by the information processing device 2 in a form that can be read by the information processing device 1.

情報処理装置1について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、情報処理装置1を他の情報処理装置と識別できる情報を作成(第1の処理)し、前記第1の処理によって作成された情報は、例えば記憶部12に記憶する。 The information processing device 1 will be described. The CPU 11 of the information processing apparatus 1 creates information that can identify the information processing apparatus 1 from other information processing apparatus (first process) based on the program 12P, and the information created by the first process is the information. For example, it is stored in the storage unit 12.

前記第1の処理によって作成される情報について説明する。この情報は、GUID(Globally Unique Identifier)などのUUID(Universally Unique Identifier)を用いることが好適。この情報は、ユーザによる操作に応じて作成され、作成されるたびに記憶部12に暗号化して記憶される形態が好適。 The information created by the first process will be described. It is preferable to use a UUID (Universally Unique Identifier) such as a GUID (Globally Unique Identifier) for this information. It is preferable that this information is created in response to an operation by the user, and is encrypted and stored in the storage unit 12 each time the information is created.

識別情報201について説明する。識別情報201は、前記第1の処理によって作成された(または以前に前記第1の処理によって作成され、例えば記憶部12に記憶された)情報。識別情報201は、情報処理装置2が作成する情報に書き込まれるため。情報処理装置2を運用する者が作成したウェブサイトに前記識別情報201に相当する文字列を入力させる形態が好適。前記ウェブサイト入力された前記識別情報201は、SSL(Secure Sockets Layer)をはじめとする暗号化を施し、通信網Nを介して送信される形態が好適。 The identification information 201 will be described. The identification information 201 is information created by the first process (or previously created by the first process and stored in, for example, a storage unit 12). This is because the identification information 201 is written in the information created by the information processing device 2. A form in which a character string corresponding to the identification information 201 is input to a website created by a person who operates the information processing apparatus 2 is preferable. The identification information 201 input to the website is preferably encrypted such as SSL (Secure Sockets Layer) and transmitted via the communication network N.

情報処理装置2について説明する。情報処理装置2のCPU21は、プログラム22Pに基づいて、前記識別情報201を書き込んだ情報(例えばファイル)を作成(第11の処理)し、例えば記憶部22に記憶する。 The information processing device 2 will be described. Based on the program 22P, the CPU 21 of the information processing apparatus 2 creates (for example, a file) the information (for example, a file) in which the identification information 201 is written, and stores the information (for example, the eleventh process) in the storage unit 22.

前記第11の処理によって作成される情報について説明する。この情報は、情報処理装置2、情報処理装置1、を除く装置によっては読み込むことができない形態が好適。そのためには、例えば識別情報201を用いて暗号化する形態が好適。(変形例:情報処理装置1は、公開鍵暗号化のための公開鍵および秘密鍵を作成し、前記公開鍵を識別情報201として扱い、前記公開鍵の鍵ペアである秘密鍵と、前記秘密鍵と鍵ペアである公開鍵を他の公開鍵と識別する情報の組み合わせ(例えば、前記公開鍵自身)(例えば、前記公開鍵の指紋)は例えば記憶部12に記憶する。情報処理装置2は、前記識別情報201を用いて前記第11の処理によって作成された情報を暗号化し、情報処理装置1は、前記公開鍵と鍵ペアである秘密鍵を用いて復号する。第2情報処理装置が作成した情報の少なくともいずれかに、前記暗号化に用いた公開鍵を他の公開鍵と識別する情報(例えば指紋)を付加する)。 The information created by the eleventh process will be described. This information is preferably in a form that cannot be read by any device other than the information processing device 2 and the information processing device 1. For that purpose, for example, a form of encryption using the identification information 201 is preferable. (Variation example: The information processing apparatus 1 creates a public key and a private key for public key encryption, treats the public key as identification information 201, and has a private key that is a key pair of the public key and the secret. A combination of information that identifies a public key, which is a key and a key pair, from another public key (for example, the public key itself) (for example, a fingerprint of the public key) is stored in, for example, a storage unit 12. The information created by the eleventh process is encrypted using the identification information 201, and the information processing apparatus 1 decodes the information using the private key which is a key pair with the public key. Information (for example, a fingerprint) that identifies the public key used for the encryption from other public keys is added to at least one of the created information).

ファイル241cについて説明する。 File 241c will be described.

必ずしもファイルという形態でなくてもよい。 It does not necessarily have to be in the form of a file.

例えば、記憶装置3にデータベース(図示しない)を設置しており、情報処理装置2は、前記データベースに書き込むことができ(ファイル201cに相当)、情報処理装置1は、前記データベースに書き込まれた情報を読み取ることができる(ファイル301cに相当)形態が考えられる。 For example, a database (not shown) is installed in the storage device 3, the information processing device 2 can write to the database (corresponding to file 201c), and the information processing device 1 can write information written to the database. Can be read (corresponding to file 301c).

情報処理装置2のCPU22は、プログラム22Pに基づいて、前記第11の処理によって作成された情報を、通信網Nを介して記憶装置3(の、記憶部32)に記憶される。情報処理装置2と情報処理装置1は、記憶装置3における前記記憶部32の所在(例えば、http://www.tsubossie.client.jp/tokugan123-456というURL(Uniform Resource Locator)によって特定される位置(ディレクトリ))である旨が設定されている。 The CPU 22 of the information processing device 2 stores the information created by the eleventh process in the storage device 3 (of the storage unit 32) via the communication network N based on the program 22P. The information processing device 2 and the information processing device 1 are specified by the location of the storage unit 32 in the storage device 3 (for example, a URL (Uniform Resource Locator) of http://www.tsubossie.client.jp/tokugan123-456). The location (directory)) is set.

ライセンスコード241bについて説明する。情報処理装置2のCPU22は、プログラム22Pに基づいて、ファイル241cの例えばファイル名に基づいて、ライセンスコード241bを作成する。前記ライセンスコード241bは、例えば文字列として、情報処理装置1を使用する者に連絡され、情報処理装置1は、前記ライセンスコード241bの入力を受け付けて、前記ライセンスコード241bに基づいて、記憶装置3における読み込み対象となる情報を特定し、通信網Nを介して、前記情報を読み込み、例えば記憶部12に記憶する。 The license code 241b will be described. The CPU 22 of the information processing apparatus 2 creates a license code 241b based on the program 22P, for example, based on the file name of the file 241c. The license code 241b is contacted to a person who uses the information processing apparatus 1 as a character string, for example, and the information processing apparatus 1 accepts the input of the license code 241b and stores the storage device 3 based on the license code 241b. The information to be read is specified, the information is read via the communication network N, and is stored in, for example, a storage unit 12.

情報処理装置1について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、入力されたライセンスコード241bを用いて、読み込み対象である情報が存在する位置を特定し、前記位置に存在する情報を読み込み、例えば記憶部12に記憶する。前記記憶部12に記憶された情報を復号(この時に用いる鍵は、前記ライセンスコード241b、前記記憶部12に記憶された情報の少なくともいずれかに書き込まれている情報に基づいて、前記第1の処理によって作成され記憶部12に記憶された情報から特定する)し、前記復号によって得られた情報に基づいて、例えばプログラム12Pの動作を変更する。前記プログラム12Pの動作を変更するために必要な情報があるときは、例えば記憶部12に記憶する。 The information processing device 1 will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 identifies a position where the information to be read exists, and reads the information existing at the position, for example, the storage unit 12. Remember in. Decoding the information stored in the storage unit 12 (The key used at this time is the first one based on the information written in at least one of the license code 241b and the information stored in the storage unit 12. It is specified from the information created by the process and stored in the storage unit 12), and the operation of the program 12P is changed, for example, based on the information obtained by the decoding. When there is information necessary for changing the operation of the program 12P, it is stored in, for example, a storage unit 12.

図3は、実施の形態1に係る情報処理装置が、識別情報201を作成する処理に関する。 FIG. 3 relates to a process in which the information processing apparatus according to the first embodiment creates identification information 201.

記憶情報301について説明する。記憶情報301は例えば文字列であって、該文字列は、処理部302を介し、第1連想配列、第2連想配列に変換される。情報処理装置1のCPU11は、プログラム12Pに基づいて、記憶情報301を、例えば文字列として、例えば記憶部12に記憶する。 The storage information 301 will be described. The storage information 301 is, for example, a character string, and the character string is converted into a first associative array and a second associative array via the processing unit 302. The CPU 11 of the information processing apparatus 1 stores the storage information 301 as, for example, a character string in, for example, a storage unit 12 based on the program 12P.

識別情報として使用する情報が作成されたときについて説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、作成された情報を、第1連想配列303bおよび第2連想配列303cの少なくともいずれかに追加する。第1連想配列303bおよび第2連想配列303cは、例えばRAM13に記憶される。 The time when the information to be used as the identification information is created will be described. The CPU 11 of the information processing apparatus 1 adds the created information to at least one of the first associative array 303b and the second associative array 303c based on the program 12P. The first associative array 303b and the second associative array 303c are stored in, for example, the RAM 13.

第1連想配列303bについて説明する。少なくとも暗号化のための鍵(例えば、公開鍵暗号化のための鍵であるなら秘密鍵)を該連想配列のキーとし、該キーと組み合わせてある値は、該キーが、何という暗号化の種類(AES、楕円曲線暗号、共通鍵暗号など)のための鍵かを示す情報が格納されている。 The first associative array 303b will be described. At least a key for encryption (for example, a private key if it is a key for public key encryption) is used as a key of the associative array, and a value combined with the key indicates what kind of encryption the key is. Information indicating whether the key is for a type (AES, elliptical curve encryption, common key encryption, etc.) is stored.

第2連想配列303cについて説明する。 The second associative array 303c will be described.

秘密鍵を該連想配列のキーとし、該キーと組み合わせてある値は、該秘密鍵と鍵ペアである公開鍵が格納されている(秘密鍵と公開鍵の関係は逆に記憶されていてもよい)。 The private key is used as the key of the associative array, and the value combined with the key stores the public key which is a key pair with the private key (even if the relationship between the private key and the public key is stored in reverse). good).

図3−1は、処理部302に関する図。処理部302の動作を、図3−1を参照しながら説明する。この処理をルーチンとするなら、第1引数(真理値型)、第2引数(参照渡しの文字列型)、第3引数及び第4引数(参照渡しの連想配列)を設け、 FIG. 3-1 is a diagram relating to the processing unit 302. The operation of the processing unit 302 will be described with reference to FIG. 3-1. If this process is a routine, provide the first argument (truth value type), the second argument (string type passed by reference), the third argument and the fourth argument (associative array passed by reference).

前記第1引数によって、第2引数に代入された文字列を配列に変換し、第3引数または第4引数に代入する処理と、第3引数及び第4引数に代入された連想配列を文字列に変換し、第2引数に代入する処理と、 The process of converting the character string assigned to the second argument into an array by the first argument and assigning it to the third or fourth argument, and the associative array assigned to the third and fourth arguments are character strings. And the process of converting to and assigning to the second argument,

のいずれかを実行する形態が考えられる。前記ルーチンは、処理に成功したときTRUE、処理に失敗したときFALSEを返す形態が好適。処理に成功したときとは、ステップS312またはステップS314にて処理が終了したときを含む。 A form of executing any of the above can be considered. The routine is preferably in the form of returning TRUE when the processing is successful and FALSE when the processing is unsuccessful. The time when the processing is successful includes the time when the processing is completed in step S312 or step S314.

前記ルーチンの変形例は次の通り。 An example of modification of the above routine is as follows.

この処理をルーチンとするなら、第1引数(真理値型)、第2引数(パスワード)、第3引数(参照渡しの文字列型)、第4引数及び第5引数(参照渡しの連想配列)を設け、 If this process is a routine, the first argument (truth value type), the second argument (password), the third argument (string type passed by reference), the fourth argument and the fifth argument (associative array passed by reference) And set up

前記第1引数によって、第2引数に代入された文字列を第3引数をパスワードとみなして復号したものを配列に変換し、第4引数または第5引数に代入する処理と、第4引数及び第5引数に代入された連想配列を文字列に変換し、該文字列を第3引数をパスワードとして暗号化したものを第2引数に代入する処理と、 The process of converting the character string assigned to the 2nd argument by the 1st argument into an array by regarding the 3rd argument as a password and assigning it to the 4th or 5th argument, and the 4th argument and The process of converting the associative array assigned to the 5th argument into a character string, encrypting the character string with the 3rd argument as a password, and assigning it to the 2nd argument.

のいずれかを実行する形態が考えられる。前記ルーチンは、処理に成功したときTRUE、処理に失敗したときFALSEを返す形態が好適。処理に成功したときとは、ステップS312またはステップS314にて処理が終了したときを含む。 A form of executing any of the above can be considered. The routine is preferably in the form of returning TRUE when the processing is successful and FALSE when the processing is unsuccessful. The time when the processing is successful includes the time when the processing is completed in step S312 or step S314.

文字列を配列に変換する処理について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に、記憶情報301(文字列)、第1連想配列303b、第2連想配列303c、を記憶する領域を確保し、記憶情報301として文字列を記憶する。記憶情報301、に基づいて、ステップS315によって作成した第1連想配列303b、第2連想配列303b、を例えばRAM13に記憶し、処理を終了する。 The process of converting a character string into an array will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 secures an area for storing the storage information 301 (character string), the first associative array 303b, and the second associative array 303c in the RAM 13, for example, as the storage information 301. Memorize the character string. Based on the storage information 301, the first associative array 303b and the second associative array 303b created in step S315 are stored in, for example, the RAM 13, and the process is terminated.

配列を文字列に変換する処理について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に、記憶情報301(文字列)、第1連想配列303b、第2連想配列303c、を記憶する領域を確保し、記憶情報301として文字列を記憶する。第1連想配列303b、第2連想配列303c、に基づいて、ステップS313によって作成した記憶情報301を、例えばRAM13に記憶し、処理を終了する。 The process of converting an array to a character string will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 secures an area for storing the storage information 301 (character string), the first associative array 303b, and the second associative array 303c in the RAM 13, for example, as the storage information 301. Memorize the character string. Based on the first associative array 303b and the second associative array 303c, the storage information 301 created in step S313 is stored in, for example, the RAM 13, and the process is terminated.

ステップS311について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に記憶された文字列を連想配列2個に変換する処理を実行すべきか、あるいは、例えばRAM13に記憶された連想配列2個を文字列に変換する処理を実行する処理を実行すべきか、を、例えばRAM13に記憶されたフラグ(真理値型の変数)(例えば前記ルーチンの第1引数に指定された)に基づいて判断する。ここでは、Sステップ311:YESの場合にステップS312からステップS313までを実行し、ステップS311:NOの場合にステップS314,ステップS315を実行する場合を例に説明する。 Step S311 will be described. The CPU 11 of the information processing apparatus 1 should execute, for example, a process of converting a character string stored in the RAM 13 into two associative arrays based on the program 12P, or, for example, convert two associative arrays stored in the RAM 13 into characters. Whether or not to execute the process of executing the process of converting to a column is determined based on, for example, a flag (a truth value type variable) stored in the RAM 13 (for example, specified in the first argument of the routine). Here, a case where steps S312 to S313 are executed in the case of S step 311: YES, and steps S314 and S315 are executed in the case of step S311: NO will be described as an example.

ステップS312について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、第1連想配列303b及び第2連想配列303cに格納された連想配列が、いずれも「nullまたは要素数0個」である場合に、記憶情報301に空文字列を記憶させ、処理を終了する。 Step S312 will be described. The CPU 11 of the information processing apparatus 1 stores information when the associative arrays stored in the first associative array 303b and the second associative array 303c are both "null or 0 elements" based on the program 12P. The empty string is stored in 301, and the process ends.

ステップS314について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、記憶情報301に空文字列(nullは空文字列とみなす)が格納されている場合に、第1連想配列303b及び第2連想配列303cに要素数0の連想配列を記憶させ、処理を終了する。 Step S314 will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 has the number of elements in the first associative array 303b and the second associative array 303c when an empty string (null is regarded as an empty string) is stored in the storage information 301. The associative array of 0 is stored, and the process ends.

図3−2は、ステップS313を示すフローチャート(連想配列から文字列)。情報処理装置のCPU11は、プログラム12Pに基づいて、ステップS313を下記の通り実行する。 FIG. 3-2 is a flowchart (character string from an associative array) showing step S313. The CPU 11 of the information processing apparatus executes step S313 as follows based on the program 12P.

ステップS323について説明する。 Step S323 will be described.

このステップは、例えばRAM13に記憶されている、第1連想配列303bを第1文字列324bに変換する処理と、第2連想配列303cを第2文字列324cに変換する処理と、 This step includes, for example, a process of converting the first associative array 303b into the first character string 324b and a process of converting the second associative array 303c into the second character string 324c, which are stored in the RAM 13.

を実行し、これらの文字列を例えばRAM13に記憶する。前記した、連想配列を文字列に変換する処理の手順は、実施の形態Aに記載の通り。 Is executed, and these character strings are stored in, for example, RAM 13. The procedure of the process of converting the associative array into a character string described above is as described in the embodiment A.

ステップS325について説明する。 Step S325 will be described.

このステップは、配列326(要素数は2個)を作成し、例えばRAM13に記憶されている、第1文字列324bを前記配列326の0番の要素に格納する処理と、第2文字列325bを前記配列326の1番の要素に格納する処理と、 This step creates an array 326 (the number of elements is two), for example, stores the first character string 324b stored in the RAM 13 in the 0th element of the array 326, and the second character string 325b. Is stored in the first element of the array 326, and

実行し、前記配列326を例えばRAM13に記憶する。 Execute and store the array 326 in, for example, RAM 13.

ステップS327について説明する。 Step S327 will be described.

このステップは、例えばRAM13に記憶されている、配列326のいかなる要素にも存在しない文字を1個特定し、前記文字を区切り文字として、前記配列326の各要素を連結した文字列を作成し、前記文字列の区切り文字とは異なる所定の位置(例えば末尾、1文字目)に前記区切り文字を配置した文字列を、文字列328として作成し、 In this step, for example, one character that is stored in RAM 13 and does not exist in any element of the array 326 is specified, and a character string in which each element of the array 326 is concatenated is created by using the character as a delimiter. A character string in which the delimiter is arranged at a predetermined position (for example, the last character) different from the delimiter of the character string is created as a character string 328.

前記文字列328を、例えばRAM13に記憶し(変形例:前記文字列328を暗号化したものを例えばRAM13に記憶し)、処理を終了する。例えば、配列326(文字列型配列)の0番の要素にaaaa、該配列326の1番の要素にbbbbが。格納されているとき、該配列326のいかなる要素にも存在しない文字、例えばcを区切り文字とし、aaaacbbbbcを文字列328として、例えばRAM13に記憶する。 The character string 328 is stored in, for example, RAM 13 (modification example: an encrypted version of the character string 328 is stored in, for example, RAM 13), and the process is terminated. For example, aaaa is in the 0th element of the array 326 (character string type array), and bbbb is in the 1st element of the array 326. When stored, a character that does not exist in any element of the array 326, such as c, is used as a delimiter, and aaaacbbbbc is stored as a character string 328, for example, in RAM 13.

図3−3は、ステップS315を示すフローチャート(文字列から連想配列)。情報処理装置のCPU11は、プログラム12Pに基づいて、ステップS315を下記の通り実行する。 FIG. 3-3 is a flowchart (arrangement from a character string associative array) showing step S315. The CPU 11 of the information processing apparatus executes step S315 as follows based on the program 12P.

ステップS337について説明する。 Step S337 will be described.

このステップは、例えばRAM13に記憶されている、文字列338の所定の位置(例えば末尾、1文字目)に存在する文字を区切り文字とし、該所定の位置でない位置に存在する文字列を前記区切り文字を境に区切って配列336を作成し、 In this step, for example, a character existing in a predetermined position (for example, the first character at the end) of the character string 338 stored in the RAM 13 is used as a delimiter, and a character string existing in a position other than the predetermined position is used as the delimiter. Create an array 336 by separating the characters as boundaries,

前記配列336を、例えばRAM13に記憶する。文字列338がaaabcccbである場合に、前記所定の位置が末尾である場合を説明する。この場合、bを区切り文字としaaabcccを、前記bを境に区切る。よって配列336は、0番の要素にaaa、1番の要素にcccを格納した要素数2の配列として、例えばRAM13に記憶される。 The array 336 is stored in, for example, RAM 13. When the character string 338 is aaabcccb, the case where the predetermined position is the end will be described. In this case, b is used as a delimiter and aaabccc is separated by the b as a boundary. Therefore, the array 336 is stored in, for example, RAM 13 as an array having the number of elements 2 in which aaa is stored in the 0th element and ccc is stored in the 1st element.

ステップS335について説明する。 Step S335 will be described.

このステップは、例えばRAM13に記憶されている、配列336の各要素に存在する文字列を連想配列に変換し、前記連想配列を、連想配列303b、連想配列303c、として。 In this step, for example, the character string existing in each element of the array 336 stored in the RAM 13 is converted into an associative array, and the associative array is designated as the associative array 303b and the associative array 303c.

例えばRAM13に記憶し、処理を終了する。この時、作成される連想配列の数は、配列336の要素数と同数。前記した、文字列を連想配列に変換する処理の手順は、実施の形態Aに記載の通り。 For example, it is stored in the RAM 13 and the process is terminated. At this time, the number of associative arrays created is the same as the number of elements in the array 336. The procedure for converting a character string into an associative array described above is as described in the embodiment A.

図3−4は、処理部303に関する図。処理部302の動作を、図3−1を参照しながら説明する。この処理をルーチンとするなら次の形態が考えられる。第1引数(参照渡し。第1連想配列303bを格納)、第2引数(参照渡し。第2連想配列303cを格納)、第3引数以降に、識別情報201が暗号化のための鍵であるときの該暗号化の種類(RSA、楕円曲線暗号、共通鍵暗号など)を指定するなどのために設ける。例えば、第3引数(真理値型。共通鍵暗号のための鍵を識別情報201として返す場合はTRUE)、第4引数(真理値型。RSA暗号のための鍵を識別情報201として返す場合はTRUE)、第5引数(RSA暗号の秘密鍵を返す場合、該秘密鍵と鍵ペアである公開鍵を格納。それ以外の場合、空文字列またはnullを格納)を設ける形態が考えられる。前記ルーチンは、処理に成功した場合は、識別情報201、失敗した場合は、第6引数に指定された値を返す形態が好適。 FIG. 3-4 is a diagram relating to the processing unit 303. The operation of the processing unit 302 will be described with reference to FIG. 3-1. If this process is a routine, the following form can be considered. The identification information 201 is the key for encryption after the first argument (passed by reference, storing the first associative array 303b), the second argument (passed by reference, storing the second associative array 303c), and the third and subsequent arguments. It is provided to specify the type of encryption (RSA, elliptical curve encryption, common key encryption, etc.). For example, the third argument (truth value type. TRUE if the key for common key cryptography is returned as identification information 201) and the fourth argument (truth value type. If the key for RSA encryption is returned as identification information 201). TRUE), a fifth argument (when returning the private key of RSA encryption, the public key which is the secret key and the key pair is stored. In other cases, an empty character string or null is stored) is conceivable. The routine preferably returns the identification information 201 if the processing is successful, and returns the value specified in the sixth argument if the processing is unsuccessful.

ステップS341について説明する。この処理は必ずしもすべての場合に実行する必要はない。例えば、第1連想配列303bの要素数をn(例えば、n=100)で割り、その剰余(0以上n−1以下)が、乱数(0以上n以下。必ずしも整数でなくてもよい)の場合のみ以下の処理を実行する形態が考えられる。これは必要以上に鍵が増えることを防ぐことと、処理部303の実行時間が長くなる場合を少なくする効果がある。このステップは、処理部303が返そうとしている識別情報201が何の種類の暗号化(RSA、楕円曲線暗号、共通鍵暗号など)かに基づいて、新しい鍵を作成し、該鍵を、少なくとも第1連想配列301bに記憶する。 Step S341 will be described. This process does not necessarily have to be performed in all cases. For example, the number of elements in the first associative array 303b is divided by n (for example, n = 100), and the remainder (0 or more and n-1 or less) is a random number (0 or more and n or less, not necessarily an integer). A form in which the following processing is executed can be considered only in the case. This has the effect of preventing the number of keys from increasing more than necessary and reducing the case where the execution time of the processing unit 303 becomes long. In this step, the identification information 201 to be returned by the processing unit 303 creates a new key based on what kind of encryption (RSA, elliptic curve cryptography, common key cryptography, etc.), and at least the key is used. It is stored in the first associative sequence 301b.

作成する鍵が共通鍵暗号のための鍵である場合を例に説明する。共通鍵を作成し、該鍵を第1連想配列303bのキーとして記憶する。該キーと組み合わせる値は、該キーが共通鍵暗号のための鍵である旨を示す情報。 The case where the key to be created is a key for symmetric key cryptography will be described as an example. A common key is created, and the key is stored as the key of the first associative array 303b. The value combined with the key is information indicating that the key is a key for common key cryptography.

作成する鍵がRSA暗号のための鍵である場合を説明する。前記秘密鍵を第1連想配列303bのキーとして記憶する。該キーと組み合わせる値は、該キーがRSA暗号のための鍵である旨を示す情報。前記秘密鍵を第2連想配列303cのキーとして記憶する。該キーと組み合わせる値は、該キー(秘密鍵)と鍵ペアである公開鍵。 The case where the key to be created is the key for RSA encryption will be described. The secret key is stored as the key of the first associative array 303b. The value combined with the key is information indicating that the key is a key for RSA encryption. The secret key is stored as the key of the second associative array 303c. The value to be combined with the key is a public key that is a key pair with the key (private key).

情報処理装置1のCPU11は、プログラム12Pに基づいて、共通鍵暗号化のための鍵、または、公開鍵暗号のための公開鍵および秘密鍵、を作成し、例えばRAM13に記憶する。 The CPU 11 of the information processing apparatus 1 creates a key for common key cryptography or a public key and a private key for public key cryptography based on the program 12P, and stores them in, for example, a RAM 13.

ステップS343について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に記憶されている第1連想配列303bと、例えばRAM13に記憶されている第2連想配列303cと、を抜き出し、共通鍵344bと、連想配列344cと、を作成し、例えばRAM13に記憶する。 Step S343 will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 extracts, for example, the first associative array 303b stored in the RAM 13 and the second associative array 303c stored in the RAM 13, and obtains the common key 344b. The associative array 344c and the associative array 344c are created and stored in, for example, RAM 13.

共通鍵344bについて説明する。0個以上の共通鍵を記憶した配列。各要素に1個ずつ共通鍵を記憶する。 The common key 344b will be described. An array that stores 0 or more common keys. Store one common key for each element.

連想配列344cについて説明する。公開鍵を該連想配列のキーとし、該キーと組み合わせる値は、該キー(公開鍵)と鍵ペアである秘密鍵。 The associative array 344c will be described. The public key is used as the key of the associative array, and the value to be combined with the key is the private key which is a key pair with the key (public key).

ステップS344について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、次の処理を実行する。 Step S344 will be described. The CPU 11 of the information processing apparatus 1 executes the following processing based on the program 12P.

共通鍵を返す場合を説明する。共通鍵344bに記憶されている共通鍵からランダムに1個選び、識別情報201として例えばRAM13に記憶して処理を終了する。 The case of returning the common key will be described. One of the common keys stored in the common key 344b is randomly selected and stored as the identification information 201 in, for example, the RAM 13 to end the process.

RSA暗号の公開鍵を返す場合を説明する。連想配列344cのキーからからランダムに1個選び、識別情報201として例えばRAM13に記憶して処理を終了する。 The case of returning the public key of RSA encryption will be described. One is randomly selected from the keys of the associative array 344c, stored as identification information 201 in, for example, RAM 13, and the process is terminated.

RSA暗号の秘密鍵を返す場合を説明する。指定された公開鍵と同じキーを連想配列344cから取り出し、該キーに対応する値を、例えばRAM13に記憶して処理を終了する。 The case of returning the private key of RSA encryption will be described. The same key as the designated public key is taken out from the associative array 344c, the value corresponding to the key is stored in, for example, RAM 13, and the process is terminated.

請求項4について説明する。 A fourth aspect will be described.

処理Bにおける暗号化は、作成された暗号文に、該暗号化に使用した公開鍵を特定できる情報(例えば、前記公開鍵自体、前記公開鍵のフィンガープリント)を付加する形態、 The encryption in the process B is a form in which information that can identify the public key used for the encryption (for example, the public key itself, a fingerprint of the public key) is added to the created ciphertext.

処理Dにおける復号は、復号すべき暗号文に付加された、該暗号化に使用した公開鍵を特定できる情報に基づいて、暗号化に用いた公開鍵を特定し、該公開鍵と鍵ペアである秘密鍵を、この請求項に記載の第2の組み合わせから選び出す形態、 Decryption in process D identifies the public key used for encryption based on the information added to the ciphertext to be decrypted that can identify the public key used for the encryption, and uses the public key and the key pair. A form in which a private key is selected from the second combination described in this claim.

が好適。 Is suitable.

図3−5は、識別情報201を表示部15に表示する場合の例。「ライセンスキーを注文する際に、下記の文字列を連絡してください」。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えば前記した文字列を表示部15に表示させ、識別情報201を、前記表示部15に表示させる。例えば記憶部12に記憶情報301として記憶されている情報を読み込み、該情報を用いて処理部302を実行し、第1連想配列301b、第2連想配列302cを例えばRAM13に記憶する。該第1連想配列301b、該第2連想配列302c、を用いて処理部303を実行させ、表示部15に識別情報201を表示させる。処理部303によって該第1連想配列301b、該第2連想配列302c、の要素が増えている場合があるため、該第1連想配列301b、該第2連想配列302c、を用いて処理部302を実行させ、作成された例えば文字列を記憶部301として例えば記憶部12に記憶し、処理を終了する。 FIG. 3-5 shows an example in which the identification information 201 is displayed on the display unit 15. "Please contact us with the string below when ordering your license key." Based on the program 12P, the CPU 11 of the information processing apparatus 1 displays, for example, the character string described above on the display unit 15, and causes the display unit 15 to display the identification information 201. For example, the information stored as the storage information 301 is read into the storage unit 12, the processing unit 302 is executed using the information, and the first associative array 301b and the second associative array 302c are stored in, for example, the RAM 13. The processing unit 303 is executed using the first associative array 301b and the second associative array 302c, and the display unit 15 displays the identification information 201. Since the elements of the first associative array 301b and the second associative array 302c may be increased by the processing unit 303, the processing unit 302 is used by using the first associative array 301b and the second associative array 302c. It is executed, and the created character string, for example, is stored in the storage unit 12, for example, as the storage unit 301, and the process is terminated.

文字列351について説明する。文字列351は、表示部15に表示されている識別情報201の例。 The character string 351 will be described. The character string 351 is an example of the identification information 201 displayed on the display unit 15.

ボタン352について説明する。ボタン352は、例えば、表示部15に表示されているマウスポインタ(図示しない)を入力部14(例えばマウス)の操作によりクリックする、等の所定の動作により所定のプログラム(ルーチン)が動作するためのボタン。該プログラム(ルーチン)は、下記の動作を実行する。例えば記憶部12に記憶情報301として記憶されている情報を読み込み、該情報を用いて処理部302を実行し、第1連想配列301b、第2連想配列302cを例えばRAM13に記憶する。該第1連想配列301b、該第2連想配列302c、を用いて処理部303を実行させ、表示部15に識別情報201を表示させる。処理部303によって該第1連想配列301b、該第2連想配列302c、の要素が増えている場合があるため、該第1連想配列301b、該第2連想配列302c、を用いて処理部302を実行させ、作成された例えば文字列を記憶部301として例えば記憶部12に記憶し、処理を終了する。 The button 352 will be described. The button 352 operates a predetermined program (routine) by a predetermined operation such as clicking a mouse pointer (not shown) displayed on the display unit 15 by operating the input unit 14 (for example, a mouse). Button. The program (routine) executes the following operations. For example, the information stored as the storage information 301 is read into the storage unit 12, the processing unit 302 is executed using the information, and the first associative array 301b and the second associative array 302c are stored in, for example, the RAM 13. The processing unit 303 is executed using the first associative array 301b and the second associative array 302c, and the display unit 15 displays the identification information 201. Since the elements of the first associative array 301b and the second associative array 302c may be increased by the processing unit 303, the processing unit 302 is used by using the first associative array 301b and the second associative array 302c. It is executed, and the created character string, for example, is stored in the storage unit 12, for example, as the storage unit 301, and the process is terminated.

ボタン353について説明する。ボタン353は、例えば、表示部15に表示されているマウスポインタ(図示しない)を入力部14(例えばマウス)の操作によりクリックする、等の所定の動作により所定のプログラム(ルーチン)が動作するためのボタン。該プログラム(ルーチン)は、例えばプログラム12Pまたは記憶部12に定義された(変形例:該記憶部12に定義が書き込まれていない場合、プログラム12Pは、該記憶部12に該定義を書き込む)ウェブサイトに接続し、表示部15に前記ウェブサイトを表示する。前記ウェブサイトは、文字列351の入力を受け付ける機能をそなえる。前記文字列351を識別情報201とみなし、情報処理装置2が所定の情報を作成するために用いる。 The button 353 will be described. The button 353 operates a predetermined program (routine) by a predetermined operation such as clicking a mouse pointer (not shown) displayed on the display unit 15 by operating the input unit 14 (for example, a mouse). Button. The program (routine) is defined in, for example, the program 12P or the storage unit 12 (modification example: if the definition is not written in the storage unit 12, the program 12P writes the definition in the storage unit 12). Connect to the site and display the website on the display unit 15. The website has a function of accepting an input of a character string 351. The character string 351 is regarded as the identification information 201 and is used by the information processing apparatus 2 to create predetermined information.

請求項6について説明する。この請求項に記載の「前記識別情報を通信網を介して情報処理装置2が受け取る事ができる形態で送信できる措置を施すこと、」は、例えば、この請求項に記載の識別情報を入力することによりライセンスキーを発行(例えば販売)するためのウェブサイトに接続し、該ウェブサイトを情報処理装置1の表示部15に表示させる措置が考えられる。 The sixth aspect will be described. The "measure to be able to transmit the identification information in a form that can be received by the information processing apparatus 2 via the communication network" described in this claim is, for example, inputting the identification information described in this claim. As a result, it is conceivable to connect to a website for issuing (for example, selling) a license key and display the website on the display unit 15 of the information processing apparatus 1.

図4は、実施の形態1に係る情報処理装置2が、識別情報201を用いて、ライセンスコード241bと、ファイル241cと、を作成する処理に関する。ここでは、作成されるファイル241cはライセンスキーに関する情報が記録され、記憶装置3における、http://tsubossie.client.jp/software/license_From202005というURL(Uniform Resource Locator)としてあらわされるディレクトリ内に記憶される場合を例に説明する。前記ディレクトリは、ファイル241cを読み込む情報処理装置1におけるプログラム22Pまたは記憶部12の少なくともいずれかに定義されている。(変形例:前記ディレクトリが記憶部12に設定されていない場合、情報処理装置1のCPU11は、プログラム22Pに基づいて、前記設定を前記記憶部12に書き込む)。 FIG. 4 relates to a process in which the information processing apparatus 2 according to the first embodiment creates a license code 241b and a file 241c using the identification information 201. Here, the created file 241c records information about the license key and is stored in the directory represented as the URL (Uniform Resource Locator) http://tsubossie.client.jp/software/license_From202005 in the storage device 3. This case will be described as an example. The directory is defined in at least one of the program 22P or the storage unit 12 in the information processing apparatus 1 that reads the file 241c. (Modification example: When the directory is not set in the storage unit 12, the CPU 11 of the information processing device 1 writes the setting in the storage unit 12 based on the program 22P).

有効情報401について説明する。 The valid information 401 will be described.

有効情報401は、作成するライセンスキーに書き込まれる情報であって、例えば、該ライセンスキーの入力が有効となる最初の日(第1日付)。該ライセンスキーが有効となる最後の日(第2日付)。該ライセンスキーが入力されたときにおける有効日数(第1日数)。 The valid information 401 is information written in the license key to be created, and is, for example, the first day (first date) when the input of the license key becomes valid. The last day (second date) when the license key becomes valid. The number of valid days (first day) when the license key is entered.

が考えられる。 Can be considered.

処理部402について説明する。情報処理装置2のCPU22は、プログラム22Pに基づいて、下記の処理をする。処理部402は、ルーチン群404に属するルーチンのうち、どのルーチンを用いてファイル241cを作成するかを決定し、決定内容を例えばRAM23に記憶する(決定内容403b)。 The processing unit 402 will be described. The CPU 22 of the information processing apparatus 2 performs the following processing based on the program 22P. The processing unit 402 determines which routine belonging to the routine group 404 is used to create the file 241c, and stores the determined content in, for example, the RAM 23 (decision content 403b).

決定内容403bについて説明する。決定内容403bは、例えば1以上の自然数であって、ルーチン群404に属するルーチンの番号(1以上の自然数)を表す。 The decision content 403b will be described. The determination content 403b is, for example, a natural number of 1 or more, and represents a routine number (natural number of 1 or more) belonging to the routine group 404.

ルーチン群404について説明する。ルーチン群404は、ルーチン404−1からルーチン404−nまで、n個のルーチンを有する。情報処理装置2のCPU22は、プログラム22Pに基づいて、下記の処理をする。前記ルーチン群に属するルーチンのうち、使用するルーチンを、決定内容403bに基づいて特定し、前記ルーチンに基づいて、有効情報401、識別情報201を用いて、ファイル241c、ライセンスコード241b、を作成する。ルーチン群404に属するルーチンは、必要に応じて、秘密鍵(図示しない)を用いてデジタル署名を実行し、検証のための公開鍵を作成することがある。該公開鍵は、例えば図示しないファイルとして作成され、該ファイルの所在を示す情報は、ファイル405cに書き込まれる(変形例:該公開鍵は、ファイル405cに書き込まれる)。 The routine group 404 will be described. The routine group 404 has n routines from routine 404-1 to routine 404-n. The CPU 22 of the information processing apparatus 2 performs the following processing based on the program 22P. Among the routines belonging to the routine group, the routine to be used is specified based on the determination content 403b, and the file 241c and the license code 241b are created by using the valid information 401 and the identification information 201 based on the routine. .. Routines belonging to the routine group 404 may perform digital signatures using a private key (not shown) and create a public key for verification, if necessary. The public key is created, for example, as a file (not shown), and information indicating the location of the file is written in the file 405c (modification example: the public key is written in the file 405c).

第1情報405bについて説明する。第1情報405bは、ルーチン群404に属するルーチンによって作成された情報。第1情報405bに書き込まれている情報は、作成に用いたルーチンによって異なる。例えば、該ライセンスキーの入力が有効となる最初の日(第1日付)。該ライセンスキーが有効となる最後の日(第2日付)。該ライセンスキーが入力されたときにおける有効日数(第1日数)。 The first information 405b will be described. The first information 405b is information created by a routine belonging to the routine group 404. The information written in the first information 405b differs depending on the routine used for creation. For example, the first day (first date) when the input of the license key becomes valid. The last day (second date) when the license key becomes valid. The number of valid days (first day) when the license key is entered.

が書き込まれている形態が考えられる。 Is considered to be written.

ファイル241cについて説明する。必ずしもファイルという形態でなくてもよい。ファイル241cが1個以上のファイルである形態を例に説明する。情報処理装置2のCPU22は、プログラム22Pに基づいて、下記のファイルを作成し例えば記憶部22に記憶する。ファイル241cは、1個の目録ファイル405b(必ずしもファイルという形態でなくてもよい)、1個以上のファイル405c(必ずしもファイルという形態でなくてもよい)、を作成する。 File 241c will be described. It does not necessarily have to be in the form of a file. The form in which the file 241c is one or more files will be described as an example. The CPU 22 of the information processing apparatus 2 creates the following files based on the program 22P and stores them in, for example, the storage unit 22. The file 241c creates one catalog file 405b (not necessarily in the form of a file) and one or more files 405c (not necessarily in the form of a file).

目録ファイル405bについて説明する。 The catalog file 405b will be described.

目録ファイル405bは、決定内容403bと、ファイル405cの所在(例えばファイル名)ならびに該ファイル405cに属する各データの役割を示す情報と、 The catalog file 405b contains a decision content 403b, information indicating the location of the file 405c (for example, a file name), and information indicating the role of each data belonging to the file 405c.

が記録される。ファイル405cに属するファイルは、ルーチン群404に属するルーチンによって、個数や役割が異なる。情報処理装置1は、目録ファイル405bを読み取り、その内容に基づいて、ファイル405cに属するファイルを読み取るルーチンを決定する。 Is recorded. The number and role of the files belonging to the file 405c differ depending on the routines belonging to the routine group 404. The information processing apparatus 1 reads the catalog file 405b, and determines a routine for reading the file belonging to the file 405c based on the contents thereof.

ファイル405cについて説明する。ファイル405cの役割は、種々の形態が考えられるが、例えば、図示しない秘密鍵を用いて電子署名を施し、該電子署名を検証するための鍵、または、該鍵の所在を示す情報が書き込まれている形態が考えられる。 File 405c will be described. The role of the file 405c can be considered in various forms. For example, an electronic signature is applied using a private key (not shown), and a key for verifying the electronic signature or information indicating the location of the key is written. The form is conceivable.

ライセンスコード241bについて説明する。 The license code 241b will be described.

ライセンスコード241bは、目録ファイル405bの所在(例えばファイル名)を示す情報。 The license code 241b is information indicating the location (for example, a file name) of the catalog file 405b.

図4−1は、実施の形態2に係る情報処理装置がファイルおよびライセンスコードを作成する処理に関する図。 FIG. 4-1 is a diagram relating to a process in which the information processing apparatus according to the second embodiment creates a file and a license code.

ルーチン404−nについて説明する。情報処理装置2のCPU21は、プログラム22Pに基づいて、識別情報201、有効情報401に基づいて、ルーチン404−nを用いて、ライセンスコード241bを作成し例えばRAM23に記憶する。ファイル群410bを作成し、例えば記憶部12に記憶する。 Routine 404-n will be described. The CPU 21 of the information processing apparatus 2 creates a license code 241b based on the identification information 201 and the valid information 401 using the routine 404-n based on the program 22P, and stores the license code 241b in, for example, the RAM 23. A file group 410b is created and stored in, for example, a storage unit 12.

ファイル群410bについて説明する。少なくとも目録ファイル405bを含む1個以上のファイル。 The file group 410b will be described. One or more files containing at least the catalog file 405b.

目録ファイル405bについて説明する。ファイル群410bに属する各ファイルを作成したルーチンが何であるかを示す情報と、情報処理装置1がファイル群410bに属するファイルを扱うために必要な情報と、が記録される。(例えば、目録ファイル405bを除くファイル群410bに属するファイルの名称及び該ファイルの役割を示す情報)。 The catalog file 405b will be described. Information indicating what the routine that created each file belonging to the file group 410b is, and information necessary for the information processing apparatus 1 to handle the file belonging to the file group 410b are recorded. (For example, the name of the file belonging to the file group 410b excluding the catalog file 405b and the information indicating the role of the file).

ライセンスコード241bについて説明する。 The license code 241b will be described.

目録ファイル405bの名称が記録される。 The name of the catalog file 405b is recorded.

図4−2は、実施の形態1に係る情報処理装置2が、ライセンスコード241bと、ファイル241cと、に基づいて、少なくとも有効情報401を読み取る処理に関する。ここでは、図4、図4−1を参照しながら説明した手段によって作成されたファイルを読み取る形態であって、前記ファイルは、記憶装置3における、http://tsubossie.client.jp/software/license_From202005というURL(Uniform Resource Locator)としてあらわされるディレクトリ内に記憶される場合を例に説明する。前記ディレクトリは、ファイル241cを読み込む情報処理装置1におけるプログラム22Pまたは記憶部12の少なくともいずれかに定義されている。(変形例:前記ディレクトリが記憶部12に設定されていない場合、情報処理装置1のCPU11は、プログラム22Pに基づいて、前記設定を前記記憶部12に書き込む)。 FIG. 4-2 relates to a process in which the information processing apparatus 2 according to the first embodiment reads at least valid information 401 based on the license code 241b and the file 241c. Here, the file is read by the means described with reference to FIGS. 4 and 4-1. The file is the file in the storage device 3 http://tsubossie.client.jp/software/. A case where the file is stored in a directory represented as a URL (Uniform Resource Locator) called license_From202005 will be described as an example. The directory is defined in at least one of the program 22P or the storage unit 12 in the information processing apparatus 1 that reads the file 241c. (Modification example: When the directory is not set in the storage unit 12, the CPU 11 of the information processing device 1 writes the setting in the storage unit 12 based on the program 22P).

処理部422について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、ライセンスコード241bの入力を受け付けて、該ライセンスコード241bに基づいて、記憶装置3における目録ファイル405bの所在を特定し、前記目録ファイル405bを、通信網N、通信部16、を介しダウンロードし、例えば記憶部12に記憶する。前記目録ファイル405bは、前記目録ファイル405bが属するファイル241c(1個以上のファイルの集合と考える)が、情報処理装置2におけるどのルーチン(ルーチン404−1からルーチン404−nのいずれか)によって作成されたものであるかが記録されている。該記録に基づいて、ファイル241cを読み取るために用いるルーチンを、ルーチン群424に属するルーチンのうち、ルーチン424−1からルーチン424−nの、どのルーチンを用いるかを決定する。 The processing unit 422 will be described. The CPU 11 of the information processing apparatus 1 accepts the input of the license code 241b based on the program 12P, identifies the location of the catalog file 405b in the storage device 3 based on the license code 241b, and uses the catalog file 405b. It is downloaded via the communication network N and the communication unit 16, and stored in the storage unit 12, for example. The catalog file 405b is created by which routine (one of routines 404-1 to 404-n) in the information processing apparatus 2 is created by the file 241c (considered to be a set of one or more files) to which the catalog file 405b belongs. It is recorded whether it was done. Based on the record, it is determined which of the routines belonging to the routine group 424, routines 244-1 to 424-n, is used as the routine used for reading the file 241c.

ルーチン群424について説明する。ルーチン群424は、ルーチン424−1からルーチン424−nまで、n個のルーチンを有する。情報処理装置1のCPU11は、プログラム12Pに基づいて、下記の処理をする。前記ルーチン群に属するルーチンのうち、使用するルーチンを、目録ファイル405bに記録された内容に基づいて特定し、前記ルーチンに基づいて、ファイル241c、ライセンスコード241b、を用いて、有効情報401、識別情報201を読み取る。ルーチン群424に属するルーチンは、必要に応じて、公開鍵(図示しない)を用いてデジタル署名の検証を実行すること、該検証のための公開鍵を取得(例えばダウンロード)することがある。 The routine group 424 will be described. The routine group 424 has n routines from routine 424-1 to routine 424-n. The CPU 11 of the information processing apparatus 1 performs the following processing based on the program 12P. Among the routines belonging to the routine group, the routine to be used is specified based on the contents recorded in the catalog file 405b, and based on the routine, the file 241c and the license code 241b are used to identify the valid information 401. Read information 201. Routines belonging to the routine group 424 may perform digital signature verification using a public key (not shown) and acquire (for example, download) a public key for the verification, if necessary.

備考。情報処理装置1のCPU11は、プログラム12Pに基づいて、前記情報処理装置1にライセンス情報を記録し、プログラム12Pの機能の一部または全部を、前記ライセンス情報に基づいて実行内容を変更する。例えば、第1日付から第2日付の間に入力されたライセンスキーは、入力日から30日間有効である旨のライセンスキーが存在し、前記情報が書き込まれたライセンスキーが情報処理装置1に読み取られた場合、情報処理装置1のCPU11は、プログラム12Pに基づいて、前記情報を読み取り(有効情報401に含む)例えばRAM13に、前記入力日と、前記入力日の30日後の日付を記録し、これらの日付の間の日付(これらの日付当日を含んでいてもよい)であるか否かによって、プログラム12Pに基づく動作の一部または全部を変更する。 remarks. The CPU 11 of the information processing apparatus 1 records license information in the information processing apparatus 1 based on the program 12P, and changes the execution contents of a part or all of the functions of the program 12P based on the license information. For example, the license key input between the first date and the second date has a license key that is valid for 30 days from the input date, and the license key in which the information is written is read by the information processing apparatus 1. If so, the CPU 11 of the information processing apparatus 1 reads the information (included in the valid information 401), for example, records the input date and the date 30 days after the input date in the RAM 13 based on the program 12P. Part or all of the operation based on the program 12P is changed depending on whether or not it is a date between these dates (which may include the current day of these dates).

<実施の形態A>本実施の形態は、連想配列を文字列に変換する処理、また、文字列を連想配列に変換する処理に関する。本実施の形態におけるハードウェア構成は実施の形態1と同様。図Aは、実施の形態Aに係る処理のフローチャート。本実施の形態を、図Aを参照しながら説明する。この処理をルーチンとするなら、第1引数(真理値型)、第2引数(参照渡しの連想配列)、第3引数(参照渡しの文字列型)を設け、 <Embodiment A> The present embodiment relates to a process of converting an associative array into a character string and a process of converting a character string into an associative array. The hardware configuration in the present embodiment is the same as that in the first embodiment. FIG. A is a flowchart of the process according to the embodiment A. The present embodiment will be described with reference to FIG. If this process is a routine, provide the first argument (truth value type), the second argument (associative array passed by reference), and the third argument (character string type passed by reference).

前記第1引数によって、第2引数に代入された連想配列を配列に変換し、第3引数に代入する処理と、第3引数に代入された文字列を連想配列に変換し、第2引数に代入する処理と、 By the first argument, the associative array assigned to the second argument is converted into an array and assigned to the third argument, and the character string assigned to the third argument is converted to an associative array and used as the second argument. Substitution processing and

のいずれかを実行する形態が考えられる。前記ルーチンは、処理に成功したときTRUE、処理に失敗したときFALSEを返す形態が好適。 A form of executing any of the above can be considered. The routine is preferably in the form of returning TRUE when the processing is successful and FALSE when the processing is unsuccessful.

文字列を連想配列に変換する処理について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に、文字列A105bを記憶する領域と、連想配列A105cを記憶する領域と、を確保し、文字列A105b、に基づいて、ステップSa104によって作成した連想配列A105c、を例えばRAM13に記憶し、処理を終了する。 The process of converting a character string into an associative array will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 secures, for example, an area for storing the character string A105b and an area for storing the associative array A105c in the RAM 13, and based on the character string A105b, step Sa104. The associative array A105c created by the above is stored in, for example, RAM 13, and the process is terminated.

連想配列を文字列に変換する処理について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、例えばRAM13に、文字列A105bを記憶する領域と、連想配列A105cを記憶する領域と、を確保し、連想配列A105c、に基づいて、ステップSa102によって作成した文字列A105b、を例えばRAM13に記憶し、処理を終了する。 The process of converting an associative array into a character string will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 secures, for example, an area for storing the character string A105b and an area for storing the associative array A105c in the RAM 13, and based on the associative array A105c, step Sa102. The character string A105b created by the above is stored in, for example, the RAM 13, and the process is terminated.

ステップSa100について説明する。このステップは、例えばRAM13に記憶された文字列を連想配列に変換する処理を実行すべきか、あるいは、例えばRAM13に記憶された連想配列を文字列に変換する処理を実行する処理を実行すべきか、を、例えばRAM13に記憶されたフラグ(真理値型の変数)(例えば前記ルーチンの第1引数に指定された)に基づいて判断する。ここでは、SステップSa100:YESの場合にステップSa103からステップSa104までを実行し、ステップSa100:NOの場合にステップSa101,ステップSa102を実行する場合を例に説明する。 Step Sa100 will be described. In this step, for example, should the process of converting the character string stored in the RAM 13 into an associative array be executed, or should the process of executing the process of converting the associative array stored in the RAM 13 into a character string be executed? Is determined based on, for example, a flag (a variable of truth value type) stored in the RAM 13 (for example, specified as the first argument of the routine). Here, a case where steps Sa103 to Step Sa104 are executed in the case of S step Sa100: YES, and steps Sa101 and Step Sa102 are executed in the case of step Sa100: NO will be described as an example.

ステップSa101について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、連想配列A105cにnullが格納されている(何も格納されていない)場合は空文字列を作成し文字列A105bとして例えばRAM13に記憶させ、処理を終了する。連想配列A105cに要素数0個の配列が格納されている場合は1文字の文字列を作成し文字列A105bとして例えばRAM13に記憶させ、処理を終了する。 Step Sa101 will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 creates an empty string when null is stored in the associative array A105c (nothing is stored), stores it as the character string A105b in, for example, RAM 13, and processes it. To finish. When an array with 0 elements is stored in the associative array A105c, a character string of one character is created, stored as the character string A105b in, for example, RAM 13, and the process is terminated.

ステップSa103について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、文字列A105bに空文字列が格納されている(nullは空文字列とみなす)場合は、連想配列A105cにnullを格納して処理を終了する。文字列A105bに文字数1文字の文字列が格納されている場合は、連想配列A105cに要素数0の連想配列を格納して処理を終了する。 Step Sa103 will be described. When the empty string is stored in the character string A105b (null is regarded as an empty string), the CPU 11 of the information processing apparatus 1 stores null in the associative array A105c and ends the process. When a character string having one character is stored in the character string A105b, the associative array with zero elements is stored in the associative array A105c and the process ends.

図A−1は、ステップSa102を示すフローチャート(連想配列から文字列)。情報処理装置のCPU11は、プログラム12Pに基づいて、ステップSa102を下記の通り実行する。 FIG. A-1 is a flowchart (character string from an associative array) showing step Sa102. The CPU 11 of the information processing apparatus executes step Sa102 as follows based on the program 12P.

ステップSa111について説明する。 Step Sa111 will be described.

このステップは、例えばRAM13に記憶されている、連想配列A105cのキーを例えばRAM13に配列A112bとして記憶し、前記配列A112bの各要素に格納されている値をキーとして連想配列A105cにおいて組み合わせてある値A112cを、例えばRAM13に記憶する。 In this step, for example, the key of the associative array A105c stored in the RAM 13 is stored in the RAM 13 as the array A112b, and the value stored in each element of the array A112b is used as a key and combined in the associative array A105c. A112c is stored in, for example, RAM 13.

図A−1では、aaa、bbb、ccc、をキーとし、それぞれのキーと組み合わせてある値は、えー、びー、しー、である場合を例に説明してある。連想配列A105cのキーは順番の概念が無く配列A112bは順番の概念があるため、A112bの各要素に格納されるキーの順番は、必ずしも1種類とは限らない。 In FIG. A-1, aaa, bbb, and ccc are used as keys, and the values combined with the respective keys are described as examples of er, bi, and er. Since the keys of the associative array A105c do not have the concept of order and the array A112b has the concept of order, the order of the keys stored in each element of A112b is not necessarily one type.

ステップSa113について説明する。配列A114b(要素数はA112bの要素数の2倍)を作成し、例えばRAM13に記憶する。該配列A114bの各要素に格納される値は下記の通り。配列A112bのn番目(0≦n≦配列A112bの要素数‐1)の要素に格納された値は、配列A114bの2n番目の要素に格納する。配列A112bのn番目(0≦n≦配列A112bの要素数‐1)の要素に格納された値を連想配列A105cにおけるキーとし、該キーに対応する値は、配列A114bの2n+1番目の要素に格納する。 Step Sa113 will be described. An array A114b (the number of elements is twice the number of elements of A112b) is created and stored in, for example, RAM 13. The values stored in each element of the array A114b are as follows. The value stored in the nth element of the array A112b (0 ≦ n ≦ the number of elements of the array A112b-1) is stored in the 2nth element of the array A114b. The value stored in the nth element of the array A112b (0 ≦ n ≦ the number of elements of the array A112b-1) is used as the key in the associative array A105c, and the value corresponding to the key is stored in the 2n + 1st element of the array A114b. do.

ステップSa115について説明する。配列A114bのいかなる要素にも存在しない文字を1個特定し、前記文字を区切り文字として、前記配列A114bの各要素を連結した文字列を作成し、前記文字列の区切り文字とは異なる所定の位置(例えば末尾、1文字目)に前記区切り文字を配置した文字列を、文字列A116bとして作成し、例えばRAM13に記憶し、処理を終了する。 Step Sa115 will be described. One character that does not exist in any element of the array A114b is specified, a character string is created by concatenating each element of the array A114b with the character as a delimiter, and a predetermined position different from the delimiter of the character string is created. A character string in which the delimiter is arranged (for example, the first character at the end) is created as the character string A116b, stored in the RAM 13, for example, and the process is terminated.

図A−2は、ステップSa102を示すフローチャート(連想配列から文字列)。情報処理装置のCPU11は、プログラム12Pに基づいて、ステップSa102を下記の通り実行する。 FIG. A-2 is a flowchart (character string from an associative array) showing step Sa102. The CPU 11 of the information processing apparatus executes step Sa102 as follows based on the program 12P.

ステップSa125について説明する。 Step Sa125 will be described.

このステップは、例えばRAM13に記憶されている、文字列A126の所定の位置(例えば末尾、1文字目)に存在する文字を区切り文字とし、該所定の位置でない位置に存在する文字列を前記区切り文字を境に区切ってA124bを作成し、 In this step, for example, a character existing in a predetermined position (for example, the first character at the end) of the character string A126 stored in the RAM 13 is used as a delimiter, and a character string existing in a position other than the predetermined position is used as the delimiter. Create A124b by separating the characters as boundaries,

前記配列A124bを、例えばRAM13に記憶する。文字列A126bがaaadえーdbbbdびーdcccdしーdである場合に、前記所定の位置が末尾である場合を説明する。この場合、dを区切り文字としaaadえーdbbbdびーdcccdしーdを、前記dを境に区切る。よって配列A124bは、0番の要素にaaa、1番の要素にえー、2番の要素にbbb、3番の要素にびー、4番の要素にccc、5番の要素にしー、を格納した配列として、例えばRAM13に記憶される。 The array A124b is stored in, for example, RAM 13. A case where the predetermined position is the end when the character string A126b is aaad, dbbbd, and dcccd, d will be described. In this case, d is used as a delimiter, and aad is dbbbd and dcccd is separated by d. Therefore, the array A124b stores aaa in the 0th element, bbb in the 2nd element, ccc in the 4th element, and ccc in the 4th element. As an array, it is stored in, for example, RAM 13.

ステップSa123について説明する。 Step Sa123 will be described.

このステップは、例えばRAM13に記憶されている、配列A124bに基づいて、連想配列A105cを作成し、該連想配列を例えばRAM13に記憶して、処理を終了する。前記配列A124bの(最初の要素を0番とした)、偶数番目の要素に格納された値をキーとし、該偶数+1番目の要素に格納された値を、前記キーに対応する値とし、 This step creates an associative array A105c based on the array A124b stored in, for example, RAM 13, stores the associative array in, for example, RAM 13, and ends the process. The value stored in the even-numbered element of the array A124b (the first element is set to 0) is used as a key, and the value stored in the even-numbered + 1st element is used as a value corresponding to the key.

連想配列A105cに追加する。配列A124bが図A−2に示す如く格納されている場合、前記連想配列A105cは、aaaをキーとし、えーを値とするキーと値の組み合わせと、bbbをキーとし、びーを値とするキーと値の組み合わせと、cccをキーとし、しーを値とするキーと値の組み合わせと、 Add to associative array A105c. When the array A124b is stored as shown in FIG. A-2, the associative array A105c has a key and a value combination having aaa as a key and a key having bbb as a key and a key having bi as a value. And value combinations, and key / value combinations that use ccc as the key and the value as the value.

が記憶される。 Is remembered.

<実施の形態B>本実施の形態は、デジタル署名を施す処理、また、デジタル署名が施された情報の真偽を検証する処理に関する。本実施の形態におけるハードウェア構成は実施の形態1と同様。ここでは情報処理装置1が実行する場合を例に説明するが情報処理装置2が実行する場合も同様。図Bは、実施の形態Bに係る処理のフローチャート。 <Embodiment B> The present embodiment relates to a process of applying a digital signature and a process of verifying the authenticity of the digitally signed information. The hardware configuration in the present embodiment is the same as that in the first embodiment. Here, the case where the information processing apparatus 1 executes is described as an example, but the same applies to the case where the information processing apparatus 2 executes. FIG. B is a flowchart of the process according to the embodiment B.

本実施の形態を、図Bを参照しながら説明する。 This embodiment will be described with reference to FIG. B.

署名対象B100について説明する。本説明における署名の対象。 The signature target B100 will be described. Subject to signature in this description.

ステップBs101について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて。ルーチン群Bs103に属するルーチン(1番からn番までの番号が割り振られているn個のルーチン)の番号、すなわちルーチン群Bs103に属するルーチンの番号に存在する数(但し、ルーチン群Bs103に属するルーチンであって、使用すべきでないルーチンがある場合、該ルーチンの番号を除いた番号から)をランダムに1個選び、例えばRAM13に、ルーチン番号B102として記憶する。 Step Bs101 will be described. The CPU 11 of the information processing apparatus 1 is based on the program 12P. The number of the routine belonging to the routine group Bs103 (n number routines to which the numbers 1 to n are assigned), that is, the number existing in the number of the routine belonging to the routine group Bs103 (however, the routine belonging to the routine group Bs103). If there is a routine that should not be used, one randomly selected (from the numbers excluding the number of the routine) is randomly selected and stored in, for example, RAM 13 as the routine number B102.

ルーチン群Bs103について説明する。ルーチン群Bs103は、デジタル署名を施す1個以上のルーチンの集合。情報処理装置1のCPU11は、プログラム12Pに基づいて。例えばRAM13に記憶された、ルーチン番号B102に基づいて、使用するルーチンを決定する。該ルーチンは、署名対象B100に対するデジタル署名を施し(該デジタル署名に用いる鍵は図示しない)、該電子署名によって作成された情報は、例えばRAM13に、第1署名文B104として記憶される。 The routine group Bs103 will be described. The routine group Bs103 is a set of one or more routines for digitally signing. The CPU 11 of the information processing apparatus 1 is based on the program 12P. For example, the routine to be used is determined based on the routine number B102 stored in the RAM 13. The routine digitally signs the signature target B100 (the key used for the digital signature is not shown), and the information created by the digital signature is stored in, for example, RAM 13 as the first signature sentence B104.

ステップBs105について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて。第1署名文B104と、ルーチン番号B102をくみあわせた。第2署名文B106を作成し、例えばRAM13に記憶し、処理を終了する。 Step Bs105 will be described. The CPU 11 of the information processing apparatus 1 is based on the program 12P. The first signature statement B104 and the routine number B102 are combined. The second signature statement B106 is created, stored in, for example, RAM 13, and the process is terminated.

第1署名文B104が文字列である場合を例に説明する。 The case where the first signature sentence B104 is a character string will be described as an example.

情報処理装置1のCPU11は、プログラム12Pに基づいて、ルーチン番号B102を文字列に変換した文字列と、第1署名文B104と、 Based on the program 12P, the CPU 11 of the information processing apparatus 1 includes a character string obtained by converting the routine number B102 into a character string, a first signature statement B104, and the like.

のいずれにも存在しない文字を区切り文字とし、ルーチン番号B102を文字列に変換した文字列と、第1署名文B104と、 A character string in which a character that does not exist in any of the above is used as a delimiter and the routine number B102 is converted into a character string, a first signature statement B104, and

を連結した文字列を作成し、該文字列の区切り文字とは異なる所定の位置(例えば末尾)に、該区切り文字を配置した文字列を作成する。これは、区切り文字を一定の文字(例えばカンマ)と決めると、ルーチン番号B102を文字列に変換した文字列と、第1署名文B104と、 Is created, and a character string in which the delimiter is arranged is created at a predetermined position (for example, at the end) different from the delimiter of the character string. This means that if the delimiter is determined to be a certain character (for example, a comma), the character string obtained by converting the routine number B102 into a character string, the first signature statement B104, and the like.

の少なくともいずれかに例えばカンマが存在すると、第2署名文B106を正しく検証できないおそれがあるため。例えば、例えば、第1署名文B104が文字列1234、ルーチン番号B102を文字列に直したものが5、 If, for example, a comma is present in at least one of the above, the second signature statement B106 may not be verified correctly. For example, the first signature statement B104 is a character string 1234, and the routine number B102 is converted into a character string 5.

である場合、これらに存在しない文字(例えば6)を区切り文字として、文字列として123465を作成、該文字列の区切り文字と異なる所定の位置(例えば末尾)に区切り文字として用いた文字を配置することにより、文字列1234656を作成、例えばRAM13に第2署名文B106として記憶し、処理を終了する。 If, 123465 is created as a character string using a character that does not exist in these (for example, 6) as a delimiter, and the character used as a delimiter is placed at a predetermined position (for example, at the end) different from the delimiter of the character string. As a result, the character string 1234656 is created, stored in, for example, the RAM 13 as the second signature statement B106, and the process is terminated.

図B−1は、図Bを参照しながら説明した形態により施した電子署名を検証する処理のフローチャート。ここでは、第2署名文B106が、検証する対象である場合を例に説明する。 FIG. B-1 is a flowchart of a process for verifying an electronic signature given in the form described with reference to FIG. B. Here, a case where the second signature statement B106 is a target to be verified will be described as an example.

ステップBs111について説明する。情報処理装置1のCPU11は、プログラム12Pに基づいて、第2署名分B106を、第1署名文B104と、ルーチン番号B102に分離し、例えばRAM13に記憶する。 Step Bs111 will be described. Based on the program 12P, the CPU 11 of the information processing apparatus 1 separates the second signature portion B106 into the first signature statement B104 and the routine number B102, and stores them in, for example, the RAM 13.

第2署名文B106が、ステップBs105によって作成されたものである場合を例に説明する。第2署名文B106は、第1署名文B104と、ルーチン番号B102を、区切り文字によって区切り、該区切り文字は、該第2署名文B106の所定の位置(例えば末尾)に存在するから、該所定の位置に存在する文字を区切文字とし、該所定の位置と異なる位置に存在する文字列を複数の文字列に区切ることにより、第1署名文B104と、ルーチン番号B102に分離する。 The case where the second signature statement B106 is created by step Bs105 will be described as an example. The second signature statement B106 separates the first signature statement B104 and the routine number B102 by a delimiter, and the delimiter exists at a predetermined position (for example, the end) of the second signature statement B106. The character existing at the position of is used as a delimiter, and the character string existing at a position different from the predetermined position is divided into a plurality of character strings to separate the first signature sentence B104 and the routine number B102.

ルーチン群Bs112について説明する。ルーチン群Bs112は、デジタル署名が施された情報の該デジタル署名を検証する1個以上のルーチンの集合。情報処理装置1のCPU11は、プログラム12Pに基づいて。例えばRAM13に記憶された、ルーチン番号B102に基づいて、使用するルーチンを決定する。該ルーチンは、署名対象B104に施されたデジタル署名を検証し(該検証用いる鍵は図示しない)、該検証が成功したときは、例えばRAM13に、検証後情報113として記憶される。 The routine group Bs112 will be described. The routine group Bs112 is a set of one or more routines for verifying the digital signature of the digitally signed information. The CPU 11 of the information processing apparatus 1 is based on the program 12P. For example, the routine to be used is determined based on the routine number B102 stored in the RAM 13. The routine verifies the digital signature applied to the signature target B104 (the key used for the verification is not shown), and when the verification is successful, it is stored in, for example, the RAM 13 as post-verification information 113.

今回開示された実施の形態はすべての点で例示であり制限的なものでないと考えられるべき。本発明の範囲は上記した意味でなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 The embodiments disclosed this time should be considered to be exemplary and not restrictive in all respects. The scope of the present invention is shown not by the above meaning but by the scope of claims, and it is intended that all modifications within the meaning and scope equivalent to the scope of claims are included. In addition, each embodiment can be appropriately combined as long as the processing contents do not contradict each other.

Claims (14)

第1情報処理装置と第2情報処理装置を情報網で接続した情報処理システムであって、
第1情報処理装置は、
該第1の情報処理装置を他の情報処理装置と識別する情報(以下「識別情報」)を作成すること、
第2情報処理装置は、
前記識別情報を用いて情報(以下「ライセンス情報」)を作成し、
前記情報を他の情報と識別する情報(以下「ライセンスコード」)を作成すること、
を特徴とする情報処理システム。
An information processing system in which the first information processing device and the second information processing device are connected by an information network.
The first information processing device is
Creating information that distinguishes the first information processing device from other information processing devices (hereinafter referred to as "identification information").
The second information processing device is
Information (hereinafter referred to as "license information") is created using the identification information.
Creating information that distinguishes the above information from other information (hereinafter referred to as "license code"),
An information processing system featuring.
請求項1に記載の情報処理システムは、さらに第3の記憶装置を情報網で接続した情報処理システムであって、
前記第2情報処理装置は、
前記ライセンス情報を前記第3の記憶装置が記憶できる形態で作成し、
前記ライセンスコードを、第3の記憶装置における前記情報の所在を示す情報として作成すること、
前記第3の記憶装置は、
前記ライセンス情報を記憶することができること、
前記第1の情報処理装置が前記ライセンス情報を読み込むことができること、
前記第1情報処理装置は、
前記ライセンスコードに基づいて、前記第3記憶装置に記憶された情報から、前記第1情報処理装置が使用できるライセンス情報を他のライセンス情報と識別できること、
前記識別に基づいて、前記第3の記憶装置から、前記ライセンス情報を読み込むことができること、
を特徴とする、請求項1に記載の情報処理システム。
The information processing system according to claim 1 is an information processing system in which a third storage device is further connected by an information network.
The second information processing device is
The license information is created in a form that can be stored in the third storage device, and the license information is created.
Creating the license code as information indicating the location of the information in the third storage device,
The third storage device is
Being able to store the license information,
The first information processing device can read the license information.
The first information processing device is
Based on the license code, the license information that can be used by the first information processing device can be distinguished from other license information from the information stored in the third storage device.
The license information can be read from the third storage device based on the identification.
The information processing system according to claim 1.
情報処理装置に、該情報処理装置によって復号できる暗号文を他の情報処理装置に作成させるための鍵を作成させるプログラムであって、
第1の組み合わせは、
該鍵によって使用可能な暗号の種類(例えば、共通鍵暗号、RSA暗号、楕円曲線暗号)との組み合わせを記憶すること、
第2の組み合わせは、
該と、該鍵によって暗号化された情報を復号するための鍵と、に組み合わせを記憶すること、
第3の処理は、
作成すべき鍵の暗号の種類の指定を受け付けて、鍵を作成し、該鍵を少なくとも前記第1の組み合わせに加える処理、
第2の処理は、
「前記第1の組み合わせと、前記第2の組み合わせ」と(以下「303形態」)、を、「情報処理装置が記憶できる形態」(以下「301形態」)に変換する処理、
前記301形態として記憶された情報を、前記303形態に変換する処理、
の少なくともいずれかを実行すること、
上記の処理を情報処理装置に実行させることを特徴とするプログラム。
A program that causes an information processing device to create a key for another information processing device to create a ciphertext that can be decrypted by the information processing device.
The first combination is
To store a combination with the types of ciphers that can be used with the key (eg, common key cryptography, RSA cryptography, elliptic curve cryptography),
The second combination is
To store the combination in the key and the key for decrypting the information encrypted by the key.
The third process is
A process of accepting the specification of the encryption type of the key to be created, creating the key, and adding the key to at least the first combination.
The second process is
A process of converting "the first combination and the second combination" (hereinafter "303 form") into "a form that can be stored in an information processing apparatus" (hereinafter "301 form").
Processing to convert the information stored as the 301 form into the 303 form,
Doing at least one of the,
A program characterized by having an information processing apparatus execute the above processing.
請求項3に記載のプログラムは、
共通鍵暗号化のための鍵を作成する場合(以下「処理A」)、
前記第2の処理を実行し、これにより得た前記第1の組み合わせに、
必要に応じて、前記第3の処理を実行し、前記第1の組み合わせに、「鍵と、該鍵が使用可能な暗号の種類を示す情報を示す情報の組み合わせ」、を追加する処理、
前記303形態から、共通鍵暗号化に使用可能な鍵を選択する処理、
公開鍵暗号化のための鍵を作成する場合(以下「処理B」)、
前記第2の処理を実行し、これにより得た303形態に、
必要に応じて、前記第3の処理を実行し、前記第1の組み合わせに、「鍵と、該鍵が使用可能な暗号の種類を示す情報を示す情報の組み合わせ」、前記第2の組み合わせに、「鍵と、該鍵によって作成された暗号文を復号する鍵と、の組み合わせ」を追加する処理、
前記303形態から、指定された種類(RSA、楕円曲線暗号など)の暗号化に使用可能な鍵を選択する処理、
共通鍵暗号化された暗号文を復号する鍵を読み込む場合(以下「処理C」)、
前記第2の処理を実行し、これにより得た前記第1の組み合わせから、
共通鍵暗号化のために使用できる0個以上の鍵を選び出す処理、
公開鍵暗号化された暗号文を復号する鍵を読み込む場合(以下「処理D」)、
前記第2の処理を実行し、これにより得た前記第2の組み合わせから、
前記公開鍵暗号化に用いた公開鍵によって暗号化された情報を復号するための鍵を選び出す処理、
上記の処理A、処理B、処理C、処理D、の少なくともいずれかを情報処理装置に実行させることを特徴とするプログラム。
The program according to claim 3 is
When creating a key for common key encryption (hereinafter referred to as "process A")
The second process is executed, and the first combination obtained by the second process is combined with the first combination.
A process of executing the third process as necessary and adding "a combination of a key and information indicating information indicating the type of encryption in which the key can be used" to the first combination.
A process of selecting a key that can be used for common key encryption from the 303 form.
When creating a key for public key encryption (hereinafter referred to as "process B")
In the 303 form obtained by executing the second process,
If necessary, the third process is executed, and the first combination includes "a combination of a key and information indicating information indicating the type of cipher in which the key can be used", and the second combination. , Processing to add "a combination of a key and a key that decrypts the ciphertext created by the key",
A process of selecting a key that can be used for encryption of a specified type (RSA, elliptic curve cryptography, etc.) from the 303 form.
Common key When reading the key to decrypt the encrypted ciphertext (hereinafter referred to as "process C"),
From the first combination obtained by executing the second process.
Processing to select 0 or more keys that can be used for common key encryption,
Public key When reading the key to decrypt the encrypted ciphertext (hereinafter referred to as "process D"),
From the second combination obtained by executing the second process,
A process of selecting a key for decrypting information encrypted by the public key used for the public key encryption.
A program characterized in that at least one of the above processing A, processing B, processing C, and processing D is executed by an information processing apparatus.
請求項1から請求項2までの少なくともいずれかに記載の情報処理システムは、
前記識別情報は、
情報処理装置が、請求項3から請求項4の少なくともいずれかに記載のプログラムに基づいて作成した鍵を使用することを特徴とする、
請求項1から請求項2までの少なくともいずれかに記載の情報処理システム。
The information processing system according to at least one of claims 1 to 2.
The identification information is
The information processing apparatus uses a key created based on the program according to at least one of claims 3 to 4.
The information processing system according to at least one of claims 1 to 2.
請求項1から請求項2、請求項5の少なくともいずれかに記載の情報処理システムは、
前記第1情報処理装置は、
前記識別情報を表示部に表示させること、
前記識別情報を通信網を介して情報処理装置2が受け取る事ができる形態で送信できる措置を施すこと、
を特徴とする、請求項1から請求項2、請求項5の少なくともいずれかに記載の情報処理システム。
The information processing system according to at least one of claims 1 to 2 and 5.
The first information processing device is
Displaying the identification information on the display unit,
Taking measures to transmit the identification information in a form that can be received by the information processing apparatus 2 via the communication network.
The information processing system according to any one of claims 1, 2, and 5.
請求項1、請求項2、請求項5、請求項6の少なくともいずれかに記載の情報処理システムは、
上記の請求項に記載の情報処理装置2は、
作成すべきライセンス情報に書き込む情報(以下「有効情報」)と、
前記識別情報と、の指定を受け付ける第1の処理部と、
の指定を受け付ける第1の処理部、
ライセンス情報を作成するために用意された1個以上のプログラムのうち、どのプログラムを使用すべきかを決定する
第2の処理部、
前記第2の処理部における決定内容に基づいて、前記プログラムのいずれかを使用して、ライセンス情報と、ライセンスコード、を作成する
第3の処理部、
を備えることを特徴とする、請求項1、請求項2、請求項5、請求項6の少なくともいずれかに記載の情報処理システム。
The information processing system according to at least one of claims 1, 2, 2, 5, and 6.
The information processing apparatus 2 described in the above claim is
Information to be written in the license information to be created (hereinafter referred to as "valid information") and
The identification information, the first processing unit that accepts the designation, and
The first processing unit that accepts the designation of
A second processing unit that determines which of the one or more programs prepared to create license information should be used.
A third processing unit that creates license information and a license code using any of the programs based on the decisions made in the second processing unit.
The information processing system according to any one of claims 1, 2, 5, 5, and 6.
請求項1、請求項2、請求項5、請求項6、請求項7、の少なくともいずれかに記載の情報処理システムは、
前記ライセンス情報は、
目録ファイルと、
前記目録ファイルを除いたファイル(以下「アナザーファイル」)、
から構成されていること、
前記目録ファイルは、少なくとも、
前記ライセンス情報を作成するために使用したプログラムが何であるかを示す情報、
前記アナザーファイルの所在(例えばファイル名)を示す情報、
が記録されていること、
を特徴とする、請求項1、請求項2、請求項5、請求項6、請求項7、の少なくともいずれかに記載の情報処理システム。
The information processing system according to at least one of claim 1, claim 2, claim 5, claim 6, and claim 7.
The license information is
Catalog file and
Files excluding the catalog file (hereinafter referred to as "another file"),
Being composed of,
The catalog file is at least
Information indicating what program was used to create the license information,
Information indicating the location (for example, file name) of the other file,
Is recorded,
The information processing system according to any one of claims 1, 2, 2, 5, 6, 6, and 7.
請求項1、請求項2、請求項5、請求項6、請求項7、請求項8、の少なくともいずれかに記載の情報処理システムは、
上記の請求項に記載の情報処理装置1は、
指定された識別情報に基づいて、
第3記憶装置に記憶された情報から目録ファイルを読み込む処理を実行する、
第1の処理部と、
ライセンス情報を読み込むために用意された1個以上のプログラムのうち、どのプログラムを使用すべきかを決定する
第2の処理部と、
前記目録ファイルに基づいて、前記アナザーファイルを前記第3記憶装置から読み込み、
少なくとも前記アナザーファイルから、前記有効情報を読み込む処理を実行する、
第3の処理部と、
をそなえることを特徴とする、請求項1、請求項2、請求項5、請求項6、請求項7、請求項8、の少なくともいずれかに記載の情報処理システム。
The information processing system according to any one of claims 1, 2, 2, 5, 6, 6, 7, and 8.
The information processing device 1 according to the above claim is
Based on the specified identification information
Executes the process of reading the catalog file from the information stored in the third storage device.
The first processing unit and
A second processing unit that determines which of the one or more programs prepared to read the license information should be used, and
Based on the catalog file, the another file is read from the third storage device, and the file is read.
Execute the process of reading the valid information from at least the another file.
The third processing unit and
The information processing system according to claim 1, claim 2, claim 5, claim 6, claim 7, claim 8, wherein the information processing system is characterized by the above.
プログラムであって、
文字列から連想配列に変換する処理(処理A)と、
連想配列から文字列に変換する処理(処理B)と、
の少なくともいずれかを情報処理装置に実行させることを特徴とするプログラムは、
前記処理Bは、
連想配列のキー及び該キーと組み合わせてある値を抜き出す処理(処理1)と、
前記キー及び該キーと組み合わせてある値を区切り文字を境に連結した文字列に変換する処理(処理2)と、
前記区切り文字と同じ文字を、前記文字列の区切り文字とは異なる所定の位置に配置する処理(処理3)と、
前記区切り文字は、前記キー及び該キーと組み合わせてある値のいずれにも存在しない文字である事と、
前記処理Aは、
前記処理Aによって作成された文字列を連想配列に変換する処理であって、
前記文字列の処理3によって配置された文字が存在する位置に存在する文字を、メイン位置(前記文字列の前記位置以外の位置をいう)に存在する文字列における区切り文字とみなし、
前記メイン位置に存在する文字列を、前記区切り文字を境に1個以上の文字列に分割する処理と、
前記1個以上の文字列に基づいて、連想配列を作成する処理と、
である事と、
を特徴とするプログラム。
It ’s a program,
Processing to convert a character string to an associative array (processing A),
Processing to convert from an associative array to a character string (processing B),
A program characterized by having an information processing apparatus execute at least one of the above is
The process B is
The process of extracting the key of the associative array and the value combined with the key (process 1),
The process of converting the key and the value combined with the key into a character string concatenated with a delimiter as a boundary (process 2).
A process of arranging the same character as the delimiter at a predetermined position different from the delimiter of the character string (process 3).
The delimiter is a character that does not exist in either the key or the value in combination with the key.
The process A is
This is a process of converting the character string created by the process A into an associative array.
The character existing at the position where the character arranged by the processing 3 of the character string exists is regarded as a delimiter in the character string existing at the main position (meaning a position other than the above position of the character string).
A process of dividing a character string existing at the main position into one or more character strings with the delimiter as a boundary.
The process of creating an associative array based on the one or more character strings,
And that
A program featuring.
請求項10に記載のプログラムは、
処理Bは、請求項10の記載に関わらず、
変換前の連想配列がnullであるときは、
所定の条件Aを満たす文字列に変換する処理を情報処理装置に実行させること、
変換前の連想配列が要素数0の連想配列であるとは、
所定の条件Bを満たす文字列に変換する処理を情報処理装置に実行させること、
請求項10に記載の処理Bは、
変換前の連想配列が、要素数1以上の連想配列である場合に実行し、
前記条件A、前記条件B、のいずれも満たさない文字列に変換する処理を情報処理装置に実行させること、
処理Aは、請求項10の記載に関わらず、
変換前の文字列が前記条件Aを満たすときは、
nullに変換する処理を情報処理装置に実行させること、
変換前の文字列が前記条件Bを満たすときは、
要素数0の連想配列に変換する処理を情報処理装置に実行させること、
請求項に記載の処理Aは、
変換前の文字列が、前記条件A、前記条件B、のいずれも満たさない文字列である場合に、情報処理装置に実行させること、
を特徴とする、請求項10に記載のプログラム。
The program according to claim 10 is
Process B is not related to the description of claim 10.
When the associative array before conversion is null,
To have the information processing device execute the process of converting to a character string that satisfies the predetermined condition A,
The associative array before conversion is an associative array with 0 elements.
To have the information processing device execute the process of converting to a character string that satisfies the predetermined condition B,
The process B according to claim 10 is
Executed when the associative array before conversion is an associative array with 1 or more elements.
To have the information processing apparatus execute a process of converting into a character string that does not satisfy either the condition A or the condition B.
Process A is not related to the description of claim 10.
When the character string before conversion satisfies the above condition A,
To have the information processing device execute the process of converting to null,
When the character string before conversion satisfies the above condition B,
To have the information processing device execute the process of converting to an associative array with 0 elements,
The process A described in the claim is
When the character string before conversion is a character string that does not satisfy either the condition A or the condition B, the information processing apparatus is made to execute the character string.
10. The program of claim 10.
請求項3、請求項4の少なくともいずれかに記載の第1の組み合わせならびに第2の組み合わせの少なくともいずれかは連想配列であって、
請求項3、請求項4の少なくともいずれかに記載の301形態は文字列であって、
上記の請求項に記載の第2の処理は、
文字列を連想配列に変換する処理、
連想配列を文字列に変換する処理、
の少なくともいずれかとして実行され、
前記処理は、
請求項10、請求項11、の少なくともいずれかに記載のプログラムに基づく処理を、
情報処理装置に実行させることを特徴とするプログラム。
At least one of the first combination and the second combination according to at least one of claims 3 and 4 is an associative array.
The 301 form according to at least one of claims 3 and 4 is a character string.
The second process described in the above claim is
Processing to convert a character string to an associative array,
Processing to convert an associative array to a string,
Runs as at least one of
The above processing
The processing based on the program according to at least one of claims 10 and 11.
A program characterized by having an information processing device execute it.
プログラムであって、
デジタル署名を施す処理(処理A)と、
デジタル署名が施された情報を検証し、デジタル署名をする前の情報に変換する処理(処理B)と、
の少なくともいずれかを情報処理装置に実行させることを特徴とするプログラムは、
前記処理Aは、
デジタル署名を実行するためのルーチンが1個以上用意されており、
該ルーチンのうち、どのルーチンを用いてデジタル署名を施すかを決定する処理(処理1)と、
前記処理1における決定内容に基づいてデジタル署名された情報を作成する処理(処理2)と、
前記処理2によって作成された情報に、処理1によって決定された情報を付加する処理と(処理3)と、
を含む事と、
前記処理Bは、
デジタル署名された情報を検証するためのルーチンが1個以上用意されており、
前記処理3によって作成された情報から前記処理1によって作成された情報(情報1)と前記処理2によって作成された情報(情報2)とを読み取る処理(処理4)と、
前記情報1に基づいて、前記ルーチンのうち、どのルーチンを用いて検証するかを決定する処理(処理5)と、
前記処置5における決定内容に基づいて情報2に施されているデジタル署名を検証する処理(処理6)と、
を含む事と、
を特徴とするプログラム。
It ’s a program,
The process of applying a digital signature (process A) and
A process (process B) that verifies the digitally signed information and converts it into the information before the digital signature.
A program characterized by having an information processing apparatus execute at least one of the above is
The process A is
There is one or more routines for performing digital signatures,
Of the routines, a process (process 1) for determining which routine is used for digital signatures, and
The process of creating digitally signed information based on the decision contents in the process 1 (process 2) and
A process of adding the information determined by the process 1 to the information created by the process 2 and (process 3).
Including
The process B is
There is one or more routines for verifying digitally signed information.
A process (process 4) of reading the information (information 1) created by the process 1 and the information (information 2) created by the process 2 from the information created by the process 3.
A process (process 5) for determining which of the routines is used for verification based on the information 1.
A process (process 6) for verifying the digital signature applied to the information 2 based on the determination content in the procedure 5 and the process (process 6).
Including
A program featuring.
請求項1から請求項9の少なくともいずれかに記載の情報処理システムは、
請求項13に記載のデジタル署名または検証の、少なくともいずれかを
含む事を特徴とする、
請求項1から請求項9の少なくともいずれかに記載の情報処理システム。
The information processing system according to at least one of claims 1 to 9.
It comprises at least one of the digital signatures or verifications of claim 13.
The information processing system according to at least one of claims 1 to 9.
JP2020090173A 2020-05-24 2020-05-24 License key with digital signature Pending JP2021185642A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020090173A JP2021185642A (en) 2020-05-24 2020-05-24 License key with digital signature

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020090173A JP2021185642A (en) 2020-05-24 2020-05-24 License key with digital signature

Publications (1)

Publication Number Publication Date
JP2021185642A true JP2021185642A (en) 2021-12-09

Family

ID=78815796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020090173A Pending JP2021185642A (en) 2020-05-24 2020-05-24 License key with digital signature

Country Status (1)

Country Link
JP (1) JP2021185642A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054846A (en) * 2002-07-24 2004-02-19 Nec Corp License management system and license management method
JP2004164131A (en) * 2002-11-11 2004-06-10 Sony Corp Authoring device and method, authoring program, and recording medium recording authoring program
JP2006018402A (en) * 2004-06-30 2006-01-19 Canon Inc License issuing system, license information issuing server and license information issuing method
JP2009211471A (en) * 2008-03-05 2009-09-17 Kyocera Mita Corp License management system and license management program
JP2009223383A (en) * 2008-03-13 2009-10-01 Canon Inc License management system
JP2014112361A (en) * 2012-11-07 2014-06-19 Ricoh Co Ltd Information management device, information management system, information management method, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054846A (en) * 2002-07-24 2004-02-19 Nec Corp License management system and license management method
JP2004164131A (en) * 2002-11-11 2004-06-10 Sony Corp Authoring device and method, authoring program, and recording medium recording authoring program
JP2006018402A (en) * 2004-06-30 2006-01-19 Canon Inc License issuing system, license information issuing server and license information issuing method
JP2009211471A (en) * 2008-03-05 2009-09-17 Kyocera Mita Corp License management system and license management program
JP2009223383A (en) * 2008-03-13 2009-10-01 Canon Inc License management system
JP2014112361A (en) * 2012-11-07 2014-06-19 Ricoh Co Ltd Information management device, information management system, information management method, and program

Similar Documents

Publication Publication Date Title
US11341464B2 (en) Purchase transaction system with encrypted payment card data
US6601169B2 (en) Key-based secure network user states
JP2021502023A (en) Data sharing methods, clients, servers, computing devices, and storage media
US20150039888A1 (en) Techniques for sharing data
JP2017504856A (en) Data transfer optimization
JP2011035800A (en) Electronic price-proposing system, electronic price-proposing device, and electronic price-proposing method
EP1227613B1 (en) Method and apparatus for attaching electronic signature to document having structure
CN111512590B (en) Homomorphic encryption for password authentication
JP2002118551A (en) Authentication method
CN109462602A (en) Log-on message storage method, login validation method, device, equipment and medium
CN111177735A (en) Identity authentication method, device, system and equipment and storage medium
JP4979210B2 (en) Login information management apparatus and method
JP4216914B2 (en) Network system
JP5969716B1 (en) Data management system, data management program, communication terminal, and data management server
WO2008113617A1 (en) A method and system for a subscription to a derived symmetric key
US11545007B2 (en) Method, system, and device for selecting a winner of a raffle based on content from raffle tickets
JP4011383B2 (en) Data search method, data search system, search keyword generation device, and computer program
JP2021185642A (en) License key with digital signature
JP4627316B2 (en) Service providing system, authentication method, authentication program, and recording medium therefor
WO2004002059A1 (en) Data communication system, information processing device and method, recording medium, and program
JP2006039794A (en) File management system
JP2021140299A (en) Data matching system, information processing apparatus, and data matching method
JPH10215242A (en) Authentication method and device therefor
JP2007065789A (en) Authentication system and method
JP2021149484A (en) Program and license key processing system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220322