[go: up one dir, main page]

JP4328487B2 - 組合せ回路、暗号回路、その生成方法及びプログラム - Google Patents

組合せ回路、暗号回路、その生成方法及びプログラム Download PDF

Info

Publication number
JP4328487B2
JP4328487B2 JP2002017959A JP2002017959A JP4328487B2 JP 4328487 B2 JP4328487 B2 JP 4328487B2 JP 2002017959 A JP2002017959 A JP 2002017959A JP 2002017959 A JP2002017959 A JP 2002017959A JP 4328487 B2 JP4328487 B2 JP 4328487B2
Authority
JP
Japan
Prior art keywords
selector
bdd
circuit
input
output
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
Application number
JP2002017959A
Other languages
English (en)
Other versions
JP2003223100A (ja
Inventor
澄夫 森岡
証 佐藤
綱 張
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002017959A priority Critical patent/JP4328487B2/ja
Priority to US10/349,519 priority patent/US7460666B2/en
Publication of JP2003223100A publication Critical patent/JP2003223100A/ja
Application granted granted Critical
Publication of JP4328487B2 publication Critical patent/JP4328487B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Logic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、組合せ回路の構成及びその論理合成方法に関し、とくに暗号回路に用いられるS−Boxなどの組合せ回路の構成及びその論理合成方法に関する。
【0002】
【従来の技術】
コンピュータネットワークによる情報通信、特に公衆ネットワークを専用線のように利用するVPN(Virtual Private Network)通信においては、暗号技術が必要不可欠である。そして、情報通信の高速化に伴って、より高速な暗号技術が要求される。
【0003】
今日、コンピュータネットワークで用られている主要な暗号技術である共通鍵暗号として、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)、Camelliaなどが存在するが、この暗号技術を実現する論理回路(暗号回路)には、いずれもS−Boxと呼ばれる非線形変換部が存在している。そして、このS−Boxの処理速度は、論理回路自体の処理速度に大きく影響する。
【0004】
ここで、共通鍵暗号におけるS−Box演算とその回路構成法について説明する。なお、ここではAESのS−Boxを例に説明する。
AESにおけるS−Boxは、8ビット入力に対し、まず(i)既約多項式x8+x4+x3+x+1により構成されたGF(28)上での乗法逆元演算を適用し、続いて(ii)下記数1式のAffine変換を適用して8ビット値を出力する。
【数1】
Figure 0004328487
S−Box-1はこの逆演算である。
【0005】
このS−Boxの回路実装の手法には、(1)上記の定義に従ってGF逆元演算回路とAffine変換回路とを別々に作ってから直列につなぐ方法と、(2)入出力関係(真理値表)から直接回路を導出する方法とがある。
(1)の場合、フェルマーの小定理P-1=P254(GF(28)の場合)を用いて計算する方法、拡張ユークリッド法を用いて計算する方法、及び合成体(composite field)上の逆元演算に帰着する方法がある。しかし、これらのいずれも高速実装には向いておらず、(2)の方法の数倍程度の回路遅延が生ずる。なお、これらの手法については、例えば下記文献1、2に詳細に記載されている。
文献1:S.Morioka and Y.Katayama, "O(log2m) Iterative Algorithm for Multiplicative Inverse in GF(2m)," IEEE Intl. Symp. On Info. Theory (ISIT2000), pp.449, 2000.
文献2:A.Satoh, S.Morioka, K.Takano and S.Munetoh, "Compact Rijndael Hardware Architecture with S-Box Optimization," ASIACRYPT2001, 2001.
一方、(2)の場合、積和形、和積形、各種リード・マラー形式の論理式を構成する方法や、各種関数展開を行う方法が知られている。
【0006】
次に、組合せ回路の汎用論理合成アルゴリズムについて説明する。
関数展開を用いた論理構成法の1つとして、RO−BDD(Reduced Ordered Binary Decision Diagrams)を用いる方法が知られている。RO−BDDは、論理関数の表現形式の1つであり、一定の変数順で論理関数をShannon展開していく過程を、閉路なしの二分決定グラフとして表現したうえで冗長ノードを除去したものである。このRO−BDDの各ノードを2:1セレクタ(MUX:マルチプレクサ)に置き換えることにより、RO−BDDの回路化を行うことができる。かかるRO−BDDを用いた論理構成法については、例えば下記文献3に詳細に記載されている。
文献3:R.E.Bryant;Graph-Based Algorithms for Boolean Function Manipulation, IEEE transactions on computers, Vol.C-25, No.8, 1986.
RO−BDDのグラフ構造と得られる回路構造(=セレクタの接続関係)とはほぼ1対1に対応するので、どのような形のRO−BDDを構成するかを決めることが回路構造を規定する。与えられた論理関数に対するRO−BDDは1通りではなく、ノード共有をどのように行うか、あるいは変数順をどうするかに設計自由度がある。
【0007】
図5は、従来の論理合成アルゴリズムにて作成されたRO−BDDに基づく、AESのS−Boxの構成例を示す図である。なお、図5において、組合せ回路を構成するセレクタ及び各段のセレクタどうしの接続は、適宜省略されて記載されている。
図5に示すように、従来の論理合成アルゴリズムにより作成されたRO−BDDに基づくS−Boxの組合せ回路は、一般の論理関数にはない、次のような大きな特徴がある。
特徴1:回路の出力側では、出力間ないし同一出力のセレクタ群においてセレクタがほとんど共有されていない。共有がなされているのは回路入力側の1、2段のみである。すなわち、出力側から入力側に行くにつれセレクタ数が1*8、2*8、4*8、8*8、・・・と指数的に増えていき(そのとき、ほぼ全てのセレクタで、その出力のファンアウトは1)、入力側の最後の1、2段では各セレクタ出力のファンアウトが急に大きくなる(30前後)。これに対し、一般の多くの論理関数では、より出力に近い段まで多くのセレクタが共有されるため、図5のような木構造にはならない。また、出力間で多くのノードを共有できるのが普通である。
特徴2:全体的なセレクタ結合の形が、入力のビット順(入力の何ビット目が、何段目のセレクタをドライブするか)にほとんど依存せず、どのようなビット順でも上記特徴1を有する形になる。これに対し、一般の多くの論理関数では、入力ビット順を変えると回路の全体的な形は非常に大きく変化する。
【0008】
【発明が解決しようとする課題】
上述したように、従来、RO−BDDを用いて回路構造を規定し、組合せ回路をデザインすることが行われていた。一方、S−Boxとして最も高速なものは、S−Boxの真理値表から自動論理合成で得られる回路であったが、S−Boxは乱数テーブルに近い入出力定義を有するため、汎用の論理合成手法との相性は良くない。そのため、上記の暗号技術の用途などにおいて十分な速度を得ることができなかった。
【0009】
すなわち、RO−BDDを用いて回路構造を規定する手法でS−Boxのような組合せ回路をデザインすると、従来の論理合成アルゴリズムにより作成されたRO−BDDは、上述した特徴1、2を有するため、高速回路を設計する上で、次の2点が問題となっていた。
(1)回路の入力側セレクタのセレクト信号・出力データ信号のファンアウトが大きくなること(たとえば図5では、入力から2段目のセレクタは149個あるので、そのセレクト信号のドライブは非常に重い。また、入力から1段目の各セレクタ出力は、2段目セレクタの入力信号を30本近くドライブしなければならず、これも非常に重い)。
(2)セレクタを直列に多段つないだ回路となるため、信号通過時間が長くなること。
【0010】
そこで本発明は、上記の課題を解決し、高速なS−Boxなどの組合せ回路を実現すると共に、かかる組合せ回路の回路構造を規定するRO−BDDを作成する手法を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、複数個のセレクタにて構成される次のような組合せ回路として実現される。すなわち、この組合せ回路は、出力ビットを個別に生成する、出力ビット数に対応する数の独立したセレクタ群と、各セレクタ群にプライマリ入力を供給するドライバとを備え、各セレクタ群は、プライマリ入力のビット数以下の数の段を形成して接続された複数個のセレクタを備え、各段のセレクタのセレクト信号が1つのプライマリ入力でドライブされることを特徴とする。
【0012】
ここで詳細には、このドライバは、入力ビットごとに、バッファまたはインバータを連鎖的につなげて設けられたドライバチェインにて構成される。そして、各ドライバチェインは、入力側からバッファまたはインバータを経て出力側へ進むと共に相異なる順番でセレクタ群に接続され、このセレクタ群を構成するセレクタの各段にセレクト信号を供給する。これにより、各セレクタ群におけるi段目セレクタ(全段数≧i≧1)のセレクト信号を制御するプライマリ入力が各セレクタ群で異なり、さらに各段に入力されるセレクト信号の順番がセレクタ群ごとに異なることとなる。
【0013】
また、本発明による他の組合せ回路は、プライマリ入力のビット数以下の段数分の2:1セレクタが相互に接続され、かつ少なくとも出力側の所定数n段分の2:1セレクタにおいて、複数の出力ビットを生成する2:1セレクタの一群どうしの間でこの2:1セレクタが共有されていないことを条件に、このn段分の2:1セレクタを置き換えて設けられた2n:1セレクタと、この2n:1セレクタに置き換えられた残りの2:1セレクタとを備える。そして、この2n:1セレクタは、2n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と、この生成回路にて生成されたセレクト信号を用いて2n本の入力のうち一本を選び出すための選択回路とを備えることを特徴とする。
さらに、上述した出力ビット数に対応する数の独立したセレクタ群を有する組合せ回路において、このセレクタ群を構成する2:1セレクタに対して、このような2n:1セレクタへの置き換えを行うことができる。
【0014】
また、上記の目的を達成する他の本発明は、RO−BDDを用いた組合せ回路の生成方法として、次のように実現される。すなわち、この組合せ回路の生成方法は、まず、出力ビット数に対応する数のRO−BDDであって、このRO−BDD間でノードを共有せず、かつ各RO−BDDにおける変数順が相互に異なるRO−BDDの一群を生成する。そして、各RO−BDDの各ノードをセレクタに置き換える。さらに、各セレクタの制御信号を生成するためのドライバチェインを作り、このRO−BDDに基づくセレクタの段と、このドライバチェインとを対応させて、セレクタとドライバチェインとを接続することを特徴とする。
【0015】
さらに本発明による組合せ回路の他の生成方法は、まず、出力側の所定数n段分のノードが出力ビット数に対応する数の完全木の構造を有するRO−BDDを生成する。次に、このRO−BDDにおけるn段分のノードを、2n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と当該セレクト信号を用いて2n本の入力のうち一本を選び出すための選択回路とを備えた2n:1セレクタに置き換え、他のノードを2:1セレクタに置き換えることを特徴とする。
【0016】
さらにまた、本発明は、コンピュータを制御して、組合せ回路の回路構造を論理合成する次のようなプログラムとしても実現される。このプログラムは、処理対象である組合せ回路の論理式または真理値表を出力ビットごとに分割し、出力1ビット分の論理式または真理値表を生成する処理と、この出力1ビット分の論理式または真理値表ごとに、他の論理式または真理値表と重複しないようにRO−BDDの変数順を決定し、決定された変数順で論理式または真理値表のShared-RO-BDDを構築し、その各ノードを2:1セレクタにマップする処理と、この各2:1セレクタの制御信号を生成するためのドライバチェインを作り、RO−BDDの制御信号とつなぐ処理とをコンピュータに実行させることを特徴とする。そして、さらに詳細には、RO−BDDに対してセレクタをマッピングする際に、Shared-RO-BDDのルート側の所定数n段をUnshared-RO-BDDに変換する処理と、このUnshared-RO-BDDに変換されたn段分のノードを2n:1セレクタにマップする処理と、他のノードを2:1セレクタにマップする処理とをコンピュータに実行させる。
【0017】
上述したプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
また、本発明は、S−Boxとして上述した組合せ回路を含む暗号回路として実現することができる。
【0018】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
本実施の形態では、S−Boxなどの組合せ回路において、次の2つの課題を実現する。
1.回路のプライマリ入力側セレクタ群の制御信号乃至出力信号について、それらのファンアウトを減少させる。
2.回路のプライマリ出力側の部分における通過ディレイ(遅延)を、単純にセレクタを多段接続した回路よりも減少させる。
【0019】
図1は、上記の課題が解決された、本実施の形態によるS−Boxの組合せ回路の構成を示す図である。
図1を参照すると、この組合せ回路は、複数個のセレクタ101をm段以下(mはプライマリ入力のビット数)の段数分接続し、所定の1段を形成するセレクタのセレクト信号が1つのプライマリ入力でドライブされる構造を有する。すなわち、S−BoxのRO−BDDの各ノードを2:1セレクタで置換して得られる回路である。例えば、1段目のセレクタは全て入力ビット0でドライブされ、2段目は全て入力ビット1でドライブされるようにする(これ以降の段数においても同様)。言い換えれば、真理値表から得られるRO−BDDの各節点(ノード)をそのままセレクタに置換し、各セレクタをRO−BDDの枝の通りに接続した構造の回路である。
なお、図1において、各セレクタ群100を構成するセレクタ101及び各段のセレクタ101どうしの接続は、適宜省略されて記載されている。
【0020】
また、図1に示す組合せ回路は、各出力ビットが別々のセレクタ群100〜170で作られており、それらの間でセレクタを一切共有していない。すなわち、各セレクタ群100〜170は独立している。そして、i段目セレクタ(全段数≧i≧1)のセレクト信号を制御するプライマリ入力が各セレクタ群100〜170で異なっている。
例えば、図1の例では、出力ビット0を作る回路(セレクタ群100)では、1段目セレクタが入力ビット0(図1に示す信号00)、2段目セレクタが入力ビット1(信号01)で制御されている(以下同様に、順次、信号02、03・・・で制御される)。そして、出力ビット1を作る回路(セレクタ群110)では、1段目セレクタが入力ビット0ではなく入力ビット1(信号11)で制御されており、以下順次、2段目セレクタが入力ビット2(信号12)で制御されるというように、各段におけるセレクト信号の順番がローテートされている。
なお、ここでは、セレクト信号(入力ビット)の順番が各セレクタ群100〜170で異なることによって負荷分散されていれば良く、図1に示したローテートされた順番に限らないことは言うまでもない。
【0021】
また、本実施の形態の組合せ回路は、図1に示したセレクタ群100〜170にプライマリ入力を供給するドライバを備える。本実施の形態では、バッファまたはインバータを連鎖させたドライバチェインが用いられる。
図2は、ドライバチェインの構成及びドライバチェインによるセレクト信号の入力の分配を示す図である。
図2を参照すると、このドライバチェイン300〜370は、バッファまたはインバータを連鎖的につなげて構成されており、入力ビット(0〜7)ごとに用意されている。そして、ドライバチェイン300〜370の構成と上述したセレクタ群100〜170におけるセレクタの段とを対応させ、各段のセレクタをドライブする制御信号を供給する。ここで、ドライバチェイン300〜370とセレクタ群100〜170との接続関係は、セレクタ群100〜170における入力側セレクタの制御信号はチェインの入力側から取り、出力側セレクタの制御信号はチェインの出力側から取るようになっている。さらに上述したように、各セレクタ群100〜170においてセレクト信号(入力ビット)の順番が異なるように接続されている。
例えば、入力ビット0を供給するドライバチェイン300(図2参照)は、最も入力側において、図1に示したセレクタ群100に接続され、信号00を供給する。そして、バッファまたはインバータを経て出力側へ進むと共に順次セレクタ群170、160、・・・、110に接続され、信号70、60、・・・、10を供給する。同様にして、他のドライバチェイン310〜370も、異なる順番でセレクタ群100〜170に接続されることにより、各セレクタ群100〜170において、段ごとのセレクタに対するセレクト信号の順番が異なることとなり、セレクト信号を供給する上での負荷を分散することができる。
【0022】
かかる構造によって、セレクト信号のファンアウトや各セレクタの出力信号のファンアウトが減少する。例えば、図1に示した個々のセレクタ群100〜170では、2段目のセレクタは30個程度となり、図5に示した149個のセレクタがある場合と比べて、セレクト信号のドライブが大幅に軽くなる。また、前段セレクタのファンアウトも2〜5程度に減少する。さらに、ドライバチェインを通すことによって、各セレクト信号のファンアウトが減少する(2〜5程度)。これにより、高速な回路が実現される。
なお、図2に示したドライバチェイン300〜370の入力から出力に向かって正論理のセレクト信号と負論理の制御信号が交互に現れるようにし、負論理の信号で制御されるセレクタについては、その2つのデータ信号入力を入れ替えるように構成することができる。このような構成とすることにより、組合せ回路のさらなる高速化を図ることができる場合がある。CMOSではバッファを用いるよりもインバータを用いた方が通常は高速だからである。
【0023】
図3は、図1に示した各出力ビットに対応するセレクタ群の構成を示す図である。
図3を参照すると、本実施の形態による組合せ回路は、各セレクタ群において、さらに次のような構成を有する。なお、図3において、各セレクタ101及び各段のセレクタ101どうしの接続は、適宜省略されて記載されている。
すなわち、各セレクタ群は、出力側から数えてn段分のセレクタは、2:1セレクタをn段接続するのではなく、2n:1セレクタ210(2n個の2入力ANDと1個の入力ORで構成)を1個用いた回路である。
具体的には、出力側n段分について、共有しているセレクタがあれば、その共有をなくした上で、各セレクタをまとめて2n:1セレクタ210に置換する。ここで、2n:1セレクタ210は、2入力ANDと2n入力ORを結合した選択回路211と、当該n段分のプライマリ入力を選択回路211への入力に置換するためのnビットバイナリから2nビットワンホットへのデコーダ212とを備える(図3では単にデコーダと表記)。このデコーダ212は、2n本の入力のうちどれをセレクトするかを決定するセレクト信号の生成回路である。また、セレクタの共有をなくすには、当該共有しているセレクタを複製すればよい。
なお、nの具体的な値については任意に設定することができるが、高速化の効果を最大化するため、次のようにして決めることができる。すなわち、出力から数えてn段目のセレクタ数が2(n-1)個かそれに近い値であり、なおかつ、nビットバイナリから2nビットワンホットへのデコーダ212の遅延がプライマリ入力から出力側n+1段目セレクタまでの遅延以下であるようなnの場合、n段の2:1セレクタを2入力ANDと2n入力ORを結合した選択回路211に置換することによって、回路の高速化を図ることができる。これによれば、例えばAESでは、nの値は4または5となる。
【0024】
かかる構造によって、出力側のセレクタ部分を、単に2:1セレクタをn段つなぐよりも高速化する。残りのセレクタについては、通常通り2:1セレクタで構成しても良いし、可能ならば、上記のnと同様にして求められたk段分のセレクタを、さらに2k:1セレクタに置き換えて構成しても良い。
【0025】
また、各セレクタ群を、各セレクタを論理否定出力のセレクタに置換し、負論理出力のセレクタと正論理出力のセレクタを、入力から出力に向かって交互に配置した回路構造とすることにより、組合せ回路のさらなる高速化を図ることができる場合がある。CMOS等では正論理出力のセレクタよりも負論理出力のセレクタの方が高速な場合が多いからである。
【0026】
なお、上述した組合せ回路の構造において、図2に示したドライバチェイン300〜370によるセレクト信号の入力の分配と、図3に示したセレクタ群におけるn段分のセレクタの置換は、両方を採用しても良いし、いずれか一方のみを用いても良い。すなわち、図1に示したセレクタ群の内部構造を、従来の2:1セレクタのみからなる構成としても良い。また、出力ビットごとに独立したセレクタ群100〜170を有しない場合でも、少なくとも出力側のn段のセレクタが出力ビットに対応した一群ごとに独立し当該一群どうしの間でセレクタの共有がない場合に、このn段のセレクタを2n:1セレクタ210で置き換えた構成としても良い。いずれか一方の回路構造を用いた場合でも、従来の論理合成アルゴリズムにより作成されたRO−BDDに基づく組合せ回路よりも高速な回路が実現されるが、両方の回路構造を用いることによって、一層の高速化を図ることが可能となる。
【0027】
次に、S−Boxの組合せ回路を作成するために、上記の回路構造を規定するためのRO−BDDを作る論理合成アルゴリズムについて説明する。
ここで、RO−BDDを作成するためには、組合せ回路の真理値表または論理式からRO−BDDのグラフを構成するアルゴリズムが不可欠であるが、このアルゴリズム自体は公知なので、ここでは詳細は省略する。かかるグラフ構成アルゴリズムを利用して、上述したS−Boxの組合せ回路アーキテクチャを自動合成するアルゴリズムを、以下に説明する。
【0028】
図4は、本実施の形態によるRO−BDDを作成するための論理合成アルゴリズムを説明するフローチャートである。
なお、この論理合成アルゴリズムに基づくRO−BDDの作成は、パーソナルコンピュータやワークステーション、その他のコンピュータ装置にて実行される。コンピュータ装置は、各種のデータ処理を実行するCPU(Central Processing Unit)と、CPUを制御するプログラム及び各種のデータを格納したメモリとを備える。
この論理合成アルゴリズムにおいて、入力は、各種S−Boxの真理値表または論理式である。ここで、論理式の形式は任意である。また、出力は、上記の回路構造(セレクタの接続関係)に対応する論理式である。したがって、CPUは、処理対象としてメモリに格納されているS−Boxの真理値表または論理式を読み出し、上記の回路構造に対応する真理値表または論理式を生成し、メモリに格納する。なお、以下の説明では、真理値表及び論理式を総括して論理式と称する。
【0029】
図4を参照すると、CPUは、メモリから処理対象であるS−Boxの論理式を読み込んで、出力ビットごとに分割し、出力1ビット分の論理式(以下、単位論理式と称す)を生成する(ステップ401)。
次にCPUは、ステップ401で分割した各単位論理式に対して、順次、次の一連の処理を行う。
すなわち、まず、1つの単位論理式を処理対象とし、RO−BDDの変数順を決定する(ステップ402)。この変数順は、既に当該処理が行われた単位論理式に用いた変数順とは異なるもの(未使用の変数順)とする。次に、決定された変数順で、当該単位論理式について、共有可能なノードを共有させたRO−BDD(Shared-RO-BDD)を構築する(ステップ403)。次に、作成されたRO−BDD(Shared-RO-BDD)のルート側のn段分について、共有しているノードを個々のノードに分けたRO−BDD(Unshared-RO-BDD)に変換する(ステップ404)。この共有しているノードを分けたRO−BDDの部分(Unshared-RO-BDD)は、完全木(完全二分木)となる。次に、RO−BDDノードのルート側n段分をまとめて2n:1セレクタにマップし(ステップ405)、残りのRO−BDDノードを2:1セレクタにマップする(ステップ406)。
【0030】
上記ステップ402乃至ステップ406の処理を、全ビット分の単位論理式に対して行ったならば、次にCPUは、各プライマリ入力に対してドライバチェインを作り、RO−BDDの制御信号とつなぐ(ステップ407、408)。このとき、RO−BDDの入力側(リーフ側)のノード(セレクタ)をドライブする信号はチェインの入力側から取り、RO−BDDの出力側(ルート側)をドライブする信号はチェインの出力側から取る。
【0031】
以上のようにして、図1乃至図3に示した回路構造を有する組合せ回路が生成される。なお、ステップ404〜406の処理は、図3に示した各セレクタ群の構成を実現するための処理であり、個々のセレクタ群において図3に示した回路構造を採らない場合は、これらの処理は不要である。
【0032】
本実施の形態の回路構造が有効な組合せ回路は、セレクタ接続構造(RO−BDDの構造)が、
・回路の出力側では、出力間ないし同一出力のセレクタ群においてセレクタがほとんど共有されていない。
・全体的なセレクタ結合の形が、入力のビット順にほとんど依存せず、どのようなビット順でも上記特徴1を有する形になる。
といった特徴を持つ回路であり、その代表例が各種S−Boxや、その他の乱数テーブルを含む組合せ回路である。
【0033】
【発明の効果】
以上説明したように、本発明によれば、S−Boxなどを高速な組合せ回路として実現すると共に、かかる組合せ回路の回路構造を規定するRO−BDDを作成する好適な手法を提供することができる。
【図面の簡単な説明】
【図1】 本実施の形態によるS−Boxの組合せ回路の構成を示す図である。
【図2】 本実施の形態に用いられるドライバチェインの構成及びドライバチェインによるセレクト信号の入力の分配を示す図である。
【図3】 図1に示した各出力ビットに対応するセレクタ群の構成を示す図である。
【図4】 本実施の形態によるRO−BDDを作成するための論理合成アルゴリズムを説明するフローチャートである。
【図5】 従来の論理合成アルゴリズムにて作成されたRO−BDDに基づく、S−Boxの組合せ回路の構成例を示す図である。
【符号の説明】
100、110、170…セレクタ群、101…セレクタ(2:1セレクタ)、210…2n:1セレクタ、211…選択回路、212…デコーダ、300、310、370…ドライバチェイン

Claims (11)

  1. 複数個のセレクタにて構成される組合せ回路において、
    出力ビットを個別に生成する、出力ビット数に対応する数の独立したセレクタ群と、
    前記各セレクタ群にプライマリ入力を供給するドライバとを備え、
    前記各セレクタ群は、
    前記プライマリ入力のビット数以下の数の段を形成して接続された複数個のセレクタを備え、
    各段の前記セレクタのセレクト信号が1つの前記プライマリ入力でドライブされ、
    i段目のセレクタ(全段数≧i≧1)のセレクト信号を制御するプライマリ入力が個々の前記セレクタ群で異なり、かつ、個々のプライマリ入力によりセレクト信号を制御されるセレクタが前記セレクタ群ごとに異なっていることを特徴とする組合せ回路。
  2. 前記ドライバは、入力ビットごとに、バッファまたはインバータを連鎖的につなげて設けられたドライバチェインであり、
    前記各ドライバチェインは、入力側からバッファまたはインバータを経て出力側へ進むと共に、当該各ドライバチェインにおける個々のバッファまたはインバータの出力が相異なる順番で前記各セレクタ群に接続され、前記セレクタ群を構成するセレクタの各段にセレクト信号を供給することを特徴とする請求項1に記載の組合せ回路。
  3. 前記各セレクタ群における出力側から所定数n段分の2:1セレクタが、2n:1セレクタに置き換えられており、
    前記2n:1セレクタは、
    n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と、
    前記生成回路にて生成されたセレクト信号を用いて2n本の入力のうち一本を選び出すための選択回路と
    を備えることを特徴とする請求項1に記載の組合せ回路。
  4. S−Boxを含む暗号回路において、
    前記S−Boxに対応する組合せ回路は、
    出力ビットを個別に生成する当該出力ビット数に対応する数の独立したセレクタ群と、
    前記各セレクタ群にプライマリ入力を供給するドライバとを備え、
    前記各セレクタ群は、
    プライマリ入力のビット数以下の数の段を形成して接続された複数個のセレクタを備え、
    各段の前記セレクタのセレクト信号が1つの前記プライマリ入力でドライブされ、
    i段目のセレクタ(全段数≧i≧1)のセレクト信号を制御するプライマリ入力が個々の前記セレクタ群で異なり、かつ、個々のプライマリ入力によりセレクト信号を制御されるセレクタが前記セレクタ群ごとに異なっていることを特徴とする暗号回路。
  5. 前記ドライバは、入力ビットごとに、バッファまたはインバータを連鎖的につなげて設けられたドライバチェインであり、
    前記各ドライバチェインは、入力側からバッファまたはインバータを経て出力側へ進むと共に、当該各ドライバチェインにおける個々のバッファまたはインバータの出力が相異なる順番で前記各セレクタ群に接続され、前記セレクタ群を構成するセレクタの各段にセレクト信号を供給することを特徴とする請求項4に記載の暗号回路。
  6. 前記各セレクタ群における出力側から所定数n段分の2:1セレクタが、2n:1セレクタに置き換えられており、
    前記2n:1セレクタは、
    n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と、
    前記生成回路にて生成されたセレクト信号を用いて2n本の入力のうち一本を選び出すための選択回路と
    を備えることを特徴とする請求項4に記載の暗号回路。
  7. RO−BDD(Reduced Ordered Binary Decision Diagrams)を用いた組合せ回路の生成方法において、
    出力ビット数に対応する数のRO−BDDであって、当該RO−BDD間でノードを共有せず、かつ各RO−BDDにおける変数順が相互に異なるRO−BDDの一群を生成し、
    前記各RO−BDDの各ノードをセレクタに置き換え、
    前記各セレクタの制御信号を生成するためのドライバチェインを作り、当該ドライバチェインの各出力を、前記RO−BDDに基づく各セレクタ群を構成する各段のセレクタに対して、各セレクタ群で相異なる順番となるように接続することを特徴とする組合せ回路の生成方法。
  8. コンピュータを制御して、組合せ回路の回路構造を論理合成するプログラムであって、
    メモリから処理対象である組合せ回路の論理式または真理値表を読み込んで、出力ビットごとに分割し、出力1ビット分の論理式または真理値表を生成する処理と、
    前記出力1ビット分の論理式または真理値表ごとに、他の論理式または真理値表と重複しないようにRO−BDD(Reduced Ordered Binary Decision Diagrams)の変数順を決定し、当該変数順に基づいて当該論理式または真理値表のShared-RO-BDDを構築し、当該Shared-RO-BDDの各ノードを2:1セレクタにマップする処理と、
    前記各2:1セレクタの制御信号を生成するためのドライバチェインを作り、当該ドライバチェインの各出力を、前記RO−BDDに基づく各セレクタ群を構成する各段のセレクタに対して、各セレクタ群で相異なる順番となるように接続する処理と、
    セレクタがマッピングされドライバチェインを設定された組合せ回路の論理式または真理値表を前記メモリに格納する処理と
    を前記コンピュータに実行させることを特徴とするプログラム。
  9. 前記RO−BDDに対してセレクタをマッピングする際に、
    前記Shared-RO-BDDのルート側の所定数n段をUnshared-RO-BDDに変換する処理と、
    前記Unshared-RO-BDDに変換されたn段分のノードを、2n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と、当該セレクト信号によって2n本の入力のうち一本を選び出すための、2n個の2入力ANDおよび1個の2n入力ORを結合してなる選択回路とを備えた2n:1セレクタにマップする処理と、
    他のノードを2:1セレクタにマップする処理と
    を前記コンピュータに実行させることを特徴とする請求項8に記載のプログラム。
  10. コンピュータを制御して組合せ回路の回路構造を論理合成するプログラムを、当該コンピュータが読み取り可能に記録した記録媒体であって、
    前記プログラムは、
    メモリから処理対象である組合せ回路の論理式または真理値表を読み込んで、出力ビットごとに分割し、出力1ビット分の論理式または真理値表を生成する処理と、
    前記出力1ビット分の論理式または真理値表ごとに、他の論理式または真理値表と重複しないようにRO−BDD(Reduced Ordered Binary Decision Diagrams)の変数順を決定し、当該変数順に基づいて当該論理式または真理値表のShared-RO-BDDを構築し、当該Shared-RO-BDDの各ノードを2:1セレクタにマップする処理と、
    前記各2:1セレクタの制御信号を生成するためのドライバチェインを作り、当該ドライバチェインの各出力を、前記RO−BDDに基づく各セレクタ群を構成する各段のセレクタに対して、各セレクタ群で相異なる順番となるように接続する処理と、
    セレクタがマッピングされドライバチェインを設定された組合せ回路の論理式または真理値表を前記メモリに格納する処理と
    を前記コンピュータに実行させることを特徴とする記録媒体。
  11. 前記プログラムは、前記RO−BDDに対してセレクタをマッピングする際に、
    前記Shared-RO-BDDのルート側の所定数n段をUnshared-RO-BDDに変換する処理と、
    前記Unshared-RO-BDDに変換されたn段分のノードを、2n本の入力のうちどれをセレクトするかを決定するセレクト信号を生成する生成回路と、当該セレクト信号によって2n本の入力のうち一本を選び出すための、2n個の2入力ANDおよび1個の2n入力ORを結合してなる選択回路とを備えた2n:1セレクタにマップする処理と、
    前記2n:1セレクタに置き換えられた出力側の前記n段を除く他のノードを2:1セレクタにマップする処理と
    を前記コンピュータに実行させることを特徴とする請求項10に記載の記録媒体。
JP2002017959A 2002-01-28 2002-01-28 組合せ回路、暗号回路、その生成方法及びプログラム Expired - Fee Related JP4328487B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002017959A JP4328487B2 (ja) 2002-01-28 2002-01-28 組合せ回路、暗号回路、その生成方法及びプログラム
US10/349,519 US7460666B2 (en) 2002-01-28 2003-01-22 Combinational circuit, encryption circuit, method for constructing the same and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002017959A JP4328487B2 (ja) 2002-01-28 2002-01-28 組合せ回路、暗号回路、その生成方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2003223100A JP2003223100A (ja) 2003-08-08
JP4328487B2 true JP4328487B2 (ja) 2009-09-09

Family

ID=27742897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002017959A Expired - Fee Related JP4328487B2 (ja) 2002-01-28 2002-01-28 組合せ回路、暗号回路、その生成方法及びプログラム

Country Status (2)

Country Link
US (1) US7460666B2 (ja)
JP (1) JP4328487B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1573956A1 (en) * 2002-12-13 2005-09-14 Koninklijke Philips Electronics N.V. A small hardware implementation of the subbyte function of rijndael
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US7506278B1 (en) * 2005-03-08 2009-03-17 Xilinx, Inc. Method and apparatus for improving multiplexer implementation on integrated circuits
JP5203594B2 (ja) 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法
JP4453697B2 (ja) 2006-12-15 2010-04-21 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
DE102007012726A1 (de) * 2007-03-16 2008-09-18 Micronas Gmbh Verschlüsselungsvorrichtung mit einem mehrstufigen Verschlüsselungsblock
JP4849140B2 (ja) * 2009-02-20 2012-01-11 ソニー株式会社 データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8488783B2 (en) * 2010-02-19 2013-07-16 Nokia Method and apparatus for applying recipient criteria in identity-based encryption
CN102902510B (zh) * 2012-08-03 2016-04-13 华南理工大学 一种有限域求逆器
US9390292B2 (en) * 2013-12-30 2016-07-12 Wisconsin Alumni Research Foundation Encrypted digital circuit description allowing circuit simulation
US9960910B2 (en) 2016-02-25 2018-05-01 Wisconsin Alumni Research Foundation Encrypted digital circuit description allowing signal delay simulation
US11513799B2 (en) * 2019-11-04 2022-11-29 Apple Inc. Chained buffers in neural network processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04103213A (ja) 1990-08-22 1992-04-06 Nec Corp マルチプレクサ回路
JP3004589B2 (ja) 1995-07-26 2000-01-31 松下電器産業株式会社 パストランジスタ論理設計方法
US5917728A (en) * 1995-07-26 1999-06-29 Matsushita Electric Industrial Co., Ltd. Method for designing path transistor logic circuit
JPH10254920A (ja) 1997-03-07 1998-09-25 Toshiba Corp 論理回路の遅延最適化装置
US6026222A (en) * 1997-12-23 2000-02-15 Nec Usa, Inc. System for combinational equivalence checking
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
JP3753925B2 (ja) * 2000-05-12 2006-03-08 株式会社ルネサステクノロジ 半導体集積回路
US6587990B1 (en) * 2000-10-01 2003-07-01 Lsi Logic Corporation Method and apparatus for formula area and delay minimization
US20030068038A1 (en) * 2001-09-28 2003-04-10 Bedros Hanounik Method and apparatus for encrypting data
US7801301B2 (en) * 2001-10-10 2010-09-21 Stmicroelectronics S.R.L. Method and circuit for data encryption/decryption

Also Published As

Publication number Publication date
US7460666B2 (en) 2008-12-02
US20030198343A1 (en) 2003-10-23
JP2003223100A (ja) 2003-08-08

Similar Documents

Publication Publication Date Title
JP4328487B2 (ja) 組合せ回路、暗号回路、その生成方法及びプログラム
Dandalis et al. A comparative study of performance of AES final candidates using FPGAs
US8411853B2 (en) Alternate galois field advanced encryption standard round
Morioka et al. A 10-Gbps full-AES crypto design with a twisted BDD S-box architecture
Mozaffari-Kermani et al. Efficient and high-performance parallel hardware architectures for the AES-GCM
US7502463B2 (en) Methods and apparatus for implementing a cryptography engine
Satoh et al. ASIC-hardware-focused comparison for hash functions MD5, RIPEMD-160, and SHS
WO2010107114A1 (ja) パターンマッチング装置
Güneysu Utilizing hard cores of modern FPGA devices for high-performance cryptography
Hilewitz et al. Comparing fast implementations of bit permutation instructions
CN104238995B (zh) 一种非线性反馈移位寄存器
US7366300B2 (en) Methods and apparatus for implementing a cryptography engine
Opirskyy et al. Heuristic method of finding bitsliced-description of derivative cryptographic s-box
Ahmad et al. A new cryptographic scheme utilizing the difficulty of big Boolean satisfiability
Gaj et al. Hardware performance of the AES finalists-survey and analysis of results
Disser et al. Breaking the size barrier: Universal circuits meet lookup tables
CN113711533A (zh) 用于面积受限硬件的低深度AES SBox架构
Shi et al. Implementation complexity of bit permutation instructions
JP4120193B2 (ja) 暗号復号回路
CN108804379B (zh) 可重构处理器及其配置方法
Standaert et al. Efficient FPGA implementations of block ciphers KHAZAD and MISTY1
Majzoub et al. MorphoSys reconfigurable hardware for cryptography: the twofish case
Satoh et al. High-Speed MARS Hardware.
US11309896B2 (en) Reconfigurable logic circuit
Dimitrakopoulos et al. Sorter based permutation units for media-enhanced microprocessors

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060523

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060727

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060904

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090508

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090528

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090604

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090615

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees