JP4092735B2 - 情報処理システム及び暗号/復号システム - Google Patents
情報処理システム及び暗号/復号システム Download PDFInfo
- Publication number
- JP4092735B2 JP4092735B2 JP53065299A JP53065299A JP4092735B2 JP 4092735 B2 JP4092735 B2 JP 4092735B2 JP 53065299 A JP53065299 A JP 53065299A JP 53065299 A JP53065299 A JP 53065299A JP 4092735 B2 JP4092735 B2 JP 4092735B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- calculation
- units
- residue
- accuracy
- 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
- 230000010365 information processing Effects 0.000 title claims description 42
- 238000004364 calculation method Methods 0.000 claims description 147
- 230000003287 optical effect Effects 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 91
- 238000000034 method Methods 0.000 claims description 74
- 230000002950 deficient Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 12
- 238000003860 storage Methods 0.000 claims description 10
- 239000004065 semiconductor Substances 0.000 description 39
- 230000006870 function Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 25
- 239000000758 substrate Substances 0.000 description 18
- 239000000463 material Substances 0.000 description 17
- 238000013461 design Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 239000010409 thin film Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 229920003227 poly(N-vinyl carbazole) Polymers 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 229910052751 metal Inorganic materials 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 230000010355 oscillation Effects 0.000 description 4
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 229910052681 coesite Inorganic materials 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 229910052906 cristobalite Inorganic materials 0.000 description 3
- 239000003989 dielectric material Substances 0.000 description 3
- 239000010408 film Substances 0.000 description 3
- 229920000553 poly(phenylenevinylene) Polymers 0.000 description 3
- 230000008054 signal transmission Effects 0.000 description 3
- 239000000377 silicon dioxide Substances 0.000 description 3
- 229910052682 stishovite Inorganic materials 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 229910052905 tridymite Inorganic materials 0.000 description 3
- MWPLVEDNUUSJAV-UHFFFAOYSA-N anthracene Chemical compound C1=CC=CC2=CC3=CC=CC=C3C=C21 MWPLVEDNUUSJAV-UHFFFAOYSA-N 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- -1 berylene Chemical compound 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000011368 organic material Substances 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 238000002310 reflectometry Methods 0.000 description 2
- 230000007261 regionalization Effects 0.000 description 2
- 229910001148 Al-Li alloy Inorganic materials 0.000 description 1
- JRLALOMYZVOMRI-UHFFFAOYSA-N BPPC Chemical compound BPPC JRLALOMYZVOMRI-UHFFFAOYSA-N 0.000 description 1
- 229910018594 Si-Cu Inorganic materials 0.000 description 1
- 229910004298 SiO 2 Inorganic materials 0.000 description 1
- 229910008465 Si—Cu Inorganic materials 0.000 description 1
- 229920000109 alkoxy-substituted poly(p-phenylene vinylene) Polymers 0.000 description 1
- 229910021417 amorphous silicon Inorganic materials 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000009125 cardiac resynchronization therapy Methods 0.000 description 1
- 238000005253 cladding Methods 0.000 description 1
- 229920000547 conjugated polymer Polymers 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000002019 doping agent Substances 0.000 description 1
- 239000000975 dye Substances 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000007850 fluorescent dye Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000004770 highest occupied molecular orbital Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- AMGQUBHHOARCQH-UHFFFAOYSA-N indium;oxotin Chemical compound [In].[Sn]=O AMGQUBHHOARCQH-UHFFFAOYSA-N 0.000 description 1
- 239000007791 liquid phase Substances 0.000 description 1
- 238000004768 lowest unoccupied molecular orbital Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 150000002894 organic compounds Chemical class 0.000 description 1
- 239000003960 organic solvent Substances 0.000 description 1
- 238000005424 photoluminescence Methods 0.000 description 1
- 239000000049 pigment Substances 0.000 description 1
- 229920003216 poly(methylphenylsiloxane) Polymers 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- PYWVYCXTNDRMGF-UHFFFAOYSA-N rhodamine B Chemical compound [Cl-].C=12C=CC(=[N+](CC)CC)C=C2OC2=CC(N(CC)CC)=CC=C2C=1C1=CC=CC=C1C(O)=O PYWVYCXTNDRMGF-UHFFFAOYSA-N 0.000 description 1
- 229940043267 rhodamine b Drugs 0.000 description 1
- 235000012239 silicon dioxide Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/723—Modular exponentiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/3816—Accepting numbers of variable word length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5353—Restoring division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Optical Communication System (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、情報処理システム及び暗号/復号システムに係り、特にハードウェア構成によって任意精度の演算を行う情報処理システム及びハードウェア構成によって任意精度の演算を行って暗号化及び復号を行う暗号/復号システムに関する。さらに本発明は、内部バスラインまたは外部バスラインを光伝送方式とした情報処理システム、システムLSI及び電子機器に関する。
[背景技術]
従来より、乱数発生、ウェーブレット変換、ニューラルネットワーク、高速フーリエ演算、ディジタルフィルタ等の複雑、かつ、大規模な演算を伴う場合には、開発コスト、開発期間などの観点から特殊な用途を除き、専用のハードウェアを用いることなく、汎用の演算装置を用い、ソフトウェアにより実現する構成を採っていた。
また、インターネットの普及と共に電子商取引やプライバシー保護の観点から、情報セキュリティの技術の必要が高まり、その有効な手段としての暗号技術が注目されている。
暗号方式は秘密鍵暗号と公開鍵暗号に大別され、代表的な方式としては、秘密鍵暗号としてはDES(Data Encryption Standard)、公開鍵暗号としてはRSA(Rivest Shamir Adleman criptograph)がある。
原理的には、DESはデータビット列の並び換えや置換による方式で、RSAは極めて多ビットの剰余演算を行う方式であり、一般に秘密鍵暗号方式に比べて公開鍵暗号方式は数百倍遅くなる。これは、公開鍵暗号方式においては、数百ビット以上を法とする非常に多精度の剰余演算を行うことによる。
そこで、通常、多量のデータ列の暗号化には高速な秘密鍵暗号方式を用い、データ量の少ない認証、署名および鍵の配送などには公開鍵暗号方式を用いるように暗号方式の使い分けがなされている。
また、公開鍵暗号では、暗号強度を鍵のビット長を変えることにより選択できるため、通信相手の公開したさまざまなビット数の公開鍵を用いて演算ができることが求められている。
乱数発生、ウェーブレット変換、ニューラルネットワーク、高速フーリエ演算、ディジタルフィルタ等を汎用の演算装置を用いてソフトウェアにより実現する手法においては、汎用の演算装置の演算精度を超えて演算を行う場合に、全てソフトウェア側で対応する必要があり、プログラミングの手間及び処理時間の増大によりその実現が現実的ではなくなってしまう場合が生じていた。
さらにDESではハードウェア技術を用いて実現されなければならないと規定されているように、ソフトウェアだけによる暗号/復号システムの場合、第三者による解読を避けるのは事実上困難である。暗号アルゴリズムの一部をハードウェア化すれば暗号強度はより高いものとなる。
これは公開鍵式暗号方式においても同様であり、例えば、1チップ公開鍵暗号プロセッサが提案されている(電子情報通信学会論文誌 D-I Vol.J80-D-I No.8 pp.725-735 1997-8)。
しかしながら、上記1チップ公開鍵暗号プロセッサにおいては、予めハードウェアで規定された精度内での任意精度の処理は可能であるが、規定された精度を超える精度が要求された場合には処理はできず、新たなハードウェアの設計を行わなければならないという問題点が生じる。
また、演算装置を、例えば、TFT(Thin Film Transistor)で1チップ構成とする場合には、動作しないトランジスタの存在により演算装置全体が使用できなくなってしまい、歩留まり率が低下するとともに、製造コストの上昇を招くという問題点が生じる。
さらに他の課題として、近年マイクロコンピュータの発達により、各種の分野にて機器の小型化と高付加価値化が進んでいる一方で、マイクロコンピュータの設計は極めて困難となっている。マイクロプロセッサ(MPU)を1チップ化して構成されるマイクロコンピュータの高集積度化が進むにつれ、配線幅はサブミクロンオーダとなって高抵抗化が進み、多層構造化により浮遊容量も増大するため、配線部には分布定数回路が形成されて、電気信号の伝搬遅延は増大する一方である。
従って、マイクロコンピュータ内のCPU(中央処理ユニット)が他の機能ユニットに対してデータ、アドレスを伝送するのに要する時間、他の機能ユニットからデータが入力されるまでに要する時間を考慮して、CPUの命令サイクルなどを決定する必要があり、信号伝搬遅延に起因した設計の負荷が多くなっている。
しかも、近年は軽薄短小化と付加機能の増大化に従い、マイクロコンピュータの超LSIと、高集積化の方向にのみ進んでおり、マイクロコンピュータの設計はさらに困難になる一方である。
配線抵抗、容量の増大は、信号伝搬遅延だけでなく、信号としての矩形波に変形も生じさせる。近年特に携帯用電子機器を中心として省電力化が進んでおり、電圧レベルが低い矩形波の変形の度合いが大きいと、信号としての機能を確保できなくなり、誤動作の原因ともなる。
そこで、本発明の目的は、所望精度の演算が行えるシステムをハードウェア的に容易に構築することが可能な情報処理システムを提供することにある。
本発明の他の目的は、任意精度(任意ビット数)の演算が要求されるシステムをハードウェア的に容易に構築することが可能な暗号/復号システムを提供することにある。
本発明のさらに他の目的は、1チップ構成とする場合の実効的な歩留まり率を向上して、システムの信頼性を向上することが可能な情報処理システム及び暗号/復号システムを提供することにある。
本発明のさらに他の目的は、信号伝搬遅延、信号波形の変形を無視できる程度に低減して、その設計を容易とすることができる情報処理システム及びシステムLSI並びにそれを用いた電子機器を提供することにある。
本発明のさらに他の目的は、他社開発の機能ブロックを搭載しながらも、その知的所有権に関する管理を上述の暗号/復号システム等を利用して容易化することができるシステムLSI及びそれを用いた電子機器を提供することにある。
[発明の開示]
本発明は、入力データに対して、処理手順に従って演算処理して出力する情報処理システムにおいて、
前記処理手順に基づいて、それぞれ演算精度2mビット(m:自然数)にて演算する複数の演算ユニットと、
前記演算ユニット同士をカスケード接続するための複数のカスケード接続端子と、
を有し、
演算処理時に必要な最大演算精度を2nビット(nは自然数で固定)としたとき、x≧2n/2m(xは自然数)を満たすように前記演算ユニットがx個カスケード接続されることを特徴とする。
本発明によれば、演算処理を複数の演算処理ユニットにて分散処理することでハードウェア処理が容易となり、乱数発生処理、ウェーブレット変換処理、高速フーリエ変換処理、デジタルフィルタ処理などの演算量が多く、精度が要求される場合でも、容易にシステムを構築して演算処理の高速化を図ることとができる。また、分散処理の結果、演算ユニットのゲート数を抑制することができ、装置コストを低減することが可能となる。
本発明においては、演算処理時に必要な演算精度を2n1ビット(n1≦nでn1は可変)としたとき、x1≧2n1/2m(x1は自然数で可変)を満たすように前記演算ユニットがx1個カスケード接続される。このとき、クロック発生回路は、演算処理時に2n1個の前記基準クロック信号を発生させる。これにより、x個のうちのx1個の演算ユニットが実効的にカスケード接続される。こうすると、x1個以外の演算ユニットにて消費される電力を節約でき、演算速度も高速化される。さらに、複数の演算ユニット間にて光信号により信号が伝送されるようにすれば、演算速度はより高速となる。
複数の演算ユニットの各々は、演算精度2 m /yで演算を行うべき演算モジュールをそれぞれy個(yは自然数で固定)を有し、y個の演算モジュールをカスケード接続することにより構成することができる。
このとき、演算処理時に必要な演算精度を2n1ビット(n1≦nでn1は可変)としたとき、y1≧2n1/(2 m /y)(y1は自然数で可変)を満たすようにy1個の演算モジュールがカスケード接続されればよい。
あるいは、2n1ビット精度の演算を行うのに、(x1−1)個のカスケード接続された演算ユニットにて演算精度2n2(n2<n1)にて演算が実施され、前記(x1−1)個の演算ユニットとカスケード接続される他の一つの演算ユニットでは、y1≧(2n1−2n2)/(2 m /y)(y1≦yでy1は可変)を満たすy1個の演算モジュールがカスケード接続さされればよい。
この最大y個の演算モジュール間を光信号により信号が伝送されるようにすれば、各演算ユニット内での演算が高速化される。
本発明では、処理手順を記憶する第1の記憶部をさらに有することができる。さらに、第1の記憶部に記憶された処理手順に基づいて複数の演算ユニットの制御を行う演算制御手段をさらに備えることができる。このとき、複数の演算ユニットと演算制御手段との間を、光信号により信号が伝送されるようにしてもよい。
また、複数の演算ユニットでの演算結果を一時的に記憶する第2の記憶部を有し、第2の記憶部と複数の演算ユニットとの間を光信号により信号が伝送されるように構成しても良い。
複数の演算ユニットでの演算の一例として、入力データをX、Nとし、出力データYをとしたとき、疑似乱数発生のために、Y=X2mod Nの演算の例を挙げることができる。
ここで、複数の演算ユニットの歩留まり率をAとしたとき、全演算ユニットの数をK(x≧K/A)個用意しておけば、そのうち良品の演算ユニットを最大でx個カスケード接続することができる。
あるいは、演算モジュールの歩留まり率をA′としたとき、前記複数の演算ユニットの各々は、全演算モジュールの数をL(y≧L/A’)個用意しておけば、そのうち、良品の演算モジュールを最大でy個カスケード接続することができる。
本発明の他の態様によれば、入力データに対して、処理手順に従って演算処理して出力する情報処理システムにおいて、
前記処理手順に基づいて、それぞれ演算精度2m1ビット(m1:自然数で固定)にて演算する複数の内部演算ユニットと、
演算精度2m2ビット(m2:自然数で固定)で演算をする複数の外部演算ユニットと、
前記複数の内部演算ユニット及び前記複数の外部演算ユニットをカスケード接続するためのカスケード接続端子と、
を有し、
演算処理時の最大演算精度を2nビット(nは自然数で可変)としたとき、z≧(2n−2m1)/2m2(zは自然数で固定)を満たすように前記外部演算ユニットがz個カスケード接続されることを特徴とする。
こうすると、演算精度を容易にハードウェア的に拡張することができ、システムの信頼性を確保しつつ、情報処理システムのシステム設計が容易となる。
本発明のさらに他の態様に係る暗号/復号システムによれば、複数のべき乗剰余演算ユニットと、
前記複数のべき乗剰余演算ユニットをカスケード接続するための複数のカスケード端子と、
を有し、
前記複数のべき乗剰余演算ユニットの各々は、
乗算精度2mビット(mは自然数で固定)で乗算を行う乗算ユニットと、
除算精度2 m+1 ビットで除算を行う除算ユニットと、
を有し、
前記複数のべき乗剰余演算ユニットにより実施されるべき乗剰余演算の最大演算精度を2n(nは自然数で固定)としたとき、
x≧2n/2m(xは自然数で固定)
を満たすように、前記複数のべき乗剰余演算ユニットがx個接続されて、暗号化及び復号を行うことを特徴とする。
こうすると、暗号化または復号のための演算処理を複数の演算処理ユニットにて分散処理することでハードウェア処理が容易となり、演算量が多く、精度が要求される場合でも、容易にシステムを構築して演算処理の高速化を図ることとができる。また、分散処理の結果、演算ユニットのゲート数を抑制することができ、装置コストを低減することが可能となる。
本発明のさらに他の態様に係る暗号/復号システムによれば、乗算精度2m1ビット(m1は自然数で固定)、除算精度2 m1+1 ビットでべき乗剰余演算を行う複数の内部べき乗剰余演算ユニットと、
乗算精度2m2ビット(m2は自然数で固定)、除算精度2 m2+1 ビットでべき乗剰余演算を行う複数の外部べき乗剰余演算ユニットと、
前記複数の内部及び外部べき乗剰余演算ユニットをカスケード接続するためのカスケード接続端子と、
を有し、
最大ビット精度2n(nは自然数で固定)で暗号化及び復号を行うに際して、
z≧(2n−2m1)/2m2(zは自然数で固定)を満たすように前記外部べき乗剰余演算ユニットをz個接続することを特徴とする。
こうすると、べき乗剰余演算における演算精度を容易にハードウェア的に拡張することができ、鍵の精度において十分な信頼性を確保することができる。
さらに少ないゲート数で外部べき乗剰余演算ユニットを構成することができるため、パーソナルコンピュータシステムにおいても暗号/復号システムを容易に構築することが可能となる。
本発明のさらに他の態様によれば、多チャンネルの電気信号に基づいてそれぞれ動作する複数の機能ユニットと、それらの間で信号を伝送するバスラインとを、有する情報処理システムであって、
前記複数の機能ユニットの各々は、信号出力部及び/又は信号入力部を有し、
前記信号出力部は、多チャンネルの電気信号を波長の異なる多チャンネルの光信号に変換して出力する電気−光信号変換手段を有し、
前記信号入力部は、波長の異なる多チャンネルの前記光信号を多チャンネルの前記電気信号をに変換する光−電気信号変換手段を有し、
前記バスラインは光伝送媒体にて形成されていることを特徴とする。
この場合、一の機能ユニットと他の機能ユニットとの間の信号伝送は、光伝送媒体であるバスラインを介して、波長分割された多チャンネルの光信号を伝送することで行われる。このため、各機能ユニットの信号出力部は、多チャンネルの電気信号を多チャンネルの光信号に変換する電気−光信号変換手段を有し、各機能ユニットの信号入力部は、多チャンネルの光信号を多チャンネルの電気信号に変換する光−電気信号変換手段を有する。
1チップのマイクロコンヒュータの各機能ユニット間を光通信しているため、光の速度による信号伝搬によって信号伝搬遅延をほとんどは無視できる。結果として、その信号伝搬遅延等に伴う設計上の制約がなくなり、情報処理システムの設計を容易化できる。
本発明では、複数の機能ユニットの一つは中央処理ユニット(CPU)であり、前記バスラインはデータバスラインとアドレスバスラインとを含むことができる。CPUに接続されたデータ、アドレスバスラインの双方を光伝送ラインとするものである。
この場合、データバスラインとアドレスバスラインとは1本の光伝送媒体にて兼用することもできる。データとアドレスとは同時でなく、時分割で伝送すればよいからである。
本発明ではさらに、バスラインには、周辺機器と光通信するための光入出力部が接続されていることが好ましい。こうすると、情報処理システム内の各機能ユニットの電気−光信号変換手段にて変換された光信号を、そのまま周辺機器に送信でき、逆に周辺機器からの光信号をそのまま情報処理システムに入力できる。また、光信号へのノイズの重畳や、光信号からのノイズの放出もなくなるという利点もある。
周辺機器と光通信するための光入出力部は、前記バスラインを介して前記中央処理ユニットから伝送されるチップセレクト信号により、前記周辺機器との間での光通信が可能とされることが好ましい。このとき、光入出力部としては、チップセレクト信号により動作される光シャッター等にて構成できる。
本発明のさらに他の態様によれば、第1の内部バスラインを有する第1の半導体装置と、第2の内部バスラインを有する第2の半導体装置とを、外部バスラインを介して接続して成るシステムLSIであって、
前記第1の半導体装置は、第1の信号出力部及び第1の信号入力部を有し、多チャンネルの電気信号に基づいて動作する中央処理ユニット(CPU)が、前記第1の内部バスラインと共に第1の基板上に形成され、
前記第2の半導体装置は、第2の信号出力部及び第2の信号入力部を有し、かつ、前記中央処理ユニットからの信号により制御されて、多チャンネルの電気信号に基づいて動作する被制御ユニットが、前記第2の内部バスラインと共に第2の基板上に形成され、
前記第1,第2の信号出力部は、多チャンネルの電気信号を波長の異なる多チャンネルの光信号に変換して出力する電気−光信号変換手段をそれぞれ有し、
前記第1,第2の信号入力部は、波長の異なる多チャンネルの前記光信号を多チャンネルの前記電気信号に変換する光−電気信号変換手段をそれぞれ有し、
前記第1,第2の内部バスライン及び前記外部バスラインは、それぞれ光伝送媒体にて形成されていることを特徴とする。
こうすると、例えば第1の半導体装置を上述の1チップ化されたマイクロコンピュータとした場合、本来マイクロコンピュータ内に搭載されるべき機能ユニットの少なくとも一つは、第2の半導体装置に搭載できる。この場合、第1,第2の半導体装置内の機能ユニット同士は、第1,第2の内部バスライン及び外部バスラインを介して光による信号の授受が行われる。従って、空間的には異なる基板上に配置された機能ユニット同士が、光の伝送速度で通信できるバスラインにて接続されるため、機能的には上述の1チップ内で光による信号の授受が行われる複数の機能ユニットを搭載したマイクロコンピュータと等価となる。
このように、本来1チップ内に搭載されるべき機能ユニットの一部を外部に取り出すことができるため、高集積化の必要はなくなるという利点がある。あるいは、マイクロコンピュータに演算機能、メモリなどを増設したい場合にも、従来のように1チップマイクロコンピュータの設計をやり直す必要なく、基本となるマイクロコンピュータに光伝送媒体である外部バスラインを介して半導体装置を外付けすればよい。従って、マイクロコンピュータの汎用性が高まるという利点もある。
特に、本発明を適用すればキャシュメモリの容量の変更を自由に行うことができる。
さらに好ましくは、本発明において、内部バスラインの内部クロックを外部バスラインへも供給する構成とする。これによって、内部クロックが全機能ユニットの標準クロックとなり、同期モードでデータ処理を行うことが可能となる。
上記の本発明に係る情報処理システムまたはシステムLSIを電子機器に搭載すれば、その電子機器の機能変更にも容易に対応できる。
本発明のさらに他の態様によれば、開発メーカが異なる複数の機能ブロックが搭載されたシステムLSIであって、
前記複数の機能ブロックの少なくとも一つは、四則演算機能エリアを有し、
前記四則演算機能エリアは、所定の復号鍵が入力された際に復号ための演算を実施し、その復号が成立した時以降初めて、前記復号以外の四則演算機能がイネーブルとされることを特徴とする。
このシステムLSIには、例えばA社の開発した機能ブロックが含まれているとする。このシステムLSI中のA社の開発した機能ブロックを利用するエンドユーザに、例えばRSA方式の復号鍵(プライベートキー)をライセンスによって開示する。そして、本システムLSIの利用者のうち、復号鍵を有するエンドユーザのみが機能ブロックを利用できるようにしたものである。これにより、A社の開発した機能ブロックを利用するには、A社から復号鍵をライセンスによって取得する必要が生じ、知的所有権に関する管理が容易となる。
この四則演算機能エリアには、上述した通り、処理手順に基づいて、それぞれ演算精度2mビット(m:自然数で固定)にて演算するx個のカスケード接続される演算ユニットを備えることができる。この複数の演算ユニットの一部は、カスケード接続される複数のべき乗剰余演算ユニットを含むことができる。
【図面の簡単な説明】
図1A及び図1Bは、本発明の第1実施例に係る情報処理システムの概要構成を示すブロック図である。
図2は、図1A及び図1B中のプログラマブルディジタルプロセッサの概要構成を示すブロック図である。
図3は、第1実施例を疑似乱数発生回路に適用した具体例を示すブロック図である。
図4は、本発明の第2実施例に係る暗号/復号システムの概要構成ブロック図である。
図5は、べき乗剰余演算装置の概要構成を示すブロック図である。
図6は、任意精度除算装置の概要構成を示すブロック図である。
図7A〜図7Cはそれぞれ、除算分散処理の困難性を説明する説明図である。
図8は、任意精度除算器の構成と動作の説明図である。
図9は、除算器の概要構成を示すブロック図である。
図10は、除算器の動作タイミングチャートである。
図11は、本発明の第2実施例におけるRSAに基づいた公開鍵暗号方式の暗号化及び復号処理の処理手順を示している。
図12は、べき乗剰余演算装置に必要なゲート数を説明する図である。
図13Aは、ab≡M mod cの演算手法を説明する説明図である。
図13Bは、図13Aの演算を実行する回路のブロック図である。
図13Cは、図13Aの手法に従って、18619≡M mod 377を復号してM=17を求めた演算例の説明図である。
図14は、図13Aにて必要な演算処理時間の計算を示す説明図である。
図15は、演算処理時間の例を示す説明図である。
図16は、従来におけるRSAに基づいた公開鍵暗号方式の暗号化及び復号処理の処理手順である。
図17は、本発明の第4実施例に係るマイクロコンピュータの一例を示すブロック図である。
図18は、図17に示すマイクロコンピュータの光伝送部を含む領域の概略説明図である。
図19は、図18に示す発光部を構成する3チャンネル分の発光素子の概略断面図である。
図20は、図19に示す発光層の製膜方法の一例を示す概略説明図である。
図21は、図18に示す受光部を構成する3チャンネル分の受光素子の概略断面図である。
図22は、図18に示す発光部の変形例を示す概略説明図である。
図23は、本発明の第5実施例に係るシステムLSIを示す概略説明図である。
図24は、発光部、導波路及び受光部を三次元的に配置した本発明の第6実施例を示す概略説明図である。
図25は、本発明の第7実施例に係るシステムLSIの概略図である。
[発明を実施するための最良の形態]
次に図面を参照して本発明の好適な実施例を説明する。
(第1実施例)
図1Aに第1実施例の情報処理システムのブロック図を示す。
情報処理システム10は、図1Aに示すように例えば2つの汎用のマイクロプロセッサにより構成される。図1Aにおいて、この情報処理システム10は、システム全体を制御するためのメインマイクロプロセッサ1と、メインマイクロプロセッサ1とバス2を介して接続されたプログラマブルディジタルプロセッサ3と、を備えている。プログラマブルディジタルプロセッサ3は、メインマイクロプロセッサ1に代わって予め設定されたプログラム(処理手順)に従って高速で所望演算精度の演算を行うコプロセッサ(coprocessor)として機能する。
ここで、バス2には、図示は省略してあるが、この情報処理システム10に要求される仕様に応じて、キーボード、マウスなどの入力装置、プリンタなどの出力装置、ROM、RAM等の記憶装置及びハードディスク装置などの外部装置などが直接、あるいは、インターフェース装置を介して接続されている。
図2は、図1に示すプログラマブルディジタルプロセッサ3の構成を示している。このプログラマブルディジタルプロセッサ3は、図示しないシステムROM、システムRAMを有し、乱数発生処理、ウェーブレット変換処理、高速フーリエ変換処理、デジタルフィルタ処理などの処理手順が予めメインマイクロプロセッサ1側からロードされてプログラミングされる。
このプログラマブルディジタルプロセッサ3は、全体の制御を司るコントロールユニット5と、演算途中の各種データ、処理手順などを格納するRAM6、ROM8と、それぞれ演算精度2mビット(mは自然数で固定)で演算を行うx(xは自然数で固定)個の演算ユニット7−1〜7−xと、これら演算ユニット7−1〜7−x同士をカスケード接続するためのスイッチSWと、アドレスデータ、命令データなどを転送するための内部システムバス4Aと、各種データを転送するための内部データバス4Bと、を備えている。なお、内部システムバス4Aと内部データバス4Bとで、内部バス4を構成している。また、スイッチSWは、実施例の構成を図面上で理解できるように便宜的に図示したものである。実際には、実効的にカスケード接続される演算ユニットの数は、プログラマブルディジタルプロセッサ3内の例えばコントロールユニット5から発生する基準クロック信号の数に基づいて決定され、機械的にスイッチSWがオン、オフする構成ではない。この点については後述する。
この場合において、全ての演算ユニットをx個カスケード接続した場合に得られる最大ビット精度を2n(nは自然数で固定)とした時、カスケード接続される最大個数xは、以下に示す条件式を満たしている必要がある。
x≧2n/2m
なお、必要な演算精度が最大ビット精度2n以下のビット精度2n1(n1は可変でかつn1≦n)である場合には、x個の演算ユニット7−1〜7−xを全て動作可能状態としても演算結果を得ることは可能であるが、最大x個の演算ユニットのうち、
x≧x1≧2n1/2m(x1は可変)
を満たすようにx1個の演算ユニット7−1〜7−x1を実効的に動作するようにカスケード接続すればよい。こうして、2n1ビット精度の演算を行うようにすれば、電力を不必要に消費することなく、消費電力の適正化を図ることができ、さらに演算処理時間も最適化することが可能となる。
ここで、演算ユニット7−1〜7−xの各々は、それぞれ演算精度2m/y(yは2以上の整数)で演算を行うべきy個の演算モジュール9−1〜9−yが、スイッチSWを介してカスケード接続可能となっている。なお、スイッチSWは、実施例の構成を図面上で理解できるように便宜的に図示したものである。実際には、実効的にカスケード接続される演算モジュールの数は、上述の通り、プログラマブルディジタルプロセッサ3内の例えばコントロールユニット5からの基準クロック信号の数に基づいて決定され、機械的にスイッチSWがオン、オフする構成ではない。
ここで、例えば演算ユニット7−1と演算ユニット7−2とが実効的にカスケード接続された場合には、トータルで2y個の演算モジュールがカスケード接続されたことと等価となる。
そして、本実施例では、一つの演算ユニットの全y個の演算モジュール9−1〜9−yのうち、2n1ビット精度の演算を行うのに十分な個数y1≧2n1/2m/y(y1≦y)の演算モジュールを実効的にカスケード接続することも可能である。こうすれば、消費電力及び演算処理時間をより最適化することが可能となる。
あるいは、2n1ビット精度の演算を行うのに、(x1−1)個の演算ユニット7−1〜7−(x−1)と、演算ユニット7−x1の中のy1個の演算モジュールとを用いることも可能である。この場合に、(x1−1)個の演算ユニット7−1〜7−(x−1)で2n2(n2<n1)のビット精度の演算が実施されるとすると、y1≧(2n1−2n2)/(2 m/ y)(y1≦y)を満たせばよい。
次に、図1A及び図2に示す装置の動作について説明する。
まず、メインマイクロプロセッサ1がプログラマブルディジタルプロセッサ3に対し、演算命令、演算に必要なデータ及び要求する演算精度に対応する演算精度データをバス2を介して与える。
これによりプログラマブルディジタルプロセッサ3のコントロールユニット5は、演算ユニット7−1〜7−xに対し、メインマイクロプロセッサユニット1及び/またはRAM6からの処理手順(例えば、図13Bで示す暗号手順)に基づいて、要求された演算精度2n1に対応する数の演算ユニットあるいは演算モジュールを制御する。演算ユニット7−1〜7−xは、各演算データの精度情報に基づいて、カスケード接続されるべきユニット数及びモジュール数を判断する。このカスケード接続されるべきユニット数及びモジュール数は、演算に必要な基準クロック信号の数によって決定される。この基準クロック信号は、図1Aに示す情報処理システム10が有する図示しない基準クロック信号発生回路にて発生される。
これにより、演算に必要とされた数の演算ユニット及び演算モジュールは実効的にカスケード接続され、コントロールユニット5は、予めプログラミングされた処理手順に基づいて演算を演算ユニットにて行わせることとなる。
そして得られた精度2n1の演算結果をバス2を介してメインプロセッサユニット1側に出力することとなる。
ここで、この第1実施例ではチップ間すなわち図1Aのマイクロプロセッサユニット1とプログラマブルディジタルプロセッサ3間のバス2上の信号を、多チャンネルの電気信号としても良いし、あるいは例えば波長の異なる多チャンネルの光信号としても良い。チップ間を光通信する技術は既に多くの提案がある。
さらに加えて、この第1実施例では、1チップを構成するプログラマブルディジタルプロセッサ3内の一部または全部のユニット間にて、光信号を伝送することも可能である。すなわち、図2に示すプログラマブルディジタルプロセッサ3の内部システムバス4Aと内部データバス4Bとを光伝送路とするのである。こうすると、コントロールユニット105と、RAM6と、ROM8と、x個の演算ユニット7−1〜7−xとの各間で、内部システムバス4Aと内部データバス4Bを介して光信号を伝送することができる。このとき、RAM6を構成する記憶素子として、電気信号以外の情報例えば強誘電メモリのように磁化された情報を記憶するようにすれば、光信号を電気信号に変換する必要はない。例えば強誘電メモリを用いた場合には、光信号に基づいて磁化された情報を記憶すればよい。さらには、x個の演算ユニット7−1〜7−xの間も実質的にバス接続され、各演算ユニットを構成するy個の演算モジュールもバス接続されているため、これらのバスを光伝送路とし、演算ユニット間及び演算モジュール間も光信号により伝送することが可能である。
なお、1チップ内の内部バスを光伝送路とする具体的例については後述する。
以上の説明においては、最大x個の演算ユニットが装着されている場合について説明したが、後に機能拡張する場合などに備えて、プログラマブルディジタルプロセッサ3に外部演算ユニットをカスケード接続するための端子を設けてもよい。このように、外部演算ユニットをカスケード接続するように構成すれば、内部演算ユニットのみをカスケード接続して得られる演算精度以上の演算精度を確保することができる。
より詳細には、プログラマブルディジタルプロセッサ3を1チップ構成とした場合であっても、図2に破線で示すように、一または複数のプログラマブルディジタルプロセッサ3′を、内部データバス及び図示しないカスケード接続端子を介してカスケード接続することができる。こうすると、プログラマブルディジタルプロセッサ3′内の演算ユニットを、プログラマブルディジタルプロセッサ3′内の演算ユニットとカスケード接続したのと等価となる。この意味で、プログラマブルディジタルプロセッサ3内の内部演算ユニット7−1〜7−xに対して、一または複数のプログラマブルディジタルプロセッサ3′の演算ユニットは、外部演算ユニットとして機能する。そして、本実施例では、この内部演算ユニットと外部演算ユニット間も光信号により伝送することが可能である。
また、複数の外部演算ユニットを例えば、TFT(Thin Film Transistor)で構成した場合には、欠損などにより不良トランジスタが発生することに起因して、最大でz個の外部演算ユニットの全体が使用できなくなる恐れがある。
そこで、演算ユニットの歩留まり率Aに対して、少なくともK(z≧K/A)個の演算ユニットを予め用意しておくことが好ましい。こうすると、K個の演算ユニットのうち良品の演算ユニットを最大でz個接続することできる。
さらにこのことは、演算ユニットばかりでなく、外部演算ユニットを構成する演算モジュールについても同じことが言えるので、外部演算モジュールの歩留まり率A′に対して、各外部演算ユニット中に少なくともL(y≧L/A′)演算モジュールを予め用意しておくと良い。こうすると、L個の演算モジュールのうち良品の演算モジュールをy個接続することができる。従って、演算モジュールに不良が発生した場合でも、冗長演算モジュールに接続切換を行うことにより、その演算ユニットは良品として扱うことが可能となる。
また、プログラマブルディジタルプロセッサ3内に演算精度2m1ビット(m1:自然数)で演算を行う内部演算ユニットと、プログラマブルディジタルプロセッサ3’内に演算精度2m2ビット(m2:自然数)で演算を行う外部演算ユニットとをカスケード接続して、最大演算精度2nの演算を実施するには、外部演算ユニットの接続数zを下記の式を満足するように設定すればよい。
z≧(2n−2m1)/2m2
さらに所望のビット精度2n1(n1は自然数、かつ、n1≦n)にて演算する場合には、z個の外部演算ユニットのうち、
z≧z1≧(2n1−2m1)/2m2(z1は自然数)
を満たすように外部演算ユニットをカスケード接続すれば、演算に必要な外部演算ユニットのみを動作させることができる。この結果、消費電力の適正化、演算処理時間の適正化を図ることができる。
なお、情報処理システム10を構成する場合に、図1Aの実施例ではメインマイクロプロセッサ1が必須の構成要件となっていた。しかし、プログラマブルディジタルプロセッサ3にメインマイクロプロセッサ1の機能を持たせ、バス2を介して記憶装置あるいは外部記憶装置からプログラムをロードするように構成すれば、図1Bに示す情報処理システム10’のように、メインマイクロプロセッサ1は不要となる。
また、以上の説明においては、プログラマブルディジタルプロセッサ3がプログラムをロードする場合についてのみ説明したが、これに限定されるものではない。例えば予めマスクROM、PROM、EEPROMなどの不揮発性のメモリに処理手順のプログラムを格納しておき、これに基づいて固定化した処理手順に基づいて動作したり、固定化した処理手順をハードウエアロジックで実現することも可能である。
ここで第1実施例のより具体的な例として、本発明を疑似乱数発生装置に適用した例について説明する。
Nが大きな素数の積の場合に、非線形演算子であるY=X2mod Nを用いて、計算量的に安全な疑似乱数を作ることが可能である。この場合において、「計算量的に安全な」とは、安全性が崩れるということ(すなわち、生成した乱数列の一部である部分乱数列から、生成した乱数列の他の部分の部分乱数列を推測することができること)と、Nを因数分解できるということとが、計算量的に同等であるということである。
換言すれば、数学の長い歴史の中で、因数分解についての簡単な計算法が見つかっていないので、多分、乱数は予測できないであろうということである。
Y=X2mod N
を用いて、計算量的に安全な疑似乱数を発生するためのブロック図を図3に示す。この場合において、
N=P・Q
であり、PとQとは共に大きな素数である。
図3に示すように、入力データ(X、N)に対し、
Y=X2mod N
の演算処理を行う際に、第1実施例のプログラマブルディジタルプロセッサ3を用いることにより、任意精度で疑似乱数を発生させることができる。
以上の説明のように、本実施例によれば、所望精度の演算を行うための情報処理システムをハードウェア的に容易に実現することが可能であるとともに、演算精度の拡張に対してもハードウェア的に容易に対応することが可能となる。
この第1実施例の説明においては、プログラマブルディジタルプロセッサ3内にコントロールユニット5及びRAM6を設ける構成としていたが、メインマイクロプロセッサ1側にこれらの機能を行わせるように情報処理システムを構成し、演算ユニットのみを1チップ構成とし、任意精度汎用演算プロセッサとして機能させることも可能である。
(第2実施例)
次に暗号化処理及び復号処理を行う暗号/復号システムに本発明を適用した第2実施例について説明する。
[1] RSA方式の原理説明
まず具体的な実施例の説明に先立ち、代表的な公開鍵方式暗号であるRSA方式について説明する。
ネットワーク暗号の利用形態としては、送信者が暗号鍵を用いて平文を暗号化して送信し、その暗号文の受信者は復号鍵を用いて復号し平文に戻す処理を行うものである。
秘密鍵暗号方式では暗号鍵と復号鍵が同一であるのに対し、公開鍵暗号方式は同一ではなく、暗号鍵を公開し、復号鍵を秘密に保持する方式である。次に代表的な公開鍵暗号方式であるRSA方式の原理について述べる。
平文をある適当なブロックに分け、それに相当する数値をMとする。素数pとqを定め、復号鍵(プライベートキー)として秘密にし、次の関係にあるnとeを公開鍵(パブリックキー)とする。
n=pq …… (1)
gcd(e,(p−1,q−1))=1 …… (2)
ここで、e及び(p−1)(q−1)の最大公約数は1、すなわち、(p−1)(q−1)と互いに素な正数eを適当に決める。
そして、下記の(3)式に示すように、送信者はパブリックキーを用いて、nを法とする平分Mのe乗の剰余演算(Meをnで割った余りCを算出)を行い、暗号文Cを送信する。
Me≡C mod n ……(3)
これにより、暗号文Cを受信した受信者は、まず、プライベートキーを用いて、下記の(4)式により(p−1)(q−1)を法とするeの逆数dを求める。
ed≡1 mod (p−1)(q−1) …… (4)
得られたdにより、下記の(5)式から暗号文Cを平分Mに復号する。
Cd≡M mod n …… (5)
ところで、式(4)と式(5)は、(p−1)と(q−1)の最少公倍数lcm(p−1,q−1)を用いると、dを小さく定めることができ、下記の(6)式及び(7)式に示すように、計算量の軽減がはかれる。
gcd(e,lcm(p−1,q−1))=1 …… (6)
ed≡1 mod lcm(p−1,q−1) …… (7)
この場合において、パブリックキーnはプライベートキーpとqの積であるため、容易に素因数分解できないよう、通常512ビット以上に選定される。
以上のようにRSA方式は素因数分解という数学的要素と多精度剰余演算を行うことなどで、暗号強度の高い方式であると広く認知されている。
[2] 剰余計算例
式(3)と式(5)のべき乗剰余演算結果が暗号・復号文となるため、丸め操作や浮動少数点演算が使えず整数演算でなければならない。べき乗剰余演算は指数をそのシステムで除算可能な部分に分割して、より小さな剰余演算の積の繰り返しで求めることができる。説明の容易性のため、ごく小さい数値の例を示す。
パブリックキーをn=55、e=7とし、プライベートキーをp=5、q=11とする。
平文M=3とすると、暗号文Cは、暗号化においてはパブリックキーのnとeを用いて、式(3)より
37≡C mod 55
から
C=42
を得る。
復号ではプライベートキーのpとqよりdを次のように選定する。
式(4)より
7d≡1 mod (5−1)(11−1)
すなわち、
7d≡1 mod 40
から
d=23
となる。
4223≡M mod 55
から
M=3
となる。
剰余演算においては
X≡r1 mod n、
Y≡r2 mod n
のとき、nを法とする下記の式(8)の乗算が成立する。
X・Y≡r1・r2 mod n (8)
この関係式により指数部分を演算可能な部分に分割する。
例えば、
4223=425+5+5+5+3
=425・425・425・425・423
そこで、先ず、425及び423についての2種類の剰余を求める。
425≡12 mod 55
423≡3 mod 55
式(8)から
となる。
次にr1・r2からその剰余r1-2を求める。
r1・r2≡12・12≡r1-2mod 55
より、
r1-2=34
となる。以下同様にして、
r1-2・r3≡34・12≡r1-3mod 55
より、
r1-3=23
となる。さらに
r1-3・r4≡23・12≡r1-4mod 55
より、
r1-4=1
となる。さらにまた、
r1-4・r5≡1・3≡r mod 55
となって、
r=3
を得ることとなる。
以上の剰余演算過程における各剰余乗算の最大精度は法であるnの2倍以下で済む。このようにして、小さな数値に置き換えた剰余演算の繰り返しで、目的とする剰余を算出することができる。
[3] 暗号化及び復号処理の一般的手法
ここで、図16を参照してRSAに基づく暗号化及び復号処理の一般的手法について説明する。
まず、Am≡R mod nについての剰余演算では、A、m、nの各値を入力する(ステップS1)。
合同式 Am≡R mod n は暗号化においては平文MがA、パブリックキーeがmとして、パブリックキーnを法とする剰余演算によって得られたRが暗号文Cになる。復号では暗号文CがA、パブリックキーeとプライベートキーp、qから選定されたdがmとして、nを法とする剰余演算によって得られたRが平文Mである。
先ず、Aのビット数K1を求め(ステップS2)、Aのビット数K1から剰余演算システムにおけるANの最大指数Nを求める(ステップS3)。
次に最大指数Nが1であるか否かを判別し(ステップS4)、最大指数N=1であればA2で精度オーバーになるため、
A≡r mod n
を求め(ステップS5)、剰余rのビット数kを求め(ステップS6)、ビット数kからAのブロック規模を判断する(ステップS7)。
Aのブロック規模が精度内であれば(ステップS7;No)、m個のAに対するnを法とする乗算を行い、その結果から求める剰余Rを得る(ステップS8)。
また、Aのブロック規模が精度外であれば(ステップS7;Yes)、データが大きすぎてオーバーフローを起こしてしまうので(ステップS9)、Aのブロック規模を小さくすべく、演算処理を終了する(ステップS10)。
一方、Nが2以上であれば(ステップS4;No)、mをqN+aに分解し(ステップS11)、aが0でないときは(ステップS12;Yes)、Aaを求め(ステップS13)、Aaをnで割った余りr1を求める(ステップS14)。
次にq=0であるか否かを判別し(ステップS15)、q=0ならば(ステップS15;Yes)r1が求める剰余Rである(ステップS16)。
ステップS15の判別において、q≠0であるならば(ステップS15;No)、ANを求め(ステップS17)、ANをnで割った剰余rを求める(ステップS18)。
そして剰余rをr00に代入し(ステップS19)、q個のANに対するnを法とする乗算を行い(ステップS20)、a≠0であるならば(ステップS21;No)、得られた乗算結果rとr1との積をnで割った剰余を求め(ステップS22)、求めた剰余rを最終的に求めるべき剰余Rとし(ステップS23)、剰余Rを剰余データとして出力する(ステップS24)。
このようにRSAに基づいた公開鍵暗号方式の暗号化及び復号処理(剰余演算処理)は複雑であり、特に暗号/復号システムにおいては、前述したように、nは512ビット以上と高精度であるため、除算の分散処理が不可能であれば、本第1実施例のようなハードウェア化は困難であり、上記処理をソフトウェアで処理することとなり、そのプログラミングも簡単ではないので、多くの演算時間を要することは容易に推察できる。
[4]公開鍵暗号/復号システムの構成
図4は、第2実施例の公開鍵暗号/復号システムのブロック図である。
公開鍵暗号/復号システム11は、大別すると、パーソナルコンピュータシステム12と、パーソナルコンピュータシステム12の入出力インターフェース17を介して接続されたべき乗剰余演算装置13と、を備えて構成されている。
パーソナルコンピュータシステム12は、各種データを入力するためのキーボード15と、各種表示を行うためのディスプレイ16と、入出力インターフェース17及び図示しないハードディスクなどの外部記憶装置を内蔵したパーソナルコンピュータ本体18と、各種プリントアウトを行うプリンタ19と、を備えて構成されている。
べき乗剰余演算装置13は、大別すると図5に示すように、所定の精度範囲内で任意精度の除算を行う任意精度除算装置20と、所定の精度範囲内で任意精度の乗算を行う任意精度乗算装置21とを備え、これらはバス22により接続される。
[5]任意精度除算装置及び任意精度乗算装置の構成
任意精度除算装置20は、図6に示すように、被除数データ及び除数データがそれぞれ入力される8ビット精度の第1除算器25−1〜第H除算器25−H(H:2以上の整数)のH個の除算器と、精度情報データに基づいて対応する8ビット精度の除算器をカスケード接続するための第1スイッチSW1〜第(H−1)スイッチSW(H−1)の(H−1)個のスイッチと、を備えて構成されており、第1スイッチ〜第(H−1)スイッチSW1〜SW(H−1)は、精度情報データに基づいて必要な数の除算器をカスケード接続することとなる。
なお、これらスイッチSW1〜SW(H−1)も、図2の場合と同様に説明の便宜上図示したものである。また、各8ビット除算器の間及び各8ビット除算器への入出力を、全て光信号で伝送するように構成することもできる。
より具体的には、8ビット精度の除算を行う場合には、全てのスイッチSW1〜SW(H−1)が開状態であり、第1除算器25−1のみが動作し、16ビット精度の除算を行う場合には、第1スイッチSW1のみが閉状態となり、第1除算器25−1及び第2除算器25−2が動作し、(8×J)精度の除算を行う場合には(J:2以上(H−1)以下の整数)、第1スイッチSW1〜第(J−1)スイッチSW(J−1)が全て閉状態となり第1除算器25−1〜第J除算器25−Jが動作することとなる。
そして、被除数データ及び除数データは、下位8ビットから8ビット単位で第1除算器25−1から第J除算器に順次与えられることとなる。
同様に、複数の除算器を乗算精度2mビット(m:自然数で固定)、除算精度2 m+1 ビットでべき乗剰余演算を行う外部べき乗剰余演算ユニットとして構成し、被除数データ、除数データ及び精度情報データの入力信号ライン並びに商データ及び剰余データの出力信号ラインをカスケード接続するためのカスケード接続端子をそれぞれのべき乗剰余演算ユニットに設け、
x =2n/2m (ただし、nは自然数、xは自然数)
を満たすようにべき乗剰余演算ユニットをx個接続することにより最大2nビット精度の暗号化及び復号を行うための任意精度べき乗剰余演算装置を構成することが可能となる。
なお、任意精度乗算装置21は、任意精度除算装置20の8ビット除算器を8ビット乗算器に変更した構成とほぼ同様の構成であるので、その説明を省略する。また、図4に示すバス22を光伝送路とすれば、これら任意精度乗算装置21と任意精度除算装置20との間を、光信号により伝送することができる。
[6]除算器の構成
次に任意精度除算装置を構成している除算器の構成について説明する。
[6.1] 除算器のアルゴリズム
まず、除算器の説明に先立ち、除算器のアルゴリズムについて説明する。
除算に関しては、乗算ほどではないが、いろいろなアルゴリズムが考案されている。また、信号処理においては、除算は乗算ほど頻繁に用いられるわけではない。
しかしながら、信号の正規化、コンピュータ通信や情報ネットワークにおける秘匿技術としての暗号化/復号に、音声認識における特徴抽出において、周波数スペクトルを基本とする線形予測係数の演算(積和が70回、除算が12回)、フォールトトレラントシステムにおいてなどの例に見られるように、除算を必要とする場合、その実現は乗算ほど容易ではなく、従来においては、高精度で高速に結果を得るための有効な手段がなかった。
除算の実現方法としては、以下の4種類が知られている。
(1)変数xと1/x の関係を示すルックアップテーブル(変換表)をROM内に用意しておき、y/xなる除算を、y(1/X) なる乗算に置き換えて実行する「逆数ROM方式」。
(2)y/x なる除算を直接実行する代わりに、対数ROMによりxとyから logxとlogyを求め、それからz=logx−logyの減算を行い、最後に指数ROMによりexpzを求める「対数計算方式」。
(3)被除数に対してシフトと減算を試行錯誤的に繰り返す「減算シフト方式」。
(4)乗算を繰り返し実行しながら結果を求めるべき商の値に収束させていく「収束形除算方式」。
このうち、逆数ROM方式が最も高速であるが、高精度を要求するとルックアップテーブルを格納すべきROMの容量が指数的に大きくなる欠点がある。従って、信号処理においては比較的粗い精度でよい場合に限られて使用されている。
次の対数計算方式も対数ROMの容量の制約からくる精度上の検討を十分に行ったうえで用いる必要があり、その意味でも以上の二つのROM方式はどのような場合にも用い得る汎用的な方法とは言い難い。
以上の4方式のうち、どのような精度に対しても除算可能な方式は減算シフト方式と収束形除算方式であるといえる。
収束形除算方式は被除数と除数を分数の分子と分母とみなし、分母が1に近づくまで分子分母に同一の収束係数を乗じていき、得られた最終的な分子の値が商になる。あるいは、除数の逆数を収束アルゴリズムによって求め、商はこの逆数と被除数の積から求めることができる。
しかし、複数チップ(モジュール)接続による除算能力の拡張機能を考慮した場合、近似演算による収束が行われる収束形除算方式では部分剰余の伝搬がさらに近似されることになり、誤差が大きくなってしまうという問題点が生じる。
この点、減算シフト方式ではそのような問題はなく、任意精度で除算可能であり、複数チップ(モジュール)接続による除算能力の拡張機能をも考慮した場合、最も適しているといえる。
次に、除算能力の拡張機能について考察する。
例えば、
567890/1234
の除算を実行するには図7Aに示すように、被除数と除数の減算が繰り返し実行される。
ここで、除数2けたの除算器(または除算モジュール)を用いて、除数を4けたに拡張した使用を考えてみると、図7B及び図7Cに示すように、除数1234を除数12と除数34とに分割するとともに、被除数567890を被除数567及び被除数890とに分割し、12と34の除数で分散処理した結果から除算能力の拡張した解(図7A相当)を得るという乗算器のような使い方(乗算においては可能)はできない。
従って、除算は使用可能けた数の範囲内で有効であり、1ビットでも除算能力を超えた使用に対しては、たとえメモリーや外部回路を用いても容易には対処できない。
また、除算においては通常丸め操作を行うが、暗号/復号システムにおいては、このような使用はできない。
以上のような理由によって、従来においては、ハードウェア化された除算器は少なく処理速度の遅いソフトウェアで対処していた。
ところで、本除算器のアルゴリズムは被除数に対してシフトと減算を試行錯誤的に繰り返す「減算シフト方式」に基づいたもので、その一般的な基本式は以下の漸化式で表される。
が求める商Qであり、最終剰余Rは2-nR(n)である。
各演算工程における商のディジットqj+1は2RとDの大小関係で以下のように定まる。
2R(j)<Dの場合、qj+1=0
2R(j)≧Dの場合、qj+1=1
つまり、まず仮の部分剰余R(j+1)(=2R(j)−D)を求めて、部分剰余R(j+1)が正または“0″ならばqj+1=1が求まり、真の部分剰余とする。もし、部分剰余R(j+1)が負ならば、qj+1=0で仮の部分剰余の減算を取消す。
以上の操作は、R(n)をnディジットだけ右にシフトすることから求まることを先の漸化式は意味している。
しかし、以上の漸化式は単にnディジットの商に対してのものである。除算データを各モジュールに分散した場合、各モジュールの被除数と除数はそれぞれ連結した状態で行われなければならない。
一般に、除数に対して被除数のけた数が多いため、分散した除数を連結して被除数との減算を行うことは、除数の連結とそれに伴う減算器やラッチ回路の連結などにより容易には実現できなかった。
これに対し、本実施例の除算器は、分散した除数と減算器は各モジュール内に固定し、被除数を連結してシフトと減算を行うようにしてモジュールの分散化を可能にしている。
この場合、筆算とは逆に除数を固定した減算なので被除数は左シフトになる。
例えば、簡単のために1モジュールが4ビット除算器について2モジュールに拡張したときの各ステップの動作を図8に示す。
2モジュールに分散した除数は減算器とラッチ回路を伴ってそのけた借り用端子BOとBNで連結される。被除数はQIとQO端子により連結されて初段のRIに戻される。除数部分は各モジュールに固定で、被除数が必要なけた数だけ左シフトと減算を繰返して演算を終了する。
商qと部分剰余は各減算処理における減算結果によって決まるものである。なお、演算は8ビットの減算器の場合、7ステップで終了し、8ステップ目では商q0の格納だけになる。この結果、後述の被除数ラッチ・シフト回路32(図9参照)に商データQが、後述の部分剰余のシフト回路34(図9参照)には剰余データが得られることとなる。
[6.2] 除算器の概要構成
図9に第1除算器25−1を例として除算器の概要構成ブロック図を示す。
第1除算器25−1は、入力された8ビット除数データをラッチする除数ラッチ回路31と、被除数データをラッチし、シフト操作を行うための被除数ラッチ・シフト回路32と、被除数データに対応する被除数から除数データに対応する除数を減算する並列減算回路33と、部分剰余データを格納し、シフト操作を行う部分剰余シフト回路34と、除算に必要なシフトパルスを発生する制御回路35と、を備えて構成されている。
[6.3] 除算器の動作
次に除算器の動作について図10を参照して説明する。
時刻t1において、除算開始パルス/STAT(/はロウアクティブを示す。以下、同様)が立ち下がると、除算開始パルス/STATの次の立ち上がり(時刻t2)までの間に第1除算器25−1は初期化される。
次に時刻t2以降で基準クロック信号CKが最初に立ち下がる時刻t3において被除数データ(8ビット)が被除数ラッチ・シフト回路32にラッチされ、除数データ(8ビット)が除数ラッチ回路31にラッチされる。
そして、時刻t4において、基準クロック信号CKが次に立上ると、並列減算回路33において、被除数と除数の減算が行われ、減算結果が正または“0″ならば、切換スイッチ36は並列減算回路33側となり、並列減算回路33の減算結果が負であるならば切換スイッチ36は、部分剰余シフト回路34側となる。
この結果、時刻t5において、部分剰余シフト回路34の部分剰余データがシフトされるとともに、並列減算回路33の減算結果である部分剰余データあるいは減算前に部分剰余シフト回路34に保持されていた減算前の部分剰余データが部分剰余シフト回路34にラッチされる。
同様に時刻t5〜時刻t6の間に被除数が必要な回数だけ、すなわち、全8ビットであるから残りの7ビットに対応する7回の被除数と除数の減算処理及び部分剰余シフト回路のシフト処理及びラッチ処理が繰り返される。
そして時刻t6において、基準クロック信号CKが立ち下がると、除算終了信号/DENDが“L″レベルとなり、上位桁の減算器(ここでは、第2減算器25−2)が同様に動作を開始することとなる。
そして、さらに上位桁の減算器25−3〜25−Jにおいて同様の除算動作が行われて、最後の減算器25−Jの除算終了信号/DENDが第1減算器25−1に出力されると減算処理を終了することとなる。
これらの結果、各減算器25−1〜25−Jの被除数ラッチ・シフト回路32には商データ(8ビット)が求められ、部分剰余シフト回路34には剰余データがそれぞれ求められることとなる。
以上の動作はすべて制御回路35が出力するシフトパルスSLAに同期して行われるため、多くの減算器をカスケード接続して除算能力を拡張した際にも伝搬遅延によるタイミング的な誤動作を生じることはない。
[7] 暗号化処理及び復号処理(剰余演算処理)
RSAに基づいた公開鍵暗号方式の暗号化及び復号処理(剰余演算処理)について図11を参照して説明する。
AN≡A mod n
の剰余演算では本暗号/復号システムにおいてA、N、nの各値を入力する(ステップS31)。
次にAをA1に代入し(ステップS32)、演算用変数kの初期値を1とする(ステップS33)。
そして、演算用変数kがN未満である間、すなわち、次式
k<N
を満たしている間(ステップS39)は、以下のステップS34〜ステップS38の処理を繰り返す。
まず、N=1であるか否かを判別する(ステップS34)。
ステップS34の判別において、N=1である場合には、A1をA0に代入する(ステップS35)。
また、N≠1である場合には、A1及びAの乗算を行い、乗算結果をA0に代入する(ステップS36)
そして、
A0≡A mod n
を求め(ステップS37)、演算用変数kをk+1とする(ステップS38)。
そして、演算用変数kがN以上となった場合に、得られた剰余Aが求める剰余となる。このとき、乗算の最大精度はAのビット数の2倍である。
このように、本第1実施例のべき乗剰余演算装置を用いれば、図16の従来の処理と比較して処理を非常に単純化することができる。
[8] べき乗剰余演算装置のゲート数
ここで、べき乗剰余演算装置を構成する際に必要とされるゲート数について説明する。
周知のように暗号/復号システムにおける剰余演算では極めて高精度であることから、1モジュールの乗算器の乗算精度を16ビット、1モジュールの除算器の除算精度を32ビットとして、1ユニットにそれぞれ4モジュールを内蔵(乗算16〜64ビット、除算32〜128ビットの可変精度)した場合のゲート数を図12に示す。
図12に示すように、1モジュールの32ビット精度除算器を構成するためには、1700ゲート必要であり、べき乗剰余演算装置1ユニット中の任意精度除算装置では、
1700×4=6800[ゲート]
が必要となる。
また、図12に示すように、1モジュールの16ビット精度乗算器を構成するためには、1032ゲート必要であり、べき乗剰余演算装置1ユニット中の任意精度乗算装置では、
1032×4=4128[ゲート]
が必要となる。
従って、べき乗剰余演算装置に必要とされるゲート数は、
6800+4128=10928[ゲート]
であり、制御回路及び動的な接続回路を含めて一つのべき乗剰余演算装置を12000[ゲート]程度でワンチップ化することが可能となる。
なお、512ビット精度では8ユニット、1024ビット精度では16ユニットをそれぞれ必要とする。
[9] 演算時間
次に上記べき乗剰余演算装置を用いて、
ab≡M mod c
を演算する場合に要する演算時間ついて図13A〜図13C、図14及び図15を参照して説明する。
指数bがnビットの場合、べき乗剰余演算に必要な演算処理は、図13Aに示すように、(1)〜(4)の4段階の乗算処理及び除算処理に分解することができる。この場合において、(1)及び(3)の乗算は、図13Bのiビット乗算器21にて実施され、(2)及び(4)の除算は、図13Bの2iビット除算器20にて実施される。(1)及び(3)の乗算処理における乗算精度は、最大cのビット数i以下となり、その積は最大でcのビット数iの2倍精度となる。また、(2)及び(4)の除算(剰余演算)処理における除算精度は、最大でcのビット数iの2倍の精度となる。このiビット乗算器21と2iビット除算器20とは、図5の任意精度乗算装置21と任意精度除算装置20と同様の構成を有する。
なお、図13Bにおいて、入力される値はa,b,cであり、Mが格納されるレジスタには、当初のMは1に初期化されている。そして、M←M× a mod cの演算(b=0)では、a,Mがiビット乗算器21に入力され、その結果をcで割った余りをMとして格納する。また、a←a2mod cの演算(b=1)では、iビット乗算器21に2つのaを入力することによりa2が求められる。
ここで、図13A中の(1)ではr12,r22,r33…の演算がiビット乗算器21で実施され、図13A中の(2)ではr12,r22,…をそれぞれcで割った余りがr2,r3…(計算途中のM)として、2iビット除算器20で求められる。図13A中の(3)では、k1=r1×r2、k2=RO×r3、k3=R1×r4…の乗算がiビット乗算器21で実施される。また、図13A中の(4)では、K1,K2,…をcで割った余りがそれぞれR0,R1,…(計算途中のM)として、2iビット除算器20で求められ、最終段階でkn−2をcで割った余りRn−3が求めるべき値Mとなる。
この計算例の実例を図13Cに示す。図13Cは、18619≡M mod 377を復号してM=17を求めた計算手順を示している。
図13Cにおいて、(2)の剰余の値「289」,「204」,「146」,「204」は、1862,2892,2042,1462をそれぞれ377で割った余りとして求められる。また、(3)の積の値は、53754=186×289,44880=220×204として求められる。さらに、(4)のM=17は、44880を377で割った余りとして求められる。
ここで、図13Aのa、b、cが全て1024ビットである場合の最大演算時間を必要な基準クロック数で表すと、図14に示すように、(1)の乗算時間に1047552[クロック]、(2)の剰余演算時間に2095104[クロック]、(3)の乗算時間に1047552[クロック]、(4)の剰余演算時間に2095104[クロック]必要であり、合計で6285312[クロック]必要となる。
この結果、基準クロック周波数を66[MHz]として演算を行った場合、演算時間は、95.2[msec]となる。
同様に、a及びbが1024ビットであり、指数bのビット数を512ビット及び9ビットとした場合の演算時間は、図15に示すように、それぞれ47.6[msec]、0.7[msec]となる。ただし、これらの演算時間は、毎回の積及び剰余を最大精度とした時の算出結果であるため、実際には、これらの値よりも小さな値となる。
以上の説明のように第2実施例によれば、乗算精度2mビット(m:自然数)、除算精度2 m+1 ビットでべき乗剰余演算を行うべき乗剰余演算ユニットを構成し、
x=2n/2m (ただし、nは自然数、xは自然数)
を満たすようにべき乗剰余演算ユニットをx個接続することにより、2nビット精度の暗号化及び復号を行うことが可能となる。このため、容易にシステムのハードウェア的な拡張を図ることが可能となっている。
なお、上記xの関係式はべき乗剰余演算ユニットの最大演算精度が要求される演算精度と等しい場合であったが、
x>2n/2m (ただし、nは自然数、xは自然数)
を満たすようにべき乗剰余演算ユニットをx個接続することによっても演算能力に余裕が生まれるだけで、同様の効果が得られる。
さらに、べき乗剰余演算ユニットで演算可能なビット精度2nよりも低いビット精度2n1(n1は自然数、かつ、n1≦n)が要求された場合には、接続されているx個のべき乗剰余演算ユニットのうち、
x≧x1≧2n1/2m (ただし、x1は自然数)
を満たすようにx1個のべき乗剰余演算ユニットをカスケード接続するように構成すれば、演算に不要なべき乗剰余演算ユニットには電力を供給する必要がないので、消費電力の適正化が図れるととともに、演算処理時間の適正化が図れることとなる。
さらにべき乗剰余演算ユニットを、カスケード接続可能なy個の乗算精度2 m /y、y個の除算精度2 m+1 /yでべき乗剰余演算を行うべき乗剰余演算モジュールで構成することができる。この場合、接続されているべき乗剰余演算モジュールのうち、2n1ビット精度の暗号化及び復号を行うのに十分な個数y1≧2n1/(2 m /y)のべき乗剰余演算モジュールをカスケード接続するようにすれば、さらなる消費電力の適正化及び演算処理時間の適正化が図れることとなる。
また、第2実施例によれば、除算の分散処理を実現した任意精度除算器を128ビット精度とし、任意精度乗算器を64ビット精度でワンチップ化しても約1万2千ゲート規模で済み、その乗除算ユニット(チップ)を8〜16ユニットカスケード接続することにより512〜1024ビット精度に容易に対応可能である。同様にさらなる高精度化も容易に実現することができる。
そして、演算は精度に比例したクロック数(例えば、512ビット精度では512クロック)で実行し、ボード上に完全なハードウェアで構築できるので高速化が可能である。
また、各パーソナルコンピュータシステム毎に暗号/復号システムを容易に構築することができ、情報セキュリティの意味からも望ましい暗号/復号システムを実現することが可能である。
また、上記説明においては、最大でx個のべき乗剰余演算ユニットが設けられている場合について説明したが、例えば、べき乗剰余演算ユニットをTFT(Thin Film Transistor)で構成した場合には、欠損などにより不良トランジスタが発生することにより1個のべき乗剰余演算ユニットが使用できないだけで、べき乗剰余演算ユニット全体が使用できなくなり、実効的な歩留まり率が低下することとなり、製造コストの上昇を招くこととなる。
そこで、べき乗剰余演算ユニットの歩留まり率Aに対して、少なくともK個(x≧K/A)のべき乗剰余演算ユニットを予め用意し、K個のべき乗剰余演算ユニットのうち良品べき乗剰余演算ユニットをx個接続するように冗長構成を採用することが好ましい。こうすると、べき乗剰余演算モジュールに不良が発生した場合でも、冗長べき乗剰余演算モジュールに接続切換を行うことにより、そのべき乗剰余演算ユニットは良品として扱うことが可能となる。
さらにこのことは、べき乗剰余演算ユニットばかりでなく、べき乗剰余演算ユニットを構成するべき乗剰余演算モジュールについても同じことが言える。すなわち、べき乗剰余演算モジュールの歩留まり率A′に対して、各べき乗剰余演算ユニット中に少なくともL個(y≧L/A′)のべき乗剰余演算モジュールを予め用意し、L個のべき乗剰余演算モジュールのうち良品べき乗剰余演算モジュールをy個接続するように冗長構成を採用する。こうすると、べき乗剰余演算モジュールに不良が発生した場合でも、冗長べき乗剰余演算モジュールに接続切換を行うことにより、そのべき乗剰余演算ユニットは良品として扱うことが可能となる。
以上の説明においては、公開鍵暗号方式のRSA暗号の場合について説明したが、楕円曲線暗号にも同様に適用が可能である。
(第3実施例)
上記第2実施例においては、全てのべき乗剰余演算装置をパーソナルコンピュータシステムの外部に設けていたが、この第3実施例は、べき乗剰余演算装置の一部を予めパーソナルコンピュータシステムの内部に設け、精度拡張のためのべき乗剰余演算ユニット用拡張スロットをパーソナルコンピュータシステムに予め設け、メモリの拡張をメモリ拡張スロットにより行う場合と同様に、べき乗剰余演算ユニットを拡張スロットに装着することにより容易に演算精度拡張を行えるようにした実施例である。
より詳細には、図4に示すパーソナルコンピュータシステム11のメインボード上に予め、乗算精度2m1ビット(m1:自然数で固定)、除算精度2 m1+1 ビットでべき乗剰余演算を行う内部べき乗剰余演算ユニットと、乗算精度2m2ビット(m2:自然数で固定)、除算精度2 m2+1 ビットでべき乗剰余演算を行う外部べき乗剰余演算ユニットをカスケード接続するためのカスケード接続端子としてのべき乗剰余演算ユニット用拡張スロットを設けておく。そして、
z≧(2n−2m1)/2m2(n,zは自然数で固定)
を満たすように、べき乗剰余演算ユニット用拡張スロットに外部べき乗剰余演算ユニットを接続する。この結果、2nビット精度の暗号化及び復号を容易に行うことが可能となる。この外部べき乗剰余演算ユニットに関しても、第2実施例にて説明した各種の変更が可能である。
以上の実施例においては、パーソナルコンピュータにより本発明を実現する場合についてのみ説明したが、ワークステーションや、各種計測機器、家電製品などの機器への組込型コンピュータについても同様に適用が可能である。
(第4実施例)
次に、第1〜第3実施例の中で説明した1チップ内での光伝送について説明する。
(マイクロコンピュータの概要)
図17は、本発明を適用した情報処理システムとしてのマイクロコンピュータ100の一例を示すブロック図である。
図17において、マイクロコンピュータ100は、下記の各種機能ユニットを含んでいる。すなわち、CPU(中央処理ユニット)102、ROM(リード・オンリー・メモリ)104、キャッシュメモリとしてのRAM(ランダム・アクセス・メモリ)106、高周波発振回路108、低周波発振回路110、リセット回路112、プリスケーラ114、16ビットプログラマブルタイマ116や8ビットプログラマブルタイマ118やクロックタイマ120などのタイマ回路、インテリジェントDMAC(ダイレクト・メモリ・アクセス・コントローラ)122や高速DMAC124などのデータ転送制御回路、割り込みコントローラ126、シリアルインターフェース128、BCU(バス・コントロール・ユニット)130、A/D(アナログ/デジタル)変換器132やD/A(デジタル/アナログ)変換器134などのアナログインターフェース回路、入力ポート136や出力ポート138やI/O(入力/出力)ポート140などのI/O回路が、マイクロコンピュータ100内に配置されている。さらに、マイクロコンピュータ100は、CPU102と他の機能ユニット104〜140と間を接続するデータバス142やアドレスバス144などのバスライン146や、各種端子148を含んでいる。これらは、一枚の半導体基板上に形成されている。なお、図17ではデータバス142とアドレスバス144とを分離しているが、データとアドレスとを時分割で伝送するようにすれば、データ/アドレスバスとしてデータとアドレスとを1本のラインで兼用して伝送させてもよい。
また、図17に示すバスライン146には、図2に示す内部バス4が接続され、上述した各構成はマイクロプログラマブルプロセットユニット3にも接続されている。
(各種機能ユニット間での光信号の送受信のための構成)
本実施例の特徴は、データバス142、アドレスバス144、内部バス4を伝送される信号を光信号としたことである。すなわち、多チャンネルのデータ例えば32ビットのデータは、それぞれ波長の異なる光信号として、光伝送媒体にて形成されたデータバス142中を同時に光伝送される。アドレス信号も同様に、波長の異なる多チャンネルの光信号として、アドレスバス144を同時に光伝送される。なお、データバス142及びアドレスバス144が1本の光伝送媒体にて兼用される場合には、光信号のデータ及びアドレスは時分割にて伝送される。
ここで、上述の機能ユニット102〜140は全て、従来通り、多チャンネルの電気信号にて各種機能を実現するために動作し、半導体素子等にて形成されている。このため、各種の機能ユニット102〜140は、バスライン146(データバス142及び/又はアドレスバス144)を介して入力される多チャンネルの電気信号を多チャンネルの光信号に変換する信号入力部と、多チャンネルの電気信号を多チャンネルの光信号に変換してバスライン146に出力させる信号出力部とのいずれか一方または双方を有する。
図18は、マイクロコンピュータ100が形成された基板200の一部を概略的に示す図である。図18には、基板200上に形成された第1の機能ユニット210(機能ユニット102〜140のいずれか一つ)より第2の機能ユニット220(機能ユニット102〜140の他の一つ)に向けて、バスライン146を介して信号を送出するための構成が図示されている。
第1の機能ユニット210は、電気回路領域212と、その電気回路領域212からの出力信号(多チャンネルの電気信号)を伝送する配線部214と、多チャンネルの電気信号に基づいてそれぞれ波長の異なる多チャンネルの光信号を発光出力する信号出力部としての発光部216とを有する。
第2の機能ユニット220は、多チャンネルの光信号を多チャンネルの電気信号に変換する信号入力部としての受光部222と、多チャンネルの電気信号を増幅する増幅回路224と、その電気信号を伝送する配線部226と、電気回路領域228とを有する。なお、増幅回路224は、受光部222からの電気信号の電圧レベルを、第2の機能ユニット220にて必要な電圧レベルまでシフトさせるレベルシフタとして機能し、必要に応じて設けられる。
発光部216と受光部222との間に形成されるバスライン146は、光伝送媒体である導波路230として構成され、多チャンネルの光信号を同時に伝送する。
図18に示す発光部216は多チャンネルの電気信号を多チャンネルの光信号に変換するために、多チャンネルの数と等しい数の発光素子を有する。同様に、受光部222も多チャンネル分の受光素子を有する。
なお、第1,第2の機能ユニット210,220間で双方向の信号伝送を行うこともできる。この場合、第1の機能ユニット210は、図18に示す光伝送媒体としての導波路230と光学的に接続された受光部と、該受光部からの電気信号を増幅する増幅器とを有する。一方、第2の機能ユニット220は、導波路230と光学的に接続された発光部222を有する。
図19は、図18に示す発光部216のうちの一部である3つの発光素子216A〜216C及び導波路230の一例を示す断面図である。図19では、共通の導波路230上に3チャンネル分の発光素子216A〜216Cが形成されている状態が図示されている。
図19において、導波路230は、例えば、下層のSiO2層240と上層のSiO2層242との間にコアとなる透明電極例えばITO(インジウム・ティン・オキサイド)層244を設けて構成される。なお、コアとなるITO層244の全ての外表面は、SiO2層240またはSiO2層242により覆われて光漏れが防止されている。
発光素子216A〜216Cは、後述するように一部の層の組成、材料等が異なる点を除いて同一の構成を有するため、以下発光素子216Aについて説明する。発光素子216Aは、上層のSiO2層242上に、各チャンネルの発光箇所を仕切るためのバンク250を有する。このバンク250内には、ITO層252、発光層254が順次積層され、発光層254及びバンク250の一部を覆って金属電極(例えばAl−Li)256が形成されている。なお、ITO層252の下層に、狭帯域の波長を通過させる光学フィルターを形成してもよい。このようにして、導波路230上には、バンク250により光学的に隔絶された複数の発光素子216A〜216Cなどが形成される。
発光素子216Aの発光層254は、例えば有機EL(エレクトロルミネッセンス)にて形成される。この有機ELは、例えば図20に示すように、インクジエットノズル258よりITO層252上に吐出され、例えば約0.1μmの膜厚にて形成される。そして、有機ELの材料を選択することで、あるチャンネルの発光素子216Aの発光層254から発光される光の波長を、他の全てのチャンネルの発光素子216B,216C等の発光層254の発光波長と異ならせている。
発光層254として有機ELを用いると、発光波長の選択の自由度が大きく、事実上特定の材料を選択したり、材料を復号することで、あらゆる波長の選択が可能である。
有機発光材料としては、発光材料中の励起子のエネルギーが有機物質の禁止帯幅に対応するHOMO(最高被占準位)−LUMO(最低空準位)間のエネルギー差に相当するものが選択される。例えば、低分子、高分子、特に主鎖に共役系の発達した共役高分子、導電性分子や色素分子が選択される。
有機発光材料として、低分子有機材料を用いる場合、例えば青色発光させるには、アントラセン、PPCP、Zn(OXZ)2、ジスチルベンゼン(DSB)、その誘導体(PESB)等が用いられる。また、例えば赤色発光させるには、BPPC、ベリレン、DCMなどが用いられる。
また、有機発光材料として高分子有機材料を用いる場合であって、例えば赤色発光させるためには、PATなど、オレンジ色発光させるにはMEH−PPVなど、青色発光させるにはPDAF、FP−PPP、RO−PPP、PPPなど、紫色発光させるにはPMPSなどが用いられる。
その他、有機発光材料として、PPV、RO−PPV、CN−PPV、PdphQX、PQX、PVK(ポリ(N−ビニルカルバゾール))、PPS、PNPS、PBPSなどが用いられる。
特にPVKは、Eu錯体などキャリア輸送能力の劣る色素分子などのドーパントインクの混合濃度や吐出回数を制御することで発振波長(発光色)を変えることができる。例えば、PVKからなる有機発光材料に蛍光色素をドープすると発光色を調整することができる。
また、PVKにローダミンBやDCMをドープ可能に構成する場合には、発光色を緑色から赤まで任意に変えることができる。
また、光の波長(ピーク波長や波長帯域など)は、図19のITO層252の下層に追加配置される光学フィルターによってある程度調整可能である。
白色光のような波長帯域の広い光が発光され、その波長を調整する場合は、上記光学フィルターとして、通常の吸収型の光学カラーフィルターを用いることができ、これにより所望の色(波長)の光のみを通過させて光信号とすることができる。
また、ITO層252の下層に追加配置される光学フィルタとしては、分布反射型多層膜ミラー(DBRミラー)を用いることができる。このDBRミラーは、屈折率の異なる複数の薄膜を積層したもの、特に屈折率の異なる2種類の薄膜で構成されたペアを複数有するものである。この薄膜を構成する成分としては、例えば半導体材料や誘電体材料などが挙げられ、これらのうちでは誘電体材料が好ましい。これらは、通常の真空成膜法あるいは液相成膜法を用いて形成することができる。また、誘電体材料は、有機溶媒に可溶な有機化合物を出発原料として用いることができ、この場合図20のインクジェット方式によるパターン形成の適用が可能となる。
発光素子216A〜216Cは、垂直共振器型の面発光レーザとすることもできる。この面発光レーザは、それぞれ反射率が異なる2つのミラー例えば分布反射型多層膜(DBR)ミラー(図19の例では下層のミラーの反射率が低い)の間に、クラッド層及び活性層(量子井戸構造が好ましい)を交互に積層させて形成し、上下各層のミラーと上下各層の電極(図19の例では下部電極はITOなどの透明電極である)との間にはそれぞれコンタクト層が配置されて形成される。
なお、この種の面発光レーザの詳細は、本願出願人の先の出願(特願平10−2012415、特願平10−201244、特開平7−198203など)に開示されているので、その詳細な説明は省略する。
各チャンネルの面発光レーザの発光波長も、エピタキシャル成長される材料例えばGaAlAsの組成を選択することで変更可能であり、図20のインクジェット方式によるパターン形成によって、組成の異なる複数の面発光レーザを導波路230上に実装することができる。
発光素子216Aのさらに他の例として、図22に示すような端面発光レーザ270を用いることもできる。この端面発光レーザ270の端面272から出射された光274は、ITOなどの光伝送媒体にて形成されたウェーブガイド276内を伝搬される。各チャンネルの端面発光レーザの発光波長も、その構成材料の組成を選択することで変更可能である。
図21は、図19に示す導波路230の延長線上に設けられた3チャンネル分の受光素子222A〜222Cの一例を示している。この受光素子222A〜222Cも後述する一部の層の組成、材料等が異なる点を除いて共通の構成を有するため、以下受光素子222Aについて説明する。この受光素子222Aは、導波路230の上層のSiO2層242が除去された領域のITO層244上に、光学フィルター262と、透明電極としてのITO層263と、第1導電型半導体層例えばn型GaAlAs層264と、第2導電型半導体層例えばp型GaAlAs層266と、金属電極268とを有する。
ここで、第1,第2導電型半導体層264,266はPINフォトダイオードを構成する。このPINフォトダイオードを構成する他の例として、p型a−SiC(p型半導体)と、i型a−Si層と、n型a−SiC層とを有するものでもよい。このとき、金属電極268として、Al−Si−Cu層を用いることができる。
光学フィルター262は、例えばX1nm以上の波長の光を通過させる第1の光学フィルターと、X2(>X1)nm以下の波長の光を通過させる第2の光学フィルターとの少なくとも2層を有し、X1〜X2nmの波長の光を通過させる狭帯域光フィルターとして機能する。なお、この光学フィルター262の構成を、図19のITO層252の下層に追加配置される光学フィルターに適用することもできる。逆に、図19のITO層252の下層に追加配置される光学フィルターとして説明した材料を、光学フィルター262に用いることもできる。
上記の構造により、導波路230を伝搬され、光学フィルター262を通過した特定波長の光は、第1,第2導電型半導体層264,266の間の界面に形成される空乏層にて光−電流変換され、この電気信号を電極263,268を介して取り出すことができる。
ところで、光学フィルター262は、その構成材料の選択により、通過される光の波長を変更できる。また、第1,第2導電型半導体層264,268などにて構成されるフォトダイオードも、構成材料例えばGaAlAsの組成を選択することで、検出できる光の波長を変更できる。これにより、あるチャンネルの受光素子222Aにて検出される光の波長を、他の全てのチャンネルの受光素子222B,222Cなどでの検出波長と異ならせている。なお、光学フィルタ262、第1,第2導電型半導体層264,268は、図20に示すインクジェットノズル258を用いた層形成方法により形成することができる。あるいは、検出波長の異なる受光素子222A,222B,222Cを、導波路230上に実装してもよい。
(マイクロコンピュータの動作説明)
図17に示すCPU102が例えばキャッシュメモリであるRAM106よりデータを読み込む場合には、CPU102よりRAM106を選択するチップイネーブルまたはチップセレクト信号、さらには読み出しアドレス信号などが、それぞれ多チャンネルの電気信号として出力される。
ここで、図18に示す第1の機能回路210がCPU102とすると、この多チャンネルの電気信号は図18の電気回路領域212より出力される。この多チャンネルの電気信号は配線部214を介して発光部216に入力される。発光部216を構成する各々の発光素子は、図19に示す金属電極256に各チャンネルの電気信号の一つが入力され、それに基づいて発振(発光)制御される発光層254にて各チャンネル固有の波長の光信号が発光される。これにより、各チャンネル毎に発光制御された光信号が各チャンネルの発光層254より発光され、ITO層252を介して導波路230に入射される。導波路230では、図19に示すようにコアとなるITO層244を光が伝搬される。
図18の第2の機能ユニット220をRAM106とすると、その受光部222に、導波路230を伝搬された光信号が入射される。ここで、図21に示すように、受光部を構成する各々の受光素子222A〜222Cは、それぞれ異なる波長の光を通過させる光学フィルタ262を有するので、多チャンネル分の数だけ配置された各々の受光素子222A〜222Cには、各チャンネルに対応する波長の光のみがそれぞれ入射される。さらに、各々の受光素子222A〜222Cは、各々の光学フィルタ262を通過した波長の光を検出するように構成されているため、各チャンネル毎に電気信号を出力することができる。
その後は、従来のLSIなどと同様にRAM106が電気的に駆動され、必要なデータがRAM106より読み出される。RAM106より読み出された電気信号は、図18では省略した第2の機能ユニット220側の発光部にて光信号に変換され、図18に示す導波路230を介して伝搬される。この光信号は、図18ではした第1の機能ユニット210側の受光部にて電気信号に変換され、増幅器を介してCPU102に供給される。
このように、情報処理システムとしてのマイクロコンピュータ100内の各機能ユニット間の信号の授受を光によって行うことにより、伝送速度のロスをほとんど無視することができる。従って、さらに高集積化が進んだとしても、伝送遅延を考慮した設計が不要となり、回路の構築設計が大幅に簡易化される。しかも、マイクロコンピュータ100内の各機能ユニット間の信号の授受を光によって行うことにより、マイクロコンピュータ100の発熱も低減させることができる。
なお、図17に示すマイクロコンピュータ100と、その周辺機器との間を光通信する構成とすることもできる。周辺機器としては、LCDやCRTなどの表示部、プリンタなどを挙げることができる。
この場合、図17に示す入力ポート136、出力ポート138、I/Oポート140として、バスライン146に対して多チャンネルの光信号を入出力する構成とすればよい。このとき、光信号を入出力しない時に通路を遮断する光シャッターを各ポートに設け、チップセレクト信号などにより周辺機器が指定された場合にのみ光シャッターを開放する構成としてもよい。
(第5実施例)
本発明の第5実施例は、従来の例えばLSIとして1チップ内に集積されていた複数の機能ユニットを、異なる半導体装置に振り分けて収容したシステムLSIに関する。
図23は、図17に示すマイクロコンピュータ100の一部の構成を第1の半導体装置300に搭載し、他の全部または一部を第2の半導体装置302に搭載し、第1,第2の半導体装置300,302を外部バスライン304にて接続したシステムLSIをベース基板306上に形成した状態を示している。外部バスライン304は図18で示した導波路230の他、例えば光ファイバーにて形成され、第1,第2の半導体装置300,302間は光により信号の授受が行われる。なお、第1の半導体装置300及び第2の半導体装置302内に複数の機能ユニットが配置される場合、各半導体装置内での機能ユニット間は第1実施例と同様にして光により信号の授受が行われる。
ここで、図23に示す第2の半導体装置302内に、図17に示すキャッシュメモリとしてのRAM106と、ROM104と、光伝送媒体で形成された内部バスライン310とが、第2の基板312上に少なくとも搭載されている。一方、図23に示す第2の半導体装置300内には、図17に示すCPU102、内部バスライン146の他、第2の半導体装置302に搭載されない機能ユニット108〜140が、第1の基板308上に搭載されているものとする。
この構成により、第1の半導体装置300内では、CPU102は内部バスライン146を介して、第1の半導体装置300内に搭載された他の機能ユニット108〜140との間で光信号によるデータ、アドレスの信号授受を行うことができる。一方、第1の半導体装置300内のCPU102と、第2の半導体装置302内のROM104,RAM106との間では、第1の半導体装置300内の内部バスライン146、外部バスライン304及び第2の半導体装置302内の内部バスライン310を介して、データ、アドレスの信号の授受を光信号を用いて行うことができる。
このような構成により、従来はCPU102と共に1チップ内に納める必要があった機能ユニットの少なくとも一つを、外部に取り出すことができ、しかも外部に取り出した機能ユニット104,106とCPU102との間の伝送遅延は無視することができる。このため、1チップ化される第1の半導体装置300の集積度を低くでき、歩留まりが向上する他、CPU102により直接アクセスされる機能ユニットとして例えばROM104,RAM106の外付けが可能になる。従って、1チップの基本設計思想を共通化させながら、外付け素子による機能の追加を自由に設計することが可能となる。なお、第2の半導体装置302に等される機能ユニットとしては、上述のようなメモリに限定されるものではない。
(第6実施例)
図24は、本発明の第6実施例を示す概略説明図である。図24に示すように、本実施例では発光部、受光部、導波路が、三次元に設置されている。図24において、基板400上には第1層〜第5層410a〜410eが形成されている。第5層410eにおける発光部413と受光部427の関係は、図18に示す水平な導波路230にて接続された発光部216と受光部222の関係と同じである。また、異なる層間における発光部413と受光部424の関係、発光部414と受光部422,425,426の関係、発光部412と受光部421との関係、発光部423と受光部411との関係は、導波路が垂直部分を有する点のみが異なり、基本的には図18に示す発光部216と受光部222の関係と同じである。
このデバイスを製造するには、下記のようにすることが好ましい。まず、第1層〜第5層410a〜410eをそれぞれ異なる第1〜第5基板上に形成する。次いで、第1層410aが形成される第1基板は、図24の基板400とすることができるが、もしそうでない場合には第1層410aを第1基板から剥離させ、図24の基板400上に転写する。以下、同様にして第2層410b〜410eをそれぞれ第2基板〜第5基板から剥離させ、位置合わせしながら図24に示す順序で基板400上に転写して積層する。この剥離、転写方法は本願出願人による特願平8−225643号などに開示されているので省略する。
このデバイスによれば、第4実施例と同様な効果を奏することができると共に、さらに高集積化を果たすことができる。
なお、本発明は上記実施例に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述した実施例では発光素子として有機EL、半導体レーザを例に挙げたが、これらに限らず無機EL、発光ダイオードなどで構成することもできる。さらに、受光素子としても、PINフォトダイオードに限らず、PNフォトダイオード、アバランシェフォトダイオードなどの各種ダイオード、フォトトランジスタ、フォトルミネッセンスなどを用いることができる。
また、本発明の情報処理システムであるマイクロコンピュータは図17の機能ユニットを有するものに限らず、用途に応じて種々の規模及び種類の機能ユニットを配置することができる。特に、第5実施例のようなシステムLSIの一つをマイクロコンピュータとして1チップ化した場合には、従来のマイクロコンピュータに必要であった機能ユニットの一部を省略することも可能である。1チップ内より省略された機能ユニットは、該1チップと外部バスラインを介して接続される他の半導体装置に搭載されればよい。
また、本発明のマイクロコンピュータあるいはシステムLSIが搭載される電子機器としては、従来よりマイクロコンピュータ化されたあらゆる機器を挙げることができ、特に消費電力の低下が求められる携帯用電子機器の他、情報通信機器、家電、業務用電子機器、工作機械、自動車部品等に好適に実施できる。
(第7実施例)
次に、第2実施例または第4実施例の構成を利用して実現される本発明の第7実施例に係るシステムLSIについて、図25を参照して説明する。
図25に示すシステムLSI500は、開発メーカが異なる複数の機能ブロック501,502,503…が搭載されたシステムLSIである。図25に示す3つの機能ブロック501,502,503は、それぞれA社,B社,C社が独自に開発したライブラリに基づいて設計されたものである。このシステムLSI500は、C社によって製造されたものと仮定する。C社は、機能ブロック501,502の焼き付けのための知的所有権に関する権利をA社及びB社から許諾され、このシステムLSIを製造する。
ここで、A社及びB社は、C社が製造するシステムLSIの数に基づいて、ライセンス料が計算されるとすると、C社から正確な製造数の申告を受ける必要があり、ライセンス料の管理はA〜C社の全てにとって煩雑となる。
この第7実施例は、この種の知的所有権に関するライセンス料の管理を、開発メーカ、製造メーカに負担をかけずに行うための改良に関する。
例えばA社の開発した機能ブロック501を利用するエンドユーザに、上述したRSA方式の復号鍵(プライベートキー)をライセンスによって開示する。そして、この第7実施例では、システムLSI500の利用者のうち、復号鍵を有するエンドユーザのみが機能ブロック501を利用できるようにしたものである。
以下、機能ブロック501の構成及び動作について説明する。
機能ブロック501は、四則演算機能エリアを有する。この四則演算機能エリアは、エンドユーザに与えられた所定の復号鍵が入力された際に、暗号化及び復号の少なくとも一方の演算を先ず実施する。機能ブロック501は、この演算が成立した時以降初めて、暗号化及び復号以外の一般の四則演算機能がイネーブルとされる。
具体的には、機能ブロック501は、図2に示すx個の演算ユニット7−1〜7−xを、四則演算機能ユニットとして有している。この中の一部が、図5または図13Bに示すべき乗剰余演算ユニットとして共用されている。
ここで、例えば機能ブロック501での一般四則演算機能をイネーブルとするには、第2実施例の[1]RSA方式の原理説明の欄の(3)式の暗号文Me≡C mod nを解読することが必要十分条件として設定されている。そこで、エンドユーザはライセンスにより予め取得した復号鍵を入力し、第2実施例の[1]RSA方式の原理説明の欄の(4)(5)式の演算を、機能ブロック501内の複数のべき乗剰余演算ユニットを用いて実施し、暗号文を復号する。この復号の結果、機能ブロック501内に設けられた図2に示すx個の演算ユニット7−1〜7−xを用いた一般の四則演算機能がイネーブルとなり、機能ブロック501を利用できるようになる。
なお、機能ブロック501を利用する毎に復号鍵を入力するのが煩雑であれば、ライセンスにより取得した復号鍵を記憶する記憶部を設けても良い。
このように、機能ブロック501には、第1実施例の図2の構成が備えられ、その一部が第2実施例にて説明した暗号文の復号のために用いられる。
ここで、システムLSI500を構成する各機能ブロック間、各機能ブロック内での信号伝送は、第4〜第6実施例の技術を利用して、光伝送とすることができることは言うまでもない。
Claims (18)
- 入力データに対して、処理手順に従って演算処理して出力する情報処理システムにおいて、
前記処理手順に基づいて、それぞれ演算精度2mビット(m:自然数)にて演算する複数の演算ユニットと、
前記演算ユニット同士をカスケード接続するための複数のカスケード接続端子と、
を有し、
前記複数の演算ユニットの少なくとも一つは、演算精度(2 m /y)で演算を行うべき演算モジュールをy個(yは自然数で固定)を有し、
演算処理時に必要な最大演算精度を2nビット(nは自然数で固定)とし、演算処理時に必要な演算精度を2 n1 ビット(n1≦nでn1は可変)としたとき、x1≧2 n1 /2 m (x1は自然数で可変)を満たす(x1−1)個のカスケード接続された演算ユニットにて演算精度2 n2 (n2<n1)にて演算が実施され、前記(x1−1)個の演算ユニットとカスケード接続される他の一つの演算ユニットでは、y1≧(2 n1 −2 n2 )/(2 m /y)(y1≦yでy1は可変)を満たすy1個の演算モジュールがカスケード接続されることを特徴とする情報処理システム。 - 入力データに対して、処理手順に従って演算処理して出力する情報処理システムにおいて、
前記処理手順に基づいて、それぞれ演算精度2m1ビット(m1:自然数で固定)にて演算する複数の内部演算ユニットと、
演算精度2m2ビット(m2:自然数で固定)で演算をする複数の外部演算ユニットと、
前記複数の内部演算ユニット及び前記複数の外部演算ユニットをカスケード接続するためのカスケード接続端子と、
を有し、
演算処理時の最大演算精度を2nビット(nは自然数で可変)としたとき、z≧(2n−2m1)/2m2(zは自然数で固定)を満たすように前記外部演算ユニットがz個カスケード接続されることを特徴とする情報処理システム。 - 請求項2において、
演算処理時に必要な演算精度を2n1ビット(n1≦nでn1は可変)としたとき、z1≧(2n1−2m1)/2m(z1は自然数で可変)を満たすように前記外部演算ユニットがz1個カスケード接続されることを特徴とする情報処理システム。 - 請求項2または3において、
前記複数の内部演算ユニット及び前記複数の外部演算ユニット間は光信号により信号が伝送されることを特徴とする情報処理システム。 - 請求項2乃至4のいずれかにおいて、
前記複数の外部演算ユニットの各々は、演算精度(2 m2 /y)で演算を行うべき演算モジュールをそれぞれy個(yは自然数で固定)を有し、y個の前記演算モジュールをカスケード接続することにより構成されていることを特徴とする情報処理システム。 - 請求項5において、
前記y個の演算モジュール間は光信号により信号が伝送されることを特徴とする情報処理システム。 - 請求項2乃至6のいずれかにおいて、
前記処理手順を記憶する記憶部を有することを特徴とする情報処理システム。 - 請求項7において、
前記処理手順に基づいて前記複数の内部演算ユニット及び前記複数の外部演算ユニットの制御を行う演算制御手段を備えたことを特徴とする情報処理システム。 - 請求項2乃至8のいずれかにおいて、
前記入力データをX、Nとし、出力データYをとしたとき、前記複数の内部演算ユニット及び前記複数の外部演算ユニットは、
Y=X2mod Nの演算処理を実施することを特徴とする情報処理システム。 - 請求項2乃至9のいずれかにおいて、
前記複数の外部演算ユニットの歩留まり率をAとしたとき、全外部演算ユニットの数K(z≧K/A)のうち良品の演算ユニットを最大でz個カスケード接続することを特徴とする情報処理システム。 - 請求項5または6において、
前記演算モジュールの歩留まり率をA′としたとき、前記複数の内部演算ユニット及び前記少なくとも一つの外部演算ユニットの各々は、全演算モジュールの数L(y≧L/A’)のうち、良品の演算モジュールを最大でy個カスケード接続することを特徴とする情報処理システム。 - 乗算精度2m1ビット(m1は自然数で固定)、除算精度2 m1+1 ビットでべき乗剰余演算を行う複数の内部べき乗剰余演算ユニットと、
乗算精度2m2ビット(m2は自然数で固定)、除算精度2 m2+1 ビットでべき乗剰余演算を行う複数の外部べき乗剰余演算ユニットと、
前記複数の内部及び外部べき乗剰余演算ユニットをカスケード接続するためのカスケード接続端子と、
を有し、
最大ビット精度2n(nは自然数で固定)で暗号化及び復号を行うに際して、
z≧(2n−2m1)/2m2(zは自然数で固定)を満たすように前記外部べき乗剰余演算ユニットをz個接続することを特徴とする暗号/復号システム。 - 請求項12において、
演算処理時に必要な演算精度を2n1ビット(n1≦nでn1は可変)としたとき、z1≧(2n−2m1)/2m2(z1≦zで可変)を満たすように、前記外部べき乗剰余演算ユニットがz1個カスケード接続されることを特徴とする暗号/復号システム。 - 請求項12または13において、
前記複数の内部べき乗剰余演算ユニットと前記複数の外部べき乗剰余演算ユニットの間は、光信号により信号が伝送されることを特徴とする暗号/復号システム。 - 請求項12乃至14のいずれかにおいて、
前記複数の外部べき乗剰余演算ユニットの各々は、乗算精度(2 m /y)(yは自然数で固定)、除算精度(2 m+1 /y)でべき乗剰余演算を行う外部べき乗剰余演算モジュールをy個有し、前記y個の外部べき乗剰余演算モジュールがカスケード接続されていることを特徴とする暗号/復号システム。 - 請求項15において、
前記y個の外部べき乗剰余乗算モジュール間は、光信号により信号が伝送されることを特徴とする暗号/復号システム。 - 請求項12乃至16のいずれかにおいて、
前記複数の外部べき乗剰余演算ユニットの歩留まり率をAとしたとき、全演算ユニットの数K(z≧K/A)のうち良品の演算ユニットを最大でz個カスケード接続することを特徴とする暗号/復号システム。 - 請求項15において、
前記外部べき乗剰余演算モジュールの歩留まり率をA′としたとき、前記複数の外部べき乗剰余演算ユニットの各々は、全外部べき乗剰余演算モジュールの数L(y≧L/A’)のうち、良品の演算モジュールをy個カスケード接続することを特徴とする暗号/復号システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34043997 | 1997-12-10 | ||
JP25928398 | 1998-08-28 | ||
PCT/JP1998/005586 WO1999030250A1 (fr) | 1997-12-10 | 1998-12-10 | Systeme informatique, systeme cryptographique, circuit systeme lsi, et appareil electronique |
Publications (1)
Publication Number | Publication Date |
---|---|
JP4092735B2 true JP4092735B2 (ja) | 2008-05-28 |
Family
ID=26544050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53065299A Expired - Fee Related JP4092735B2 (ja) | 1997-12-10 | 1998-12-10 | 情報処理システム及び暗号/復号システム |
Country Status (7)
Country | Link |
---|---|
US (2) | US6557020B1 (ja) |
EP (1) | EP0974913B1 (ja) |
JP (1) | JP4092735B2 (ja) |
CN (1) | CN1280755C (ja) |
DE (1) | DE69841305D1 (ja) |
TW (1) | TW407251B (ja) |
WO (1) | WO1999030250A1 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715077B1 (en) * | 1999-03-23 | 2004-03-30 | International Business Machines Corporation | System and method to support varying maximum cryptographic strength for common data security architecture (CDSA) applications |
US7089173B1 (en) * | 2000-04-26 | 2006-08-08 | Altera Corporation | Hardware opencore evaluation |
FR2811093A1 (fr) * | 2000-06-30 | 2002-01-04 | St Microelectronics Sa | Dispositif et procede d'evaluation d'algorithmes |
JP2002286959A (ja) | 2000-12-28 | 2002-10-03 | Canon Inc | 半導体装置、光電融合基板、及びそれらの製造方法 |
US6836784B2 (en) * | 2001-01-17 | 2004-12-28 | Matsushita Electric Industrial Co., Ltd. | Efficient greatest common divisor algorithm using multiprecision arithmetic |
JP3532860B2 (ja) * | 2001-01-22 | 2004-05-31 | 株式会社東芝 | 剰余系表現を利用した演算装置及び方法及びプログラム |
US7006883B2 (en) * | 2001-10-10 | 2006-02-28 | Semiconductor Energy Laboratory Co., Ltd. | Production system for composite product and production method for manufacturing of same |
KR100448897B1 (ko) * | 2002-05-20 | 2004-09-16 | 삼성전자주식회사 | 기능 라이브러리를 내재한 칩 개발 시스템 |
US7187770B1 (en) | 2002-07-16 | 2007-03-06 | Cisco Technology, Inc. | Method and apparatus for accelerating preliminary operations for cryptographic processing |
US20040024802A1 (en) * | 2002-08-05 | 2004-02-05 | Khan Raheel Ahmed | High-performance programmable processing element for GF (2N) |
US8612772B1 (en) | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
US8566616B1 (en) | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
US8020142B2 (en) * | 2006-12-14 | 2011-09-13 | Intel Corporation | Hardware accelerator |
TWI386845B (zh) * | 2008-09-12 | 2013-02-21 | Altek Corp | Error calculation of the integer division operation circuit |
US8095767B2 (en) * | 2008-12-30 | 2012-01-10 | Microsoft Corporation | Arbitrary precision floating number processing |
TWI403952B (zh) * | 2009-05-15 | 2013-08-01 | Chunghwa Telecom Co Ltd | A large integer modulus index chip structure for signature cryptography |
US8694573B2 (en) * | 2009-10-26 | 2014-04-08 | Jadavpur University | Method and system for determining a quotient value |
CN102223631B (zh) * | 2010-04-16 | 2014-06-04 | 华为技术有限公司 | M2m中数据加密传输的方法、设备及系统 |
CN106528975B (zh) * | 2016-11-01 | 2019-10-01 | 电子科技大学 | 一种应用于电路与系统的故障预测与健康管理方法 |
CN114245917B (zh) * | 2019-08-14 | 2023-12-05 | 日本电信电话株式会社 | 秘密归一化指数函数计算系统、装置、方法以及记录介质 |
AU2020472126B2 (en) * | 2020-10-16 | 2024-02-15 | Nippon Telegraph And Telephone Corporation | Secure exponent unification system, secure exponent unification apparatus, secure exponent unification method, secure sum computing system, secure sum-of-product computing system, and program |
CN112491544A (zh) * | 2020-11-26 | 2021-03-12 | 森得(广州)信息科技服务有限公司 | 一种平台数据动态加密的方法及系统 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4224676A (en) * | 1978-06-30 | 1980-09-23 | Texas Instruments Incorporated | Arithmetic logic unit bit-slice with internal distributed iterative control |
US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
JPS61239327A (ja) * | 1985-04-16 | 1986-10-24 | Nec Corp | オ−バフロ−検出方式 |
JPS639951A (ja) | 1986-06-30 | 1988-01-16 | Toshiba Corp | 大規模集積回路 |
JPS6328277A (ja) | 1986-07-21 | 1988-02-05 | Matsushita Seiko Co Ltd | Pwm信号発生回路 |
EP0281303A3 (en) | 1987-03-04 | 1990-08-29 | Cylink Corporation | Modulo arithmetic processor chip |
US4891781A (en) | 1987-03-04 | 1990-01-02 | Cylink Corporation | Modulo arithmetic processor chip |
JPS63282777A (ja) * | 1987-03-04 | 1988-11-18 | 株式会社リコー | モジュロ演算プロセッサチップ |
JP2643324B2 (ja) | 1988-07-01 | 1997-08-20 | 日本電気株式会社 | マイクロプロセッサ多重化システム |
US5289397A (en) * | 1991-07-22 | 1994-02-22 | Itt Corporation | High-speed modulo exponentiator device |
US5357122A (en) | 1991-09-05 | 1994-10-18 | Sony Corporation | Three-dimensional optical-electronic integrated circuit device with raised sections |
JP3413839B2 (ja) * | 1991-09-06 | 2003-06-09 | ソニー株式会社 | 光電子集積回路装置 |
JPH0567769A (ja) | 1991-09-05 | 1993-03-19 | Sony Corp | 3次元光電子集積回路装置 |
US5576554A (en) | 1991-11-05 | 1996-11-19 | Monolithic System Technology, Inc. | Wafer-scale integrated circuit interconnect structure architecture |
EP0541288B1 (en) | 1991-11-05 | 1998-07-08 | Fu-Chieh Hsu | Circuit module redundacy architecture |
JPH0697486A (ja) | 1992-09-14 | 1994-04-08 | Nippon Steel Corp | 光結合回路素子 |
US5285078A (en) | 1992-01-24 | 1994-02-08 | Nippon Steel Corporation | Light emitting element with employment of porous silicon and optical device utilizing light emitting element |
TW223688B (ja) | 1992-04-08 | 1994-05-11 | Fu Chieh Hsu | |
JPH06175583A (ja) * | 1992-12-09 | 1994-06-24 | Nec Corp | べき乗剰余演算回路 |
JPH0713945A (ja) | 1993-06-16 | 1995-01-17 | Nippon Sheet Glass Co Ltd | 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造 |
SE501105C2 (sv) * | 1993-11-17 | 1994-11-14 | Telub Teknik Ab | System för läsning av krypterad information samt en enhet för användning i ett sådant system |
US5448509A (en) | 1993-12-08 | 1995-09-05 | Hewlett-Packard Company | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations |
JPH07264165A (ja) | 1994-03-18 | 1995-10-13 | Nippon Telegr & Teleph Corp <Ntt> | 波長多重光結線装置 |
JP3522028B2 (ja) | 1994-12-19 | 2004-04-26 | 旭化成ケミカルズ株式会社 | ガイドを有する芳香族ポリカーボネートの製造法 |
JPH0951087A (ja) | 1995-08-04 | 1997-02-18 | Nippon Telegr & Teleph Corp <Ntt> | 光接続集積回路 |
JP3525209B2 (ja) * | 1996-04-05 | 2004-05-10 | 株式会社 沖マイクロデザイン | べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法 |
JPH09312099A (ja) * | 1996-05-21 | 1997-12-02 | Toshiba Microelectron Corp | 半導体記憶装置及びそのアクセス方法 |
TW449991B (en) * | 1999-01-12 | 2001-08-11 | Ibm | Method and system for securely handling information between two information processing devices |
JP3673234B2 (ja) * | 2002-03-20 | 2005-07-20 | 株式会社東芝 | 暗号処理を行う情報記録再生装置と情報記録再生方法 |
-
1998
- 1998-12-10 DE DE69841305T patent/DE69841305D1/de not_active Expired - Lifetime
- 1998-12-10 JP JP53065299A patent/JP4092735B2/ja not_active Expired - Fee Related
- 1998-12-10 TW TW087120551A patent/TW407251B/zh not_active IP Right Cessation
- 1998-12-10 EP EP98959154A patent/EP0974913B1/en not_active Expired - Lifetime
- 1998-12-10 CN CNB988023954A patent/CN1280755C/zh not_active Expired - Fee Related
- 1998-12-10 US US09/367,234 patent/US6557020B1/en not_active Expired - Fee Related
- 1998-12-10 WO PCT/JP1998/005586 patent/WO1999030250A1/ja active Application Filing
-
2003
- 2003-02-28 US US10/375,995 patent/US7117237B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1280755C (zh) | 2006-10-18 |
CN1246940A (zh) | 2000-03-08 |
EP0974913A4 (en) | 2003-06-18 |
DE69841305D1 (de) | 2010-01-07 |
EP0974913A1 (en) | 2000-01-26 |
US20030147530A1 (en) | 2003-08-07 |
US6557020B1 (en) | 2003-04-29 |
US7117237B2 (en) | 2006-10-03 |
TW407251B (en) | 2000-10-01 |
EP0974913B1 (en) | 2009-11-25 |
WO1999030250A1 (fr) | 1999-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4092735B2 (ja) | 情報処理システム及び暗号/復号システム | |
US5742530A (en) | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers | |
TWI244611B (en) | Circuit and method for performing multiple modulo mathematic operations | |
US6748410B1 (en) | Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication | |
Joye et al. | Optimal left-to-right binary signed-digit recoding | |
US6182104B1 (en) | Circuit and method of modulo multiplication | |
KR100848412B1 (ko) | 정수연산필드의 범위를 확장하는 장치 및 방법 | |
EP0801345B1 (en) | Circuit for modulo multiplication and exponentiation arithmetic | |
US7277540B1 (en) | Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography | |
US6356636B1 (en) | Circuit and method for fast modular multiplication | |
KR20050061544A (ko) | 이진 하드웨어에서 홀수 표수의 유한 필드를 사용하는암호화 | |
Rankine | Thomas—a complete single chip RSA device | |
KR100436814B1 (ko) | 아이씨카드용 알에스에이 암호 연산 장치 | |
Tian et al. | Fast modular multipliers for supersingular isogeny-based post-quantum cryptography | |
KR100508092B1 (ko) | 저전력 모듈로 곱셈을 수행하는 연산장치 | |
Parihar et al. | Fast Montgomery modular multiplier for rivest–shamir–adleman cryptosystem | |
JP2000261486A (ja) | パケット通信システム | |
KR102241252B1 (ko) | 모듈러 연산 방법, 장치 및 시스템 | |
JP2000259077A (ja) | 情報処理システム | |
JP2000298575A (ja) | 情報処理システム | |
Ambika et al. | Data security using serial commutative RSA CORE for multiple FPGA system | |
JP2003114618A (ja) | データ処理装置 | |
Mukaida et al. | Design of high-speed and area-efficient Montgomery modular multiplier for RSA algorithm | |
Schramm et al. | A Vendor‐Neutral Unified Core for Cryptographic Operations in GF (p) and GF (2m) Based on Montgomery Arithmetic | |
Parihar et al. | Montgomery Modular Multiplier in RSA Cryptosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040114 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071217 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20071217 |
|
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: 20080212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 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: 20120314 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120314 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140314 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |