JP5276526B2 - ビット列生成装置、ビット列生成方法及びプログラム - Google Patents
ビット列生成装置、ビット列生成方法及びプログラム Download PDFInfo
- Publication number
- JP5276526B2 JP5276526B2 JP2009142479A JP2009142479A JP5276526B2 JP 5276526 B2 JP5276526 B2 JP 5276526B2 JP 2009142479 A JP2009142479 A JP 2009142479A JP 2009142479 A JP2009142479 A JP 2009142479A JP 5276526 B2 JP5276526 B2 JP 5276526B2
- Authority
- JP
- Japan
- Prior art keywords
- hash
- value
- bit string
- bit
- input
- 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.)
- Active
Links
Images
Description
MFG1(x,L)=H(x||<0>32)||...||H(x||<CEIL(L/n)-2>32)
||[H(x||<CEIL(L/n)-1>32)]L-n(CEIL(L/n)-1) …(1)
〔定義〕
まず、以下で共通に使用する用語・記号を定義する。
{0,1}*:任意長のビット列。
{0,1}n:ビット長nのビット列。
N:0以上の整数の集合。
α→β:αからβへの写像。
α||β:αとβとのビット結合(ビット連結)。
[α]β:αから切り出された上位βビット。例えば、[11101001]3=111。
[α]β:αから切り出された下位βビット。例えば、[11101001]5=01001。
CEIL(α):α以上の最小の整数(αのCeil関数値)。
<i>:iを所定のビットでエンコーディングしたビット列。
k:1以上の整数定数であるセキュリティパラメータ。
H,G:ハッシュ関数。ハッシュ関数の例はSHA-1などである。
第1実施形態では、まず、入力部に、少なくとも任意値xが入力される。次に、ハッシュ演算部が、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成する。本形態のハッシュ演算部は、ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力してハッシュ値y(i)=H(u(i))を生成する。その後、ビット結合部が、ハッシュ値y(i)及び/又はハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成する。
図1は、第1実施形態のビット列生成装置100の構成を説明するためのブロック図である。
図1に例示するように、本形態のビット列生成装置100は、制御部101と、メモリ102aと、初期値メモリ102bと、入力部103と、パラメータ算出部104と、カウンタ105と、ハッシュ演算部106と、ビット切出し部107と、ビット結合部108とを有する。
図2は、第1実施形態の処理を説明するためのフローチャートである。以下、この図を用いて、本形態の処理を説明する。なお、以下の処理の前提として、k,nの値が設定され、初期値メモリ102bにハッシュ連鎖値の初期値v(-1)=0kが格納されているものとする。
t=CEIL(L/(n-k)) …(2)
の演算を行い、その演算結果tを出力する(ステップS102)。
r=L-(n-k)(t-1) …(3)
の演算を行い、その演算結果rを出力する(ステップS103)。パラメータ算出部104から出力された演算結果tは制御部101に入力され、演算結果rはビット切出し部107に入力される。
次に、ハッシュ演算部106に、初期値メモリ102b又はビット切出し部107から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-1)||x||<i>) …(4)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS105)。
z(i)=[y(i)]n-k …(5)
v(i)=[y(i)]k …(6)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)とハッシュ連鎖値v(i)とを出力する(ステップS106、S107)。
y(t-1)=H(v(t-2)||x||<t-1>) …(7)
の演算を行い、そのハッシュ値y(t-1)を出力する(ステップS110)。
z(t-1)=[y(t-1)]r …(8)
の演算を行い、ハッシュ値y(t-1)から一部のビット列を切り出し、それによって得られたビット列z(t-1)を出力する(ステップS111)。
F(x,L)=z(0)||...||z(t-2)||z(t-1) …(9)
の演算によって各ビット列z(i)のビット結合し、ビット長Lのビット列F(x,L)を生成して出力する(ステップS112)。
本発明は第1実施形態に限定されない。
例えば、本形態のハッシュ入力情報u(i)は、ハッシュ連鎖値v(i-1)と、任意値xと、カウント値iのエンコーディングビット列<i>とのビット結合であった。しかし、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、カウント値iのエンコーディングビット列<i>を含まない構成でもよい。また、少なくとも一部にカウント値iに対応するハッシュ入力情報u(i)が、ハッシュ連鎖値v(i-1)と、任意値xと、その他の情報(例えば、乱数や装置の固有情報など)とのビット結合であってもよいし、ハッシュ連鎖値v(i-1)と、任意値xと、エンコーディングビット列<i>と、当該その他の情報とのビット結合であってもよい。
第2実施形態は、第1実施形態の変形例であり、第1ハッシュ関数Hのハッシュ値からハッシュ連鎖値を生成するのではなく、別途計算される第2ハッシュ関数Gのハッシュ値からハッシュ連鎖値を生成する。
図3は、第2実施形態のビット列生成装置200の構成を説明するためのブロック図である。なお、図3において、第1実施形態と共通する部分については、第1実施形態と同じ符号を用いた。
図4は、第2実施形態の処理を説明するためのフローチャートである。以下、この図を用いて、本形態の処理を説明する。なお、以下の処理の前提として、k,nの値が設定され、初期値メモリ102bにハッシュ連鎖値の初期値v(-1)=0kが格納されているものとする。
t=CEIL(L/n) …(10)
の演算を行い、その演算結果tを出力する(ステップS202)。
r=L-n(t-1) …(11)
の演算を行い、その演算結果rを出力する(ステップS203)。パラメータ算出部104から出力された演算結果tは制御部101に入力され、演算結果rはビット切出し部207に入力される。
次に、ハッシュ演算部106に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-1)||x||<i>) …(12)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS105)。
v(i)=G(v(i-1)||<i>) …(13)
の演算を行い、そのハッシュ値v(i)をハッシュ連鎖値v(i)として出力する(ステップS207)。
y(t-1)=H(v(t-2)||x||<t-1>) …(14)
の演算を行い、そのハッシュ値y(t-1)を出力する(ステップS110)。
z(t-1)=[y(t-1)]r …(15)
の演算を行い、ハッシュ値y(t-1)から一部のビット列を切り出し、それによって得られたビット列z(t-1)を出力する(ステップS211)。
F(x,L)=y(0)||...||y(t-2)||z(t-1) …(16)
の演算によって各ハッシュ値y(0),...,y(t-2)とビット列z(t-1)とをビット結合し、ビット長Lのビット列F(x,L)を生成して出力する(ステップS212)。
本発明は第2実施形態に限定されない。
例えば、本形態では、カウント値iを増加させながら行われる繰り返し処理の中でハッシュ連鎖値v(i)を計算することとした(ステップS207)。しかし、本形態のハッシュ連鎖値v(i)は入力される任意値xに依存しない。そのため、必要となるすべてのハッシュ連鎖値v(i)をまとめて計算してもよく、また、ハッシュ連鎖値v(j)がステップS101より前に事前計算されハッシュ値y(i)が並列計算されていてもよい。これにより、演算速度を向上させることができる。
次に本発明の第3実施形態を説明する。
本形態は、第1,2実施形態の変形例であり、一部のカウント値iに対応するハッシュ入力情報u(i)のみがハッシュ連鎖値v(j(i))を含む形態である。これにより、ハッシュ連鎖値v(j(i))の演算コストを削減できるとともに、ハッシュ連鎖値v(j(i))を含まないハッシュ入力情報u(i)やそのハッシュ値を同時並列に計算でき、演算速度を向上させることができる。
なお、本形態の構成は第1,2実施形態と同様であるため、以下では構成の説明を省略し、処理を中心に説明を行う。
図5は、第3実施形態の処理を説明するためのフローチャートである。
図5の例では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む。一方、i≠w・qとなるカウント値iに対応する入力情報u(i)はハッシュ連鎖値v(j(i))を含まない。なお、本形態でも第1実施形態と同様、j(i)=i-1, p(i)=i-1, m(i)=i-2の場合を例にとって説明する。
y(i)=H(x||<i>) …(17)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS304)。この各カウント値iについての式(17)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
v(i)=[y(i)]k …(18)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)とハッシュ連鎖値v(i)とを出力する(ステップS305)。この各カウント値iについての式(18)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
y(i)=H(v(i-1)||x||<i>) …(19)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS306)。この各カウント値iについての式(19)の演算は同時並列に実行されてもよいし、直列的に実行されてもよい。
z(i)=[y(i)]n-k …(20)
の演算によってハッシュ値y(i)から一部のビット列を切り出し、それによって得られたビット列z(i)(i∈{0,...t-2})を出力する(ステップS307)。
その後、第1実施形態と同様のステップS111及びS112の処理が実行される。
図6は、第3実施形態の処理を説明するためのフローチャートである。
図6の例では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む。一方、i≠w・qとなるカウント値iに対応する入力情報u(i)はハッシュ連鎖値v(j(i))を含まない。なお、本形態でも第1実施形態と同様、j(i)=i-1, p(i)=i-1, m(i)=i-2の場合を例にとって説明する。また、以下の処理の前提として、初期値メモリ102bにハッシュ連鎖値の初期値v(-w)=0kが格納されているものとする。
次に、ハッシュ演算部106に、初期値メモリ102b又はハッシュ演算部209から出力されたハッシュ連鎖値v(i-1)と、入力部103に入力されたxと、カウンタ105から出力されたカウント値iとが入力される。ハッシュ演算部106は、
y(i)=H(v(i-w)||x||<i>) …(21)
の演算を行い、そのハッシュ値y(i)を出力する(ステップS316)。
v(i)=G(v(i-w)||<i>) …(22)
の演算を行い、そのハッシュ値v(i)をハッシュ連鎖値v(i)として出力する(ステップS317)。
本発明は第3実施形態に限定されない。例えば、第3実施形態の実施例1,2では、カウント値i∈{0,...,t-1}のうち、i=w・q(wは2以上の整数、qは正の整数)を満たす場合にのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含む例を説明した。しかし、その他のカウント値i∈{0,...,t-1}の部分集合についてのみ、入力情報u(i)がハッシュ連鎖値v(j(i))を含むこととしてもよい。また、上記の各処理において、前述の第1実施形態の変形例や第2実施形態の変形例で述べた変形がなされてもよい。
上述の各実施形態の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
Claims (7)
- 少なくとも任意値xが入力される入力部と、
各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、前記任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成するハッシュ演算部と、
前記ハッシュ値y(i)及び/又は前記ハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成するビット結合部と、を有し、
少なくとも一部のカウント値iに対応する前記ハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含み、
前記ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列であり、
カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、前記ハッシュ連鎖値v(m(i))を含む、
ことを特徴とするビット列生成装置。 - 請求項1のビット列生成装置であって、
前記ハッシュ演算部は、前記ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力して前記ハッシュ値y(i)を生成し、
前記ハッシュ連鎖値v(m(i))を含む情報は、前記ハッシュ入力情報u(p(i))であり、
前記ハッシュ連鎖値v(j(i))は、前記ハッシュ入力情報u(p(i))を前記第1ハッシュ関数Hに入力して得られたハッシュ値y(p(i))又はその一部のビット列である、
ことを特徴とするビット列生成装置。 - 請求項1のビット列生成装置であって、
前記ハッシュ演算部は、前記ハッシュ入力情報u(i)を第1ハッシュ関数Hに入力して前記ハッシュ値y(i)=H(u(i))を生成し、
前記ハッシュ連鎖値v(j(i))は、前記ハッシュ連鎖値v(m(i))を含む情報を第2ハッシュ関数Gに入力して得られたハッシュ値又はその一部のビット列であり、
前記ハッシュ連鎖値v(m(i))を含む情報は、前記任意値xに依存しない情報である、
ことを特徴とするビット列生成装置。 - 請求項3のビット列生成装置であって、
前記ハッシュ連鎖値v(j)は、前記任意値xが前記入力部に入力される前に事前計算された値である、
ことを特徴とするビット列生成装置。 - 請求項1から4の何れかのビット列生成装置であって、
一部のカウント値iに対応する前記ハッシュ入力情報u(i)のみが前記ハッシュ連鎖値v(j(i))を含む、
ことを特徴とするビット列生成装置。 - 入力部とハッシュ演算部とビット結合部とビット結合部とを有するビット列生成装置が実行するビット列生成方法であって、
前記入力部に、少なくとも任意値xが入力されるステップと、
前記ハッシュ演算部が、各カウント値i∈{0,...,Max}(iは整数、MAXは1以上の整数)に対し、それぞれ、前記任意値xを含むハッシュ入力情報u(i)のハッシュ値y(i)を生成するステップと、
前記ビット結合部が、前記ハッシュ値y(i)及び/又は前記ハッシュ値y(i)の一部のビット列をビット結合し、任意ビット長Lのビット列を生成するステップと、を有し、
少なくとも一部のカウント値iに対応する前記ハッシュ入力情報u(i)は、さらに、カウント値j(i)(j(i)∈{0,...,Max})に対応するハッシュ連鎖値v(j(i))を含み、
前記ハッシュ連鎖値v(j(i))は、カウント値m(i)(m(i)∈{0,...,Max},m(i)≠j(i))に対応するハッシュ連鎖値v(m(i))を含む情報のハッシュ値又はその一部のビット列であり、
カウント値p(i)(p(i)∈{0,...,Max},p(i)≠i)に対応するハッシュ入力情報u(p(i))は、さらに、前記ハッシュ連鎖値v(m(i))を含む、
ことを特徴とするビット列生成方法。 - 請求項1から5の何れかのビット列生成装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009142479A JP5276526B2 (ja) | 2009-06-15 | 2009-06-15 | ビット列生成装置、ビット列生成方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009142479A JP5276526B2 (ja) | 2009-06-15 | 2009-06-15 | ビット列生成装置、ビット列生成方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010286781A JP2010286781A (ja) | 2010-12-24 |
JP5276526B2 true JP5276526B2 (ja) | 2013-08-28 |
Family
ID=43542503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009142479A Active JP5276526B2 (ja) | 2009-06-15 | 2009-06-15 | ビット列生成装置、ビット列生成方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5276526B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113496762B (zh) * | 2021-05-20 | 2022-09-27 | 山东大学 | 一种生物基因序列的概要数据生成方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002304121A (ja) * | 2001-04-09 | 2002-10-18 | Nippon Telegr & Teleph Corp <Ntt> | ハッシュ関数演算装置、そのプログラム及びその記録媒体 |
JP2006337429A (ja) * | 2005-05-31 | 2006-12-14 | Nippon Telegr & Teleph Corp <Ntt> | マスク生成関数演算装置、そのプログラム及び記録媒体 |
-
2009
- 2009-06-15 JP JP2009142479A patent/JP5276526B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010286781A (ja) | 2010-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11159305B2 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
Wang et al. | FPGA-based Niederreiter cryptosystem using binary Goppa codes | |
Barker et al. | Recommendation for random bit generator (RBG) constructions | |
US20150262074A1 (en) | Solving digital logic constraint problems via adiabatic quantum computation | |
US20200052913A1 (en) | Reducing amount of helper data in silicon physical unclonable functions via lossy compression without production-time error characterization | |
JP5429502B2 (ja) | 範囲検索システム、範囲検索方法、及び範囲検索用プログラム | |
Saarinen et al. | Shorter messages and faster post-quantum encryption with Round5 on Cortex M | |
CN113098691A (zh) | 数字签名方法、签名信息的验证方法、相关装置及电子设备 | |
CN112466032B (zh) | 电子投票方法、装置及电子设备 | |
Liu et al. | A novel security key generation method for SRAM PUF based on Fourier analysis | |
JP5276526B2 (ja) | ビット列生成装置、ビット列生成方法及びプログラム | |
Ebrahimzadeh et al. | On longest paths and diameter in random Apollonian networks | |
US11070354B2 (en) | System and method for generating a symmetrically balanced output | |
JP6844696B2 (ja) | 認証タグ生成装置、認証タグ検証装置、方法及びプログラム | |
JP2017073716A (ja) | タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム | |
CN115309861A (zh) | 一种密文检索系统、方法、计算机设备及存储介质 | |
Park et al. | A lightweight BCH code corrector of trng with measurable dependence | |
Bohman et al. | Independent sets in hypergraphs omitting an intersection | |
JP6980154B2 (ja) | データ利用者鍵生成装置、鍵生成方法及び鍵生成プログラム | |
CN114911851B (zh) | 数据查询方法、装置及存储介质 | |
Dai et al. | Multiple Dimensional Encoding/Modulation Shift‐and‐Addition Design for Distributed Systems | |
Di Crescenzo et al. | Cryptographic password obfuscation | |
Frisch et al. | A Practical Approach to Estimate the Min-Entropy in PUFs | |
CN115801228B (zh) | 交互信息加密的方法、装置、电子设备及存储介质 | |
CN103678334A (zh) | 计算地理信息的数字摘要的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110720 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110922 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130424 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130517 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5276526 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |