JP2011013428A - Information processing apparatus, code generation method, code verifying method, and program - Google Patents

Information processing apparatus, code generation method, code verifying method, and program Download PDF

Info

Publication number
JP2011013428A
JP2011013428A JP2009156904A JP2009156904A JP2011013428A JP 2011013428 A JP2011013428 A JP 2011013428A JP 2009156904 A JP2009156904 A JP 2009156904A JP 2009156904 A JP2009156904 A JP 2009156904A JP 2011013428 A JP2011013428 A JP 2011013428A
Authority
JP
Japan
Prior art keywords
secret information
information
code
value
check data
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
JP2009156904A
Other languages
Japanese (ja)
Inventor
Toshinori Araki
俊則 荒木
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009156904A priority Critical patent/JP2011013428A/en
Publication of JP2011013428A publication Critical patent/JP2011013428A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing apparatus that efficiently detects tampering of dispersed information at high probability and increases the degree of freedom of parameter setting.SOLUTION: The information processing apparatus includes a secret information dividing part for dividing secret information s into secret information s_1 and secret information s_2 so that one of them becomes an element selected from the original set of the secret information s uniformly at random, a code generating part for calculating the value of M(s_1, s_2) as data v for check regarding a function M(), a code dispersing part for outputting a (k-1)-order polynomial F where the secret information s and the data v for check are embedded, a code restoring part for generating a (k-1)-order polynomial F' passing points of k sets of dispersed code word information to be restored and restoring secret information s' and data v' for check embedded in F', and a code verifying part for determining whether the value of function M(s'_1, s'_2) is equal to the data v' for check regarding secret information s'_1 and secret information s'_2 divided from the secret information s'.

Description

本発明は、データの改ざんを検知する情報処理装置、コード生成方法、コード検証方法、およびその方法をコンピュータに実行させるためのプログラムに関する。   The present invention relates to an information processing apparatus that detects falsification of data, a code generation method, a code verification method, and a program for causing a computer to execute the method.

秘密にしておきたい情報(以下、秘密情報と称する)を保管する場合、秘密情報の紛失だけでなく、破壊の脅威、盗難の脅威がある。前者の脅威に対しては秘密情報のコピーを作成することが有効であるが、後者の盗難に対する脅威が増してしまう。   When storing information that is to be kept secret (hereinafter referred to as secret information), there are not only loss of secret information but also threats of destruction and theft. Although it is effective to make a copy of secret information against the former threat, the threat against theft of the latter increases.

このような問題を解決する手段の1つとして、秘密分散法が知られている。秘密分散法の1つである(k,n)閾値法について簡単に説明する。秘密情報をn個の分散情報に符号化する。n個の分散情報のうち任意のk個以上の分散情報を集めれば、秘密情報を完全に復元できるが、k-1個以下の分散情報を集めても、元の秘密情報に関する情報をまったく得られない。したがって、k-1個までの分散情報が盗難にあったとしても秘密情報が他人に漏れることがなく、n-k個までの分散情報が破壊されても、秘密情報を復元できる。   As one of means for solving such a problem, a secret sharing method is known. The (k, n) threshold method, which is one of secret sharing methods, will be briefly described. The secret information is encoded into n pieces of shared information. Secret information can be completely recovered by collecting any k or more pieces of shared information out of n pieces of shared information. However, even if k-1 or less pieces of shared information are collected, information about the original secret information is obtained at all. I can't. Therefore, even if up to k-1 pieces of shared information are stolen, the secret information is not leaked to others, and the secret information can be restored even if up to n-k pieces of shared information are destroyed.

(k, n)閾値法の一例が、非特許文献1に開示されている。この非特許文献1に開示された、shamirの提案する方式が効率的であるため、この方式が広く用いられている。   An example of the (k, n) threshold method is disclosed in Non-Patent Document 1. Since the method proposed by shamir disclosed in Non-Patent Document 1 is efficient, this method is widely used.

非特許文献1の方式は、素数または素数のべき乗pに対する有限体GF(p)を秘密情報のデータ集合として用い、秘密情報sを定数項に持つGF(p)上のランダムな(k-1)次多項式f(x)上の点、(x_1,f(x_1)),...,(x_n,f(x_n))を分散情報とする方式である。k個の分散情報からk-1次の多項式は一意に復元でき、f(0)である秘密情報sを復元することができる。また、k-1個以下の分散情報からはf(0)を定めることはできず、秘密情報sに関する情報は一切漏れない。秘密情報を埋め込む箇所はf(0)以外の任意の箇所でもよい。また、多項式の係数などでもよい。   The method of Non-Patent Document 1 uses a finite field GF (p) for a prime number or a power p of a prime number as a data set of secret information, and a random (k−1) on GF (p) having the secret information s as a constant term. ) A point on the degree polynomial f (x), (x_1, f (x_1)),..., (X_n, f (x_n)) is used as distributed information. The k-1 order polynomial can be uniquely restored from the k pieces of distributed information, and the secret information s which is f (0) can be restored. Further, f (0) cannot be determined from k−1 or less pieces of shared information, and no information about the secret information s is leaked. The place where the confidential information is embedded may be any place other than f (0). Also, a polynomial coefficient or the like may be used.

また、xi(i=1,...,n)は互いに異なる値であればよい。   Further, xi (i = 1,..., N) may be different from each other.

このような(k, n)閾値法を用いることで対処できる脅威もあるが、以下に示すような脅威も存在する。   Some threats can be dealt with by using such a (k, n) threshold method, but there are also the following threats.

(k, n)閾値法において分散情報の作成、配付が正しく行われ、その後、秘密情報を復元するために分散情報を複数集める状況を考える。   Consider a situation in which shared information is correctly created and distributed in the (k, n) threshold method, and then multiple pieces of shared information are collected to restore secret information.

このとき、分散情報を要求された側が配付された値を改竄することなく渡すとは限らない。また、単純な(k, n)閾値法を用いる場合、改竄された分散情報を用いて復元された値は、秘密情報と異なる値になってしまう可能性を持っている。   At this time, the requested value of the shared information is not always passed without falsification. Further, when the simple (k, n) threshold method is used, there is a possibility that the value restored using the altered shared information becomes a value different from the secret information.

現実の状況を例示すると、遺言状を分散したデータを作成して複数の子孫に渡しておいたところ、データが改ざんされ、一部の子孫にとって都合のよい内容に書き換えられてしまうということが挙げられる。   To illustrate the actual situation, when data with a distributed will is created and passed to multiple descendants, the data is altered and rewritten with content that is convenient for some descendants. It is done.

このような攻撃が非特許文献1の方式に行われた場合、秘密情報をsとし、有限体上の加算を+と書くと、改ざん者は、s+s'が復元されるような改ざんを行うことができることが知られている。そのため、先の遺言状の例のような改ざんが行われた場合には、その事実を検知できるような方式が望ましい。   When such an attack is carried out in the method of Non-Patent Document 1, if the secret information is s and the addition on the finite field is written as +, the tamper will alter the s + s' to be restored. It is known that it can be done. For this reason, it is desirable that the system be able to detect the fact that the tampering has been performed as in the previous will.

このような機能を、非特許文献1に開示されている(k,n)閾値法に付与する方法は様々知られている。演算処理が効率的な方法としては、以下の方法が知られている。この方法について、秘密情報を分散する分散フェーズと、秘密情報を復元する復元フェーズに分けて概要を記述する。   Various methods for imparting such a function to the (k, n) threshold method disclosed in Non-Patent Document 1 are known. The following methods are known as methods for efficient arithmetic processing. The outline of this method will be described separately in a distribution phase in which secret information is distributed and a restoration phase in which secret information is restored.

[分散フェーズ]
1.秘密情報になんらかの処理を適用する。なお、処理を適用した後の値をコードと呼ぶ。
2.コードを既存の(k,n)閾値法で分散する。
[Distributed phase]
1. Apply some processing to the confidential information. The value after the processing is applied is called a code.
2. Distribute the code with the existing (k, n) threshold method.

[復元フェーズ]
1.コードを復元する。
2.コードの正当性を調べる。ここで正当でないものであると判明した場合、改ざんがあったものとする。
Restore phase
1. Restore the code.
2. Check the validity of the code. If it is found that it is not legitimate, it is assumed that it has been tampered with.

このような構成を採用し、秘密情報を入力としてコードを出力する装置をGenCode()とし、生成されたコードを入力としてそのコードが正当性なものであるかどうかを出力する関数をVerCode()とし、ある秘密情報sについてのコードをcとする。このとき、VerCode(c+c')が正当なものであるという出力を行うようなc'を、改ざん者が生成することができる確率は十分に低い。それだけでなく、コードが正当なときには、必ずコードに対応する秘密情報を出力するものを用いることで、上述の(k,n)閾値法に対する不正が高い確率で検知可能となる。   Adopting such a configuration, GenCode () is a device that outputs code with confidential information as input, and VerCode () is a function that outputs whether the code is valid with the generated code as input Let c be the code for some secret information s. At this time, the probability that the tamper can generate c ′ that outputs that VerCode (c + c ′) is valid is sufficiently low. In addition to this, when the code is valid, it is possible to detect fraud with respect to the above (k, n) threshold method with a high probability by using the one that always outputs the secret information corresponding to the code.

この方法を実行する情報処理装置について説明する。   An information processing apparatus that executes this method will be described.

図8Aは関連する分散情報生成装置の一構成例を示すブロック図である。図8Bは関連する復元装置の一構成例を示すブロック図である。   FIG. 8A is a block diagram illustrating a configuration example of a related distributed information generation apparatus. FIG. 8B is a block diagram illustrating a configuration example of a related restoration device.

図8Aおよび図8Bに示すように、分散情報生成装置700および復元装置800のそれぞれには、分散情報を格納するための複数の保管装置900が接続されている。   As shown in FIGS. 8A and 8B, each of the shared information generating apparatus 700 and the restoring apparatus 800 is connected to a plurality of storage apparatuses 900 for storing shared information.

はじめに、図8Aを参照して、分散情報生成装置700の構成を説明する。   First, the configuration of the shared information generating apparatus 700 will be described with reference to FIG. 8A.

分散情報生成装置700は、コード生成部701およびコード分散部702を有する。分散情報生成装置700は、秘密情報用データ集合Sの元と、閾値kと、分散情報数nと、保管先装置指定データとが入力されると、保管先装置指定データの指定するn個の保管装置900のそれぞれに対し、分散コードデータ集合BSの元である分散コード情報を格納する。   The distributed information generation apparatus 700 includes a code generation unit 701 and a code distribution unit 702. When the source of the secret information data set S, the threshold value k, the number of shared information n, and the storage destination device designation data are input, the shared information generation device 700 receives n pieces of data designated by the storage destination device designation data. For each storage device 900, the distributed code information that is the source of the distributed code data set BS is stored.

コード生成部701は、秘密情報用データ集合Sの元sが入力されると、コード情報用データ集合Cの元cを出力する。   When the element s of the secret information data set S is input, the code generation unit 701 outputs the element c of the code information data set C.

コード分散部702は、集合Cの元と、閾値kと、分散情報数nと、保管先装置指定データとが入力されると、保管先装置指定データの指定するn個の保管装置900のそれぞれに対して分散コードデータ集合BSの元を格納する。   When the source of the set C, the threshold k, the number of distributed information n, and the storage destination device designation data are input, the code distribution unit 702 receives each of the n storage devices 900 designated by the storage destination device designation data. For the original of the distributed code data set BS.

次に、図8Bを参照して、復元装置800の構成を説明する。   Next, the configuration of the restoration device 800 will be described with reference to FIG. 8B.

復元装置800は、コード復元部801およびコード正当性検証部802を有する。復元装置800は、集合Cの元と、閾値kと、分散情報数nと、保管先装置指定データとが入力されると、複数の保管装置900から、それぞれが記憶するBSの元を読み出し、秘密情報用データ集合Sの元のデータ、または、不正の検出を表す記号を出力する。   The restoration apparatus 800 includes a code restoration unit 801 and a code validity verification unit 802. When the original of the set C, the threshold k, the number of distributed information n, and the storage destination device designation data are input, the restoration device 800 reads out the BS source stored in each of the plurality of storage devices 900, The original data of the secret information data set S or a symbol representing fraud detection is output.

コード復元部801は、集合Cの元と、閾値kと、保管先装置指定データとが入力されると、複数の保管装置900から、それぞれの記憶部901が記憶するBSの元を読み出し、Cの元を出力する。   When the source of the set C, the threshold k, and the storage destination device designation data are input, the code restoration unit 801 reads the BS source stored in each storage unit 901 from the plurality of storage devices 900, and C Output the element of.

コード正当性検証部802は、Cの元が入力されると、Sの元のデータ、またはコードが不正であったことを表すデータを出力する。なお、保管装置900は、分散コード用データ集合BCの元を記憶する記憶部901を有する。   When the element of C is input, the code validity verification unit 802 outputs the original data of S or data indicating that the code is invalid. The storage device 900 includes a storage unit 901 that stores the source of the distributed code data set BC.

次に、分散情報生成装置700の動作手順を、図9のフローチャートを参照して説明する。   Next, the operation procedure of the shared information generating apparatus 700 will be described with reference to the flowchart of FIG.

閾値kと、分散情報数nと、保管先装置指定データと、秘密情報用データ集合Sの元sが分散情報生成装置700に入力される(ステップA1)。   The threshold k, the number n of shared information, the storage destination device designation data, and the element s of the secret information data set S are input to the shared information generating device 700 (step A1).

コード生成部701は、入力されたsに対応するコード情報用データ集合Cの元であるcを出力する(ステップA2)。   The code generation unit 701 outputs c, which is the source of the code information data set C corresponding to the input s (step A2).

コード分散部702は、閾値kと、分散情報数nと、保管先装置指定データと、コード生成部701の出力であるcとが入力されると、cを(k,n)閾値法で分散符号化し、分散符号化されたcを、保管先装置指定データの指定する保管装置900の記憶部901に格納する(ステップA3)。   The code distribution unit 702 distributes c by the (k, n) threshold method when the threshold k, the number n of distributed information, the storage destination device designation data, and the output c of the code generation unit 701 are input. The encoded and distributedly encoded c is stored in the storage unit 901 of the storage device 900 designated by the storage destination device designation data (step A3).

次に、復元装置800の動作手順を、図10のフローチャートを参照して説明する。   Next, the operation procedure of the restoration apparatus 800 will be described with reference to the flowchart of FIG.

閾値kと分散情報数nが復元装置800に入力される(ステップB1)。コード復元部801は、k機以上の複数の保管装置900の記憶部901からデータを読み出す(ステップB2)。続いて、コード復元部801は、読み出したデータと閾値kとから、コード分散部702の分散符号化方法に対応する復元方法を用いて復元処理を行った結果であるCの元c'を出力する(ステップB3)。   The threshold value k and the number of distributed information n are input to the restoration device 800 (step B1). The code restoration unit 801 reads data from the storage units 901 of a plurality of storage devices 900 of k machines or more (step B2). Subsequently, the code restoration unit 801 outputs an element c ′ of C, which is a result of performing restoration processing using the restoration method corresponding to the distributed encoding method of the code distribution unit 702, from the read data and the threshold value k. (Step B3).

コード正当性検証部802は、コード復元部801からc'を受け取ると、c'の正当性を検証する処理を行い、正当なコードであった場合には、c'に対応するSの元s'を出力し、それ以外の場合には、不正の検出を表す記号を出力する(ステップB4)。   When the code validity verification unit 802 receives c ′ from the code restoration unit 801, the code validity verification unit 802 performs a process of verifying the validity of c ′. 'Is output, otherwise a symbol indicating fraud detection is output (step B4).

なお、GenCodeの入力には、秘密情報以外の情報を入力する場合もある。また、cは有限体の要素がひとつであるとは限らず、複数の異なる有限体の要素からなる場合もある。例えば、3つの要素からなる場合を考えるとc=(c1,c2,c3)となる場合もある。このとき、c=(c1,c2,c3)とc'=(c1',c2',c3')に対し、+をc1,c2,c3の各要素に対応する有限体上で定義されている加算であるとすると、c+c'は(c1+c1',c2+c2',c3+c3')を表しているものとする。   In addition, information other than secret information may be input for the GenCode input. In addition, c is not necessarily a single element of a finite field, and may be composed of a plurality of elements of different finite fields. For example, considering the case of three elements, c = (c1, c2, c3) may be obtained. At this time, for c = (c1, c2, c3) and c '= (c1', c2 ', c3'), + is defined on a finite field corresponding to each element of c1, c2, c3 If it is an addition, c + c ′ represents (c1 + c1 ′, c2 + c2 ′, c3 + c3 ′).

なお、コードの集合が小さければ小さいほど分散情報のサイズが小さく、秘密情報を分散して保管する場合に必要とする記憶容量が少なくて済み、好ましい。   Note that the smaller the code set, the smaller the size of the shared information, which is preferable because less storage capacity is required when the secret information is distributed and stored.

提案されている方式には、非特許文献1よりも演算処理が効率的な方式として、非特許文献2、非特許文献3および非特許文献4に開示されているものがある。そして、これら3つの文献に開示された方式を2種類に分類すると、非特許文献2および非特許文献3に開示された方式と、非特許文献4に開示された方式とに分けられる。以下にそれぞれの説明を行う。   Non-patent literature 2, non-patent literature 3 and non-patent literature 4 are disclosed as non-patent literature 1 as a system that is more efficient in arithmetic processing than non-patent literature 1. Then, when the methods disclosed in these three documents are classified into two types, the methods disclosed in Non-Patent Document 2 and Non-Patent Document 3 and the methods disclosed in Non-Patent Document 4 can be divided. Each will be described below.

非特許文献2および非特許文献3に開示されている処理装置は、秘密情報と、乱数と、秘密情報およびこれらの乱数をある関数に入力したときの出力とをコードとして生成する処理を行うコード生成装置と、コードを入力としてその正当性を検証するコード正当性検証装置とからなる。   The processing devices disclosed in Non-Patent Document 2 and Non-Patent Document 3 are codes that perform processing to generate secret information, random numbers, and secret information and an output when these random numbers are input to a function as codes. It consists of a generation device and a code validity verification device that verifies the validity of a code as an input.

これらの方式は、秘密情報そのものの乱数性とは関係なく、乱数Rはそれ自体が選ばれる元の集合から一様にランダムに選ばれることを条件として、秘密情報が選ばれる集合と乱数が選ばれる集合とコードの集合上の加算を+と表し、ある関数をM()と表すと、秘密情報s1と乱数r1について、s1とc1 = M(s1,r1)を取得した改ざん者がM(s1+s1', r1+r1')= M(s1,r1)+c1'を満たすs1',r1',c1'を生成するという改ざんを高い確率で検知可能となっている。   In these methods, regardless of the randomness of the secret information itself, the random number R is selected from the set from which the secret information is selected and the random number on the condition that the random number R is uniformly selected from the original set from which it is selected. An addition on a set of codes and a set of codes is represented as +, and a function is represented as M (). For a secret information s1 and a random number r1, a tamper who has obtained s1 and c1 = M (s1, r1) is M ( t1 + s1 ′, r1 + r1 ′) = M (s1, r1) + c1 ′ that satisfies s1 ′, r1 ′, c1 ′ is generated with high probability.

このような、秘密情報と一様な乱数の改ざんを検知するためのコード生成装置とコード検証装置の構成の一例を説明する。なお、この方式のコード生成装置を「改ざん検知コード生成装置」と称し、コード検証装置を「改ざん検知コード検証装置」と称する。   An example of the configuration of a code generation device and a code verification device for detecting such alteration of secret information and uniform random numbers will be described. This type of code generation device is referred to as a “tamper detection code generation device”, and the code verification device is referred to as a “tamper detection code verification device”.

図11Aは非特許文献2または非特許文献3に開示されたコード生成装置の一構成例を示すブロック図である。図11Bは非特許文献2または非特許文献3に開示されたコード検証装置の一構成例を示すブロック図である。   FIG. 11A is a block diagram illustrating a configuration example of the code generation device disclosed in Non-Patent Document 2 or Non-Patent Document 3. FIG. 11B is a block diagram illustrating a configuration example of the code verification device disclosed in Non-Patent Document 2 or Non-Patent Document 3.

図11Aに示すように、改ざん検知コード生成装置100は、チェック用データ生成部101を有する。改ざん検知コード生成装置100は、秘密情報用データ集合Sの元である秘密情報sと、乱数情報用データ集合Rの元である乱数rとが入力されると、sとrを出力するとともに、sとrをチェック用データ生成部101に入力し、その結果としてチェック用データ集合Cの元であるcをチェック用データとして出力する。   As shown in FIG. 11A, the falsification detection code generation device 100 includes a check data generation unit 101. The tampering detection code generation device 100 outputs s and r when the secret information s that is the source of the secret information data set S and the random number r that is the source of the random information data set R are input, s and r are input to the check data generation unit 101, and as a result, c, which is the source of the check data set C, is output as check data.

また、図11Bに示すように、改ざん検知コード検証装置200は、チェック用データ生成部101および同一性判定部201を有する。   Also, as shown in FIG. 11B, the tampering detection code verification apparatus 200 includes a check data generation unit 101 and an identity determination unit 201.

改ざん検知コード検証装置200は、秘密情報用データ集合Sの元である秘密情報sと、乱数情報用データ集合Rの元である乱数rと、チェック用データ集合Cの元であるチェック用データcとが入力されると、sとrをチェック用データ生成部101に入力する。チェック用データ生成部101は、sとrが入力されると、c'を生成して出力する。同一判定部201は、チェック用データcと、チェック用データ生成部101の出力であるc'とが入力されると、判定処理を行う。同一判定部201は、判定処理の結果、c'=cである場合にはコードの整合性がとれていたことを表す記号を出力し、それ以外の場合はコードの整合性がとれていないことを表す記号を出力する。また、改ざん検知コード検証装置200は、秘密情報sを出力する。   The tampering detection code verification apparatus 200 includes the secret information s that is the source of the secret information data set S, the random number r that is the source of the random information data set R, and the check data c that is the source of the check data set C. Are input to the check data generation unit 101. When s and r are input, the check data generation unit 101 generates and outputs c ′. When the check data c and c ′ that is the output of the check data generation unit 101 are input, the same determination unit 201 performs a determination process. As a result of the determination process, the same determination unit 201 outputs a symbol indicating that the code is consistent when c ′ = c, and the code is not consistent otherwise. A symbol representing is output. Further, the tampering detection code verification apparatus 200 outputs the secret information s.

非特許文献2の方式は、改ざんを検知できる確率を(1-ε)とすると、秘密情報が要素数sの集合から選ばれるとき、乱数が要素数1/εの集合の要素、関数の出力が要素数1/εの集合の要素となる。つまりコードはおよそ要素数がs*1/(ε^2)であるような集合の要素となる。この方式はsと1/εがほぼ等しい場合にのみ動作するというパラメータ上の条件がある。これは、εは1/2^80程度で十分であってもsが2^1000であればεも1/2^1000とする必要があることを表す。コードの長さに影響し、これらのパラメータは自由に設定できる方が好ましい。   In the method of Non-Patent Document 2, if the probability that tampering can be detected is (1-ε), and the secret information is selected from the set of the number of elements s, the random number is the element of the set of the number of elements 1 / ε, and the output of the function Is the element of the set with 1 / ε elements. In other words, the code is an element of a set whose number of elements is approximately s * 1 / (ε ^ 2). This method has a parameter condition that it operates only when s and 1 / ε are almost equal. This means that even if ε is about 1/2 ^ 80, s needs to be 1/2 ^ 1000 if s is 2 ^ 1000. It is preferable that these parameters can be freely set because the length of the cord is affected.

具体的には、以下に説明する通りである。   Specifically, it is as described below.

非特許文献2に開示された方式は、pを素数とし、Z/pZを秘密情報の集合Sとしたとき、Sの要素であるsのコードとして、sと、Z/pZから一様ランダムに選択した要素rと、*をZ/pZ上の乗算として、s*r mod pをチェック用データとする方式である。   In the method disclosed in Non-Patent Document 2, when p is a prime number and Z / pZ is a set S of secret information, s and Z / pZ are uniformly random as codes of s that are elements of S. In this method, the selected element r and * are multiplied on Z / pZ, and s * r mod p is used as check data.

Z/pZの代わりにqを素数のべき乗としたとき、それぞれの集合をガロア体GF(q)の要素として乗算をガロア体上の乗算としてもよい。   When q is a power of a prime number instead of Z / pZ, each set may be an element of a Galois field GF (q), and multiplication may be multiplication on the Galois field.

非特許文献3の方式は、改ざんを検知できる確率を(1-ε)とすると、秘密情報が要素数sの集合から選ばれるとき、乱数が要素数1/εの集合の要素、関数の出力が要素数1/εの集合の要素となる。よって、コードはおよそ要素数がs*1/(ε^2)であるような集合の要素となる。つまり効率は非特許文献2の方式と同程度だが、sと1/εをほぼ独立に設定することができるという特徴がある。そのため、非特許文献2にあった問題が解決された方式であるといえる。   In the method of Non-Patent Document 3, if the probability that tampering can be detected is (1-ε), and the secret information is selected from the set of the number of elements s, the random number is the element of the set of the number of elements 1 / ε, and the output of the function Is the element of the set with 1 / ε elements. Therefore, the code is an element of a set whose number of elements is approximately s * 1 / (ε ^ 2). In other words, the efficiency is comparable to the method of Non-Patent Document 2, but s and 1 / ε can be set almost independently. Therefore, it can be said that this is a method in which the problem in Non-Patent Document 2 is solved.

具体的には、以下に説明する通りである。   Specifically, it is as described below.

非特許文献3に開示された方式は、pを素数とし、Nを正の整数として、(Z/pZ)^Nを秘密情報の集合とする方式である。(Z/pZ)^Nの元をsまたは、(s_1,s_2,...,s_N)と記す。また、(Z/pZ)^Nの代わりにガロア体GF(p^N)を用いてもよい。   The system disclosed in Non-Patent Document 3 is a system in which p is a prime number, N is a positive integer, and (Z / pZ) ^ N is a set of secret information. The element of (Z / pZ) ^ N is written as s or (s_1, s_2, ..., s_N). In addition, Galois field GF (p ^ N) may be used instead of (Z / pZ) ^ N.

このとき、(s_1,s_2,...,s_N)のコードとして、sと、Z/pZから一様ランダムに選択した要素rと、*をZ/pZ上の乗算として、s_1*r + s_2*r^2 + ... + s_{N-1}*r^{N-1} + s_{N}*r^{N+1} mod p をチェック用データとする方式である。   At this time, as a code of (s_1, s_2, ..., s_N), s, an element r uniformly selected from Z / pZ, and * are multiplied on Z / pZ, and s_1 * r + s_2 * r ^ 2 + ... + s_ {N-1} * r ^ {N-1} + s_ {N} * r ^ {N + 1} mod p is used as check data.

Z/pZの代わりにqを素数のべき乗としたとき、それぞれの集合をガロア体GF(q)の要素として乗算をガロア体上の乗算としてもよい。   When q is a power of a prime number instead of Z / pZ, each set may be an element of a Galois field GF (q), and multiplication may be multiplication on the Galois field.

一方、非特許文献4に開示されている方式では、秘密情報の集合の要素を入力して秘密情報よりも大きな集合の部分集合の要素を出力する関数であって、異なる値が入力されたときは必ず異なる値が出力される関数を用いる方法である。このような関数をN()と表すとき、コードの生成装置は秘密情報sが入力されると、N(s)をコードとして出力する。コードの検証装置は、コードが入力されると、そのコードに対応する秘密情報の要素があるかどうかを調べ、秘密情報の要素がある場合にはその秘密情報に改ざんがなかったことを表す記号を出力し、それ以外の場合は秘密情報に改ざんがあったことを表す記号を出力する。この方式では、秘密情報が選ばれる集合から一様にランダムに選ばれることを条件としてコードの改ざんを高い確率で検知可能である。   On the other hand, the method disclosed in Non-Patent Document 4 is a function that inputs elements of a set of secret information and outputs elements of a subset of a set larger than the secret information when different values are input. Is a method that uses functions that always output different values. When such a function is expressed as N (), the code generator outputs N (s) as a code when the secret information s is input. When a code is input, the code verification device checks whether there is a secret information element corresponding to the code. If there is a secret information element, the code verification device indicates that the secret information has not been tampered with. Otherwise, a symbol indicating that the confidential information has been tampered with is output. In this method, code alteration can be detected with a high probability on the condition that secret information is uniformly and randomly selected from a selected set.

具体的には、以下の通りである。   Specifically, it is as follows.

秘密情報の集合Sとして要素数がpである集合を用いる場合、N= (p(p-1) +1)としたときの{0,...p(p-1)}の要素数がpである部分集合Bであって、その部分集合の任意の異なる2つの要素s1とs2についてs1-s2 mod Nがすべて異なるという性質をもった部分集合を用いる方式である。   When a set with p elements is used as the secret information set S, the number of elements of {0, ... p (p-1)} when N = (p (p-1) +1) is This is a method using a subset B which is p, and has a property that s1-s2 mod N is different for any two different elements s1 and s2 of the subset.

より具体的には、SのコードとしてSの要素をBの要素に写像する関数を用いる方式である。この方式の検証方法はSからBに写像を行った際の逆を計算する関数を用いる。このとき、コードに対応するSの元がない場合には改ざんがあるものとみなす方式である。   More specifically, the S code uses a function that maps S elements to B elements. This method of verification uses a function that calculates the inverse of the mapping from S to B. At this time, if there is no source of S corresponding to the code, it is assumed that there is tampering.

また、非特許文献4に開示された方式は、改ざんを検知できる確率を(1-ε)とすると、秘密情報が要素数sの集合から選ばれるとき、関数の出力は要素数s*(1/ε)の集合の要素となる。また、sと1/εがほぼ等しい場合にのみ動作するというパラメータ上の条件がある。つまり、非特許文献2の方式と同様の課題を持つ方式であるといえる。ただし、非特許文献2や非特許文献3の方式を用いた場合に比べてコードの要素数の集合は1/εだけ少ないため演算処理の効率のよい方式となっていることがわかる。   Further, in the method disclosed in Non-Patent Document 4, when the probability that tampering can be detected is (1-ε), the output of the function is the number of elements s * (1 / ε). Further, there is a parameter condition that the operation is performed only when s and 1 / ε are substantially equal. That is, it can be said that this is a method having the same problem as the method of Non-Patent Document 2. However, since the set of the number of code elements is reduced by 1 / ε compared to the case of using the methods of Non-Patent Document 2 and Non-Patent Document 3, it can be seen that this is an efficient calculation processing method.

このような、一様な秘密情報の改ざんを検知するためのコード生成装置とコード検証装置の構成の一例を説明する。なお、この方式のコード生成装置を「改ざん検知コード生成装置」と称し、コード検証装置を「改ざん検知コード検証装置」と称する。   An example of the configuration of a code generation device and a code verification device for detecting such uniform alteration of secret information will be described. This type of code generation device is referred to as a “tamper detection code generation device”, and the code verification device is referred to as a “tamper detection code verification device”.

図12Aは非特許文献4に開示されたコード生成装置の一構成例を示すブロック図である。図12Bは非特許文献4に開示されたコード検証装置の一構成例を示すブロック図である。   FIG. 12A is a block diagram illustrating a configuration example of the code generation device disclosed in Non-Patent Document 4. FIG. 12B is a block diagram illustrating a configuration example of the code verification device disclosed in Non-Patent Document 4.

図12Aに示すように、改ざん検知コード生成装置300は、秘密情報符号化部301を有する。改ざん検知コード生成装置300は、秘密情報用データ集合Sの元である秘密情報sが入力されると、sを秘密情報符号化部301に入力し、その出力のコード用データ集合Cの元であるcをコードとして出力する。   As illustrated in FIG. 12A, the falsification detection code generation device 300 includes a secret information encoding unit 301. When the secret information s that is the source of the secret information data set S is input, the falsification detection code generation device 300 inputs s to the secret information encoding unit 301, Output a certain c as code.

図12Bに示すように、改ざん検知コード検証装置400は、秘密情報符号化部301に対応する秘密情報復号化部401と、復号結果判定部402とを有する。   As illustrated in FIG. 12B, the tampering detection code verification apparatus 400 includes a secret information decoding unit 401 corresponding to the secret information encoding unit 301, and a decoding result determination unit 402.

改ざん検知コード検証装置400は、コード用データ集合Cの元であるcが入力されると、cを秘密情報復号化部401に入力し、秘密情報復号化部401の出力を復号結果判定部402に入力する。復号結果判定部402は、秘密情報復号化部401から受信した値が秘密情報用データ集合の要素である場合、その値をそのまま出力し、それ以外の場合、改ざんがあったことを表す記号を出力する。   When the original c of the code data set C is input, the tampering detection code verification apparatus 400 inputs c to the secret information decryption unit 401 and outputs the secret information decryption unit 401 to the decryption result determination unit 402. To enter. When the value received from the secret information decryption unit 401 is an element of the secret information data set, the decryption result determination unit 402 outputs the value as it is; otherwise, the decryption result determination unit 402 displays a symbol indicating that the data has been tampered with. Output.

Adi Shamir. How to share a secret. Comm.ACM,22(11) 612-613(1979).Adi Shamir. How to share a secret. Comm. ACM, 22 (11) 612-613 (1979). Sergio Cabello, Carles Padro', Germa'n Sa'ez: Secret Sharing Schemes with Detection of Cheaters for a General Access Structure. Des. Codes Cryptography 25(2): 175-188 (2002)Sergio Cabello, Carles Padro ', Germa'n Sa'ez: Secret Sharing Schemes with Detection of Cheaters for a General Access Structure.Des. Codes Cryptography 25 (2): 175-188 (2002) Toshinori Araki, Satoshi Obana: Flaws in Some Secret Sharing Schemes Against Cheating. ACISP 2007: 122-132Toshinori Araki, Satoshi Obana: Flaws in Some Secret Sharing Schemes Against Cheating. ACISP 2007: 122-132 Wakaha Ogata. Kaoru Kurosawa. Douglas R Stinson:Optimum Secret Sharing Scheme Secure Against Cheating SIAM J.Discrete Math.,vol.20,no1,pages 79-95,2006Wakaha Ogata. Kaoru Kurosawa. Douglas R Stinson: Optimum Secret Sharing Scheme Secure Against Cheating SIAM J. Discrete Math., Vol. 20, no1, pages 79-95, 2006

(k,n)閾値法を用いて分散情報を生成する際、分散情報の改ざんを高確率で検知可能なコードを生成する方法として、非特許文献4の方式と同程度の演算効率であって、パラメータを自由に設定可能なものはなかった。   When generating shared information using the (k, n) threshold method, as a method of generating a code capable of detecting tampering of the distributed information with high probability, the calculation efficiency is comparable to the method of Non-Patent Document 4. None of the parameters could be set freely.

本発明の目的は、(k, n)閾値法による分散情報の改ざんを高確率および効率的に検知可能とし、かつ、パラメータ設定の自由度を大きくした情報処理装置、コード生成方法、コード検証方法、およびその方法をコンピュータに実行させるためのプログラムを提供することである。   An object of the present invention is to provide an information processing apparatus, a code generation method, and a code verification method that can detect falsification of shared information by the (k, n) threshold method with high probability and efficiency and that have a large degree of freedom in parameter setting. And a program for causing a computer to execute the method.

上記目的を達成するための本発明の情報処理装置は、(k, n)閾値法により生成される情報の改ざんを検知する情報処理装置であって、
秘密情報sが入力されると、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報sを前記秘密情報s_1および秘密情報s_2に分割する秘密情報分割部と、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出するコード生成部と、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力するコード分散部と、
復元対象となる、k組分の分散符号語情報として(x1', F_1')乃至(xk', F_k')が入力されると、該(x1', F_1')から該(xk', F_k')の点を通る(k-1)次多項式F'を生成し、該(k-1)次多項式F'に埋め込まれた秘密情報s'およびチェック用データv'を復元するコード復元部と、
前記秘密情報分割部によって前記秘密情報s'が分割された秘密情報s'_1および秘密情報s'_2を該秘密情報分割部から受け取ると、関数M(s'_1, s'_2)の値と前記チェック用データv'が等しいかを否かを判定し、関数M(s'_1, s'_2)の値と該チェック用データv'が等しい場合、前記秘密情報s'は改ざんされていないと判定し、関数M(s'_1, s'_2)の値と該チェック用データv'が等しくない場合、前記秘密情報s'は改ざんされていると判定するコード検証部と、を有する。
An information processing apparatus of the present invention for achieving the above object is an information processing apparatus for detecting falsification of information generated by a (k, n) threshold method,
When the secret information s is input, at least one of the two pieces of divided information composed of the secret information s_1 and the secret information s_2 is an element that is uniformly and randomly selected from the original set of the secret information s. A secret information dividing unit that divides the secret information s into the secret information s_1 and the secret information s_2;
A code generator for calculating the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs for the two-input function M ();
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. A code distribution unit that outputs (x1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, as distributed codeword information,
When (x1 ′, F_1 ′) to (xk ′, F_k ′) are input as k sets of distributed codeword information to be restored, (xk ′, F_k) from (x1 ′, F_1 ′) A code restoration unit that generates a (k-1) th order polynomial F 'passing through the point') and restores the secret information s' and the check data v 'embedded in the (k-1) th order polynomial F'; ,
When the secret information s′_1 and the secret information s′_2 obtained by dividing the secret information s ′ by the secret information dividing unit are received from the secret information dividing unit, the value of the function M (s′_1, s′_2) It is determined whether or not the check data v ′ is equal. When the value of the function M (s′_1, s′_2) and the check data v ′ are equal, the secret information s ′ has not been tampered with. A code verification unit that determines that the secret information s ′ has been tampered with when the value of the function M (s′_1, s′_2) is not equal to the check data v ′.

また、本発明のコード生成方法は、(k, n)閾値法により生成される情報の改ざんを検知するためのコード生成方法であって、
符号化対象の秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出し、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力するものである。
The code generation method of the present invention is a code generation method for detecting falsification of information generated by the (k, n) threshold method,
The secret information s to be encoded is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. Divided into the secret information s_1 and the secret information s_2,
For the two-input function M (), the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs is calculated as check data v.
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. (X1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, are output as distributed codeword information.

また、本発明のコード検証方法は、(k, n)閾値法により生成された情報の改ざんを検知するためのコード検証方法であって、
(k-1)次多項式Fとして、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))のうち、復元対象となる、k組分の分散符号語情報の(x1, F_1)乃至(xk, F_k)に対して、該(x1, F_1)から該(xk, F_k)の点を通る(k-1)次多項式F'を生成し、
前記(k-1)次多項式F'に埋め込まれた秘密情報sおよびチェック用データvを復元し、
前記秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、関数M(s_1, s_2)の値と前記チェック用データvが等しいかを否かを判定し、関数M(s_1, s_2)の値と該チェック用データvが等しい場合、前記秘密情報sは改ざんされていないと判定し、関数M(s_1, s_2)の値と該チェック用データvが等しくない場合、前記秘密情報sは改ざんされていると判定するものである。
The code verification method of the present invention is a code verification method for detecting falsification of information generated by the (k, n) threshold method,
(K-1) is a set of input and output when x1 to xn, which are n values different from each other, are input to the (k-1) th order polynomial F (x1, F ( x1)) to (xn, F (xn)), (x1, F_1) to (x1, F_1) to (xk, F_k) of k sets of distributed codeword information to be restored To generate a (k−1) -degree polynomial F ′ that passes through the point (xk, F_k),
Restore the secret information s and the check data v embedded in the (k-1) degree polynomial F ′,
The secret information s is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. divided into s_1 and secret information s_2
For a two-input function M (), it is determined whether or not the value of the function M (s_1, s_2) and the check data v are equal, and the value of the function M (s_1, s_2) and the check data v are If they are equal, it is determined that the secret information s has not been tampered with, and if the value of the function M (s_1, s_2) and the check data v are not equal, it is determined that the secret information s has been tampered with. is there.

また、本発明のプログラムは、(k, n)閾値法により生成される情報の改ざんを検知するためのコードを生成するコンピュータに実行させるプログラムであって、
符号化対象の秘密情報sが入力されると、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報sを前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出し、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力する処理を前記コンピュータに実行させるものである。
The program of the present invention is a program that is executed by a computer that generates a code for detecting falsification of information generated by the (k, n) threshold method,
When the secret information s to be encoded is input, an element in which at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is uniformly selected from the original set of the secret information s; The secret information s is divided into the secret information s_1 and the secret information s_2,
For the two-input function M (), the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs is calculated as check data v.
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. At this time, the computer executes the process of outputting (x1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, as distributed codeword information.

さらに、本発明のプログラムは、(k, n)閾値法により生成された情報の改ざんを検知するためのコードを検証するコンピュータに実行させるプログラムであって、
(k-1)次多項式Fとして、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))のうち、復元対象となる、k組分の分散符号語情報の(x1, F_1)乃至(xk, F_k)が入力されると、該(x1, F_1)から該(xk, F_k)の点を通る(k-1)次多項式F'を生成し、
前記(k-1)次多項式F'に埋め込まれた秘密情報sおよびチェック用データvを復元し、
前記秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、関数M(s_1, s_2)の値と前記チェック用データvが等しいかを否かを判定し、関数M(s_1, s_2)の値と該チェック用データvが等しい場合、前記秘密情報sは改ざんされていないと判定し、関数M(s_1, s_2)の値と該チェック用データvが等しくない場合、前記秘密情報sは改ざんされていると判定する処理を前記コンピュータに実行させるものである。
Furthermore, the program of the present invention is a program executed by a computer for verifying a code for detecting falsification of information generated by the (k, n) threshold method,
(K-1) is a set of input and output when x1 to xn, which are n values different from each other, are input to the (k-1) th order polynomial F (x1, F ( (x1, F_1) to (xk, F_k) of k sets of distributed codeword information to be restored among (x1)) to (xn, F (xn)) are input. F_1) to generate a (k−1) degree polynomial F ′ passing through the points (xk, F_k),
Restore the secret information s and the check data v embedded in the (k-1) degree polynomial F ′,
The secret information s is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. divided into s_1 and secret information s_2
For a two-input function M (), it is determined whether or not the value of the function M (s_1, s_2) and the check data v are equal, and the value of the function M (s_1, s_2) and the check data v are If they are equal, it is determined that the secret information s has not been tampered with, and if the value of the function M (s_1, s_2) and the check data v are not equal, processing for determining that the secret information s has been tampered with The computer is executed.

本発明によれば、(k, n)閾値法による分散情報の改ざんを高確率および効率的に検知可能とし、かつ、パラメータ設定の自由度を大きくすることができる。   According to the present invention, it is possible to detect the alteration of the distributed information by the (k, n) threshold method with high probability and efficiency, and to increase the degree of freedom of parameter setting.

本実施形態の情報処理装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the information processing apparatus of this embodiment. 図1に示した情報処理装置の具体的構成例を示すブロック図である。It is a block diagram which shows the specific structural example of the information processing apparatus shown in FIG. 本実施形態の情報処理装置に含まれるコード生成装置の一構成例を示すブロック図である。It is a block diagram which shows one structural example of the code production | generation apparatus contained in the information processing apparatus of this embodiment. 本実施形態の情報処理装置に含まれるコード検証装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the code verification apparatus contained in the information processing apparatus of this embodiment. 図3Aに示したコード生成装置の動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure of the code generation apparatus shown to FIG. 3A. 図3Bに示したコード検証装置の動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure of the code verification apparatus shown to FIG. 3B. 本実施形態による、分散情報を生成する手順を示すフローチャートである。It is a flowchart which shows the procedure which produces | generates shared information by this embodiment. 本実施形態による、分散情報を復元する手順を示すフローチャートである。It is a flowchart which shows the procedure which decompress | restores dispersion | distributed information by this embodiment. 関連する分散情報生成装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the related shared information production | generation apparatus. 関連する復元装置の一構成例を示すブロック図である。It is a block diagram which shows one structural example of the related decompression | restoration apparatus. 図8Aに示した分散情報生成装置の動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure of the shared information generation apparatus shown to FIG. 8A. 図8Bに示した復元装置の動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure of the decompression | restoration apparatus shown to FIG. 8B. 非特許文献2または非特許文献3に開示されたコード生成装置の一構成例を示すブロック図である。FIG. 10 is a block diagram illustrating a configuration example of a code generation device disclosed in Non-Patent Document 2 or Non-Patent Document 3. 非特許文献2または非特許文献3に開示されたコード検証装置の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the code verification apparatus disclosed by the nonpatent literature 2 or the nonpatent literature 3. FIG. 非特許文献4に開示されたコード生成装置の一構成例を示すブロック図である。FIG. 10 is a block diagram illustrating a configuration example of a code generation device disclosed in Non-Patent Document 4. 非特許文献4に開示されたコード検証装置の一構成例を示すブロック図である。FIG. 10 is a block diagram illustrating a configuration example of a code verification device disclosed in Non-Patent Document 4.

本実施形態について図面を参照して詳細に説明する。図1は本実施形態の情報処理装置の一構成例を示すブロック図である。   This embodiment will be described in detail with reference to the drawings. FIG. 1 is a block diagram illustrating a configuration example of the information processing apparatus according to the present embodiment.

図1に示すように、本実施形態の情報処理装置10は、記憶部35と、制御部25とを有する。制御部25は、コード分散部702と、改ざん検知コード生成部100と、改ざん検知コード検証部200と、コード復元部801と、後述する秘密情報分割部501とを有する。   As illustrated in FIG. 1, the information processing apparatus 10 according to the present embodiment includes a storage unit 35 and a control unit 25. The control unit 25 includes a code distribution unit 702, a falsification detection code generation unit 100, a falsification detection code verification unit 200, a code restoration unit 801, and a secret information division unit 501 described later.

図2は図1に示した情報処理装置の具体的構成例を示すブロック図である。   FIG. 2 is a block diagram illustrating a specific configuration example of the information processing apparatus illustrated in FIG.

図2に示すように、プログラムにしたがって処理を実行するCPU(Central Processing Unit)11と、CPU11に供給するプログラムおよび演算処理過程の情報を一時的に保存するためのRAM(Random Access Memory)13と、プログラムが予め格納された主記憶部12と、秘密情報、閾値および分散情報数などの演算処理に必要な情報が格納されたデータ蓄積部14と、記憶部35の各記憶領域間のデータ転送を制御するメモリ制御インタフェイス部15と、情報を入力するための入力部20と、演算結果を出力するための出力部30と、入力部20および出力部30の入出力制御を行うI/Oインタフェイス部16とを有する。これらの構成は、バス18を介して接続されている。   As shown in FIG. 2, a CPU (Central Processing Unit) 11 that executes processing according to a program, a RAM (Random Access Memory) 13 for temporarily storing information to be supplied to the CPU 11 and information on arithmetic processing steps, Data transfer between each storage area of the storage unit 35, the main storage unit 12 in which the program is stored in advance, the data storage unit 14 in which information necessary for calculation processing such as secret information, threshold value, and number of distributed information is stored A memory control interface unit 15 for controlling the operation, an input unit 20 for inputting information, an output unit 30 for outputting calculation results, and an input / output control for the input unit 20 and the output unit 30 And an interface unit 16. These components are connected via a bus 18.

プログラムには、コード分散部702、改ざん検知コード生成部100、改ざん検知コード検証部200、コード復元部801、および秘密情報分割部501の機能をCPU11に実行させるための処理手順が書き込まれている。CPU11がプログラムを実行することで、コード分散部702、改ざん検知コード生成部100、改ざん検知コード検証部200、コード復元部801、および秘密情報分割部501が情報処理装置10に仮想的に構成される。   In the program, processing procedures for causing the CPU 11 to execute the functions of the code distribution unit 702, the falsification detection code generation unit 100, the falsification detection code verification unit 200, the code restoration unit 801, and the secret information division unit 501 are written. . When the CPU 11 executes the program, the code distribution unit 702, the falsification detection code generation unit 100, the falsification detection code verification unit 200, the code restoration unit 801, and the secret information division unit 501 are virtually configured in the information processing apparatus 10. The

なお、プログラムに、秘密情報符号化部301、秘密情報復号化部401および復号結果判定部402の機能をCPU11に実行させるための処理手順がさらに書き込まれていてもよい。   Note that a processing procedure for causing the CPU 11 to execute the functions of the secret information encoding unit 301, the secret information decoding unit 401, and the decoding result determination unit 402 may be written in the program.

なお、データ蓄積部14は、情報処理装置10内に設けていなくてもよく、情報処理装置10とは別に設けていてもよい。また、データ蓄積部14は、記憶部901を有する保管装置900としてもよい。   Note that the data storage unit 14 may not be provided in the information processing apparatus 10, and may be provided separately from the information processing apparatus 10. The data storage unit 14 may be a storage device 900 having a storage unit 901.

また、演算処理に必要なプログラムやデータを格納した記憶媒体を入力部20に装着し、それらの情報を入力部20を介して情報処理装置10に入力するようにしてもよい。記憶部媒体には、例えば、磁気ディスク、半導体メモリ、光ディスクなどがあるが、その他の記録媒体であってもよい。   Further, a storage medium storing programs and data necessary for arithmetic processing may be attached to the input unit 20 and the information may be input to the information processing apparatus 10 via the input unit 20. Examples of the storage medium include a magnetic disk, a semiconductor memory, and an optical disk, but may be other recording media.

次に、チェック用データに相当するコードの生成と検証に注目して、図1に示した情報処理装置10が実行する情報改ざん検知方法を説明する。本実施形態で処理対象となる秘密情報は、例えば、文書の暗号化のための秘密鍵となる素数である。この場合、秘密情報の元の集合は素数の集合となる。また、ここでは、情報処理装置10を、コードの生成処理を行うコード生成装置とコードの検証処理を行うコード検証装置の2つの装置に分けて説明する。   Next, focusing on the generation and verification of the code corresponding to the check data, the information alteration detection method executed by the information processing apparatus 10 shown in FIG. 1 will be described. The secret information to be processed in the present embodiment is, for example, a prime number that serves as a secret key for document encryption. In this case, the original set of secret information is a set of prime numbers. Further, here, the information processing apparatus 10 will be described as being divided into two apparatuses, a code generation apparatus that performs code generation processing and a code verification apparatus that performs code verification processing.

図3Aは本実施形態の情報処理装置に含まれるコード生成装置の一構成例を示すブロック図である。図3Bは本実施形態の情報処理装置に含まれるコード検証装置の一構成例を示すブロック図である。本実施形態の情報処理装置10は、コード生成装置500およびコード検証装置600を含む構成である。   FIG. 3A is a block diagram illustrating a configuration example of a code generation device included in the information processing apparatus of the present embodiment. FIG. 3B is a block diagram illustrating a configuration example of a code verification apparatus included in the information processing apparatus according to the present embodiment. The information processing apparatus 10 according to the present embodiment includes a code generation device 500 and a code verification device 600.

図3Aに示すように、コード生成装置500は、秘密情報分割部501および改ざん検知コード生成部100を有する。この改ざん検知コード生成部100は、上述の改ざん検知コード生成装置100と同様な機能を有しているため同じ符号が用いられている。改ざん検知コード生成部100は、改ざん検知コード生成装置100と同様な構成であるため、ここでは、その詳細な説明を省略する。   As illustrated in FIG. 3A, the code generation device 500 includes a secret information division unit 501 and a falsification detection code generation unit 100. Since the falsification detection code generation unit 100 has the same function as the falsification detection code generation device 100 described above, the same reference numerals are used. The falsification detection code generation unit 100 has the same configuration as that of the falsification detection code generation device 100, and thus a detailed description thereof is omitted here.

コード生成装置500は、秘密情報用データ集合Sの元である秘密情報sが入力されると、改ざん検知コード生成部の出力である、チェック用データ集合Cの元を出力し、また、入力されたsを出力する。   When the secret information s that is the source of the secret information data set S is input, the code generation device 500 outputs the source of the check data set C, which is the output of the falsification detection code generation unit, and is also input S is output.

秘密情報分割部501は、Sの元であるsが入力されると、秘密情報用データ集合S'の元である秘密情報s'と乱数用データ集合Rの元であるr'を改ざん検知コード生成部100へ出力する。改ざん検知コード生成部100は、秘密情報分割部501からs'とr'を受け取ると、s'とr'を用いてチェック用データ集合Cの要素であるcを生成し、生成したcを出力する。   When s that is the source of S is input, the secret information dividing unit 501 converts the secret information s ′ that is the source of the secret information data set S ′ and the r ′ that is the source of the random number data set R into a falsification detection code. Output to the generation unit 100. Upon receiving s ′ and r ′ from the secret information dividing unit 501, the falsification detection code generation unit 100 generates c, which is an element of the check data set C, using s ′ and r ′, and outputs the generated c To do.

次に、コード検証装置600について説明する。   Next, the code verification device 600 will be described.

図3Bに示すように、コード検証装置600は、上述した秘密情報分割部501と、改ざん検知コード検証部200とを有する。この改ざん検知コード検証部200は、上述の改ざん検知コード検証装置200と同様な機能を有しているため同じ符号が用いられている。改ざん検知コード検証部200は、改ざん検知コード検証装置200と同様な構成であるため、ここでは、その詳細な説明を省略する。   As illustrated in FIG. 3B, the code verification device 600 includes the secret information division unit 501 and the falsification detection code verification unit 200 described above. The falsification detection code verification unit 200 has the same function as the falsification detection code verification device 200 described above, and therefore the same reference numerals are used. The falsification detection code verification unit 200 has the same configuration as that of the falsification detection code verification apparatus 200, and thus detailed description thereof is omitted here.

コード検証装置600は、復元対象の秘密情報sと、復元対象の秘密情報から取り出されたチェック用データ集合Cの元cとが入力されると、sと改ざん検知コード検証部200の出力である検証結果を出力し、また、入力されたsを出力する。   When the secret information s to be restored and the source c of the check data set C extracted from the secret information to be restored are input, the code verification device 600 outputs s and the alteration detection code verification unit 200. The verification result is output, and the input s is output.

秘密情報分割部501は、その出力の秘密情報と一様乱数の改ざん検知コード生成部の出力である秘密情報と一様乱数の改ざん検知コード生成部の入力である秘密情報用データ集合S'の元である秘密情報s'とし、秘密情報と一様乱数の改ざん検知コード生成部の入力である乱数用データ集合Rの元であるr'とする。   The secret information dividing unit 501 includes the secret information that is output, the secret information that is output from the tamper detection code generation unit for uniform random numbers, and the secret information data set S ′ that is the input to the tamper detection code generation unit for uniform random numbers. It is assumed that the original secret information s ′ and r ′ that is the source of the random number data set R that is the input of the falsification detection code generation unit for the secret information and the uniform random number.

改ざん検知コード検証部200は、s'とr'とcとが入力されると、これらの情報を用いて検証処理を行い、検証結果を出力する。   When s ′, r ′, and c are input, the falsification detection code verification unit 200 performs verification processing using these pieces of information and outputs a verification result.

次に、コード生成装置500の動作手順を、図4のフローチャートを参照して説明する。   Next, the operation procedure of the code generation device 500 will be described with reference to the flowchart of FIG.

秘密情報用データ集合Sの元sがコード生成装置500に入力される(ステップC1)。秘密情報分割部501は、秘密情報sが入力されると、秘密情報用データ集合S'の元である秘密情報s'と、乱数用データ集合Rの元であるr'を生成し、s'およびr'を改ざん検知コード生成部100へ出力する(ステップC2)。   The source s of the secret information data set S is input to the code generation device 500 (step C1). When the secret information s is input, the secret information dividing unit 501 generates secret information s ′ that is the source of the secret information data set S ′ and r ′ that is the source of the random number data set R, and s ′ And r ′ are output to the falsification detection code generation unit 100 (step C2).

改ざん検知コード生成部100は、秘密情報用データ集合S'の元である秘密情報s'と、乱数用データ集合Rの元であるr'が入力されると、これらを用いてチェック用データ集合Cの元であるcを生成し、生成したcを出力する(ステップC3)。   When the secret information s ′ that is the source of the secret information data set S ′ and the r ′ that is the source of the random number data set R are input, the falsification detection code generation unit 100 uses them to check the data set for checking Generate c, which is an element of C, and output the generated c (step C3).

ここでは、詳細な説明を省略するが、ステップC3で生成されたチェック用データcが分散情報に埋め込まれる。   Although detailed description is omitted here, the check data c generated in step C3 is embedded in the shared information.

次に、コード検証装置600の動作手順を、図5のフローチャートを参照して説明する。   Next, the operation procedure of the code verification device 600 will be described with reference to the flowchart of FIG.

復元対象の秘密情報用データ集合Sの元sと、秘密情報から取り出された、チェック用データ集合Cの元であるcとがコード検証装置600に入力される(ステップD1)。秘密情報分割部501は、sが入力されると、sを用いて、秘密情報用データ集合S'の元である秘密情報s'と、乱数用データ集合Rの元であるr'を生成し、s'およびr'を改ざん検知コード検証部200へ出力する(ステップD2)。   The source s of the secret information data set S to be restored and c, the source of the check data set C extracted from the secret information, are input to the code verification device 600 (step D1). When s is input, the secret information dividing unit 501 uses s to generate secret information s ′ that is the source of the secret information data set S ′ and r ′ that is the source of the random number data set R. , S ′ and r ′ are output to the falsification detection code verification unit 200 (step D2).

改ざん検知コード検証部200は、s'およびr'を秘密情報分割部501より受け取り、c'が入力されると、これらの情報を用いて検証処理を行い、検証結果を出力する(ステップD3)。改ざん検知コード検証部200は、s'およびr'を用いて算出される値とc'とが一致している場合、情報が改ざんされていないと判定し、それらの値が一致していない場合、情報が改ざんされていると判定する。   The tampering detection code verification unit 200 receives s ′ and r ′ from the secret information division unit 501, and when c ′ is input, performs verification processing using these pieces of information and outputs a verification result (step D3). . When the value calculated using s ′ and r ′ matches c ′, the tampering detection code verification unit 200 determines that the information has not been tampered with, and the values do not match It is determined that the information has been tampered with.

ここまで、チェック用データのコードに注目して説明したが、チェック用データを分散情報に埋め込む場合の処理方法について説明する。   So far, the description has focused on the code of the check data, but a processing method when the check data is embedded in the distributed information will be described.

ここでは、コード分散部702は分散符号語生成部(不図示)を含み、コード復元部801は符号語復元部(不図示)を含み、改ざん検知コード検証部200が符号語検証部(不図示)を含むものとする。これらの構成もCPU11がプログラムを実行することで仮想的に構成されるものである。   Here, the code distribution unit 702 includes a distributed codeword generation unit (not shown), the code restoration unit 801 includes a codeword restoration unit (not shown), and the falsification detection code verification unit 200 includes a codeword verification unit (not shown). ). These configurations are also virtually configured by the CPU 11 executing the program.

はじめに、秘密情報に対して分散符号化処理を行って、分散情報を生成する手順を説明する。図6は、本実施形態による、分散情報を生成する手順を示すフローチャートである。   First, a procedure for generating distributed information by performing distributed encoding processing on secret information will be described. FIG. 6 is a flowchart illustrating a procedure for generating shared information according to the present embodiment.

図6に示すように、秘密情報分割部501は、秘密情報sを秘密情報s_1および秘密情報s_2の2つに分割する処理を行う(ステップE1)。その際、秘密情報分割部501は、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が秘密情報sの元の集合から一様にランダムに選択された要素となるようにする。続いて、改ざん検知コード生成部100は、秘密情報s_1と秘密情報s_2を入力とする2入力の関数M()の出力としてチェック用データvを算出する(ステップE2)。   As shown in FIG. 6, the secret information dividing unit 501 performs a process of dividing the secret information s into two, that is, secret information s_1 and secret information s_2 (step E1). At that time, the secret information dividing unit 501 makes at least one of the two pieces of divided information composed of the secret information s_1 and the secret information s_2 an element that is uniformly and randomly selected from the original set of the secret information s. . Subsequently, the falsification detection code generation unit 100 calculates the check data v as an output of a two-input function M () that receives the secret information s_1 and the secret information s_2 (step E2).

その後、分散符号語生成部(不図示)は、秘密情報sとチェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値x1乃至xnを多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として生成し、分散符号語情報を出力する(ステップE3)。   Thereafter, the distributed codeword generation unit (not shown) generates a (k−1) -degree polynomial F in which the secret information s and the check data v are embedded, and sets n different values x1 to xn to the polynomial F. (X1, F (x1)) to (xn, F (xn)), which are pairs of input and output when input, are generated as distributed codeword information, and the distributed codeword information is output (step E3) .

次に、復元対象となる情報が入力されたとき、その情報が改ざんされているか否かを判定する手順を説明する。図7は、本実施形態による、分散情報を復元する手順を示すフローチャートである。   Next, a procedure for determining whether or not the information to be restored has been falsified will be described. FIG. 7 is a flowchart showing a procedure for restoring the shared information according to the present embodiment.

符号語復元部(不図示)は、k組分の分散符号語情報として(x1', F_1')乃至(xk', F_k')が入力されると、これらの点を通る(k-1)次多項式F'を生成し、多項式F'に埋め込まれた秘密情報s'とチェック用データv'を読み出して出力する(ステップF1)。秘密情報分割部501は、s'が入力されると、s'をs'_1とs'_2に分割する(ステップF2)。   When (x1 ′, F_1 ′) to (xk ′, F_k ′) are input as k sets of distributed codeword information, the codeword restoration unit (not shown) passes through these points (k−1). A next-order polynomial F ′ is generated, and secret information s ′ and check data v ′ embedded in the polynomial F ′ are read and output (step F1). When s ′ is input, the secret information dividing unit 501 divides s ′ into s′_1 and s′_2 (step F2).

符号語検証部(不図示)は、M(s'_1,s'_2)とv'が等しいか否かを判定する。その結果、符号語検証部(不図示)は、M(s'_1,s'_2)とv'が等しい場合、情報が改ざんされていない旨の検証結果を出力し、M(s'_1,s'_2)とv'が等しくない場合、情報が改ざんされている旨の検証結果を出力する(ステップF3)。   A codeword verification unit (not shown) determines whether M (s′_1, s′_2) and v ′ are equal. As a result, when M (s′_1, s′_2) and v ′ are equal, the codeword verification unit (not shown) outputs a verification result indicating that the information has not been tampered with, and M (s′_1, If s ′ — 2) and v ′ are not equal, a verification result indicating that the information has been tampered with is output (step F3).

本実施形態では、コード生成方法において、秘密情報sを2つの情報s2_1とs2_2に分割する際、乱数の元s2_2は乱数Rが選ばれる集合から一様にランダムに選択された要素となるように分割し、s2_1をsとし、s2_2をrとして、ある関数M()にそれらを入力し、その出力をコードとしている。   In the present embodiment, when the secret information s is divided into two pieces of information s2_1 and s2_2 in the code generation method, the random number element s2_2 is an element that is uniformly and randomly selected from the set from which the random number R is selected. These are divided, s2_1 is s, s2_2 is r, and they are input to a certain function M (), and the output is code.

このような方法により、秘密情報が選ばれる集合と乱数が選ばれる集合とコードの集合上の加算を+と表すとき、秘密情報s1と乱数r1について、s1とc1 = M(s1,r1)を与えられた改ざん者がM(s1+s1' ,r1+r1')= M(s1, r1)+c1'を満たすs1'、r1'、c1'を生成するという改ざんを高い確率で検知可能となっている。   In this way, when the addition on the set of secret information, the set of random numbers selected, and the set of codes is expressed as +, s1 and c1 = M (s1, r1) are expressed for the secret information s1 and the random number r1. It is possible to detect with high probability that a given falsifier generates s1 ', r1', c1 'that satisfies M (s1 + s1', r1 + r1 ') = M (s1, r1) + c1' It has become.

そして、s2_2の乱数性とM()の性質によって、s2_1、s2_2を与えられない改ざん者は、M(s2_1+s2_1',s2_2+s2_2')=M(s2_1,s2_2)+c'となるようなs2_1'、s2_2'、c'を生成することは困難となる。   Then, due to the randomness of s2_2 and the nature of M (), a tamper who cannot be given s2_1, s2_2 will be M (s2_1 + s2_1 ', s2_2 + s2_2') = M (s2_1, s2_2) + c ' It is difficult to generate s2_1 ′, s2_2 ′, and c ′.

さらに、本実施形態では、秘密情報用データ集合Sの元である秘密情報sと乱数用データ集合Rの元であるrのサイズを独立に設定可能なため、パラメータを自由に設定可能となる。よって、(k,n)閾値法による分散情報の改ざんを高確率および効率的に検知可能とし、かつ、パラメータ設定の自由度を大きくすることができる。   Furthermore, in this embodiment, since the size of the secret information s that is the source of the secret information data set S and the size of r that is the source of the random number data set R can be set independently, the parameters can be set freely. Therefore, it is possible to detect the alteration of the distributed information by the (k, n) threshold method with high probability and efficiently, and to increase the degree of freedom of parameter setting.

本実施例は、上述した実施形態に、非特許文献3の方法を適用したものである。本実施例では、非特許文献3の方式を適用する場合を説明するが、上述した実施形態の情報改ざん検知方法の関数M()に他の方式を適用してもよい。   In this example, the method of Non-Patent Document 3 is applied to the above-described embodiment. In this example, a case where the method of Non-Patent Document 3 is applied will be described. However, another method may be applied to the function M () of the information alteration detection method of the above-described embodiment.

非特許文献3の方法は、背景技術の欄で説明したように、以下の通りである。   As described in the background art section, the method of Non-Patent Document 3 is as follows.

非特許文献3に開示された方法は、pを素数とし、Nを正の整数として、(Z/pZ)^Nを秘密情報の集合とする方式である。(Z/pZ)^Nの元をs、または(s_1,s_2,...,s_N)と記す。また、(Z/pZ)^Nの代わりにガロア体GF(p^N)を用いてもよい。   The method disclosed in Non-Patent Document 3 is a method in which p is a prime number, N is a positive integer, and (Z / pZ) ^ N is a set of secret information. The element of (Z / pZ) ^ N is written as s or (s_1, s_2, ..., s_N). In addition, Galois field GF (p ^ N) may be used instead of (Z / pZ) ^ N.

このとき、(s_1,s_2,...,s_N)のコードとして、sと、Z/pZから一様ランダムに選択した要素rとし、*をZ/pZ上の乗算とすると、s_1*r + s_2*r^2 + ... + s_{N-1}*r^{N-1} + s_{N}*r^{N+1} mod p をチェック用データとする。   At this time, as a code of (s_1, s_2,..., S_N), if s and an element r uniformly selected from Z / pZ are set, and * is a multiplication on Z / pZ, s_1 * r + s_2 * r ^ 2 + ... + s_ {N-1} * r ^ {N-1} + s_ {N} * r ^ {N + 1} mod p is used as check data.

Z/pZの代わりにqを素数のべき乗としたとき、それぞれの集合をガロア体GF(q)の要素として乗算をガロア体上の乗算としてもよい。   When q is a power of a prime number instead of Z / pZ, each set may be an element of a Galois field GF (q), and multiplication may be multiplication on the Galois field.

次に、本実施例の動作手順を図3Aおよび図3Bを参照して説明する。   Next, the operation procedure of the present embodiment will be described with reference to FIGS. 3A and 3B.

はじめにコード生成方法について説明する。コード生成装置500に、秘密情報sとして(Z/pZ)^{N+1}の要素である(s1,s2,...,s{N+1})が入力された場合を例に説明する。   First, the code generation method will be described. The case where (s1, s2, ..., s {N + 1}), which is an element of (Z / pZ) ^ {N + 1}, is input to the code generation device 500 as an example of secret information s To do.

コード生成装置500は、秘密情報分割部501に、s=(s1,s2,...,s{N+1})を入力する。なお、各siは一様にランダム選ばれた値であるものとする。   The code generation device 500 inputs s = (s1, s2,..., S {N + 1}) to the secret information dividing unit 501. Note that each si is a value uniformly selected at random.

秘密情報分割部501は、sを、S'=(s1,s2,...,sN)とR'=s{N+1}と分割して出力する。ここでは、単純にs{N+1}をR'としたが、s1からsNのうちいずれの値でもよい。   The secret information dividing unit 501 divides s into S ′ = (s1, s2,..., SN) and R ′ = s {N + 1} and outputs the result. Here, s {N + 1} is simply set as R ′, but any value from s1 to sN may be used.

続いて、改ざん検知コード生成部100は、S'とR'が入力されると、s1*s{N+1} + s2*s{N+1}^2 + ... + s{N-1}*s{N+1}^{N-1} + s_{N}*s{N+1}^{N+1} mod p= Cとして計算する。コード生成装置500はsとcを出力する。   Subsequently, when S ′ and R ′ are input, the falsification detection code generation unit 100 receives s1 * s {N + 1} + s2 * s {N + 1} ^ 2 + ... + s {N− 1} * s {N + 1} ^ {N-1} + s_ {N} * s {N + 1} ^ {N + 1} mod p = C. The code generation device 500 outputs s and c.

次に、コード検証方法について説明する。   Next, a code verification method will be described.

コード検証装置600に、秘密情報sとして(Z/pZ)^{N+1}の要素であるs'= (s1', s2',...,s{N+1}')が入力され、チェック用データとしてc'が入力された場合を例に説明する。   S '= (s1', s2 ', ..., s {N + 1}') which is an element of (Z / pZ) ^ {N + 1} is input to the code verification device 600 as secret information s A case where c ′ is input as the check data will be described as an example.

コード検証装置600は、秘密情報分割部501に、s'=(s1',s2',...,s{N+1}')を入力する。秘密情報分割装置501は、s'が入力されると、s'をS'=(s1',s2',...,sN')とR'=s{N+1}'とに分割して出力する。なお、ここでは単純にs{N+1}をR'としたが、s1からsNのうちいずれの値でもよい。   The code verification device 600 inputs s ′ = (s1 ′, s2 ′,..., S {N + 1} ′) to the secret information dividing unit 501. When s ′ is input, the secret information dividing apparatus 501 divides s ′ into S ′ = (s1 ′, s2 ′,..., SN ′) and R ′ = s {N + 1} ′. Output. Here, s {N + 1} is simply R ′, but any value from s1 to sN may be used.

続いて、コード検証装置600は、s'とr'とc'を改ざん検知コード検証部200に入力する。改ざん検知コード検証部200は、s'とr'とc'が入力されると、s1'*s{N+1}' + s2'*s{N+1}'^2 + ... + s{N-1}'*s{N+1}'^{N-1} + s{N}'*s{N+1}'^{N+1} mod pを計算し、計算結果をc'と比較する。改ざん検知コード検証部200は、比較の結果、これらの値が等しかった場合には改ざんが無かったことを表す記号を出力する。それ以外の場合は改ざんがあったことを表す記号を出力する。コード検証装置600は、入力のs'と改ざん検知コード検証装置200の出力結果を出力する。   Subsequently, the code verification device 600 inputs s ′, r ′, and c ′ to the falsification detection code verification unit 200. When s ′, r ′, and c ′ are input, the falsification detection code verification unit 200 receives s1 ′ * s {N + 1} ′ + s2 ′ * s {N + 1} ′ ^ 2 + ... + s {N-1} '* s {N + 1}' ^ {N-1} + s {N} '* s {N + 1}' ^ {N + 1} mod p Compare with c '. The tampering detection code verification unit 200 outputs a symbol indicating that no tampering has occurred when these values are equal as a result of the comparison. In other cases, a symbol indicating that alteration has occurred is output. The code verification device 600 outputs the input s ′ and the output result of the falsification detection code verification device 200.

ここで、コード生成装置500の処理内容を詳細に見ると、s=(s1,s2,...,s{N+1})とc= s1*s{N+1} + s2*s{N+1}^2 + ... + s{N-1}*s{N+1}^{N-1} + s_{N}*s{N+1}^{N+1} mod pのセットである(s1,s2,...,s{N+1},c)がコードとなっている。   Here, when the processing contents of the code generation device 500 are viewed in detail, s = (s1, s2, ..., s {N + 1}) and c = s1 * s {N + 1} + s2 * s { N + 1} ^ 2 + ... + s {N-1} * s {N + 1} ^ {N-1} + s_ {N} * s {N + 1} ^ {N + 1} mod p (S1, s2, ..., s {N + 1}, c) is a code.

このコードについて、(s1+d1,s2+d2,...,s{N+1}+d{N+1},c+dc)の検証結果が正しくなるようなd1,d2,...,d{N+1},dcを生成することは、非特許文献3の方式において、s= (s1, s2,...,s{N})を秘密情報s{N+1}を乱数として生成されたチェック用データcについて、s={s1+d1,...,sN+dN}を秘密情報とし、s{N+1}+d{N+1}を乱数とし、c+dcをチェック用データとしたときの検証結果が、改ざんがなかったとなるような(d1, d2,..., d{N+1}, dc)を生成することに他ならない。   For this code, d1, d2, ... such that the verification result of (s1 + d1, s2 + d2, ..., s {N + 1} + d {N + 1}, c + dc) is correct. , d {N + 1}, dc is generated by using s = (s1, s2,... s {N}) as secret information s {N + 1} as a random number in the method of Non-Patent Document 3. S = {s1 + d1, ..., sN + dN} as secret information, s {N + 1} + d {N + 1} as a random number, and c + dc (D1, d2,..., D {N + 1}, dc) is generated as the verification result when no data has been altered.

よって非特許文献3に開示された方式の持つ安全性により、改ざんの検知確率が高い値に保たれる。   Therefore, the tampering detection probability is kept at a high value by the safety of the method disclosed in Non-Patent Document 3.

また、この方式においてはs{N+1}が選ばれる集合の大きさが非特許文献3における乱数の選ばれる集合の大きさになっている。この乱数の選ばれる集合の大きさのサイズが改ざん検知の成功確率にかかわっている。そのため、s{N+1}が選ばれる集合の大きさを調節することによってコードの長さと改ざんの成功確率を調整することが可能となっており、非特許文献4の方式に対してパラメータが柔軟にとれるようになっていることがわかる。   In this method, the size of the set from which s {N + 1} is selected is the size of the set from which random numbers are selected in Non-Patent Document 3. The size of the selected set of random numbers is related to the success probability of falsification detection. Therefore, it is possible to adjust the code length and the success probability of falsification by adjusting the size of the set from which s {N + 1} is selected. You can see that it is flexible.

そして、非特許文献4の方式では秘密情報の選ばれる集合のサイズを|S|とし、改ざん者による改ざんの成功確率をδとしたとき、コードの集合のサイズはおよそ|S|/δであった。   In the method of Non-Patent Document 4, if the size of the set of secret information selected is | S | and the success probability of alteration by a tamper is δ, the code set size is approximately | It was.

一方、上述した方法では非特許文献3による方式の性質より、s{N+1}が選ばれる集合の大きさを|s{N+1}|とすると、ほぼ1/|s{N+1}|が改ざんの成功確率となる。|s{N+1}|はチェック用データのサイズとほぼ等しいため、この方式のコードの集合のサイズはおよそ|S|/δとなっていることがわかる。   On the other hand, in the above-described method, due to the nature of the method according to Non-Patent Document 3, if the size of the set from which s {N + 1} is selected is | s {N + 1} |, approximately 1 / | s {N + 1 } | Is the success probability of falsification. Since | s {N + 1} | is approximately equal to the size of the check data, it can be seen that the size of the code set of this method is approximately | S | / δ.

つまり、本実施例の方法では、秘密情報の集合の要素数はs*rとなり、改ざんの確率は1/r程度となる。このとき、コードの集合の要素数はおよそrとなり、非特許文献4の方式と同程度の演算効率となることがわかる。   That is, in the method of the present embodiment, the number of elements in the secret information set is s * r, and the probability of falsification is about 1 / r. At this time, the number of elements in the set of codes is approximately r, and it can be seen that the calculation efficiency is comparable to that of the method of Non-Patent Document 4.

さらに、非特許文献4のsとrのサイズは非特許文献3の方式の性質によってほぼ独立に設定することが可能であるので、パラメータが自由に設定可能な方式となる。よって非特許文献4に記載されている方式と同程度の効率を持ちながら、M()として非特許文献3に開示された技術を用いることで、パラメータを自由に設定可能となる。   Furthermore, since the sizes of s and r in Non-Patent Document 4 can be set almost independently according to the nature of the method in Non-Patent Document 3, parameters can be freely set. Therefore, the parameter can be freely set by using the technique disclosed in Non-Patent Document 3 as M () while having the same efficiency as the method described in Non-Patent Document 4.

本発明を秘密鍵などの機密情報の分散管理に利用できる。   The present invention can be used for distributed management of confidential information such as a secret key.

10 情報処理装置
11 CPU
12 主記憶部
13 RAM
14 データ蓄積部
15 メモリ制御インタフェイス部
16 I/Oインタフェイス部
20 入力部
25 制御部
30 出力部
35 記憶部
101 チェック用データ生成部
201 同一性判定部
501 秘密情報分割部
701 コード生成部
702 コード分散部
801 コード復元部
802 コード正当性検証部
10 Information processing apparatus 11 CPU
12 Main memory 13 RAM
DESCRIPTION OF SYMBOLS 14 Data storage part 15 Memory control interface part 16 I / O interface part 20 Input part 25 Control part 30 Output part 35 Storage part 101 Check data generation part 201 Identity determination part 501 Secret information division part 701 Code generation part 702 Code distribution unit 801 Code restoration unit 802 Code validity verification unit

Claims (9)

(k, n)閾値法により生成される情報の改ざんを検知する情報処理装置であって、
秘密情報sが入力されると、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報sを前記秘密情報s_1および秘密情報s_2に分割する秘密情報分割部と、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出するコード生成部と、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力するコード分散部と、
復元対象となる、k組分の分散符号語情報として(x1', F_1')乃至(xk', F_k')が入力されると、該(x1', F_1')から該(xk', F_k')の点を通る(k-1)次多項式F'を生成し、該(k-1)次多項式F'に埋め込まれた秘密情報s'およびチェック用データv'を復元するコード復元部と、
前記秘密情報分割部によって前記秘密情報s'が分割された秘密情報s'_1および秘密情報s'_2を該秘密情報分割部から受け取ると、関数M(s'_1, s'_2)の値と前記チェック用データv'が等しいかを否かを判定し、関数M(s'_1, s'_2)の値と該チェック用データv'が等しい場合、前記秘密情報s'は改ざんされていないと判定し、関数M(s'_1, s'_2)の値と該チェック用データv'が等しくない場合、前記秘密情報s'は改ざんされていると判定するコード検証部と、
を有する情報処理装置。
An information processing apparatus that detects falsification of information generated by a (k, n) threshold method,
When the secret information s is input, at least one of the two pieces of divided information composed of the secret information s_1 and the secret information s_2 is an element that is uniformly and randomly selected from the original set of the secret information s. A secret information dividing unit that divides the secret information s into the secret information s_1 and the secret information s_2;
A code generator for calculating the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs for the two-input function M ();
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. A code distribution unit that outputs (x1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, as distributed codeword information,
When (x1 ′, F_1 ′) to (xk ′, F_k ′) are input as k sets of distributed codeword information to be restored, (xk ′, F_k) from (x1 ′, F_1 ′) A code restoration unit that generates a (k-1) th order polynomial F 'passing through the point') and restores the secret information s' and the check data v 'embedded in the (k-1) th order polynomial F'; ,
When the secret information s′_1 and the secret information s′_2 obtained by dividing the secret information s ′ by the secret information dividing unit are received from the secret information dividing unit, the value of the function M (s′_1, s′_2) It is determined whether or not the check data v ′ is equal. If the value of the function M (s′_1, s′_2) and the check data v ′ are equal, the secret information s ′ has not been tampered with. A code verification unit that determines that the secret information s ′ has been tampered with when the value of the function M (s′_1, s′_2) and the check data v ′ are not equal;
An information processing apparatus.
pを素数とし、Nを正の整数とし、(Z/pZ)^{N+1}を秘密情報sの集合とし、(Z/pZ)^{N+1}の元を(x_1,x_2,...,x_{N+1})とし、さらに、*をZ/pZ上の乗算とすると、
前記秘密情報分割部は、
前記元x_1, x_2,..., x_{N+1}のうちいずれか1つの値を選択してその値を秘密情報s_2とし、選択した値以外を秘密情報s_1 = (x'_1, x'_2,...,x'_{N})とすると、M(s_1, s_2)= x'_1*s_2 + x'_2*s_2^2 + ... + x'_{N-1}*s_2^{N-1} + x'_{N}*s_2^{N+1} mod pを計算し、計算結果を前記チェック用データvとする、請求項1に記載の情報処理装置。
Let p be a prime number, N be a positive integer, (Z / pZ) ^ {N + 1} be a set of secret information s, and (Z / pZ) ^ {N + 1} elements be (x_1, x_2, ..., x_ {N + 1}), and * is multiplication on Z / pZ,
The secret information dividing unit
One value is selected from the elements x_1, x_2,..., X_ {N + 1}, and the value is set as secret information s_2, and secret information s_1 = (x'_1, x) other than the selected value. '_2, ..., x' _ {N}), M (s_1, s_2) = x'_1 * s_2 + x'_2 * s_2 ^ 2 + ... + x '_ {N-1} The information processing apparatus according to claim 1, wherein * s_2 ^ {N-1} + x '_ {N} * s_2 ^ {N + 1} mod p is calculated and the calculation result is the check data v.
(k, n)閾値法により生成される情報の改ざんを検知するためのコード生成方法であって、
符号化対象の秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出し、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力する、コード生成方法。
A code generation method for detecting falsification of information generated by a (k, n) threshold method,
The secret information s to be encoded is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. Divided into the secret information s_1 and the secret information s_2,
For the two-input function M (), the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs is calculated as check data v.
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. A code generation method for outputting (x1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, as distributed codeword information.
pを素数とし、Nを正の整数とし、(Z/pZ)^{N+1}を秘密情報sの集合とし、(Z/pZ)^{N+1}の元を(x_1,x_2,...,x_{N+1})とし、さらに、*をZ/pZ上の乗算とすると、
前記元x_1, x_2,..., x_{N+1}のうちいずれか1つの値を選択してその値を秘密情報s_2とし、選択した値以外を秘密情報s_1 = (x'_1, x'_2,...,x'_{N})とすると、M(s_1, s_2)= x'_1*s_2 + x'_2*s_2^2 + ... + x'_{N-1}*s_2^{N-1} + x'_{N}*s_2^{N+1} mod pを計算し、計算結果を前記チェック用データvとする、請求項3に記載のコード生成方法。
Let p be a prime number, N be a positive integer, (Z / pZ) ^ {N + 1} be a set of secret information s, and (Z / pZ) ^ {N + 1} elements be (x_1, x_2, ..., x_ {N + 1}), and * is multiplication on Z / pZ,
One value is selected from the elements x_1, x_2,..., X_ {N + 1}, and the value is set as secret information s_2, and secret information s_1 = (x'_1, x) other than the selected value. '_2, ..., x' _ {N}), M (s_1, s_2) = x'_1 * s_2 + x'_2 * s_2 ^ 2 + ... + x '_ {N-1} The code generation method according to claim 3, wherein * s_2 ^ {N-1} + x '_ {N} * s_2 ^ {N + 1} mod p is calculated and the calculation result is used as the check data v.
(k, n)閾値法により生成された情報の改ざんを検知するためのコード検証方法であって、
(k-1)次多項式Fとして、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))のうち、復元対象となる、k組分の分散符号語情報の(x1, F_1)乃至(xk, F_k)に対して、該(x1, F_1)から該(xk, F_k)の点を通る(k-1)次多項式F'を生成し、
前記(k-1)次多項式F'に埋め込まれた秘密情報sおよびチェック用データvを復元し、
前記秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、関数M(s_1, s_2)の値と前記チェック用データvが等しいかを否かを判定し、関数M(s_1, s_2)の値と該チェック用データvが等しい場合、前記秘密情報sは改ざんされていないと判定し、関数M(s_1, s_2)の値と該チェック用データvが等しくない場合、前記秘密情報sは改ざんされていると判定する、コード検証方法。
A code verification method for detecting falsification of information generated by a (k, n) threshold method,
(K-1) is a set of input and output when x1 to xn, which are n values different from each other, are input to the (k-1) th order polynomial F (x1, F ( x1)) to (xn, F (xn)), (x1, F_1) to (x1, F_1) to (xk, F_k) of k sets of distributed codeword information to be restored To generate a (k−1) -degree polynomial F ′ that passes through the point (xk, F_k),
Restore the secret information s and the check data v embedded in the (k-1) degree polynomial F ′,
The secret information s is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. divided into s_1 and secret information s_2
For a two-input function M (), it is determined whether or not the value of the function M (s_1, s_2) and the check data v are equal, and the value of the function M (s_1, s_2) and the check data v are A code that determines that the secret information s has not been tampered with, and if the value of the function M (s_1, s_2) and the check data v are not equal, the secret information s is determined to have been tampered with. Method of verification.
pを素数とし、Nを正の整数とし、(Z/pZ)^{N+1}を秘密情報sの集合とし、(Z/pZ)^{N+1}の元を(x_1,x_2,...,x_{N+1})とし、さらに、*をZ/pZ上の乗算とすると、
前記元x_1, x_2,..., x_{N+1}のうちいずれか1つの値を選択してその値を秘密情報s_2とし、選択した値以外を秘密情報s_1 = (x'_1, x'_2,...,x'_{N})とすると、M(s_1, s_2)= x'_1*s_2 + x'_2*s_2^2 + ... + x'_{N-1}*s_2^{N-1} + x'_{N}*s_2^{N+1} mod pを計算し、計算結果を前記チェック用データvとする、請求項5に記載のコード検証方法。
Let p be a prime number, N be a positive integer, (Z / pZ) ^ {N + 1} be a set of secret information s, and (Z / pZ) ^ {N + 1} elements be (x_1, x_2, ..., x_ {N + 1}), and * is multiplication on Z / pZ,
One value is selected from the elements x_1, x_2,..., X_ {N + 1}, and the value is set as secret information s_2, and secret information s_1 = (x'_1, x) other than the selected value. '_2, ..., x' _ {N}), M (s_1, s_2) = x'_1 * s_2 + x'_2 * s_2 ^ 2 + ... + x '_ {N-1} The code verification method according to claim 5, wherein * s_2 ^ {N-1} + x '_ {N} * s_2 ^ {N + 1} mod p is calculated and the calculation result is used as the check data v.
(k, n)閾値法により生成される情報の改ざんを検知するためのコードを生成するコンピュータに実行させるプログラムであって、
符号化対象の秘密情報sが入力されると、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報sを前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、前記秘密情報s_1と前記秘密情報s_2を入力とする関数M(s_1, s_2)の値をチェック用データvとして算出し、
前記秘密情報sと前記チェック用データvが埋め込まれた(k-1)次多項式Fを生成し、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))を分散符号語情報として出力する処理を前記コンピュータに実行させるためのプログラム。
(k, n) A program for causing a computer to generate code for detecting falsification of information generated by the threshold method,
When the secret information s to be encoded is input, an element in which at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is uniformly selected from the original set of the secret information s; The secret information s is divided into the secret information s_1 and the secret information s_2,
For the two-input function M (), the value of the function M (s_1, s_2) having the secret information s_1 and the secret information s_2 as inputs is calculated as check data v.
The (k-1) th order polynomial F in which the secret information s and the check data v are embedded is generated, and different x values x1 to xn are input to the (k-1) th order polynomial F. A program for causing the computer to execute a process of outputting (x1, F (x1)) to (xn, F (xn)), which are pairs of inputs and outputs, as distributed codeword information.
(k, n)閾値法により生成された情報の改ざんを検知するためのコードを検証するコンピュータに実行させるプログラムであって、
(k-1)次多項式Fとして、互いに異なるn個の値であるx1乃至xnを前記(k-1)次多項式Fに入力したときの、入力と出力との組である(x1, F(x1))乃至(xn, F(xn))のうち、復元対象となる、k組分の分散符号語情報の(x1, F_1)乃至(xk, F_k)が入力されると、該(x1, F_1)から該(xk, F_k)の点を通る(k-1)次多項式F'を生成し、
前記(k-1)次多項式F'に埋め込まれた秘密情報sおよびチェック用データvを復元し、
前記秘密情報sを、秘密情報s_1および秘密情報s_2からなる2つの分割情報のうち少なくとも一方が前記秘密情報sの元の集合から一様にランダムに選択された要素となるように、前記秘密情報s_1および秘密情報s_2に分割し、
2入力の関数M()について、関数M(s_1, s_2)の値と前記チェック用データvが等しいかを否かを判定し、関数M(s_1, s_2)の値と該チェック用データvが等しい場合、前記秘密情報sは改ざんされていないと判定し、関数M(s_1, s_2)の値と該チェック用データvが等しくない場合、前記秘密情報sは改ざんされていると判定する処理を前記コンピュータに実行させるためのプログラム。
(k, n) A program for causing a computer to verify code for detecting falsification of information generated by the threshold method,
(K-1) is a set of input and output when x1 to xn, which are n values different from each other, are input to the (k-1) th order polynomial F (x1, F ( (x1, F_1) to (xk, F_k) of k sets of distributed codeword information to be restored among (x1)) to (xn, F (xn)) are input. F_1) to generate a (k−1) degree polynomial F ′ passing through the points (xk, F_k),
Restore the secret information s and the check data v embedded in the (k-1) degree polynomial F ′,
The secret information s is such that at least one of the two pieces of divided information consisting of the secret information s_1 and the secret information s_2 is an element selected uniformly and randomly from the original set of the secret information s. divided into s_1 and secret information s_2
For a two-input function M (), it is determined whether or not the value of the function M (s_1, s_2) and the check data v are equal, and the value of the function M (s_1, s_2) and the check data v are If they are equal, it is determined that the secret information s has not been tampered with, and if the value of the function M (s_1, s_2) and the check data v are not equal, processing for determining that the secret information s has been tampered with A program for causing the computer to execute.
pを素数とし、Nを正の整数とし、(Z/pZ)^{N+1}を秘密情報sの集合とし、(Z/pZ)^{N+1}の元を(x_1,x_2,...,x_{N+1})とし、さらに、*をZ/pZ上の乗算とすると、
前記元x_1, x_2,..., x_{N+1}のうちいずれか1つの値を選択してその値を秘密情報s_2とし、選択した値以外を秘密情報s_1 = (x'_1, x'_2,...,x'_{N})とすると、M(s_1, s_2)= x'_1*s_2 + x'_2*s_2^2 + ... + x'_{N-1}*s_2^{N-1} + x'_{N}*s_2^{N+1} mod pを計算し、計算結果を前記チェック用データvとする、請求項7または8に記載のプログラム。
Let p be a prime number, N be a positive integer, (Z / pZ) ^ {N + 1} be a set of secret information s, and (Z / pZ) ^ {N + 1} elements be (x_1, x_2, ..., x_ {N + 1}), and * is multiplication on Z / pZ,
One value is selected from the elements x_1, x_2,..., X_ {N + 1}, and the value is set as secret information s_2, and secret information s_1 = (x'_1, x) other than the selected value. '_2, ..., x' _ {N}), M (s_1, s_2) = x'_1 * s_2 + x'_2 * s_2 ^ 2 + ... + x '_ {N-1} The program according to claim 7 or 8, wherein * s_2 ^ {N-1} + x '_ {N} * s_2 ^ {N + 1} mod p is calculated and the calculation result is the check data v.
JP2009156904A 2009-07-01 2009-07-01 Information processing apparatus, code generation method, code verifying method, and program Pending JP2011013428A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009156904A JP2011013428A (en) 2009-07-01 2009-07-01 Information processing apparatus, code generation method, code verifying method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009156904A JP2011013428A (en) 2009-07-01 2009-07-01 Information processing apparatus, code generation method, code verifying method, and program

Publications (1)

Publication Number Publication Date
JP2011013428A true JP2011013428A (en) 2011-01-20

Family

ID=43592385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009156904A Pending JP2011013428A (en) 2009-07-01 2009-07-01 Information processing apparatus, code generation method, code verifying method, and program

Country Status (1)

Country Link
JP (1) JP2011013428A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011035809A (en) * 2009-08-05 2011-02-17 Nec Corp Information processing apparatus, code generation method, code validation method, and program
JP2014137474A (en) * 2013-01-17 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> Tamper detection device, tamper detection method, and program
CN107111965A (en) * 2014-12-26 2017-08-29 日本电信电话株式会社 Secret tampering detection system, secret computing device, secret altering detecting method and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011035809A (en) * 2009-08-05 2011-02-17 Nec Corp Information processing apparatus, code generation method, code validation method, and program
JP2014137474A (en) * 2013-01-17 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> Tamper detection device, tamper detection method, and program
CN107111965A (en) * 2014-12-26 2017-08-29 日本电信电话株式会社 Secret tampering detection system, secret computing device, secret altering detecting method and program

Similar Documents

Publication Publication Date Title
EP1695169B1 (en) Method and apparatus for incremental code signing
JP5299286B2 (en) Distributed information generation apparatus, restoration apparatus, verification apparatus, and secret information distribution system
US20080172562A1 (en) Encryption and authentication of data and for decryption and verification of authenticity of data
EP2885737B1 (en) Storing and accessing data
EP3316160A1 (en) Authentication method and apparatus for reinforced software
JP5136412B2 (en) Distributed information generation apparatus and restoration apparatus
WO2011077819A1 (en) Verification device, confidential information restoration device, verification method, program, and secret sharing system
CN112887081A (en) SM 2-based signature verification method, device and system
US8347109B2 (en) Secure serial number generation
WO2017197869A1 (en) Version file checking method and apparatus, encryption method and apparatus, and storage medium
JP2011013428A (en) Information processing apparatus, code generation method, code verifying method, and program
US8499357B1 (en) Signing a library file to verify a callback function
EP2286610B1 (en) Techniques for peforming symmetric cryptography
JP5573041B2 (en) Information processing apparatus, code generation method, code verification method, and program
KR20220074199A (en) Computer program for dividing original file into multiple pieces, encrypting divided files and restoring original file by decrypting encrypted files, and method thereof
CN108376212B (en) Execution code security protection method and device and electronic device
JP2013009245A (en) Secret information distribution system, secret information distribution method, secret information creation program, and secret information restoration program
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
Yandji et al. Research on a normal file encryption and decryption
KR20190058884A (en) Data transmission apparatus capable of digital signature based on biometric information and operating method thereof
JP5381981B2 (en) Distributed information generator
TWI249666B (en) Device using parity check bit to carry out data encryption protection and method thereof
JP6631989B2 (en) Encryption device, control method, and program
JP2011123229A (en) Program code encryption device and program
KR102425916B1 (en) Device and method for lattice-based fuzzy extraction supporting variable length fuzzy data