JP5198572B2 - 暗号化装置 - Google Patents
暗号化装置 Download PDFInfo
- Publication number
- JP5198572B2 JP5198572B2 JP2010532726A JP2010532726A JP5198572B2 JP 5198572 B2 JP5198572 B2 JP 5198572B2 JP 2010532726 A JP2010532726 A JP 2010532726A JP 2010532726 A JP2010532726 A JP 2010532726A JP 5198572 B2 JP5198572 B2 JP 5198572B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- bit
- bits
- cycle
- 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.)
- Expired - Fee Related
Links
- 239000000284 extract Substances 0.000 claims description 2
- 238000013459 approach Methods 0.000 description 18
- 230000009467 reduction Effects 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 15
- 125000004122 cyclic group Chemical group 0.000 description 14
- 238000000034 method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、SHA−2アルゴリズムを用いた、複数のレジスタが直列に配置されるシフトレジスタと、該シフトレジスタに格納されるデータに基づき加算演算を行う所定個の加算器とを有するダイジェスト部を有する暗号化装置に関する。
セキュリティシステムの基盤技術として、暗号技術が利用されている。暗号技術の一つとして、ハッシュ関数という技術が知られている。ハッシュ関数は、任意長のデータを一定長のデータに圧縮するものである。これは、今日の情報セキュリティに不可欠であるデジタル署名などに用いられている。
主に、ハッシュ関数として、MD4、MD5、Whirlpool、SHA−2などの様々なアルゴリズムが知られている。
これらのハッシュ関数アルゴリズムは、ソフトウェア又はハードウェアのいずれによっても実装され得る。しかし、一般にハッシュ関数処理は、ソフトウェアによる実装よりもハードウェアによる実装の方が、回路規模当たりの処理効率が高いことが知られている。ここで、ハードウェアはソフトウェアと異なり、その回路規模が製造コストに直結するという面を持っている。そのため、ハードウェアによってハッシュ関数を実装する場合、コストを極小化するために、回路規模をできるだけ小さくすることが産業上重要な課題となる。
以下、一般的なハッシュ関数アルゴリズムに関して、SHA−2を例として説明する。
SHA−2は、4つのハッシュ関数アルゴリズム(SHA−224、SHA−256、SHA−384、SHA−512)の総称である。これら4つのハッシュ関数アルゴリズムは、米国標準技術研修所(National Institute of Standards and Technology;NIST)が公開している標準FIPS180−2、SECURE HASH STANDARD CHANGE NOTICE 1に記載されている。これら4つのハッシュ関数は、アルゴリズム全体の流れは同じであるが、そのデータ幅などが若干異なる。
図1は、SHA−2アルゴリズムの基本構成を示す。図示されるように、SHA−2は、ダイジェスト部(以下、"DP"と呼ぶ。)100と、メッセージ部(以下、"MP"と呼ぶ。)110とを有する。MP110及びDP100の一般的な回路構成を、夫々、図2及び図3に示す。これらの図から、MP110及びDP100はいずれも、その大部分がレジスタ及び各種演算器によって構成されていることが分かる。
SHA−256又はSHA−224の場合には、MP110は、512ビットの入力データを格納するために16個の32ビットレジスタを有する。64サイクルの間、MP110は、データWiをDP100に出力し続ける。一方、DP100は、8個の32ビットレジスタの2つの組を有する。DP110は、MP110からデータWiを受け取る64サイクルの間、シフトレジスタ構造により、第1の組の8個の32ビットレジスタa〜hを更新し続ける。つまり、DP100及びMP110は、データWiによる同期を取りながら、並列動作を行っている。DP100は、最初にデータWiを受け取ってから64サイクル後に、8サイクルにわたって終了処理を行う。具体的には、DP100は、第2の組の8個の32ビットレジスタH0〜H7の値を、第1の組のレジスタa〜hを用いて更新する。SHA−256では、第2の組のレジスタH0〜H7に格納される256ビットのデータが最終的な出力(ハッシュ値)となり、SHA−224では、第2の組のレジスタH0〜H6に格納される224ビットのデータがハッシュ値となる。
一方、SHA−512又はSHA−384の場合には、メインループは64サイクルではなく80サイクルであり、演算単位は32ビットではなく64ビットである。他の点に関しては、上記のSHA−256又はSHA−224の場合と同じである。SHA−512では、第2の組のレジスタH0〜H7に格納される512ビットのデータがハッシュ値となり、SHA−384では、第2の組のレジスタH0〜H5に格納される384ビットのデータがハッシュ値となる。
上述されたように、ハッシュ関数を含めた暗号のハードウェア実装では、コスト面から回路規模の削減が重要な課題となっている。そして、ハッシュ関数の一つであるSHA−2では、その仕様からMP110よりもDP100の方がハードウェア全体の回路規模に占める割合が大きい。従って、ハードウェア実装の回路規模削減のために、DP100の回路規模の削減を図ることは必須である。図3に図示されるように、DP100は、主に、データを格納する複数のレジスタを含むレジスタ部と、加算器などの各種演算器を含む演算部とを有する。ここで、レジスタ部に関しては、先に説明されたようなSHA−2のアルゴリズム仕様上、削除することは困難である。よって、DP100の回路規模削減を図る場合には、演算部の回路規模を削減するアプローチが考えられる。一般的には、時分割又はビット分割のいずれかによって加算器を削減する方法が知られている。時分割による加算器削減は、加算器の個数を減らすことによって実現される(例えば、特開2001−282106号公報(特許文献1)参照。)。例えば、従来は2個の32ビット加算器を用いて1サイクルで演算していたものを、1個の32ビット加算器を用いて2サイクルで演算することが考えられている。一方、ビット分割による加算器削減は、加算器のデータ幅を減らすことによって実現される。例えば、従来は2個の32ビット加算器を用いて1サイクルで演算していたものを、2個の16ビット加算器を用いて2サイクルかけて演算することが考えられている。
図4は、上記の加算器削減による回路規模削減の各アプローチに従うDP100の加算器周辺の回路構成を示す。図4において、(a)は、SHA−2のアルゴリズム仕様に従った回路構成を示し、(b)は、時分割による加算器削減アプローチに従う回路構成を示し、(c)は、ビット分割による加算器削減アプローチに従う回路構成を示す。(a)に図示されるように、SHA−2のアルゴリズム仕様に従った回路構成では、8個の32*Yビット加算器(ここで、SHA−224/256の場合にY=1、SHA−384/512の場合にY=2。)を用いて1サイクルで加算演算が行われる。一方、時分割による加算器削減アプローチでは、(b)に図示されるように、同じ加算演算を2サイクルかけて行うことで、加算器の数を半減させることができる。また、ビット分割による加算器削減アプローチでは、(c)に図示されるように、32*Yビット加算データを上位16*Yビット及び下位16*Yビットに分割する。そして、1サイクル目では下位ビット加算演算を行い、2サイクル目では上位ビット加算演算を行うことで、データ幅を半減させることができる。
特開2001−282106号公報
しかし、上記の回路規模削減アプローチにおいて、時分割による加算器削減アプローチでは、異なるサイクル間で加算器を共有することとなるため、加算器の入力及び出力にセレクタを設ける必要がある。また、ビット分割による加算器削減アプローチでも同様に、異なるサイクル間で加算器を共有することとなるため、加算器の入力及び出力にセレクタを設ける必要がある。つまり、SHA−2ハードウェアの回路規模削減のための従来のアプローチはセレクタによる回路規模の増加という問題を伴う。よって、実際には、SHA−2ハードウェア全体として回路規模の削減を実現することはできない。
本発明は、上記問題を鑑み、ハッシュ関数の一つであるSHA−2のハードウェア全体として回路規模を削減することが可能な暗号化装置を提供することを目的とする。
上記目的を達成するために、本発明の一実施例における暗号化装置は、32*Y(Y=1又は2)ビットを基本演算単位とするSHA−2アルゴリズムを用いた、複数のレジスタが直列に配置されるシフトレジスタと、該シフトレジスタに格納されるデータに基づき加算演算を行う所定個の加算器とを有するダイジェスト部を有する暗号化装置であって、前記シフトレジスタは、(32*Y)/X(X=2k。Y=1のとき1≦k≦4、Y=2のとき1≦k≦5。kは整数。)ビットのレジスタを有し、前記所定個の加算器は、夫々、(32*Y)/Xビットのデータ幅を有し、前記シフトレジスタに格納されるデータが(32*Y)/Xビットのデータ幅で前記レジスタ間をシフトする1サイクルごとに、前記加算演算を行うことができる。
図1乃至4を参照して記載されたように、SHA−2アルゴリズムを用いた暗号化装置では、メッセージ部よりもダイジェスト部の方が装置全体の回路規模に占める割合が大きい。よって、本発明はダイジェスト部の回路規模の削減を対象とする。また、SHA−2アルゴリズムのダイジェスト部の基本演算単位は(32*Y)ビットである。本発明の一実施例における暗号化装置では、ダイジェスト部のシフトレジスタに着目し、シフトレジスタとして(32*Y)/Xビットのレジスタを用いることとした。これにより、ダイジェスト部で用いられる加算器のデータ幅を、余分のセレクタを設けることなく、従来の1/Xにできる。
本開示の暗号化装置により、ハッシュ関数の一つであるSHA−2のハードウェア全体として回路規模を削減することが可能となる。
10,100 ダイジェスト部
110 メッセージ部
20 レジスタ部
30 演算部
40 シフトレジスタ
a〜h レジスタ
A11〜A18 加算器
C11 Σ0回路
C12 Maj回路
C13 Σ1回路
C14 Ch回路
S11〜S14,S21,S22 インターフェース部
110 メッセージ部
20 レジスタ部
30 演算部
40 シフトレジスタ
a〜h レジスタ
A11〜A18 加算器
C11 Σ0回路
C12 Maj回路
C13 Σ1回路
C14 Ch回路
S11〜S14,S21,S22 インターフェース部
以下、本発明を実施するための最良の形態について、添付の図面に関連して記載される具体的な実施例を参照して説明する。
図5は、本発明の一実施例に従うSHA−2のDPの回路構成を示す。図5のDP10は、レジスタ部20及び演算部30を有する。レジスタ部20は、16個の16*Yビットレジスタa1,a2.b1,・・・,h2を有するレジスタの組を有する。DP10は、このレジスタの組を用いて、最終的な出力(ハッシュ値)を格納するH0〜H7の値を更新する。具体的には、H0←H0+{a1‖a2}, H1←H1+{b1‖b2}, …, H7←H7+{h1‖h2} に従って更新を行う。ここで、Yは、SHA−224/256の場合には"1"をとり、SHA−384/512の場合には"2"をとる。すなわち、これは、SHA−2アルゴリズムのDPの基本演算単位が、SHA−224/256では32ビットであり、SHA−384/512では64ビットであることを意味する。また、演算部30は、8個の16*Yビット加算器A11〜A18を有する。
先に図3を参照して記載されたように、従来のDPの回路構成では、レジスタの組は8個の32*Yビットのレジスタa〜hを有する。これに対し、本実施例に従うDPの回路構成では、レジスタの組は16個の16*Yビットのレジスタa1,a2.b1,・・・,h2を有する16*Yビットシフトレジスタ構造をとる。この構造により、従来の回路規模削減アプローチで問題であったDPの加算器A11〜A18周辺のセレクタ増加が抑制される。16*Yビットシフトレジスタ構造をとることによる効果を、図6を参照して、より詳細に記載する。
図6は、従来及び本発明の一実施例の夫々に関して加算器周辺回路を示す。本発明の一実施例における加算器A11〜A18の動作の理解を容易にするため、図6には、シフトレジスタの一部のレジスタ及び演算部に含まれる1個の加算器が示され、他の構成要素は示されない。
図6において、(a)は、従来のビット分割による加算器削減アプローチに従う回路構成を示す。図示されるように、この従来のアプローチでは、本発明の一実施例で用いられる2個の16*Yビットレジスタの組に対応する32*YビットレジスタA、Bを用いる。この回路構成は、SHA−2アルゴリズムの本来の仕様に従い、32*Yビット単位のシフト処理を行う。よって、演算単位が32*Yビットとなるので、ビット分割による16*2ビットの加算を実現するために、32*Yビットデータの上位16*Yビットと下位16*Yビットを順次加算しなければならない。ゆえに、上位ビット又は下位ビットを選択するセレクタを必要とする。
一方、図6において、(b)は本発明の一実施例に従う回路構成を示す。図示されるように、本実施例では、シフトレジスタは16*Yビットのレジスタa1,a2,b1及びb2を有する。シフト演算のビット単位もSHA−2アルゴリズム本来の仕様である32*Yビットから16*Yビット単位となるように変更されている。これにより、シフト演算がセレクタの機能を代替的に果たすこととなる。すなわち、32*Yビットデータの上位16*Yビットと下位16*Yビットを順次加算しようとする場合に、従来のアプローチで必要とされたようなセレクタは不要となる。このように、シフトレジスタとして16*Yビットのレジスタを用いることにより、ダイジェスト部で用いられる加算器のデータ幅を、余分のセレクタを設けることなく、従来の半分である16*Yビットにすることができる。
具体的に、r=a+bの演算を行う状況を例として、各回路構成の動作を説明する。ここで、r、a及びbの各変数は32*Yビットとする。また、各変数の上位16*YビットをXHとし、下位16*YビットをXLとする(X=r、a又はb)。更に、16*Yビットデータの1回の加算演算を1サイクルと定義する。
図6(a)の従来のビット分割アプローチに従う回路構成では、レジスタA、Bの夫々に32*Yビットデータ{aH‖aL}、{bH‖bL}が格納されている。1サイクル目として、32*Yビットデータの下位16*Yビットについて演算を行う場合には、各レジスタから下位ビットaL及びbLを取り出し、加算器に入力するセレクタが必要となる。一方、同様の場合について、図6(b)の本発明の一実施例に従う回路構成では、各32*Yビットデータの上位16*Yビット及び下位16*Yビットが別個のレジスタに格納されるので、セレクタは不要である。いずれの回路構成においても、このとき、加算器は、下位16*Yビットの加算演算、すなわち、carry‖rL=aL+bLの演算を行う。ここで、carryは桁上がり信号であり、そのデータ幅は1ビットである。
次に、2サイクル目として、32*Yビットデータの上位ビットについて演算が行われる。図6(a)の従来のビット分割アプローチに従う回路構成では、セレクタによって各レジスタから上位ビットaH及びbHが取り出される。一方、同様の場合について、図6(b)の本発明の一実施例に従う回路構成では、各レジスタに格納される16*Yビットデータは隣のレジスタに移動する。すなわち、1サイクル目で下位ビットが格納されていたレジスタに上位ビットが格納される。いずれの回路構成においても、このとき、加算器は、上位16*Yビットの加算演算、すなわち、rH=aH+bH+carryの演算を行う。
加算器の演算結果は、従来のビット分割アプローチに従う回路構成では、32*Yビットシフトレジスタを用いるために、32*Yビットデータとして出力されることを要する。従って、図6(a)に図示されるように、加算器の出力段にはデマルチプレクサが設けられる。このデマルチプレクサは、加算結果を格納する32*Yビットレジスタにおいて、1サイクル目では下位ビットrLを選択し、2サイクル目では上位ビットrHを選択する。一方、本発明の一実施例に従う回路構成では、16*Yビットシフトレジスタを用いることから、加算器の演算結果を結合するためのデマルチプレクサは不要である。
このように、本発明の実施例では、16*Yビット幅のシフトレジスタ構造をとることで、加算器の入力線を固定したとしても、1サイクル毎にデータがシフトするので、下位ビットから上位ビット(又はその逆)の順番で加算器にデータを入力することが可能となる。つまり、セレクタを用いない固定結線による回路構造が実現され得る。このとき、加算器は16*Yビットのデータ幅を有し、1サイクルごとに加算演算を行う。
再び図5を参照すると、演算部30は、インターフェース部S11〜S14と、Σ0回路C11と、Maj回路C12と、Σ1回路C13と、Ch回路C14とを更に有する。Σ0回路C11及びΣ1回路C13はいずれも、シフトレジスタの一部のレジスタに格納されたデータについて巡回シフト演算を行う3個の巡回シフト演算器と、それらの出力についてXOR演算を行うXOR演算器とを有してΣ関数を演算する論理演算回路である。Maj回路C12は、シフトレジスタの一部のレジスタに格納されたデータについてAND演算を行う3個のAND演算器と、それらの出力についてXOR演算を行うXOR演算器とを有してMaj関数を演算する論理演算回路である。Ch回路C14は、シフトレジスタの一部のレジスタに格納されたデータについてAND演算を行う2個のAND演算器と、それらの出力についてXOR演算を行うXOR演算器とを有してCh関数を演算する論理演算回路である。各関数については、SHA−2の一般的なアルゴリズムにおいて知られており、ここでは詳述しない。
図3に図示される従来のDPの回路構成と比較すると、インターフェース部S11〜S14が挿入されている点を除いて、原則的には、その回路構成は同じである。しかし、Σ0回路C11及びΣ1回路C13を除く、加算器A11〜A18、Maj回路C12及びCh回路C14は、32*Yビットの半分である16*Yビットのデータ幅を扱う。Σ0回路C11及びΣ1回路C13は、Σ関数演算のために巡回シフト演算器を有する。この巡回シフト演算器には32*Yビットのデータ幅でデータが入力される必要があるため、Σ0回路C11及びΣ1回路C13の夫々の入力段には、16*Yビットのデータ幅を32*Yビットと整合させるインターフェース部S11、S13が設けられている。また、Σ0回路C11及びΣ1回路C13から出力されるデータのデータ幅は32*Yビットであるため、Σ0回路C11及びΣ1回路C13の夫々の出力段には、32*Yビットのデータ幅を16*Yビットと整合させるインターフェース部S12、S14が設けられている。
第1のインターフェース部S11は、レジスタ部20とΣ0回路C11との間に設けられる。第1のインターフェース部S11は、図5に図示される実施例では、レジスタ部20のレジスタa1、a2及びb1に格納されている16*Yビットデータから適切な2つのデータを選択して、32*YビットデータとしてΣ0回路C11へ入力する。第2のインターフェース部S12は、Σ0回路C11と、レジスタ部20の先頭レジスタa1へ結線された第1の加算器A11との間に設けられる。第2のインターフェース部S12は、Σ0回路C11から出力される32*Yビットデータの上位16*Yビットデータ又は下位16*Yビットデータのいずれかを選択して、第1の加算器A11へ入力する。第3のインターフェース部S13は、レジスタ部20とΣ1回路C13との間に設けられる。第3のインターフェース部S13は、レジスタ部20のレジスタe1、e2及びf1に格納されている16*Yビットデータから適切な2つのデータを選択して、32*YビットデータとしてΣ1回路C13へ入力する。第4のインターフェース部S14は、Σ1回路C13と、第4の加算器A14との間に設けられる。第4のインターフェース部S14は、Σ1回路C13から出力される32*Yビットデータの上位16*Yビットデータ又は下位16*Yビットデータのいずれかを選択して、第4の加算器A14へ入力する。
第1のインターフェース部S11は2個のセレクタM11及びM12を有する。第1のセレクタM11は2入力1出力マルチプレクサであって、レジスタa1に接続された第1の入力と、レジスタa2に接続された第2の入力と、Σ0回路C11の入力に接続された出力とを有する。第2のセレクタM12は、レジスタa2に接続された第1の入力と、レジスタb1に入力された第2の入力と、Σ0回路C11の入力に接続された出力とを有する。このような構成をとることで、第1のインターフェース部S11は、処理の1サイクル目及び2サイクル目ともに、{上位ビット‖下位ビット}という結合順序で32*YビットデータをΣ0回路C11へ入力する。第3のインターフェース部S13もこれと同様の構成及び動作を有する。ここで、1サイクルは、16*Yビットデータの1回の加算演算によって、すなわち、シフトレジスタにおいて16*Yビットデータが現在のレジスタから隣のレジスタへ移動する周期によって定義される。
Σ0回路C11は、第1のインターフェース部S11から入力されたデータに対して巡回シフト演算を行った後、XOR演算を行う。これにより、Σ0回路C11は、処理の1サイクル目及び2サイクル目ともに、{上位ビット‖下位ビット}の結合順序で32*Yビットデータを出力する。やはり、Σ1回路C13もこれと同様の構成及び動作を有する。
第2のインターフェース部S12は1個のセレクタM21を有する。セレクタM21は2入力1出力マルチプレクサであって、Σ0回路C11の出力に接続された2つの入力と、第1の加算器A11に接続された出力とを有する。Σ0回路C11が上記のような結合順序で32*Yビットデータを出力する場合に、セレクタM21は、1サイクル目では下位16*Yビットデータを選択し、2サイクル目では上位16*Yビットデータを選択するよう構成される。やはり、第4のインターフェース部S14もこれと同様の構成及び動作を有する。
このように、図5に図示される本発明の一実施例に従うSHA−2のDPの回路構成は、加算器A11〜A18周辺のセレクタ増加を伴わずに回路全体の演算ビットを従来の半分とすることができる。一方、演算ビットが半分となったことで演算時間も従来の半分に短縮されるので、回路の動作周波数を2倍にすることが可能であり、よって、演算ビットが従来の半分にされたとしても、スループットは従来と同等である。
ここで、図5のインターフェース部S11〜S14は、図7に図示されるような構成をとることも可能である。図7には、Σ0回路C11の周辺回路しか示されていないが、Σ1回路C13の周辺回路も同様の構成を有する。
図7において、第1のインターフェース部S21は1個のセレクタM11しか有さない。セレクタM11は2入力1出力マルチプレクサであって、レジスタa1に接続された第1の入力と、レジスタb1に接続された第2の入力と、Σ0回路C11の入力に接続された出力とを有する。セレクタM11は、1サイクル目では、レジスタa1に格納されている16*Yビットデータを選択し、2サイクル目では、レジスタb1に格納されている16*Yビットデータを選択する。第1のインターフェース部S21は、セレクタM11によって選択された16*Yビットデータを、レジスタa2に格納されている16*Yビットデータと結合する。そして、第1のインターフェース部S21は、1サイクル目では{上位ビット‖下位ビット}の結合順序で、2サイクル目では{下位ビット‖上位ビット}の結合順序で、32*YビットデータをΣ0回路C1へ入力する。
Σ0回路C11は、第1のインターフェース部S21から入力された32*Yビットデータに対して巡回シフト演算を行った後、XOR演算を行う。これにより、Σ0回路C11は、1サイクル目では{上位ビット‖下位ビット}の結合順序で、2サイクル目では{下位ビット‖上位ビット}の結合順序で32*Yビットデータを出力する。
Σ0回路C11からこのような結合順序で32*Yビットデータが出力されることにより、第2のインターフェース部S22はセレクタを有する必要がない。第2のインターフェース部S22は、Σ0回路C11から出力される32*Yビットデータの下側16*Yビットを無条件に出力することで、1サイクル目では下位16*Yビットデータを、2サイクル目では上位16*Yビットデータを取り出すことができる。具体的には、例えば、Σ0回路C11から延びる32本のデータ線のうち、下側16*Yビットに相当するデータを伝送するデータ線を取り出して後段の加算器に接続する構成が考えられる。よって、セレクタは不要となる。
代替的に、第1のインターフェース部S21は、1サイクル目では{下位ビット‖上位ビット}の結合順序で、2サイクル目では{上位ビット‖下位ビット}の結合順序で、32*YビットデータをΣ0回路C11へ入力することも可能である。この場合には、Σ0回路C11からは、1サイクル目では{下位ビット‖上位ビット}の結合順序で、2サイクル目では{上位ビット‖下位ビット}の結合順序で、データが出力される。そして、第2のインターフェース部S22は、Σ0回路C11から出力される32*Yビットデータの上側16*Yビットを無条件に出力すれば良い。
各インターフェース部が図7に図示されるように構成されることで、図5に図示される回路構成に比べ、使用するセレクタの個数が減り、結果としてDPの回路規模はより小さくなる。
また、図7に図示されるΣ0回路C11の周辺回路は、図8に図示されるように変形され得る。図8のΣ0回路C21は、巡回シフト演算をされた32*Yビットデータの下側(又は上側)16*YビットのみについてXOR演算を行うよう構成される。具体的には、例えば、各巡回シフト演算器から延びる32本のデータ線のうち、下側(又は上側)16*Yビットに相当するデータを伝送するデータ線を取り出してXOR演算器に接続する構成が考えられる。これにより、第1のインターフェース部S21が図7に図示されるような構成をとる場合に、第2のインターフェース部は不要となる。よって、図7に図示される構成をとる場合よりも、DPの回路規模はより一層小さくなる。
以上、SHA−2アルゴリズム仕様において1サイクルで実行していた演算処理を2サイクルにわたって行うことで加算器のデータ幅を半分(1/2)にすること可能な本発明の一実施例に従う構成を記載してきた。次に、SHA−2アルゴリズム仕様において1サイクルで実行する処理をX(=2k(Y=1の場合、2≦k≦4。Y=2の場合、2≦k≦5。kは整数。))サイクルにわたって行うことで加算器のデータ幅を1/Xにする構成について記載する。
図9は、Xサイクル処理時のシフトレジスタの構成を示す。図9のシフトレジスタ40は、MPから出力されるデータWiによって更新される第1のレジスタの組であって、8*X個の(32*Y)/Xビットレジスタa1,a2,・・・,aX,b1,・・・hXを有する。すなわち、シフトレジスタ40はa1〜aX,b1〜bX,・・・,h1〜hXの8つのレジスタの組を有し、各組はX個の(32*Y)/Xビットレジスタを有して、組ごとに32*Yビットデータを扱う。
このような構成によって、図6を参照して説明したように、ダイジェスト部に含まれる所定個(通常は8個)の加算器の夫々は(32*Y)/Xビットのデータ幅を有することができる。すなわち、加算器は、シフトレジスタに格納されるデータが(32*Y)/Xビットのデータ幅でレジスタ間をシフトする1サイクルごとに、入力される(32*Y)/Xビットデータについて加算演算を行うことができる。
図10は、Xサイクル処理時のΣ0回路の周辺回路の構成を示す。図10において、(a)は、2サイクル処理に関して図5を参照して記載された構成をXサイクル処理に対応するよう拡張した構成を示し、(b)は、同様に2サイクル処理に関して図8を参照して記載された構成をXサイクル処理に対応するよう拡張した構成を示す。(a)の構成では、Σ0回路の入力段にX個のX入力1出力マルチプレクサ(MUX)が設けられ、Σ0回路の出力段に1個のX入力1出力MUXが設けられている。一方、(b)の構成では、Σ0回路の入力段にのみ(X−1)個の2入力1出力MUXが設けられている。
なお、Σ1回路の周辺回路は、Σ1回路の入力段に設けられたマルチプレクサへ、レジスタ"a"及び"b"の値ではなく、レジスタ"e"及び"f"の値が入力される点を除いて、図10に図示されるΣ0回路の周辺回路と同じ構成を有する。
図11は、図10に図示されるΣ0回路の周辺回路のデータ入出力に関する説明図である。説明を簡単にするため、図11では、X=4サイクル処理時を例とする。図11において、(a)は、図10(a)に図示されるような構成を有するΣ0回路の周辺回路のデータ入出力を表し、(b)は、図10(b)に図示されるような構成を有するΣ0回路の周辺回路のデータ入出力を表す。ここで、1サイクル目に入力される32*Yビットデータを8*Yビットずつ4つに分割したとき、上位から8*Yビットずつを夫々I4、I3、I2及びI1とする。また、それらのデータが実際に格納されているレジスタをa1、a2、a3、a4、b1、b2、b3及びb4で表すこととする。また、Σ0回路から出力されるデータのうち下位からi(i=1,2,3,4)番目の8*YビットデータをΣ0(I)iで表すこととする。
図11(a)に表されるデータ入出力では、Σ0回路へ入力されるデータIは、全てのサイクルを通して{I4‖I3‖I2‖I1}の固定された結合順序を有する。この回路構成では、データIを格納する4つのレジスタは、1サイクル目のa1〜a4を基準として、その後1サイクル毎に右へシフトする。Σ0回路は、入力データI={I4‖I3‖I2‖I1}に対して巡回シフト演算を行った後、XOR演算を行う。その結果、図示されるように、Σ0回路から出力される32*Yビットデータの中から選択されるべき8*Yビットデータは、出力データにおいてサイクル毎に異なるビット範囲に存在することとなる。よって、所望の8*Yビットデータを選択するために、Σ0回路の出力段にセレクタ(すなわち、1個のX入力1出力MUX)を設ける必要がある。
このときのサイクル毎の巡回シフトの様子を数式で表すと、以下のようになる:
1サイクル:Σ0(I)4‖Σ0(I)3‖Σ0(I)2‖Σ0(I)1=Σ0(I)
2サイクル:Σ0(I)1‖Σ0(I)4‖Σ0(I)3‖Σ0(I)2=Σ0(I)>>>8*Y
3サイクル:Σ0(I)2‖Σ0(I)1‖Σ0(I)4‖Σ0(I)3=Σ0(I)>>>16*Y
4サイクル:Σ0(I)3‖Σ0(I)2‖Σ0(I)1‖Σ0(I)4=Σ0(I)>>>32*Y
上記の数式から、Σ0回路の出力データを右巡回シフトさせる必要があることが分かる。ここで、Σ0回路により実現されるΣ関数の性質として、ΣX(a)>>>b=ΣX(a>>>b)というものが知られている。この性質により、Σ0回路の出力データを右巡回シフトさせるためには、入力データを同じビット数だけ右巡回シフトすれば良い。よって、入力データIを1サイクル毎に8*Yビットだけ右巡回シフトさせながらΣ0回路へ入力すれば良い。ここで、入力データが格納されているレジスタa1、a2、a3、a4、b1、b2及びb3では、1サイクル毎に8*Yビットだけデータが右へシフトする。このシフトレジスタ構造を利用することで、入力データIの1サイクル毎の8*Yビット右巡回シフトが可能となる。
1サイクル:Σ0(I)4‖Σ0(I)3‖Σ0(I)2‖Σ0(I)1=Σ0(I)
2サイクル:Σ0(I)1‖Σ0(I)4‖Σ0(I)3‖Σ0(I)2=Σ0(I)>>>8*Y
3サイクル:Σ0(I)2‖Σ0(I)1‖Σ0(I)4‖Σ0(I)3=Σ0(I)>>>16*Y
4サイクル:Σ0(I)3‖Σ0(I)2‖Σ0(I)1‖Σ0(I)4=Σ0(I)>>>32*Y
上記の数式から、Σ0回路の出力データを右巡回シフトさせる必要があることが分かる。ここで、Σ0回路により実現されるΣ関数の性質として、ΣX(a)>>>b=ΣX(a>>>b)というものが知られている。この性質により、Σ0回路の出力データを右巡回シフトさせるためには、入力データを同じビット数だけ右巡回シフトすれば良い。よって、入力データIを1サイクル毎に8*Yビットだけ右巡回シフトさせながらΣ0回路へ入力すれば良い。ここで、入力データが格納されているレジスタa1、a2、a3、a4、b1、b2及びb3では、1サイクル毎に8*Yビットだけデータが右へシフトする。このシフトレジスタ構造を利用することで、入力データIの1サイクル毎の8*Yビット右巡回シフトが可能となる。
シフトレジスタ構造を利用して、全てのサイクルを通して、そのサイクルに関して所望の8*YビットデータがΣ0回路から出力されるよう、入力データIを1サイクルごとに8*Yビット右巡回シフトを行う様子が、図11(b)に表される。図11(b)に表されるデータ入出力では、入力データIは、所望の8*Yビットデータが、全てのサイクルを通して常に、Σ0回路での巡回シフト演算により得られる32*Yビットデータの下側8*Yビットに存在するように制御される。このようなデータ入出力の方法により、Σ0回路の入力段に設けられるセレクタも、図10(b)に図示されるように、削減することが可能となる。また、Σ0回路の出力側での8*Yビットデータの選択は、図10(b)に図示されるように、巡回シフト演算をされた32*Yビットデータの下側8*YビットのみについてXOR演算を行うようΣ0回路を構成することで実現される。あるいは、それは、2サイクル処理時に関して図7に図示されたように、Σ0回路の後段に、Σ0回路から出力される32*Yビットデータの下側8*Yビットを(セレクタを用いずに)無条件に出力する構成を設けることでも実現され得る。
このように、図10(b)に図示される回路構成は、図11(b)に表されるように出力データの最下位データが所望のデータとなるようにするためのものであった。なお、下位からi番目のビット範囲又は上側8*Yビットに所望のデータが存在するように、図10(b)と同等の回路を構成することも可能である。
図10及び図11を参照して明らかであるように、図10(b)に図示される回路構成の方が、図10(a)に図示される回路構成に比べて、使用するセレクタの個数が少ない分、回路規模が小さい。よって、処理サイクル数(X)が大きくなるほど、効果的に回路規模の削減を図るために、シフトレジスタ構造を利用した図10(b)のような回路構成を用いることが望ましい。
図12は、Xサイクル処理時のMaj回路の構成を示す。図12のMaj回路C22は、3つのAND演算器L21、L22、L23及び1つのXOR演算器L24を有する。第1のAND演算器L21は、先頭から第1及び第2のレジスタの組の最後尾のレジスタaX及びbXの夫々に接続された2つの入力と、XOR演算器L24の入力の1つに接続された1つの出力とを有する。第2のAND演算器L22は、先頭から第2及び第3のレジスタの組の最後尾のレジスタbX及びcXの夫々に接続された2つの入力と、XOR演算器L24の入力の1つに接続された1つの出力とを有する。第3のAND演算器L23は、先頭から第1及び第3のレジスタの組の最後尾のレジスタaX及びcXの夫々に接続された2つの入力と、XOR演算器L24の入力の1つに接続された1つの出力とを有する。XOR演算器L24の出力は加算器の1つ(図示せず。)に接続される。このようにMaj回路C22は原則的には従来と同じ構成を有するが、DPが図9に図示されるようなシフトレジスタを用いることで、扱うビット幅が(32*Y)/Xとなり、結果的に回路規模が従来よりも削減され得る。
図13は、Xサイクル処理時のCh回路の構成を示す。図13のCh回路C24は、2つのAND演算器L41、L42及び1つのXOR演算器L43を有する。第1のAND演算器L41は、先頭から第5及び第6のレジスタの組の最後尾のレジスタeX及びfXの夫々に接続された2つの入力と、XOR演算器L43の入力の1つに接続された1つの出力とを有する。第2のAND演算器L42は、第5のレジスタの組の最後尾のレジスタeXに格納されているデータが反転されて入力される第1の入力と、第7のレジスタの組の最後尾のレジスタgXに接続された第2の入力とを有する。また、第2のAND演算器L42は、XOR演算器L43の入力の1つに接続された1つの出力を有する。XOR演算器L43の出力は加算器の1つ(図示せず。)に接続される。このようにCh回路C24は原則的には従来と同じ構成を有するが、DPが図9に図示されるようなシフトレジスタを用いることで、扱うビット幅が(32*Y)/Xとなり、結果的に回路規模が従来よりも削減され得る。
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨を損なわない範囲で変更することが可能である。
Claims (5)
- 32*Y(Y=1又は2)ビットを基本演算単位とするSHA−2アルゴリズムを用いた、複数のレジスタが直列に配置されるシフトレジスタと、該シフトレジスタに格納されるデータに基づき加算演算を行う所定個の加算器とを有するダイジェスト部を有する暗号化装置であって、
前記シフトレジスタは、(32*Y)/X(X=2k。Y=1のとき1≦k≦4、Y=2のとき1≦k≦5。kは整数。)ビットのレジスタを有し、
前記所定個の加算器は、夫々、(32*Y)/Xビットのデータ幅を有し、前記シフトレジスタに格納されるデータが(32*Y)/Xビットのデータ幅で前記レジスタ間をシフトする1サイクルごとに、前記加算演算を行う、暗号化装置。 - 32*Yビットのデータ幅で入力されたデータに対しΣ関数演算を行う論理演算回路を更に有し、
前記論理演算回路の入力側に、(32*Y)/Xビットのデータ幅を32*Yビットと整合させる第1のインターフェース部を設ける、請求項1記載の暗号化装置。 - 前記第1のインターフェース部は、所定の連続するX個のレジスタ及び該X個のレジスタに続く(X−1)個のレジスタの間を1サイクルごとに(32*Y)/Xビットのデータ幅でシフトする32*Yビットデータを前記シフトレジスタから取り出して出力する、請求項2記載の暗号化装置。
- 前記論理演算回路の出力側に、前記論理演算回路から出力される32*Yビットデータのビット幅を(32*Y)/Xビットと整合させる第2のインターフェース部を設け、
前記第2のインターフェース部は、前記論理演算回路から出力される32*Yビットデータから1サイクルごとに該サイクルに応じた所定の(32*Y)/Xビットデータを取り出し、前記加算器の1つへ出力する、請求項3記載の暗号化装置。 - 前記第1のインターフェース部は、所定の連続するX個のレジスタ及び該X個のレジスタに続く(X−1)個のレジスタの間を1サイクルごとに(32*Y)/Xビットのデータ幅でシフトする32*Yビットデータを前記シフトレジスタから取り出し、1サイクルごとに(32*Y)/Xビットのデータ幅で巡回シフトさせながら前記加算器の1つへ出力する、請求項2記載の暗号化装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/068217 WO2010041307A1 (ja) | 2008-10-07 | 2008-10-07 | 暗号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010041307A1 JPWO2010041307A1 (ja) | 2012-03-01 |
JP5198572B2 true JP5198572B2 (ja) | 2013-05-15 |
Family
ID=42100272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010532726A Expired - Fee Related JP5198572B2 (ja) | 2008-10-07 | 2008-10-07 | 暗号化装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110176673A1 (ja) |
EP (1) | EP2348499A4 (ja) |
JP (1) | JP5198572B2 (ja) |
WO (1) | WO2010041307A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164725B2 (en) * | 2010-11-19 | 2015-10-20 | International Business Machines Corporation | Apparatus and method for calculating an SHA-2 hash function in a general purpose processor |
US9251377B2 (en) * | 2012-12-28 | 2016-02-02 | Intel Corporation | Instructions processors, methods, and systems to process secure hash algorithms |
US20160112200A1 (en) * | 2014-10-17 | 2016-04-21 | 21, Inc. | Cryptographic hashing circuitry having improved scheduling efficiency |
CN109104274A (zh) * | 2018-07-06 | 2018-12-28 | 四川斐讯信息技术有限公司 | 一种基于人脸识别的人脸特征加密系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004004784A (ja) * | 2002-04-22 | 2004-01-08 | Internatl Business Mach Corp <Ibm> | ハッシュ・アルゴリズムを実装するためのシステム及び方法 |
JP2008116856A (ja) * | 2006-11-08 | 2008-05-22 | Oki Electric Ind Co Ltd | Sha演算方法およびsha演算装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4447672A (en) * | 1980-10-06 | 1984-05-08 | Nippon Electric Co., Ltd. | Device for encrypting each input data bit by at least one keying bit decided by a code pattern and a bit pattern of a predetermined number of preceding encrypted bits |
US4771458A (en) * | 1987-03-12 | 1988-09-13 | Zenith Electronics Corporation | Secure data packet transmission system and method |
US4944006A (en) * | 1987-03-12 | 1990-07-24 | Zenith Electronics Corporation | Secure data packet transmission system and method |
US4876718A (en) * | 1987-03-12 | 1989-10-24 | Zenith Electronics Corporation | Secure data packet transmission system and method |
US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
US5455860A (en) * | 1992-04-17 | 1995-10-03 | Matsushita Electric Industrial Co., Ltd. | Scramble codec |
GB9419246D0 (en) * | 1994-09-23 | 1994-11-09 | Cambridge Consultants | Data processing circuits and interfaces |
US5717760A (en) * | 1994-11-09 | 1998-02-10 | Channel One Communications, Inc. | Message protection system and method |
US5745522A (en) * | 1995-11-09 | 1998-04-28 | General Instrument Corporation Of Delaware | Randomizer for byte-wise scrambling of data |
WO2001029775A1 (en) * | 1999-10-18 | 2001-04-26 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
US6560528B1 (en) * | 2000-03-24 | 2003-05-06 | Internal Combustion Technologies, Inc. | Programmable internal combustion engine controller |
JP3709760B2 (ja) | 2000-03-28 | 2005-10-26 | 松下電工株式会社 | ハッシュ装置 |
JP2004054128A (ja) * | 2002-07-23 | 2004-02-19 | Sony Corp | 暗号化装置 |
JP2004078053A (ja) * | 2002-08-22 | 2004-03-11 | Sony Corp | 暗号化装置 |
US20070113083A1 (en) * | 2005-07-14 | 2007-05-17 | Volkovs Nikolajs | System and method of message authentication |
US20090103726A1 (en) * | 2007-10-18 | 2009-04-23 | Nabeel Ahmed | Dual-mode variable key length cryptography system |
US8368517B2 (en) * | 2008-08-22 | 2013-02-05 | Hong Kong R&D Centre for Logistics and Supply Chain Management Enabling Technologies Limited | RFID privacy-preserving authentication system and method |
-
2008
- 2008-10-07 EP EP08877255.3A patent/EP2348499A4/en not_active Withdrawn
- 2008-10-07 WO PCT/JP2008/068217 patent/WO2010041307A1/ja active Application Filing
- 2008-10-07 JP JP2010532726A patent/JP5198572B2/ja not_active Expired - Fee Related
-
2011
- 2011-03-25 US US13/064,460 patent/US20110176673A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004004784A (ja) * | 2002-04-22 | 2004-01-08 | Internatl Business Mach Corp <Ibm> | ハッシュ・アルゴリズムを実装するためのシステム及び方法 |
JP2008116856A (ja) * | 2006-11-08 | 2008-05-22 | Oki Electric Ind Co Ltd | Sha演算方法およびsha演算装置 |
Non-Patent Citations (3)
Title |
---|
CSNG200501093028; 佐藤証,井上忠宣: '"ハッシュ関数のハードウェア性能比較"' コンピュータセキュリティシンポジウム2004 Volume II of II 第2004巻, 第II号, 20041020, p.613-618, 社団法人情報処理学会 * |
JPN6012068712; 佐藤証,井上忠宣: '"ハッシュ関数のハードウェア性能比較"' コンピュータセキュリティシンポジウム2004 Volume II of II 第2004巻, 第II号, 20041020, p.613-618, 社団法人情報処理学会 * |
JPN6012068713; 佐藤証: '""ハッシュ関数SHA-256/384/512のASIC回路実装' マルチメディア,分散,協調とモバイル(DICOMO 2003)シンポジウム論文集 Vol.2003,No.9, 20030604, p.65-68, 社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
WO2010041307A1 (ja) | 2010-04-15 |
JPWO2010041307A1 (ja) | 2012-03-01 |
EP2348499A1 (en) | 2011-07-27 |
EP2348499A4 (en) | 2015-01-21 |
US20110176673A1 (en) | 2011-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7299355B2 (en) | Fast SHA1 implementation | |
Tillich et al. | High-speed hardware implementations of blake, blue midnight wish, cubehash, echo, fugue, grøstl, hamsi, jh, keccak, luffa, shabal, shavite-3, simd, and skein | |
US8411853B2 (en) | Alternate galois field advanced encryption standard round | |
JP2003015522A (ja) | 暗号回路 | |
US7623660B1 (en) | Method and system for pipelined decryption | |
JP5198572B2 (ja) | 暗号化装置 | |
Rachh et al. | Efficient implementations for AES encryption and decryption | |
Abdellatif et al. | AES-GCM and AEGIS: efficient and high speed hardware implementations | |
Elkhatib et al. | Accelerated RISC-V for post-quantum SIKE | |
Chaves et al. | Secure hashing: Sha-1, sha-2, and sha-3 | |
Wang et al. | Using a pipelined S-box in compact AES hardware implementations | |
Li | Efficient and flexible architecture for AES | |
Guilley et al. | A fast pipelined multi-mode DES architecture operating in IP representation | |
CN114553424B (zh) | Zuc-256流密码轻量级硬件系统 | |
Standaert et al. | Efficient FPGA implementations of block ciphers KHAZAD and MISTY1 | |
Jahanbani et al. | Lightweight implementation of SILC, CLOC, AES-JAMBU and COLM authenticated ciphers | |
Satoh | ASIC hardware implementations for 512-bit hash function whirlpool | |
Canright et al. | A more compact AES | |
Li et al. | A new compact dual-core architecture for AES encryption and decryption | |
Mohanraj et al. | High performance GCM architecture for the security of high speed network | |
Ueno et al. | High throughput/gate FN-based hardware architectures for AES-OTR | |
El-Hadedy et al. | Reco-Pi: a reconfigurable cryptoprocessor for π-cipher | |
Li et al. | A new compact architecture for AES with optimized ShiftRows operation | |
Bittencourt et al. | CLEFIA implementation with full key expansion | |
Tillich et al. | VLSI Implementation of a Functional Unit to Accelerate ECC and AES on 32-bit Processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20130115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160215 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
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 |
|
LAPS | Cancellation because of no payment of annual fees |