JPS61223876A - 暗号装置と累乗方法 - Google Patents
暗号装置と累乗方法Info
- Publication number
- JPS61223876A JPS61223876A JP61070651A JP7065186A JPS61223876A JP S61223876 A JPS61223876 A JP S61223876A JP 61070651 A JP61070651 A JP 61070651A JP 7065186 A JP7065186 A JP 7065186A JP S61223876 A JPS61223876 A JP S61223876A
- Authority
- JP
- Japan
- Prior art keywords
- register
- value
- integer
- input
- unsigned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001186 cumulative effect Effects 0.000 title 1
- 238000004364 calculation method Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 30
- 238000004891 communication Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 239000000047 product Substances 0.000 description 14
- 238000007792 addition Methods 0.000 description 10
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000002023 wood Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000282806 Rhinoceros Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 102220065988 rs139034501 Human genes 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の技術分野]
この発明は、一般に暗号装置に関し、特に、機密保護さ
れていない通信チャンネルを介した伝送におけるデータ
の暗号化を可能にするために符号のない大きな値の整数
を計算する算術回路を備えた暗号装置に関する。
れていない通信チャンネルを介した伝送におけるデータ
の暗号化を可能にするために符号のない大きな値の整数
を計算する算術回路を備えた暗号装置に関する。
[発明の技術的背I!]
暗号方式は、メツセージを特定の受信者以外には理解さ
れないことを目′的とするメツセージ伝送の技術である
。本質的に、通信の機密保護、確証およびディジタル信
号を確立すべき種々の通信装置内において、データの暗
号化には、このような方法が利用されている。
れないことを目′的とするメツセージ伝送の技術である
。本質的に、通信の機密保護、確証およびディジタル信
号を確立すべき種々の通信装置内において、データの暗
号化には、このような方法が利用されている。
現代の通信システムにおいて、その通信速度と信頼性の
向上と共に、コストの低減が所望されている。多くの場
合、これらのシステムには、機密保護に関する一連の問
題がある。このようなシステムがいじくられることを妨
げ、伝送されるプライベート情報を保護するためには、
クレジット情報や機密保護情報などが暗号技術を用いて
伝送されることが必要である。この暗号技術を用いるこ
とによって、これらの情報は他の利用者にとって理解で
きないものとなる。
向上と共に、コストの低減が所望されている。多くの場
合、これらのシステムには、機密保護に関する一連の問
題がある。このようなシステムがいじくられることを妨
げ、伝送されるプライベート情報を保護するためには、
クレジット情報や機密保護情報などが暗号技術を用いて
伝送されることが必要である。この暗号技術を用いるこ
とによって、これらの情報は他の利用者にとって理解で
きないものとなる。
本質的に、暗号は計算の特殊な形式であって、このよう
なシステムは、その機密保護のための計算の困難性に基
づいている。これらのシステムは、非常に複雑な2つの
データの伝送を行なうので、暗号文の解読または暗号化
の反転処理を行なおうとする非認可のパーティ−には経
済的に手の届かないものとなる。一般に、メツセージを
暗号化するために使用される伝送には、アルゴリズムと
鍵とが含まれるのが典型的である。一方、1組の利用者
によって使用されている一般的な方法は公開されたもの
であっても良いが、いくつかのまたは全ての鍵情報は秘
密にされなければならない。メツセージ伝送の処理は、
暗号アルゴリズムをそのメツセージに適応する。この場
合、鍵は、暗号化を制御するための補助的な入力として
使用される。
なシステムは、その機密保護のための計算の困難性に基
づいている。これらのシステムは、非常に複雑な2つの
データの伝送を行なうので、暗号文の解読または暗号化
の反転処理を行なおうとする非認可のパーティ−には経
済的に手の届かないものとなる。一般に、メツセージを
暗号化するために使用される伝送には、アルゴリズムと
鍵とが含まれるのが典型的である。一方、1組の利用者
によって使用されている一般的な方法は公開されたもの
であっても良いが、いくつかのまたは全ての鍵情報は秘
密にされなければならない。メツセージ伝送の処理は、
暗号アルゴリズムをそのメツセージに適応する。この場
合、鍵は、暗号化を制御するための補助的な入力として
使用される。
従来の技術において広く使用されて来た多くの古典的な
暗号技術があるが、これらは、本質的に換字暗号から成
るものである。また、公開鍵暗号システムとして設計さ
れた暗号システムがある。
暗号技術があるが、これらは、本質的に換字暗号から成
るものである。また、公開鍵暗号システムとして設計さ
れた暗号システムがある。
このようなシステムにおいては、復号鍵は、暗号鍵と異
なるものであって、暗号鍵から計算できるものではない
。利用者は、対の組合わせとなるこのような鍵を創作し
、その暗号鍵のコピーをその利用者の関係者に分配する
ことが可能である。しかし、復号鍵は秘密にしておく必
妄がある。この方式においては、関係者は、解読するこ
とができる創作者にだけデータを送ることができる。ま
たこの公開鍵暗号システムは、ディジタル署名を実現す
ることもできる。したがって、利用者は、プライベート
鍵を用いてメツセージを暗号化することによりそのメツ
セージに対する署名を行なうことができる。この場合、
他の誰かは署名の正当性を検査することができる。これ
は、雷名者の公開鍵を利用したメツセージへ復号を検査
することによってである。
なるものであって、暗号鍵から計算できるものではない
。利用者は、対の組合わせとなるこのような鍵を創作し
、その暗号鍵のコピーをその利用者の関係者に分配する
ことが可能である。しかし、復号鍵は秘密にしておく必
妄がある。この方式においては、関係者は、解読するこ
とができる創作者にだけデータを送ることができる。ま
たこの公開鍵暗号システムは、ディジタル署名を実現す
ることもできる。したがって、利用者は、プライベート
鍵を用いてメツセージを暗号化することによりそのメツ
セージに対する署名を行なうことができる。この場合、
他の誰かは署名の正当性を検査することができる。これ
は、雷名者の公開鍵を利用したメツセージへ復号を検査
することによってである。
暗号システムの主要な形式(R8A 暗号)は、数値
形式に符号化されるメツセージBを暗号化する。この暗
号化は、例えば、そのメツセージ内の各文字毎に値を設
定し、そして、以下のような暗号文Cを得るために公開
鍵(e、n)を使用することによって実行する。
形式に符号化されるメツセージBを暗号化する。この暗
号化は、例えば、そのメツセージ内の各文字毎に値を設
定し、そして、以下のような暗号文Cを得るために公開
鍵(e、n)を使用することによって実行する。
C=B 。(モジュロM)
すなわちCは、B をMで割った時の余りである。ここ
で、全ての数値は、数百ビット長を有する大きな数であ
り、nは2つの大きな値の素数pとqの積である。暗号
の!l!密は、文字nからその因数であるpとqをくく
り出すことの実際的な不可能性に主に基づいている。復
号の動作は、以下のように指数が異なること以外は暗号
の動作と同様である。
で、全ての数値は、数百ビット長を有する大きな数であ
り、nは2つの大きな値の素数pとqの積である。暗号
の!l!密は、文字nからその因数であるpとqをくく
り出すことの実際的な不可能性に主に基づいている。復
号の動作は、以下のように指数が異なること以外は暗号
の動作と同様である。
B−C(モジュロM)
Dは、pおよびqに基づくものであるので、e、および
ファクターMであるMからDを計算することは非常に困
難である。Mのビット数に基づいて、その処理時間は極
端に変化する。例えば、R8A方式の場合には、ワード
゛’ I T ”は、A=01゜B−02,、、Z−2
6と表わすことにより、以下のように暗号化することが
できる。数値0920は、ワード“IT”を示すもので
ある。n −2773−47木5つ、およびe=17と
すると、暗号文は、C=920” (モジュロ277
3)−948となる。p−47およびq−59を使用し
て、d−157を得ることができ、“IT”は948”
(モジュロ2773)=920として計算すること
ができる。
ファクターMであるMからDを計算することは非常に困
難である。Mのビット数に基づいて、その処理時間は極
端に変化する。例えば、R8A方式の場合には、ワード
゛’ I T ”は、A=01゜B−02,、、Z−2
6と表わすことにより、以下のように暗号化することが
できる。数値0920は、ワード“IT”を示すもので
ある。n −2773−47木5つ、およびe=17と
すると、暗号文は、C=920” (モジュロ277
3)−948となる。p−47およびq−59を使用し
て、d−157を得ることができ、“IT”は948”
(モジュロ2773)=920として計算すること
ができる。
モジュロ演算は、公開鍵暗号システム内で大きな部分を
占める。なぜなら、モジュロ演算がなめらかに連続して
変化し、連続する増加または減少関数として、不連続関
数に変化するためである。
占める。なぜなら、モジュロ演算がなめらかに連続して
変化し、連続する増加または減少関数として、不連続関
数に変化するためである。
複雑な大きな値の導入は、反転計算を極端に難しくする
。したがって、もしモジユラリティーが加えられるなら
ば、関数の値はでたらめに変化する。
。したがって、もしモジユラリティーが加えられるなら
ば、関数の値はでたらめに変化する。
モジュロ演算は、暗号機能によりすでに転送された情報
をさらに変化させるために、多くの暗号システムに使用
されている。したがって、モジユラリティーがこのよう
なシステムに加えられた時に、関数の値は完全に無秩序
となる。上記したようなデータの暗号化技術は比較的良
く知られているが、このような複雑な関数の実行に関係
する非常に困難な問題がある。これは、ビット長に関係
する使用される数が非常に大きなサイズであることに基
づいている。したがって、巨大な記憶容量と、暗号値を
計算するための極端に長い時間が必要となる。使用され
る数が大きくなれば、この種の関数を計算するために、
さらに多くの回路、さらに多くのスペースおよび時間が
必要となる。これは、ハードウェアおよびソフトウェア
−に厳しい制限を与える。したがって、このようなシス
テムの製造価格は、非常に高価ものとなる。このような
計算の複雑性に関する主なポイントは、以下の通りであ
る。暗号形式は、認可された送信者または受信者の仕事
よりも、その暗号解読の仕事がN(数の長さ)の増加を
伴って急速に増加する特性を有している。暗号の解読作
業がN14 に比例すると仮定すると、暗号/復号作業
は、N3に比例する。
をさらに変化させるために、多くの暗号システムに使用
されている。したがって、モジユラリティーがこのよう
なシステムに加えられた時に、関数の値は完全に無秩序
となる。上記したようなデータの暗号化技術は比較的良
く知られているが、このような複雑な関数の実行に関係
する非常に困難な問題がある。これは、ビット長に関係
する使用される数が非常に大きなサイズであることに基
づいている。したがって、巨大な記憶容量と、暗号値を
計算するための極端に長い時間が必要となる。使用され
る数が大きくなれば、この種の関数を計算するために、
さらに多くの回路、さらに多くのスペースおよび時間が
必要となる。これは、ハードウェアおよびソフトウェア
−に厳しい制限を与える。したがって、このようなシス
テムの製造価格は、非常に高価ものとなる。このような
計算の複雑性に関する主なポイントは、以下の通りであ
る。暗号形式は、認可された送信者または受信者の仕事
よりも、その暗号解読の仕事がN(数の長さ)の増加を
伴って急速に増加する特性を有している。暗号の解読作
業がN14 に比例すると仮定すると、暗号/復号作業
は、N3に比例する。
そして、Nが10から20へ2倍に増加した場合には、
認可された利用者の作業は8@となるが、暗号を解読し
ようとする者の作業は、4010倍に増加する。伝送作
業への出資は、認可された利用者の場合には$10から
$80への増加であるが、暗号解読者の場合には合理的
な範囲の出資から多数の国の国家予算よりも多くの出資
へと増加する。
認可された利用者の作業は8@となるが、暗号を解読し
ようとする者の作業は、4010倍に増加する。伝送作
業への出資は、認可された利用者の場合には$10から
$80への増加であるが、暗号解読者の場合には合理的
な範囲の出資から多数の国の国家予算よりも多くの出資
へと増加する。
このようなシステムに関係する情報、および暗号のため
のII数の計算および実行の困難性は1文献゛°公開鍵
暗号方式の算術″マーチン・E・ヘルマン著、および“
°サイエンスフィック アメリカン”1979年号、第
241巻、No2.146員から157頁に記載されて
いる。この文献は非常に情報が豊富であって、暗号装置
の発展の歴史およびこのようなシステムの特有の問題点
が詳細に示されている。またこの文献には、モジュロ演
算に関係する説明も詳細に記載されている。
のII数の計算および実行の困難性は1文献゛°公開鍵
暗号方式の算術″マーチン・E・ヘルマン著、および“
°サイエンスフィック アメリカン”1979年号、第
241巻、No2.146員から157頁に記載されて
いる。この文献は非常に情報が豊富であって、暗号装置
の発展の歴史およびこのようなシステムの特有の問題点
が詳細に示されている。またこの文献には、モジュロ演
算に関係する説明も詳細に記載されている。
この発明の目的は、比較的短い時間で暗号計算を実行で
きるように必要な回路を最小限にして構成し、しかも認
可無しではその暗号の復号が非常に困難である暗号アル
ゴリズムを実行できる暗号装置を提供することである。
きるように必要な回路を最小限にして構成し、しかも認
可無しではその暗号の復号が非常に困難である暗号アル
ゴリズムを実行できる暗号装置を提供することである。
[発明の概要]
この発明の目的は、符号のない大きな値の整数Mをモジ
ュロ演算の基数としてメツセージデータである符号のな
い大きな値の整数(B)に符号のない大きな値の整数(
E)を累乗する暗号装置であって、上記各整数はNビッ
トの大きさを有し、上記累乗の計算結果である符号のな
い大きな値の整数(C)は濃密保護されてない通信チャ
ンネルを介した伝送に適用される暗号装置において、上
記符号のない大きな値の整数Bに応答してこの整数を順
次2乗する第1の論理手段であって、上記順次2乗され
た整数を与えられた基数によって減少する手段を備え、
上記与えられた基数によって減少された上記2乗された
整数の′ls1の値を出力に供給する第1の論理手段と
、与えられた指数Eを示す第2の値を受信する入力およ
び上記第1の論理手段の出力に接続されたもう1つの入
力を有し、選択的に動作されるゲート手段と、上記ゲー
ト手段に接続された入力を有し、上記°ゲート手段によ
って制御されて動作する第2の論理手段であって、この
第2の論理手段に含まれている上記基数手段によりさら
に変形された上記第1の値の積を表わす出力値を出力し
、上記機密保護されてない通信チャンネルを介して伝送
される上記累乗の計算結果である符号のない大きな値の
整数(C)を上記出力に供給する第2の論理手段とを具
備する暗号装置によって達成される。
ュロ演算の基数としてメツセージデータである符号のな
い大きな値の整数(B)に符号のない大きな値の整数(
E)を累乗する暗号装置であって、上記各整数はNビッ
トの大きさを有し、上記累乗の計算結果である符号のな
い大きな値の整数(C)は濃密保護されてない通信チャ
ンネルを介した伝送に適用される暗号装置において、上
記符号のない大きな値の整数Bに応答してこの整数を順
次2乗する第1の論理手段であって、上記順次2乗され
た整数を与えられた基数によって減少する手段を備え、
上記与えられた基数によって減少された上記2乗された
整数の′ls1の値を出力に供給する第1の論理手段と
、与えられた指数Eを示す第2の値を受信する入力およ
び上記第1の論理手段の出力に接続されたもう1つの入
力を有し、選択的に動作されるゲート手段と、上記ゲー
ト手段に接続された入力を有し、上記°ゲート手段によ
って制御されて動作する第2の論理手段であって、この
第2の論理手段に含まれている上記基数手段によりさら
に変形された上記第1の値の積を表わす出力値を出力し
、上記機密保護されてない通信チャンネルを介して伝送
される上記累乗の計算結果である符号のない大きな値の
整数(C)を上記出力に供給する第2の論理手段とを具
備する暗号装置によって達成される。
[発明の実施例]
第1図は、この発明の特徴をさらに説明するために一般
的な暗号システムを示すものである。
的な暗号システムを示すものである。
通常の暗号システムにおいて、プライベートメツセージ
の伝送を所望するシステムは、アルゴリズムまたは一般
的な11号化手順を有している。このメツセージは、メ
ツセージ元10から伝送される。
の伝送を所望するシステムは、アルゴリズムまたは一般
的な11号化手順を有している。このメツセージは、メ
ツセージ元10から伝送される。
このメツセージ元10はコンピュータまたはモデム等の
ような複数の異なった装置から構成できることが最初に
理解されよう。メツセージデータは、ディジタルデータ
に変換された音声データ、またはメツセージ内容を示す
本質的に任意の種類のデータであることが可能である。
ような複数の異なった装置から構成できることが最初に
理解されよう。メツセージデータは、ディジタルデータ
に変換された音声データ、またはメツセージ内容を示す
本質的に任意の種類のデータであることが可能である。
メツセージPすなわち伝送されるべきデータは、“平文
”と呼ばれている。送信者は、この平文を暗号文Cにす
る端末すなわち回路モジュール11を有している。この
暗号文Cは、電話回線、またはマイクロ波回線等のよう
な機密保護されてない通信チャンネルを介して伝送され
る。受信器12は、暗号文Cを受信し、アルゴリズムす
なわち平文に変換するための復号手順に基づいてその暗
号文Cを処理する。通常の暗号システムにおいては、送
信者は、アルゴリズムすなわち一般的な暗号化手続きG
を有し、また “鍵Kを得ている。この秘密を
守だめのこの鍵には、典型的には、多くのランダムな数
字の集合から成 −ることが可能な1組のパラ
メータである。このパラメータは、上記したアルゴリズ
ムを実行するために使用されるものである。
”と呼ばれている。送信者は、この平文を暗号文Cにす
る端末すなわち回路モジュール11を有している。この
暗号文Cは、電話回線、またはマイクロ波回線等のよう
な機密保護されてない通信チャンネルを介して伝送され
る。受信器12は、暗号文Cを受信し、アルゴリズムす
なわち平文に変換するための復号手順に基づいてその暗
号文Cを処理する。通常の暗号システムにおいては、送
信者は、アルゴリズムすなわち一般的な暗号化手続きG
を有し、また “鍵Kを得ている。この秘密を
守だめのこの鍵には、典型的には、多くのランダムな数
字の集合から成 −ることが可能な1組のパラ
メータである。このパラメータは、上記したアルゴリズ
ムを実行するために使用されるものである。
したがって、このアルゴリズムと鍵の両方によって、暗
号変換を特定する。この暗号変換は、平文Pを暗号文C
にするように動作する。受信者は、11Kを知っている
ので、上記と反対の動作を行なうことにより、暗号文C
を平文に復号することができる。非認可利用者は通信チ
ャンネルにアクセスでき、しかも一般的な暗号手順およ
び暗号コードを知っても、鍵すなわちKを知らないので
メツセージを解読することはできない。これが通常の暗
号システムである。
号変換を特定する。この暗号変換は、平文Pを暗号文C
にするように動作する。受信者は、11Kを知っている
ので、上記と反対の動作を行なうことにより、暗号文C
を平文に復号することができる。非認可利用者は通信チ
ャンネルにアクセスでき、しかも一般的な暗号手順およ
び暗号コードを知っても、鍵すなわちKを知らないので
メツセージを解読することはできない。これが通常の暗
号システムである。
公開鍵暗号システムにおいては、鍵の配送のための機密
保護されたチャンネルは必要とされない。
保護されたチャンネルは必要とされない。
このようなシステムにおいて、各受信者は、2つの別個
の鍵すなわち公開暗号手順を実行するための公開鍵およ
び公開復号手順を実行するための秘密鍵を生成する。こ
れらの鍵は反転変換を特定するのに使用されるという意
味において関係づけられているが、公nIiが与えられ
なければ秘@鍵を得るための演算は実行不可能である。
の鍵すなわち公開暗号手順を実行するための公開鍵およ
び公開復号手順を実行するための秘密鍵を生成する。こ
れらの鍵は反転変換を特定するのに使用されるという意
味において関係づけられているが、公nIiが与えられ
なければ秘@鍵を得るための演算は実行不可能である。
これは、どんな大型のコンピュータでさえ、公開鍵から
秘密鍵への計算に千年あるいはそれ以上かかるというこ
とに由来している。したがって、この発明によるシステ
ムによって提供される機密保護は、暗号化のために美大
な数が使用されていることによるものである。
秘密鍵への計算に千年あるいはそれ以上かかるというこ
とに由来している。したがって、この発明によるシステ
ムによって提供される機密保護は、暗号化のために美大
な数が使用されていることによるものである。
この美大な数の使用によって、利用されるべき回路に多
くの要求が課せられる。このため、その数学的関係は知
られているが、このような暗号処理を通常のコンピュー
タおよびハードウェアを用いて実行することは非常に困
■となる。したがって上記したように、この発明の主な
特徴は、符号長の長い整数あるいは数を使用し、しかも
データの暗号化を比較的短い時間で実行することができ
る効果的な回路構成の提供である。この装置によって実
行されるべき基本的な計算は、符号のない大きな値の整
数Mをモジュロ演算の基数として、符号のない大きな値
の整数Bに符号のない大きな値の整数E(指数)を累乗
するものである。これらの各整数は、Nピットの大きざ
を有することが可能である。各項は、複数のビットから
成る2進法、またはその他の形式で表現可能な数である
ことが理解されよう。
くの要求が課せられる。このため、その数学的関係は知
られているが、このような暗号処理を通常のコンピュー
タおよびハードウェアを用いて実行することは非常に困
■となる。したがって上記したように、この発明の主な
特徴は、符号長の長い整数あるいは数を使用し、しかも
データの暗号化を比較的短い時間で実行することができ
る効果的な回路構成の提供である。この装置によって実
行されるべき基本的な計算は、符号のない大きな値の整
数Mをモジュロ演算の基数として、符号のない大きな値
の整数Bに符号のない大きな値の整数E(指数)を累乗
するものである。これらの各整数は、Nピットの大きざ
を有することが可能である。各項は、複数のビットから
成る2進法、またはその他の形式で表現可能な数である
ことが理解されよう。
符号のない大きな値の整数である項“B″は、予め暗号
化すなわち符号化することが可能な平文データを示すも
のであって、上記したように、この°゛B″には、符号
のない大きな値の整数が累乗される。このアルゴリズム
の使用によって、非常に大きな数が提供され、この数の
各々はNビットを有し、この発明による装置は、妥当な
実行時間内でこの計算を行なうことができる。このよう
な設計は、結果としてそのコストを最少にすることにな
る。符号のない大きな値の整数BのE乗(B木木E)の
計算は、E回の乗算を行なう必要がなく、本質的に2木
N−2回の乗算だけでよい。ここでNは、Eのビット数
である。第1のステップにおいては、底数Bを次々に2
乗して、B木木2゜B木木4.B木木8.、、B木本(
2木木(N−1))までを得る。このステップでは、N
−1回の乗算が必要である。ここで使用した2重アスタ
リスク木本は累乗(例えば、BのE乗を8*木Eとする
)を意味し、また単一のアスタリスク末は、乗算を意味
している。このようにして得られた2乗値の各々は、以
下に示すように、Eのビットにそれぞれ関連される。
化すなわち符号化することが可能な平文データを示すも
のであって、上記したように、この°゛B″には、符号
のない大きな値の整数が累乗される。このアルゴリズム
の使用によって、非常に大きな数が提供され、この数の
各々はNビットを有し、この発明による装置は、妥当な
実行時間内でこの計算を行なうことができる。このよう
な設計は、結果としてそのコストを最少にすることにな
る。符号のない大きな値の整数BのE乗(B木木E)の
計算は、E回の乗算を行なう必要がなく、本質的に2木
N−2回の乗算だけでよい。ここでNは、Eのビット数
である。第1のステップにおいては、底数Bを次々に2
乗して、B木木2゜B木木4.B木木8.、、B木本(
2木木(N−1))までを得る。このステップでは、N
−1回の乗算が必要である。ここで使用した2重アスタ
リスク木本は累乗(例えば、BのE乗を8*木Eとする
)を意味し、また単一のアスタリスク末は、乗算を意味
している。このようにして得られた2乗値の各々は、以
下に示すように、Eのビットにそれぞれ関連される。
BをEのビット0に、B木木2をビット1に、B木木4
をビット2に、B木木8をビット3に、B木木16をビ
ット4に、そしてB木本(2木木(NM))をビットN
−1に関係づける。B木本Eを計算するために、ビット
が1であるEのビットに関連した2乗計算値が形成され
る。例えば、Eが21(10進数)すなわち10101
(2進数)である場合には、ビットO、ビット2およ
びビット4が1なので、次式が与えられる。
をビット2に、B木木8をビット3に、B木木16をビ
ット4に、そしてB木本(2木木(NM))をビットN
−1に関係づける。B木本Eを計算するために、ビット
が1であるEのビットに関連した2乗計算値が形成され
る。例えば、Eが21(10進数)すなわち10101
(2進数)である場合には、ビットO、ビット2およ
びビット4が1なので、次式が与えられる。
B木本E−B木木21
−B木(B木木4)木(B*木木1)
この最後のステップでは、最大でN−1回の乗算が必要
とされる。したがって、全体の計算において必要な最大
の乗算回数は、 N−1+N”l−2木(N−2) となる。これまでの説明では、モジュロ演算にはふれて
おらず、モジュロ演算は余分の演算であるが、このモジ
ュロ演算により乗算されるべき数値が小さくなることに
よって、全体の仕事農は実際に減少される。後で説明す
るように、モジュロ演算は、全ての乗算が終了した後に
一度適用することができるものであるが、この発明のよ
る装置においては、その演算は頻繁に適用される。その
適用回数は、部分計算の実行回数に等しい。これは、モ
ジュロ演算の分散性によって実行可能となる。
とされる。したがって、全体の計算において必要な最大
の乗算回数は、 N−1+N”l−2木(N−2) となる。これまでの説明では、モジュロ演算にはふれて
おらず、モジュロ演算は余分の演算であるが、このモジ
ュロ演算により乗算されるべき数値が小さくなることに
よって、全体の仕事農は実際に減少される。後で説明す
るように、モジュロ演算は、全ての乗算が終了した後に
一度適用することができるものであるが、この発明のよ
る装置においては、その演算は頻繁に適用される。その
適用回数は、部分計算の実行回数に等しい。これは、モ
ジュロ演算の分散性によって実行可能となる。
整数aおよびb、基数(モジュラス)M、および加算、
減算および乗算の演算因子(op)間には、以下の様な
関係が成立つ。
減算および乗算の演算因子(op)間には、以下の様な
関係が成立つ。
(a op b)mod M
−((a n1od M) op(b mod M
) ) mod Mこの特性により、はぼ2Nビツトに
縮小された数に維持するために、乗算毎にモジュロ演算
を適用することができる。
) ) mod Mこの特性により、はぼ2Nビツトに
縮小された数に維持するために、乗算毎にモジュロ演算
を適用することができる。
さらに、各乗算は加算を順次実行することにより演算さ
れるので、乗算(各加算を伴っている)期間中に、モジ
ュロ演算を適用することができる。
れるので、乗算(各加算を伴っている)期間中に、モジ
ュロ演算を適用することができる。
この乗算では、はぼ2Nビツトに縮小された数に維持さ
れる。
れる。
第2図は、B木本Eを計算するための回路構成の一例を
示すものである。
示すものである。
平文データである区数Bは、Sレジスタとして表示され
ているレジスタ20にロードされる。基数Mは、Mレジ
スタとして表示されているレジスタ21にロードされる
。1は、Rすなわちリザルトレジスタとして表示されて
いるレジスタ22にロードされる。Sレジスタの出力は
第1の乗算器23に接続され、この乗算器23の出力は
モジュロ回路24に接続されている。そして、このモジ
ュロ回路24の出力は、Sレジスタ20の入力に帰還接
続されている。Sレジスタの出力は、選択的に動作する
ゲート回路25にも接続されている。このゲート回路2
5は、指数Eのビット表示をその入力で受信する。
ているレジスタ20にロードされる。基数Mは、Mレジ
スタとして表示されているレジスタ21にロードされる
。1は、Rすなわちリザルトレジスタとして表示されて
いるレジスタ22にロードされる。Sレジスタの出力は
第1の乗算器23に接続され、この乗算器23の出力は
モジュロ回路24に接続されている。そして、このモジ
ュロ回路24の出力は、Sレジスタ20の入力に帰還接
続されている。Sレジスタの出力は、選択的に動作する
ゲート回路25にも接続されている。このゲート回路2
5は、指数Eのビット表示をその入力で受信する。
ゲーI・回路25の出力は、第2の乗算器26の一方の
入力に接続されている。この第2の乗算器26のもう一
方の入力は、Rレジスタ22の出力に接続されている。
入力に接続されている。この第2の乗算器26のもう一
方の入力は、Rレジスタ22の出力に接続されている。
乗算器26の出力はモジュロ回路27の入力に接続され
、このモジュロ回路27の出力はRレジスタ22に直接
帰還接続されている。
、このモジュロ回路27の出力はRレジスタ22に直接
帰還接続されている。
後で説明されるように、乗算器およびモジュロ回路23
.24.26.27は、結合された回路から構成される
ものであるが、その動作を説明するために、第2図にお
いてはその構成を別々のモジュールとして示しである。
.24.26.27は、結合された回路から構成される
ものであるが、その動作を説明するために、第2図にお
いてはその構成を別々のモジュールとして示しである。
第2図から分るように、区数日はSレジスタ20に、基
数MはMレジスタ21に、そして1はRレジスタ22に
ロードされる。ゲート回路25に供給される指数Eにつ
いては後で説明する。
数MはMレジスタ21に、そして1はRレジスタ22に
ロードされる。ゲート回路25に供給される指数Eにつ
いては後で説明する。
1サイクルにおいて、Sレジスタ20の値は、乗算器2
3により2乗され、モジュロ回路24の基数Mによって
減少される。そして、この減少された値は、Sレジスタ
20に戻される。したがって、1サイクル毎に、モジュ
ロ演算の基数をMとした区数Bの2乗が順次増され、S
レジスタ20に格納される。同時に、モジュロ演算の基
数をMとした選択された2乗の積はRレジスタ22に送
られ、このRレジスタ22の内容は、結果的に、機密保
護されてない通信チャンネルを介した伝送にとって所望
の計算結果となる。各サイクルにおいて、指数Eの1つ
のビットは、選択ゲート回路25へ移動される。
3により2乗され、モジュロ回路24の基数Mによって
減少される。そして、この減少された値は、Sレジスタ
20に戻される。したがって、1サイクル毎に、モジュ
ロ演算の基数をMとした区数Bの2乗が順次増され、S
レジスタ20に格納される。同時に、モジュロ演算の基
数をMとした選択された2乗の積はRレジスタ22に送
られ、このRレジスタ22の内容は、結果的に、機密保
護されてない通信チャンネルを介した伝送にとって所望
の計算結果となる。各サイクルにおいて、指数Eの1つ
のビットは、選択ゲート回路25へ移動される。
このビットの移動は、最小有効ビットから実行される。
したがって、その指数ビットが1の時には、乗算器26
は、レジスタ20および22に記憶されている現在の値
SおよびRの乗算を実行する。この乗算結果は、基数M
によって減少され、Rレジスタ22に送られる。指数が
Oの時には、ゲート回路25からの出力が1に等しくな
るか、またはRレジスタ22のクロック動作が上記した
乗算の実行を妨げる。
は、レジスタ20および22に記憶されている現在の値
SおよびRの乗算を実行する。この乗算結果は、基数M
によって減少され、Rレジスタ22に送られる。指数が
Oの時には、ゲート回路25からの出力が1に等しくな
るか、またはRレジスタ22のクロック動作が上記した
乗算の実行を妨げる。
第3図は第2図に示した構成における動作のタイミング
を示す図であって、基数Mを無視した場合のR=8木木
木本の計算が示されている。この図には、Sレジスタと
Rレジスタとの間のタイミング、並びに指数ビットの転
送が明確に示されている。上記したように、回路の大き
さの大幅な縮小は、乗算機能とモジュロ機能とを単一の
機能に結合することによって得ることができる。このこ
とを達成するためにまず最初に考えられることは、乗算
器がシフトおよび加算を順次実行できるようにることで
ある。これは、良く知られた技術であって、多くの通常
の乗算回路で利用されている。
を示す図であって、基数Mを無視した場合のR=8木木
木本の計算が示されている。この図には、Sレジスタと
Rレジスタとの間のタイミング、並びに指数ビットの転
送が明確に示されている。上記したように、回路の大き
さの大幅な縮小は、乗算機能とモジュロ機能とを単一の
機能に結合することによって得ることができる。このこ
とを達成するためにまず最初に考えられることは、乗算
器がシフトおよび加算を順次実行できるようにることで
ある。これは、良く知られた技術であって、多くの通常
の乗算回路で利用されている。
第2に考えられることは、両者共にNビットの符号長を
有する乗算されるべき数XおよびYの双方を使用するこ
とである。X=5 (101)2進数、およびY=6
(110)2進数とすると、XおよびYは、以下に
示すように乗算される。ここで、木2はシフトを表わし
ている。また、線は、どのようにしてXにまずYの最大
有効ビット(MSB)を乗じ、次にYの中央のビット、
そして、Yの最小有効ビット(LSB)を乗じるかを示
している。
有する乗算されるべき数XおよびYの双方を使用するこ
とである。X=5 (101)2進数、およびY=6
(110)2進数とすると、XおよびYは、以下に
示すように乗算される。ここで、木2はシフトを表わし
ている。また、線は、どのようにしてXにまずYの最大
有効ビット(MSB)を乗じ、次にYの中央のビット、
そして、Yの最小有効ビット(LSB)を乗じるかを示
している。
−(1010+101)木2十〇
−値1)木2
=11110
=30.(10進数)
シフトおよび加算を順次実行する乗算によって得られる
積をPとすると、X G、: Yを乗じるアルゴリズム
は、以下のように与えられる。
積をPとすると、X G、: Yを乗じるアルゴリズム
は、以下のように与えられる。
1=1
do while (i≦N)
P−P木2+X*Y (N−t >
i−i+ 1
endd。
ここで、Y(i)はYのi番目のビットを示している。
XとYの乗算の代わりに、XをX/8、およびY l!
i:Y * 8 G:再ス’7− ルL r、(X/8
)木(Y木8)を計算する。もちろんこの結果は、X*
Yの結果と変化はない。この再スケールの理由は、後に
説明するように、算術的オーバフローの防止を助けるた
めである。Y (−1) −Y (−2> −Y(−3
)=Oとすると、アルゴリズムは以下のように与えられ
る。
i:Y * 8 G:再ス’7− ルL r、(X/8
)木(Y木8)を計算する。もちろんこの結果は、X*
Yの結果と変化はない。この再スケールの理由は、後に
説明するように、算術的オーバフローの防止を助けるた
めである。Y (−1) −Y (−2> −Y(−3
)=Oとすると、アルゴリズムは以下のように与えられ
る。
P=O
i=1
dOwhile(i S;N+3)
P−P木2+(X/8) 木Y (N−i )i−i+
1 endd。
1 endd。
このdo whileループのm後の3回のループは、
Y木8を計算するためにYを3回左へシフト(桁上げ)
させる。
Y木8を計算するためにYを3回左へシフト(桁上げ)
させる。
したがって、モジュロ演算は、乗算演算と結合すること
ができる。Ao Wkilc ループの各ループにおい
て、P+L*MがP mod MICなルトイう条
件の下で、Pは、P mod Mの真値の近傍に維
持される。ここでLは、−5≦L≦+5のような整数で
ある。Pは、以下に示すような“集束剤″を適用するこ
とによってP mod M近傍に維持される。
ができる。Ao Wkilc ループの各ループにおい
て、P+L*MがP mod MICなルトイう条
件の下で、Pは、P mod Mの真値の近傍に維
持される。ここでLは、−5≦L≦+5のような整数で
ある。Pは、以下に示すような“集束剤″を適用するこ
とによってP mod M近傍に維持される。
1.1F P<−2木木(N−1)
THEN MM=3零M
2、IFP≧2木木<N−1)
THEN MM−−3木M
3、その他の場合は MM−O
p mod Mの近傍にPを維持するために、P−
P十MMとする。Mの倍数よりも±2木木(N−1)と
Pとを比較するほうが、その比較量は減少する。Pから
に*Mを減算するというよりも、Pの最初の4ビツトだ
けがそれを調べるために必要とされる。
P十MMとする。Mの倍数よりも±2木木(N−1)と
Pとを比較するほうが、その比較量は減少する。Pから
に*Mを減算するというよりも、Pの最初の4ビツトだ
けがそれを調べるために必要とされる。
以下に示されているアルゴリズムの一例は、集束剤を用
いて変形したものである。
いて変形したものである。
−O
do while (i ≦N+3)
if(P<−2木木(N−1))
then M M −3木M
if(P≧2**(N−1))
then M M = −3木M
H(−2木木(N−1)≦P
P<2木木(N−1> >
then M M = 0
P=P木2+(X/8)木Y(N−i)+MMi=i+
1 endd。
1 endd。
P mod Mの制限された範囲内にPが集束剤に
より実際に維持されることを数学的に示すことは簡単で
ある。Xの再スケールは、この達成を助けている。集束
剤がPの出力エクスカージョンをその入力エクスカージ
ョンよりも小さい0.25Mに維持することは重要であ
る。Pを計算する算術のわずかな誤差によって、Pが−
2,5<P〈2.5の範囲から離れて発散が開始される
ことはない。
より実際に維持されることを数学的に示すことは簡単で
ある。Xの再スケールは、この達成を助けている。集束
剤がPの出力エクスカージョンをその入力エクスカージ
ョンよりも小さい0.25Mに維持することは重要であ
る。Pを計算する算術のわずかな誤差によって、Pが−
2,5<P〈2.5の範囲から離れて発散が開始される
ことはない。
do whileループの終りにおいて、Pは−2,5
<P<2.5の範囲にある。簡単な゛クリンアップ”動
作は、Pを基数値の範囲すなわちO≦P〈Mに戻すこと
を必要とする。この゛°クリンアツプ″は、次のように
実行される。もしPtfiOよりも大きい場合には、P
から3木Mを減算し、そして、Pが正数になるまでMを
次々にPに加算する。このときに、Pは所望の範囲に位
置するようになる。
<P<2.5の範囲にある。簡単な゛クリンアップ”動
作は、Pを基数値の範囲すなわちO≦P〈Mに戻すこと
を必要とする。この゛°クリンアツプ″は、次のように
実行される。もしPtfiOよりも大きい場合には、P
から3木Mを減算し、そして、Pが正数になるまでMを
次々にPに加算する。このときに、Pは所望の範囲に位
置するようになる。
結合された乗算およびモジュロ演算の一例は、次のよう
に与えられる。この例では、 6木6 mod 5−36 mod 5−1の
計算が示されている。
に与えられる。この例では、 6木6 mod 5−36 mod 5−1の
計算が示されている。
1.6末5 mod 5−1
2、X−X木8=48 M−M木8−40これは、ア
ンダー70−無しでX/8を承認するためである。
ンダー70−無しでX/8を承認するためである。
3、Y−Y木8−48、X*Yの代わりに(X/8)木
(Y木8)を計算する。
(Y木8)を計算する。
4、N−Mのビット数=6
5、X/8=6、M−40,3木M=120、■=32
6、i=1、Y(N−i)−L P=O12木P−0,
MX−6、MM=O1 2木P 十M X 十M M = 6 7、i−2、Y(N−i)−1、P=6.2木P−12
、MX=6、MM−0, 2木P + M X + M M −188、i=3、
Y (N−i > =O1P=18.2木P−36、M
X=O1M M −0。
MX−6、MM=O1 2木P 十M X 十M M = 6 7、i−2、Y(N−i)−1、P=6.2木P−12
、MX=6、MM−0, 2木P + M X + M M −188、i=3、
Y (N−i > =O1P=18.2木P−36、M
X=O1M M −0。
2木P十MX+MM=36
9=−4、Y (N−i ) =O1P=36.2木P
−72、MX−0、MM−−,12012木P+MX+
MM−−42 10、i−5、Y (N−i ) −0゜P=−48,
2木P−−96、MX=01MM−+120.2木P+
MX+MM=2411、 +−6、Y (N−i
)−0,P=24.2木P−48、MX嵩0.MM−
0゜ 2木P+MX+MM−48 12、クリンアツプ: P−3木M−72 13、クリンアップ; P+M−−32 14、タリンアップ P+M−8 15、クリンアップ P/8 = 1 値の修正 ここで、ライン2および3は、(X/8)木(Y木8)
を計算するためのスケーリングを示すものである。ライ
ン5において、閾値Tは、スケーリングされたMのため
に計算され、32に等しい。ライン6乃至11は、ao
wk’tl已ループの動作を示している。これらのラ
インにおいて、YEN−r > −1テあれば、Mx=
X/8であり、Y(N−i )=0であれば、MX=0
である。ライン9において、Pは閾値を越えているので
、M M−一3Mとなり、またライン10においてPは
閾値より小さいので、MM−+3Mとなる。ライン15
において、Pは最終的な正しい結果を得るために減少さ
れる。
−72、MX−0、MM−−,12012木P+MX+
MM−−42 10、i−5、Y (N−i ) −0゜P=−48,
2木P−−96、MX=01MM−+120.2木P+
MX+MM=2411、 +−6、Y (N−i
)−0,P=24.2木P−48、MX嵩0.MM−
0゜ 2木P+MX+MM−48 12、クリンアツプ: P−3木M−72 13、クリンアップ; P+M−−32 14、タリンアップ P+M−8 15、クリンアップ P/8 = 1 値の修正 ここで、ライン2および3は、(X/8)木(Y木8)
を計算するためのスケーリングを示すものである。ライ
ン5において、閾値Tは、スケーリングされたMのため
に計算され、32に等しい。ライン6乃至11は、ao
wk’tl已ループの動作を示している。これらのラ
インにおいて、YEN−r > −1テあれば、Mx=
X/8であり、Y(N−i )=0であれば、MX=0
である。ライン9において、Pは閾値を越えているので
、M M−一3Mとなり、またライン10においてPは
閾値より小さいので、MM−+3Mとなる。ライン15
において、Pは最終的な正しい結果を得るために減少さ
れる。
第4図は、演算レジスタを介したデータバスを示すもの
であって、これらのレジスタは、互いに接続され、また
各加算器にも接続されている。第4図には2つの加算器
が示されている。このような加算器の構成は良く知られ
ているものである。
であって、これらのレジスタは、互いに接続され、また
各加算器にも接続されている。第4図には2つの加算器
が示されている。このような加算器の構成は良く知られ
ているものである。
加算器30の機能は、データのキャリーを加算すること
であり、一方加算器31の機能は、マルチプレクサ34
によって選択された値をP(積)レジスタ33に加算す
ることである。この演算は、8ビツト“スライス″に分
割され、各サイクル期間中に、前のスライスからのキャ
リービットは、加算器30によって、各Pスライスに加
算される。選択された値は、加算器31によって、Pに
加算される。この結果として生じたキャリーピットは、
次のサイクルにおける次のスライスに入力されるように
フリップフロップにセーブされる。マルチプレクサ32
は、加算器30がPまたは2木Pのいずれかを受信でき
るようにする入力を備えており、このマルチプレクサ3
2の出力は、加算器30に接続されている。また、マル
チプレクサ36は、加舜器30がCまたは2木Cのいず
れかを受信できるようにする入力を備えている。加算器
30の出力は、加算器31の一方の入力に接続されてい
る。この加算器31の出力は、P(積)レジスタ33に
接続されている。XMマルチプレクサとして表示されて
いる付加的マルチプレクサ34の入力には、X、X/8
.M、および+3Mまたは一3Mとして表示されている
XMレジスタが接続されている。このXMレジスタによ
って、加算器31は、これらの任意のレジスタからデー
タを受信することができる。マルチプレクサ34への3
−3 M ”入力は、レジスタ“3M″の反転出力であ
る。他の出力がどれも選択されないならば、マルチプレ
クサ32または34からOの出力を得ることも可能であ
る。
であり、一方加算器31の機能は、マルチプレクサ34
によって選択された値をP(積)レジスタ33に加算す
ることである。この演算は、8ビツト“スライス″に分
割され、各サイクル期間中に、前のスライスからのキャ
リービットは、加算器30によって、各Pスライスに加
算される。選択された値は、加算器31によって、Pに
加算される。この結果として生じたキャリーピットは、
次のサイクルにおける次のスライスに入力されるように
フリップフロップにセーブされる。マルチプレクサ32
は、加算器30がPまたは2木Pのいずれかを受信でき
るようにする入力を備えており、このマルチプレクサ3
2の出力は、加算器30に接続されている。また、マル
チプレクサ36は、加舜器30がCまたは2木Cのいず
れかを受信できるようにする入力を備えている。加算器
30の出力は、加算器31の一方の入力に接続されてい
る。この加算器31の出力は、P(積)レジスタ33に
接続されている。XMマルチプレクサとして表示されて
いる付加的マルチプレクサ34の入力には、X、X/8
.M、および+3Mまたは一3Mとして表示されている
XMレジスタが接続されている。このXMレジスタによ
って、加算器31は、これらの任意のレジスタからデー
タを受信することができる。マルチプレクサ34への3
−3 M ”入力は、レジスタ“3M″の反転出力であ
る。他の出力がどれも選択されないならば、マルチプレ
クサ32または34からOの出力を得ることも可能であ
る。
第4図に示されているCレジスタ35の入力は加算器3
1の出力に接続されており、Cレジスタ35の出力は、
マルチプレクサ36を介して加算器30の入力に接続さ
れている。PおよびCレジスタ33および35は、P+
Cまたはそのシフトされた形である2P+2Gのような
結合された出力を有する結合レジスタと見なすことがで
きる。Cレジスタにキャリーが記憶されていることによ
り、一般に、演算期間中のどの時間における和も完全に
は計算されない。さらに言えば、この和は、PおよびC
レジスタ内のデータの和(P+C)であり、シフトされ
た和は、これらのレジスタのシフトされた出力の和(2
P+2G)である。その計算の終りで、CがOになるま
で和P十Cに0が加算される。これは、キャリーレジス
タの″゛フラツシングパ呼ばれている。
1の出力に接続されており、Cレジスタ35の出力は、
マルチプレクサ36を介して加算器30の入力に接続さ
れている。PおよびCレジスタ33および35は、P+
Cまたはそのシフトされた形である2P+2Gのような
結合された出力を有する結合レジスタと見なすことがで
きる。Cレジスタにキャリーが記憶されていることによ
り、一般に、演算期間中のどの時間における和も完全に
は計算されない。さらに言えば、この和は、PおよびC
レジスタ内のデータの和(P+C)であり、シフトされ
た和は、これらのレジスタのシフトされた出力の和(2
P+2G)である。その計算の終りで、CがOになるま
で和P十Cに0が加算される。これは、キャリーレジス
タの″゛フラツシングパ呼ばれている。
これらの算術的なデータバスの結果として、以下のよう
な演算が可能となる。
な演算が可能となる。
P+C=O
P+C−P+CP+C=2P+2C
P+CP+C
−P+C+X/8 =2P+2C+X/8p+c
p+c−P+C+M
=2P+20+Mp+c
p+c−P+C−3M −2
P+20−3Mp+c p+
c−P+C+3M −2P+20+3Mこ
のことから分るように、どのレジスタもPレジスタ33
からロードされることができる。さらに説明すれば、P
レジスタ33はマイクロプロセッサによってa−ドされ
、またこのマイクロプロセッサは、全ての回路を制御し
ている。したがって、マイクロプロセッサは、Pレジス
タ33を介して、全てのレジスタをロードすることがで
きる。図に示されているように、Pレジスタ33の出力
はマルチプレクサ37および38に接続されている。こ
れらのマルチプレクサ37および38は、SYレジスタ
39およびRYレジスタ40にそれぞれ関連している。
p+c−P+C+M
=2P+20+Mp+c
p+c−P+C−3M −2
P+20−3Mp+c p+
c−P+C+3M −2P+20+3Mこ
のことから分るように、どのレジスタもPレジスタ33
からロードされることができる。さらに説明すれば、P
レジスタ33はマイクロプロセッサによってa−ドされ
、またこのマイクロプロセッサは、全ての回路を制御し
ている。したがって、マイクロプロセッサは、Pレジス
タ33を介して、全てのレジスタをロードすることがで
きる。図に示されているように、Pレジスタ33の出力
はマルチプレクサ37および38に接続されている。こ
れらのマルチプレクサ37および38は、SYレジスタ
39およびRYレジスタ40にそれぞれ関連している。
SYレジスタ39およびRYレジスタ40は、マルチプ
レクサ37および38に左回りでそれぞれ帰還接続され
、乗算X*Yの実行を支援している。この場合、Yの最
大有効ビットは、シフトと加算とから成る乗算の各ステ
ップにおいて、X/8またはOのどちらを加算するかを
選ぶために使用される。
レクサ37および38に左回りでそれぞれ帰還接続され
、乗算X*Yの実行を支援している。この場合、Yの最
大有効ビットは、シフトと加算とから成る乗算の各ステ
ップにおいて、X/8またはOのどちらを加算するかを
選ぶために使用される。
第4図に示されているように、演算レジスタは、P1C
%X%RY、SY、Mおよび3Mとして表示されており
、以下に示すようなビット位置を有している。
%X%RY、SY、Mおよび3Mとして表示されており
、以下に示すようなビット位置を有している。
N+2N+l N N−I N−2−・ 2
1 0 −1 −2 −3十−−−十−−
−十−−一十−−−十−−−−十−+−−十〜−十−−
十−−−十−−−十−−−−一士P: I(−−−−
−−−−−−−−−−−−−−−−−−−−−〜−−−
−−−−−−−−−−−−−−)IRY:
I(’″−−−−−−− −−−−−−−
−−−−−−−−−−−−−一−−)JSY:
I(−−−−−−−−−−−−−
−−−一−−−−−−−−−−−−−−>LX:
I<−−−−−−−−−−−−
−−−−−)IM: l<−−−−−−−−
−−−−一一一一一)1M3: I(−−−−−
−−−−−−−−−−−−−−m−−−−−−−)I2
つのレジスタ39および40 (S YおよびRY)は
、計算X*YのYに対応している。SYレジスタ39は
、区数Bを順次2乗したものを記憶し、RYレジスタ4
0は、最終的に結果Rとなる選択された2乗の積に対応
する。これらのレジスタ39および40は、第2図に示
したレジスタ20および22に類似している。Pレジス
タ33は、部分積、およびモジュロ演算の基数をMとし
てXをRY倍またはSY倍した最終的な積を得るために
使用される。Mレジスタは、基数Mを保持し、3Mレジ
スタは、3木Mを保持している。
1 0 −1 −2 −3十−−−十−−
−十−−一十−−−十−−−−十−+−−十〜−十−−
十−−−十−−−十−−−−一士P: I(−−−−
−−−−−−−−−−−−−−−−−−−−−〜−−−
−−−−−−−−−−−−−−)IRY:
I(’″−−−−−−− −−−−−−−
−−−−−−−−−−−−−一−−)JSY:
I(−−−−−−−−−−−−−
−−−一−−−−−−−−−−−−−−>LX:
I<−−−−−−−−−−−−
−−−−−)IM: l<−−−−−−−−
−−−−一一一一一)1M3: I(−−−−−
−−−−−−−−−−−−−−m−−−−−−−)I2
つのレジスタ39および40 (S YおよびRY)は
、計算X*YのYに対応している。SYレジスタ39は
、区数Bを順次2乗したものを記憶し、RYレジスタ4
0は、最終的に結果Rとなる選択された2乗の積に対応
する。これらのレジスタ39および40は、第2図に示
したレジスタ20および22に類似している。Pレジス
タ33は、部分積、およびモジュロ演算の基数をMとし
てXをRY倍またはSY倍した最終的な積を得るために
使用される。Mレジスタは、基数Mを保持し、3Mレジ
スタは、3木Mを保持している。
後で説明するように、指数Eは、マイクロプロセッサに
よって、種々の形式の指令シーケンスにおける1タイム
当りに1ビツトの割合いで回路に接続される。キャリー
セーブレジスタであるCレジスタ35は、後に説明され
るように、多くの部分に割込まれている。本質的に、C
レジスタ35は、Pレジスタ33の8つのビット位置毎
に2つのビット位置を有している。このため、どのサイ
クルの部分和も実際にPおよびCとなる。いくつかのレ
ジスタは、Nビットよりも多くのビットを有している。
よって、種々の形式の指令シーケンスにおける1タイム
当りに1ビツトの割合いで回路に接続される。キャリー
セーブレジスタであるCレジスタ35は、後に説明され
るように、多くの部分に割込まれている。本質的に、C
レジスタ35は、Pレジスタ33の8つのビット位置毎
に2つのビット位置を有している。このため、どのサイ
クルの部分和も実際にPおよびCとなる。いくつかのレ
ジスタは、Nビットよりも多くのビットを有している。
例えば、Pレジスタ33は、その上位桁の位置に3つの
余分なビットを有している。その理由は、部分和が、P
レジスタ33が閾値T(−2木木(N−1))と比較さ
れる時間に−2,5木Mから2.5木Mまでの範囲の値
を有することが可能なためである。このことは、以下に
示されている。
余分なビットを有している。その理由は、部分和が、P
レジスタ33が閾値T(−2木木(N−1))と比較さ
れる時間に−2,5木Mから2.5木Mまでの範囲の値
を有することが可能なためである。このことは、以下に
示されている。
N+2N+I N N−I N−2@・・ 2
1 0 −1 −2 −3十−〜−十−−
−+−−+−−−−+−−−−十−+−−十−−+−−
十−−−+−−−+−−−−+P : I<−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−一>I工1゛との比甲父
I ■ のためVこ必多: ■ ■ とされる 1 ■ ビット l Pレジスタの値は示されているが、その他のレジスタの
値はどれも示されていない。Pレジスタ33はその下位
位置に3つの余分なビットを有する。
1 0 −1 −2 −3十−〜−十−−
−+−−+−−−−+−−−−十−+−−十−−+−−
十−−−+−−−+−−−−+P : I<−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−一>I工1゛との比甲父
I ■ のためVこ必多: ■ ■ とされる 1 ■ ビット l Pレジスタの値は示されているが、その他のレジスタの
値はどれも示されていない。Pレジスタ33はその下位
位置に3つの余分なビットを有する。
なぜなら、87′YがPに時には加算されるからである
。SYレジスタ39およびRYレジスタ40は、その下
位位置に3つの余分なピッ]・をそれぞれ有しており、
N+3のシフトおよび加算サイクルにおいて、XとYと
の積と同じ結果を得るためにX/8にY木8を乗算する
ことができる。そして、3Mレジスタは、後で説明する
ように、3木Mの値を保持するために、そのO位置に2
つの余分なビットを有している。この乗算は、゛タイム
スライス″されて実行される。これは、最初に、演算回
路が、レジスタの下位半分に対するシフトおよび加算機
能を実行するために使用され、そして次に、この同じ回
路が、レジスタの上位半分に対するシフトおよび加算機
能を実行するために再び使用されることを意味している
。
。SYレジスタ39およびRYレジスタ40は、その下
位位置に3つの余分なピッ]・をそれぞれ有しており、
N+3のシフトおよび加算サイクルにおいて、XとYと
の積と同じ結果を得るためにX/8にY木8を乗算する
ことができる。そして、3Mレジスタは、後で説明する
ように、3木Mの値を保持するために、そのO位置に2
つの余分なビットを有している。この乗算は、゛タイム
スライス″されて実行される。これは、最初に、演算回
路が、レジスタの下位半分に対するシフトおよび加算機
能を実行するために使用され、そして次に、この同じ回
路が、レジスタの上位半分に対するシフトおよび加算機
能を実行するために再び使用されることを意味している
。
この゛タイムスライス″処理の結果、全てのデータを記
憶することは依然必要とされるが、計算回路の量はその
半分になる。この“タイムスライスパ処理によって、上
記各レジスタは、N/2ビット位置と<N/2)−1ビ
ツト位置との間で、半分に分けられる。P、SY、およ
びRYレジスタ33.39.および40には、下位半分
での演算を上位半分での演算に連結させるために使用さ
れるいくつかのリンキング(連結)ビットがある。
憶することは依然必要とされるが、計算回路の量はその
半分になる。この“タイムスライスパ処理によって、上
記各レジスタは、N/2ビット位置と<N/2)−1ビ
ツト位置との間で、半分に分けられる。P、SY、およ
びRYレジスタ33.39.および40には、下位半分
での演算を上位半分での演算に連結させるために使用さ
れるいくつかのリンキング(連結)ビットがある。
第5図は、この発明に係る暗号装置の構成を示すブロッ
ク図である。
ク図である。
本質的に、第5図の目的は、マイクロプロセッサ40を
伴った暗号装置のインターフェースを示すことである。
伴った暗号装置のインターフェースを示すことである。
このマイクロプロセッサ40は、市場で販売されている
通常のマイクロプロセッサで良い。第2図に示した構成
を実行するためには、主要装置41を備える必要がある
。この主要装置41は、42および42Nとして表示さ
れている複数の従属装置と協同して動作するものである
。この従属i置は、そのシステムの必要性に基づいて、
最低2つのユニットから4つのユニツ1−まで増やすこ
とができる。
通常のマイクロプロセッサで良い。第2図に示した構成
を実行するためには、主要装置41を備える必要がある
。この主要装置41は、42および42Nとして表示さ
れている複数の従属装置と協同して動作するものである
。この従属i置は、そのシステムの必要性に基づいて、
最低2つのユニットから4つのユニツ1−まで増やすこ
とができる。
第5図から分るように、第4図に示した演算レジスタか
らの種々の出力は、X/8.P、C,Y等のように与え
られている。各装置に対して種々のクロック入力が存在
し、第1のクロックは16MH2、第2のクロックは8
MHzで動作可能であり、また4ビツトのバスである制
御状態バスは、各装置の動作を制御するものである。マ
イクロプロセッサは、主要装置および従属装置への6つ
の制御入力を有しており、その4ビツトはアドレスビッ
ト、1ビツトはイネーブルビット、そして1ビツトは書
込みビットである。
らの種々の出力は、X/8.P、C,Y等のように与え
られている。各装置に対して種々のクロック入力が存在
し、第1のクロックは16MH2、第2のクロックは8
MHzで動作可能であり、また4ビツトのバスである制
御状態バスは、各装置の動作を制御するものである。マ
イクロプロセッサは、主要装置および従属装置への6つ
の制御入力を有しており、その4ビツトはアドレスビッ
ト、1ビツトはイネーブルビット、そして1ビツトは書
込みビットである。
第6図(第6a図および第6b図)は、第5図に示した
主要装置41を詳細に示す図である。
主要装置41を詳細に示す図である。
第6図を参照する前に、第5図かられかるように、マイ
クロプロセッサ40は、簡単なメモリインターフェース
として主要装置および従属装置に接続されている。した
がって、マイクロプロセッサ40には、双方向並列デー
タバス43、並列アドレスバス44.!込みイネーブル
制御45.読出しすなわち出力イネーブル&IJIII
46およびチップイネーブル制御1147が設けられて
いる。これらは全て主要装置に接続され、また、アドレ
ス、書込みイネーブル、およびチップイネーブルは、従
属装置にも接続されている。
クロプロセッサ40は、簡単なメモリインターフェース
として主要装置および従属装置に接続されている。した
がって、マイクロプロセッサ40には、双方向並列デー
タバス43、並列アドレスバス44.!込みイネーブル
制御45.読出しすなわち出力イネーブル&IJIII
46およびチップイネーブル制御1147が設けられて
いる。これらは全て主要装置に接続され、また、アドレ
ス、書込みイネーブル、およびチップイネーブルは、従
属装置にも接続されている。
第6図に示されているように、マイクロプロセッサ40
からの出力線は、1ilJ I11回路モジュール50
にインターフェースしている。この制御回路モジュール
50はSRレジスタ51を備えており、このSRレジス
タ51は、第5図に示したように主要装置と従属装置と
の間の制御状態バスに直接インターフェースしている。
からの出力線は、1ilJ I11回路モジュール50
にインターフェースしている。この制御回路モジュール
50はSRレジスタ51を備えており、このSRレジス
タ51は、第5図に示したように主要装置と従属装置と
の間の制御状態バスに直接インターフェースしている。
制御回路50には、LR/CRレジスタとして表示され
ているレジスタ52が接続されている。このレジスタ5
2は、磨込みアドレスに割当てられた指令(CR)およ
びロード(LR)レジスタを備えており、データのアン
ロードとビジー状態の読出しは、読出しアドレスに割当
てられている。
ているレジスタ52が接続されている。このレジスタ5
2は、磨込みアドレスに割当てられた指令(CR)およ
びロード(LR)レジスタを備えており、データのアン
ロードとビジー状態の読出しは、読出しアドレスに割当
てられている。
これらの機能は、主要装置のみによって実行される。マ
イクロプロセッサ40によるチップイネーブル144の
付勢は、読出しまたは書込みイネーブル45および46
および1つのアドレスを伴って、データバス43でのデ
ータ転送を引起こし、また、第5図に示した装置相間内
で実行されるべき関連動作を引起こす。
イクロプロセッサ40によるチップイネーブル144の
付勢は、読出しまたは書込みイネーブル45および46
および1つのアドレスを伴って、データバス43でのデ
ータ転送を引起こし、また、第5図に示した装置相間内
で実行されるべき関連動作を引起こす。
後で説明するように、上記装置相間内でのデータ転送を
可能にする8つの疑似書込みアドレスが存在するが、マ
イクロプロセッサ40からのデータはこれには書込まれ
ない。したがって、この装置組には全部で11のアドレ
スが存在する。主要装置は、演算回路の最小有効ビット
(左側のスライス)および最大有効ビット(右側のスラ
イス)の両方を有している。これらは、レジスタ55お
よび56に含まれている。各スライスは、第4図を参照
してすでに説明したレジスタおよび加算器を含んだ全て
のデータバスを有している。主要装置におけるビット数
は、最小有効スライスおよび最大有効スライスが便宜上
9ピツトおよび6ビ・ソトスライスから成り、他のスラ
イスは全て、8ビツトの符号長を有する。このことは、
レジスタ55および56を含んだ第6b図から理解され
よう。最小有効スライスは、実際には、X/8の操作の
ための3つの付加的な最小有効ビットを伴った6ビツト
スライスである。最大有効スライスにおいて、Pレジス
タ(第4図で33ンおよび加算器は、−2,5Mから2
.5Mの範囲で処理を行なうために3ビツトが余分に付
加されている。Pレジスタの下位12ビツトは、NRレ
ジスタ57へのロードのために使用される。このNRレ
ジスタ51は、サイクルカウントレジスタであり、その
出力は、NCカウンタ58に接続されている。このNC
カウンタ58は、13ビツトのカウンタである。NRレ
ジスタ57は、自動乗算のためのサイクルカウントを記
憶するために使用される。このカウントされた値は、そ
の最大有効位置に付与された正符号(0)を伴って、N
Rレジスタ57からNCカウンタ58にロードされる。
可能にする8つの疑似書込みアドレスが存在するが、マ
イクロプロセッサ40からのデータはこれには書込まれ
ない。したがって、この装置組には全部で11のアドレ
スが存在する。主要装置は、演算回路の最小有効ビット
(左側のスライス)および最大有効ビット(右側のスラ
イス)の両方を有している。これらは、レジスタ55お
よび56に含まれている。各スライスは、第4図を参照
してすでに説明したレジスタおよび加算器を含んだ全て
のデータバスを有している。主要装置におけるビット数
は、最小有効スライスおよび最大有効スライスが便宜上
9ピツトおよび6ビ・ソトスライスから成り、他のスラ
イスは全て、8ビツトの符号長を有する。このことは、
レジスタ55および56を含んだ第6b図から理解され
よう。最小有効スライスは、実際には、X/8の操作の
ための3つの付加的な最小有効ビットを伴った6ビツト
スライスである。最大有効スライスにおいて、Pレジス
タ(第4図で33ンおよび加算器は、−2,5Mから2
.5Mの範囲で処理を行なうために3ビツトが余分に付
加されている。Pレジスタの下位12ビツトは、NRレ
ジスタ57へのロードのために使用される。このNRレ
ジスタ51は、サイクルカウントレジスタであり、その
出力は、NCカウンタ58に接続されている。このNC
カウンタ58は、13ビツトのカウンタである。NRレ
ジスタ57は、自動乗算のためのサイクルカウントを記
憶するために使用される。このカウントされた値は、そ
の最大有効位置に付与された正符号(0)を伴って、N
Rレジスタ57からNCカウンタ58にロードされる。
そして、NCカウンタ58は、その符号が負になるまで
減少される。したがって、NCカウンタ58は、乗算処
理期間中に現われる部分積の数を制御し、これを制闇回
路50に指示する。Pレジスタ33の下位3ビツトは、
YC(Y形状制御)レジスタ60へのロードのために使
用される。このY形状制御レジスタ60は、短い基数値
に対する“ループアラウンド″パス位置を決定する。P
レジスタ33の符号ビットである最大有効ビットは、P
の符号を検査するために使用される。Pレジスタ33の
上位4ビツトは、閾値比較器61に供給され、そこでP
≧TおよびP<−Tが調べられる。この閾値比較器61
からの出力は、その比較結果を制御回路50に直接知ら
せる。説明を簡単にするために、第1の制御回路をロー
ドおよびアンロード制御とみなすことにする。制御回路
50がマイクロプロセッサ40からのロード指令を受信
した時に、ロードレジスタ52の最小有効位置に付与さ
れたロードフラグビットをクリアされる。これは、LR
レジスタ52の左へのシフトを開始させる。LRレジス
タからの最大有効ビットは、Pのための加算器の最小有
効ビットへ1またはOのどちらかを入力するマルチプレ
クサゲート61を制御するために使用、されている。そ
して、LRレジスタ52からのビットは、以下に示すよ
うに、Pレジスタ33にシフト入力される。
減少される。したがって、NCカウンタ58は、乗算処
理期間中に現われる部分積の数を制御し、これを制闇回
路50に指示する。Pレジスタ33の下位3ビツトは、
YC(Y形状制御)レジスタ60へのロードのために使
用される。このY形状制御レジスタ60は、短い基数値
に対する“ループアラウンド″パス位置を決定する。P
レジスタ33の符号ビットである最大有効ビットは、P
の符号を検査するために使用される。Pレジスタ33の
上位4ビツトは、閾値比較器61に供給され、そこでP
≧TおよびP<−Tが調べられる。この閾値比較器61
からの出力は、その比較結果を制御回路50に直接知ら
せる。説明を簡単にするために、第1の制御回路をロー
ドおよびアンロード制御とみなすことにする。制御回路
50がマイクロプロセッサ40からのロード指令を受信
した時に、ロードレジスタ52の最小有効位置に付与さ
れたロードフラグビットをクリアされる。これは、LR
レジスタ52の左へのシフトを開始させる。LRレジス
タからの最大有効ビットは、Pのための加算器の最小有
効ビットへ1またはOのどちらかを入力するマルチプレ
クサゲート61を制御するために使用、されている。そ
して、LRレジスタ52からのビットは、以下に示すよ
うに、Pレジスタ33にシフト入力される。
P+C−2P+2C+LRbit 7LRレジスタが
左にシフトされるので、1はロードフラグフリップフロ
ップ63にシフト入力され、ロードフラグビットはLR
レジスタにシフト入力される。LRレジスタの全ての1
状態が検出器64およびゲート62によって検出された
時に、シフトは制御回路50によってストップされる。
左にシフトされるので、1はロードフラグフリップフロ
ップ63にシフト入力され、ロードフラグビットはLR
レジスタにシフト入力される。LRレジスタの全ての1
状態が検出器64およびゲート62によって検出された
時に、シフトは制御回路50によってストップされる。
マイクロプロセッサは、ロードされるべき各8ビツトの
データに対してロード指令を繰返す。この場合、最大有
効ビットからロードが開始される。アンロードの制御は
、ロードの制御よりも単純である。制御回路50がアン
ロード指令を受信した時に、制御回路50ハ、ケート6
5オヨヒ66(oE)ニヨリ、N−1からN−8ビツト
のデータバス43への出力を許可する。マイクロプロセ
ッサは、Pレジスタを8ビツトを左へシフトし次の8ビ
ツトがアンロードできるようにするために、ロード指令
を出力しなければならない。
データに対してロード指令を繰返す。この場合、最大有
効ビットからロードが開始される。アンロードの制御は
、ロードの制御よりも単純である。制御回路50がアン
ロード指令を受信した時に、制御回路50ハ、ケート6
5オヨヒ66(oE)ニヨリ、N−1からN−8ビツト
のデータバス43への出力を許可する。マイクロプロセ
ッサは、Pレジスタを8ビツトを左へシフトし次の8ビ
ツトがアンロードできるようにするために、ロード指令
を出力しなければならない。
第6a図の右側にはタイミング回路が示されている。発
振器70は、水晶発成により制御可能なものであり、第
1のクロック出力を出力する。この第1のクロック出力
は、従属装置へ送られる。第1のクロックは、フリップ
フロップ71により2つのファクターに分割されて、最
小有効位置の演算のだめのLSおよび最大有効位置の演
算のためのMSとして表示されている2つのタイミング
制御信号が発生される。MSは、第5図にも示されてい
る第2のクロックとして従属装置へ送られる。
振器70は、水晶発成により制御可能なものであり、第
1のクロック出力を出力する。この第1のクロック出力
は、従属装置へ送られる。第1のクロックは、フリップ
フロップ71により2つのファクターに分割されて、最
小有効位置の演算のだめのLSおよび最大有効位置の演
算のためのMSとして表示されている2つのタイミング
制御信号が発生される。MSは、第5図にも示されてい
る第2のクロックとして従属装置へ送られる。
図示されているように、フリップフロップ71は、本質
的に、発振器70によって供給されるクロック速度で切
換動作(トグル)するカウンタである。
的に、発振器70によって供給されるクロック速度で切
換動作(トグル)するカウンタである。
フリップフロップ71は、11 D 11形式のフリッ
プフロップであり、その出力QはLSとして表示されて
いる。このLSは、下位の“タイムスライス′。
プフロップであり、その出力QはLSとして表示されて
いる。このLSは、下位の“タイムスライス′。
演算を制御する。またMSとして表示されている出力こ
は、上位の゛タイムスライス°′演算を制御する。
は、上位の゛タイムスライス°′演算を制御する。
CRレジスタは、モジュール52のLRレジスタと組合
わされているものであって、マイクロプロセッサ40か
らの指令を受信するために使用されている。マイクロプ
ロセッサから見れば、CRレジスタは、マイクロプロセ
ッサデータバス43から非同期的にロードされる。主要
装置から見ると、書込みイネーブル信号がトリガするこ
とによって、内部クロックパルスに同期してCRレジス
タがロードされる。SRレジスタ51は状態レジスタで
あって、制御状態バスを介して、主要装置から従属装置
へ制御状態を送信するために使用されている。
わされているものであって、マイクロプロセッサ40か
らの指令を受信するために使用されている。マイクロプ
ロセッサから見れば、CRレジスタは、マイクロプロセ
ッサデータバス43から非同期的にロードされる。主要
装置から見ると、書込みイネーブル信号がトリガするこ
とによって、内部クロックパルスに同期してCRレジス
タがロードされる。SRレジスタ51は状態レジスタで
あって、制御状態バスを介して、主要装置から従属装置
へ制御状態を送信するために使用されている。
ロードデータレジスタであるLRは、Pレジスタに1度
に1バイトのデータをロードするために使用されている
。そして、Pレジスタからのデータは、他のいずれかの
レジスタに転送される。ブロック55および56は、第
4図に示した演算論理における最小有効位置および最大
有効位置である。この算術論理の中間有効位置は、従属
装置に関係している。
に1バイトのデータをロードするために使用されている
。そして、Pレジスタからのデータは、他のいずれかの
レジスタに転送される。ブロック55および56は、第
4図に示した演算論理における最小有効位置および最大
有効位置である。この算術論理の中間有効位置は、従属
装置に関係している。
上記したように、Y形状レジスタ60は、第4図に示し
たように、ブロック55および5G内に含まれた実際の
データと同じ符号長で循環しているYレジスタの切捨て
を制御するために使用されている。
たように、ブロック55および5G内に含まれた実際の
データと同じ符号長で循環しているYレジスタの切捨て
を制御するために使用されている。
その他のレジスタにおいては、左側にデータを整列させ
、右側にOを詰込むことだけが必要とされる。
、右側にOを詰込むことだけが必要とされる。
第7図は、第5図で42および42Nとして表示した従
属装置の一例を示すものである。第7図の上部は、従属
装置の制御回路を表わしており、マイクロプロセッサか
らの入力は、アドレス、チップイネーブル、書込みイネ
ーブル、および制御状態バスとして表示されている。第
7図の下部は、レジスタ80内のスライス列を示してお
り、例えば第4図に示したような演算回路を具備してい
る。この演算回路は、従属装置が排他的に8ビツトスラ
イスから成る完全にレギュラーな装置であることを除い
て、主要装置で記載したものと同じである。
属装置の一例を示すものである。第7図の上部は、従属
装置の制御回路を表わしており、マイクロプロセッサか
らの入力は、アドレス、チップイネーブル、書込みイネ
ーブル、および制御状態バスとして表示されている。第
7図の下部は、レジスタ80内のスライス列を示してお
り、例えば第4図に示したような演算回路を具備してい
る。この演算回路は、従属装置が排他的に8ビツトスラ
イスから成る完全にレギュラーな装置であることを除い
て、主要装置で記載したものと同じである。
この従属装置は、レジスタの最小有効位置お・よび最大
有効位置のための主要装置と共に記載された特定の回路
を必要としない。本質的に、従属装置は、マイクロプロ
セッサ40からの内部レジスタ転送指令、および主要装
置からの制御状態を承認することだけが必要である。従
属装置のタイミングは、LSおよびMS信号を再発生す
る単一のフリップフロップ81で制御される。
有効位置のための主要装置と共に記載された特定の回路
を必要としない。本質的に、従属装置は、マイクロプロ
セッサ40からの内部レジスタ転送指令、および主要装
置からの制御状態を承認することだけが必要である。従
属装置のタイミングは、LSおよびMS信号を再発生す
る単一のフリップフロップ81で制御される。
第6図および第7図は、第5図のように接続された主要
装置および従属装置の機能的なブロック図を示すもので
ある。主要装置は、各制御サイクル期間中に、7つの制
御状態のうちの1つを発生させる。制御サイクルは、最
小有効゛タイムスライス′°のためのLSクロックサイ
クルと、最大有効゛タイムスライス°′のためのMSク
ロックサイクルとの2つのクロックサイクルに渡ってい
る。
装置および従属装置の機能的なブロック図を示すもので
ある。主要装置は、各制御サイクル期間中に、7つの制
御状態のうちの1つを発生させる。制御サイクルは、最
小有効゛タイムスライス′°のためのLSクロックサイ
クルと、最大有効゛タイムスライス°′のためのMSク
ロックサイクルとの2つのクロックサイクルに渡ってい
る。
これらの7つの制御状態を以下に示す。
(P十〇−P十G) (アイドル/フラッシュ)(
P十C−2P+2C)(ロード/アンロード)(P十〇
−0) (P+C−P+C+M) (P+C−P+C−M3) (P+C−P+C+M3) (P+C−2P+2C+YX、5hNxt)これらの制
御状態のうちの第1の制御状態は、ディフォルトまたは
アイドル動作であり、Pレジスタにキャリーをフラッシ
ュする。12の制御状態において、主要装置における動
作は実際に次のようになる。
P十C−2P+2C)(ロード/アンロード)(P十〇
−0) (P+C−P+C+M) (P+C−P+C−M3) (P+C−P+C+M3) (P+C−2P+2C+YX、5hNxt)これらの制
御状態のうちの第1の制御状態は、ディフォルトまたは
アイドル動作であり、Pレジスタにキャリーをフラッシ
ュする。12の制御状態において、主要装置における動
作は実際に次のようになる。
P十C−2P+2C+LR7゜
LR−2木LR+LoadF l aa。
LoadF I ao−1
これは、a−ドおよびアンロード動作を行なうものであ
る。
る。
最後の制御状態において、“十Y X ”は、YEND
ビット(選択されたYレジスタの最大有効ビット)が1
の時はいつでも各装置がX/8を加算することを意味し
ている。“S h N x t ”は、選択されたYレ
ジスタが次のサイクル期間中にシフトされることを示し
ている。すなわち、この部分の演算は1サイクル遅延さ
れる。制御状態は、指令レジスタORの内容によって決
定される。
ビット(選択されたYレジスタの最大有効ビット)が1
の時はいつでも各装置がX/8を加算することを意味し
ている。“S h N x t ”は、選択されたYレ
ジスタが次のサイクル期間中にシフトされることを示し
ている。すなわち、この部分の演算は1サイクル遅延さ
れる。制御状態は、指令レジスタORの内容によって決
定される。
第4図に戻ると、SYレジスタ39およびRYレジスタ
40はロードおよびシフ1−されて、他のレジスタの“
タイムスライス″構造を利用できることが示されている
。これによって、必要とされるロードおよびシフト動作
を支援するために必要なマルチプレクサとビンの数は減
少される。
40はロードおよびシフ1−されて、他のレジスタの“
タイムスライス″構造を利用できることが示されている
。これによって、必要とされるロードおよびシフト動作
を支援するために必要なマルチプレクサとビンの数は減
少される。
簡単な方法は、選択されたYレジスタを1クロックパル
ス当り1ビット位置左へ単に回転させることであり、レ
ジスタの内容が ABCDabcd であった場合には、 8CDabcdA となる。
ス当り1ビット位置左へ単に回転させることであり、レ
ジスタの内容が ABCDabcd であった場合には、 8CDabcdA となる。
この方法は、ロードするためのPレジスタの対応するビ
ットまたはシフトするためのYレジスタの次のビットを
選択するために、Yレジスタの各フリップフロップ当り
2ウエイのマルチプレクサを必要とする。
ットまたはシフトするためのYレジスタの次のビットを
選択するために、Yレジスタの各フリップフロップ当り
2ウエイのマルチプレクサを必要とする。
゛°タイムスライスパされた構造を伴った並列ロードを
促進するために、Yレジスタの最大有効(ms)である
半分と最小有効(IS)である半分は、Pレジスタの構
成に基づいてスタックされる。シフトされる前の状態は
、 BCD bcd であり、シフト後の状態は、 CDa CdA となる。しかし、そのシフトの関係はそのまま同じに維
持される。2つの側の接続は各チップ境界線で必要とさ
れ、2つの接続は左端と右端とを接続するためにも必要
であることが明らかとなる。
促進するために、Yレジスタの最大有効(ms)である
半分と最小有効(IS)である半分は、Pレジスタの構
成に基づいてスタックされる。シフトされる前の状態は
、 BCD bcd であり、シフト後の状態は、 CDa CdA となる。しかし、そのシフトの関係はそのまま同じに維
持される。2つの側の接続は各チップ境界線で必要とさ
れ、2つの接続は左端と右端とを接続するためにも必要
であることが明らかとなる。
同じ結果を達成するために、Yレジスタを2つのステッ
プにおいて下方へ回転することかできる。
プにおいて下方へ回転することかできる。
これは、ざらに緊密にPレジスタの動作に対応し、マル
チプレクサおよびサイド接続の必要が無くなる。この場
合のロードは、2クロツクサイクルで実行される。その
開始状態は、 P: ABCD abcd y: xxxx × × × × である。ここで、ビット記号11 X IIは、未知の
データまたは任意のデータを表わしている。1クロツク
サイクル後においては、次のような関係が成立つ。
チプレクサおよびサイド接続の必要が無くなる。この場
合のロードは、2クロツクサイクルで実行される。その
開始状態は、 P: ABCD abcd y: xxxx × × × × である。ここで、ビット記号11 X IIは、未知の
データまたは任意のデータを表わしている。1クロツク
サイクル後においては、次のような関係が成立つ。
p: abcd
ABCD
Y: abcd
xxxx
そして、2クロツクサイクル後では、
P: ABCD
abcd
Y: ABCD
abcd
となる。Pレジスタが垂直方向に回転されるので、それ
は、Yに垂直にシフトされる。
は、Yに垂直にシフトされる。
Yの回転が2ステツプで実行されることも可能である。
Yレジスタが垂直方向に2ステツプで回転されると、そ
の最終的な結果は、前に示した1ステツプでの水平方向
の回転と同じになる。これには、付加的なフリップフロ
ップが必要となる。その開始状態において、x+1は、
その開始される値がいずれの値でも良いことを示してい
る。
の最終的な結果は、前に示した1ステツプでの水平方向
の回転と同じになる。これには、付加的なフリップフロ
ップが必要となる。その開始状態において、x+1は、
その開始される値がいずれの値でも良いことを示してい
る。
ABCD
abcd
第1のクロックパルスにおいて、全てのビットは下方ヘ
シフトされ、各段の底部からのビットは、次の段の上部
および左へ移動される。この場合に、最も左の前段の上
部は、最も右の段の上部に移動される。
シフトされ、各段の底部からのビットは、次の段の上部
および左へ移動される。この場合に、最も左の前段の上
部は、最も右の段の上部に移動される。
bcdA
ABCD
補助的なフリップ70ツブは、捕獲されたビット11
aIIを有しており、このビットは別の方法で消去され
る。第2のクロックパルスにおいて、補助的なフリップ
フロップのビットが最も右の段の上部に移動されること
以外は、第1のクロックパルスでのシフトと同じシフト
が行われる。
aIIを有しており、このビットは別の方法で消去され
る。第2のクロックパルスにおいて、補助的なフリップ
フロップのビットが最も右の段の上部に移動されること
以外は、第1のクロックパルスでのシフトと同じシフト
が行われる。
BCDa
cdA
補助的なフリップフロップを無視すれば、この結果は、
1ステツプでの水平方向回転と同じになるが、1つのサ
イドでの接続は各装置の境界線で必要とされる。また、
回転動作とロード動作とを比較することによって、フリ
ップフロップの底部の段への入力は、両方の動作と同じ
であることが明らかである。これらの制御は、Yレジス
タの回転またはロードのいずれかに基づいている。マル
チプレクサは、この配置における左端のビットが右端へ
移動されるべきであるかどうかを選択するために必要と
される。この場合の制御は、クロックサイクルが2クロ
ツクサイクルの最初の半分に関係しているか、または後
の半分に関係しているかに基づいている。
1ステツプでの水平方向回転と同じになるが、1つのサ
イドでの接続は各装置の境界線で必要とされる。また、
回転動作とロード動作とを比較することによって、フリ
ップフロップの底部の段への入力は、両方の動作と同じ
であることが明らかである。これらの制御は、Yレジス
タの回転またはロードのいずれかに基づいている。マル
チプレクサは、この配置における左端のビットが右端へ
移動されるべきであるかどうかを選択するために必要と
される。この場合の制御は、クロックサイクルが2クロ
ツクサイクルの最初の半分に関係しているか、または後
の半分に関係しているかに基づいている。
この設計は、SYレジスタにおいて、そのレジスタの右
端への入力が必要でないことを除いて、RYレジスタお
よびSYレジスタの両方において使用することができる
。これら2つのレジスタは絶対に何時にシフトされない
ので、同じサイドの接続は、両方のYレジスタにサーブ
することができる。このようにして、マルチプレクサは
、出力ビンに付加される。この出力ビンは、第6図およ
び第7図のY selラッチ80に示したように、現
在使用しているYレジスタを選択する。入力ビンは、両
方のレジスタに接続され、付勢されてないレジスタによ
って無視される。余分のマルチプレクサにかかる費用は
、サイド接続よりも非常に少なくなる。
端への入力が必要でないことを除いて、RYレジスタお
よびSYレジスタの両方において使用することができる
。これら2つのレジスタは絶対に何時にシフトされない
ので、同じサイドの接続は、両方のYレジスタにサーブ
することができる。このようにして、マルチプレクサは
、出力ビンに付加される。この出力ビンは、第6図およ
び第7図のY selラッチ80に示したように、現
在使用しているYレジスタを選択する。入力ビンは、両
方のレジスタに接続され、付勢されてないレジスタによ
って無視される。余分のマルチプレクサにかかる費用は
、サイド接続よりも非常に少なくなる。
、前に示したように、乗算の形式(X/8)木(8木Y
)を実行するために、Y値の晟小有効(IS)端に3つ
のOを加えることは好都合である。これは、サイクルカ
ウンタの最後の3つの状態を解読して、O値を強制する
(Yのシフトを不可能にする)か、または3つの余分な
Oを実際にYレジスタへ入れるかによって行われる。こ
の余分なビットは、底(IS)列の右端に加えられなけ
ればならない、また垂直方向へのシフト形式が元の状態
を維持するために、上側の列の右端にも同じ数のピッが
加えられる。第1のクロックパルスにおいて、ビットは
左端から最も右(FrLい)の段の上部へシフトされる
が、第2のクロックパルスで、左端からのビットは、前
に示した段(元の最も右の段)と同じ段に移動される。
)を実行するために、Y値の晟小有効(IS)端に3つ
のOを加えることは好都合である。これは、サイクルカ
ウンタの最後の3つの状態を解読して、O値を強制する
(Yのシフトを不可能にする)か、または3つの余分な
Oを実際にYレジスタへ入れるかによって行われる。こ
の余分なビットは、底(IS)列の右端に加えられなけ
ればならない、また垂直方向へのシフト形式が元の状態
を維持するために、上側の列の右端にも同じ数のピッが
加えられる。第1のクロックパルスにおいて、ビットは
左端から最も右(FrLい)の段の上部へシフトされる
が、第2のクロックパルスで、左端からのビットは、前
に示した段(元の最も右の段)と同じ段に移動される。
基数m(および底敷b)のビット長が装置組の算術演算
サイズよりも小さい時には、演算を実行するためにいく
つかの調整が必要である。まず、装置組内のデータを左
端に合せるために、mおよびblの後に0をロードする
。データをロードするための時間は、縮められないが、
小さな計数値がロードされて、各乗算サイクルの時間が
減少される。P、X、SY、RY、Mおよび第3の値は
、その右端に同じ数の余分なOをすべて有することにな
る。この演算は前の演算と同じであるが、加算器の最も
右端はいつもOを加算および減算している。減算の補数
および加算キャリー法は、Oの加算とは異なったOの減
算のための付勢を生成する。しかしその結果は、どちら
の場合においても正しい。
サイズよりも小さい時には、演算を実行するためにいく
つかの調整が必要である。まず、装置組内のデータを左
端に合せるために、mおよびblの後に0をロードする
。データをロードするための時間は、縮められないが、
小さな計数値がロードされて、各乗算サイクルの時間が
減少される。P、X、SY、RY、Mおよび第3の値は
、その右端に同じ数の余分なOをすべて有することにな
る。この演算は前の演算と同じであるが、加算器の最も
右端はいつもOを加算および減算している。減算の補数
および加算キャリー法は、Oの加算とは異なったOの減
算のための付勢を生成する。しかしその結果は、どちら
の場合においても正しい。
しかしながら、RYレジスタの回転は、打のられなけれ
ばならない。このRYレジスタの打切りの必要性は、2
つの設計の選択から生じるものである。第1の選択は、
1つのYレジスタを共用しPレジスタとしては別個のも
のを使用するというよりはむしろ、Pレジスタが2乗お
よび結果の累算の両方に分けられ、別のYレジスタが2
乗および結果のために使用されることである。この選択
は、マルチプレクサの数を減少させることができる。第
2の選択は、仮想の次の結果を計算し、そしてその指数
がOビットである場合にはそれを除去することによって
、実行RfJをデータと独立して保つものである。これ
らの選択は共に、RYレジスタの内容が、シフトされた
時に予めサーブされることを必要としている。N+3の
シフト後、全てのビットが元に位置に戻るので、回転は
データを予めサーブする。
ばならない。このRYレジスタの打切りの必要性は、2
つの設計の選択から生じるものである。第1の選択は、
1つのYレジスタを共用しPレジスタとしては別個のも
のを使用するというよりはむしろ、Pレジスタが2乗お
よび結果の累算の両方に分けられ、別のYレジスタが2
乗および結果のために使用されることである。この選択
は、マルチプレクサの数を減少させることができる。第
2の選択は、仮想の次の結果を計算し、そしてその指数
がOビットである場合にはそれを除去することによって
、実行RfJをデータと独立して保つものである。これ
らの選択は共に、RYレジスタの内容が、シフトされた
時に予めサーブされることを必要としている。N+3の
シフト後、全てのビットが元に位置に戻るので、回転は
データを予めサーブする。
RYレジスタは、最も右の位!のような所望される演算
位置にマルチプレクサを付加することによって、種々の
長さの符号長に打切られることができる。もし、マルチ
プレクサが、第1(ISンのクロック周期期間中に、通
常の次のビットの代わりに左端のビットをこのような位
置に挿入するならば、この回転はその位置で打切られる
。
位置にマルチプレクサを付加することによって、種々の
長さの符号長に打切られることができる。もし、マルチ
プレクサが、第1(ISンのクロック周期期間中に、通
常の次のビットの代わりに左端のビットをこのような位
置に挿入するならば、この回転はその位置で打切られる
。
第8b図乃至第8e図は、N−8の時のレジスタの調整
の4つの場合を示すものである。ここで、第8b図の符
号長は9、第8C図の符号長は8、第8d図の符号長は
6(Nの半分よりも大きい)に打切られ、第8e図の符
号長は2(Nの半分よりも小さい)で打切られている。
の4つの場合を示すものである。ここで、第8b図の符
号長は9、第8C図の符号長は8、第8d図の符号長は
6(Nの半分よりも大きい)に打切られ、第8e図の符
号長は2(Nの半分よりも小さい)で打切られている。
第8a図は、特別なマルチプレクサを示すものであって
、簡単のために多くのマルチプレクサを省略したもので
ある。第8b図乃至第8eli4における左側の表は、
シフトされる前のレジスタの状態、および第1および第
2のクロックパルス後におけるレジスタの状態を示して
いる。また、右側のブロック図は、1ステップ当りのデ
ータフローに等しい。
、簡単のために多くのマルチプレクサを省略したもので
ある。第8b図乃至第8eli4における左側の表は、
シフトされる前のレジスタの状態、および第1および第
2のクロックパルス後におけるレジスタの状態を示して
いる。また、右側のブロック図は、1ステップ当りのデ
ータフローに等しい。
制御データ(S[nlビット〉は、Y形状レジスタに設
定され、これは、各装置につきほんの少しのビットだけ
を必要とし、PレジスタからすなわちPレジスタの最も
右側の部分から各8置にロードされることができる。
定され、これは、各装置につきほんの少しのビットだけ
を必要とし、PレジスタからすなわちPレジスタの最も
右側の部分から各8置にロードされることができる。
第9図は、第5図に示したブロック図と類似するもので
あるが、第9図には、マイクロプロセッサ40にインタ
ーフェースするような演算回路および制御回路がそれぞ
れ設けられた主要装置および従属装置のブロック図が示
されている。このブOツク図の目的は、この配置の概念
を明らかにすることである。上記したように、暗号化を
実行する全体の処理回路は、1つの主要装置80および
4つの従属装置86乃至86Nから成る。この装置の制
御は、標準的な8ビツトマイクロプロセツサであるマイ
クロプロセッサ40によって行われる。主要装置85は
、第4図に示したような演算回路、および第6図に示し
たような制御回路から成る。同様に、各従属装置86乃
至86Nは、主要装置内の演算回路と同一の演算回路、
および従属制御回路から成る。
あるが、第9図には、マイクロプロセッサ40にインタ
ーフェースするような演算回路および制御回路がそれぞ
れ設けられた主要装置および従属装置のブロック図が示
されている。このブOツク図の目的は、この配置の概念
を明らかにすることである。上記したように、暗号化を
実行する全体の処理回路は、1つの主要装置80および
4つの従属装置86乃至86Nから成る。この装置の制
御は、標準的な8ビツトマイクロプロセツサであるマイ
クロプロセッサ40によって行われる。主要装置85は
、第4図に示したような演算回路、および第6図に示し
たような制御回路から成る。同様に、各従属装置86乃
至86Nは、主要装置内の演算回路と同一の演算回路、
および従属制御回路から成る。
主要装置および従属装置は、その設計が類似している。
第6図に50として示したような制御回路は、マイクロ
プロセッサ40からの指令を通訳するシーケンス制御装
置である。また、従属装置における制御機能は、制御回
路50およびマイクロプロセッサ40から従属装!!8
6乃至86Nの演算回路へ制御信号を犀に送るだけであ
る。第9図の“演算回路”は、第6図に示したブロック
55および56、および第7図に示したブロック80に
対応している。
プロセッサ40からの指令を通訳するシーケンス制御装
置である。また、従属装置における制御機能は、制御回
路50およびマイクロプロセッサ40から従属装!!8
6乃至86Nの演算回路へ制御信号を犀に送るだけであ
る。第9図の“演算回路”は、第6図に示したブロック
55および56、および第7図に示したブロック80に
対応している。
第10図は、第4図に示した回路と同様の演算回路のブ
ロック図を示すものであって、この図では、第4図に示
した種々のモジュールがどのようにして主要装置および
従属制御ユニット90のような関連する制御回路にイン
ターフェースしているかが直接示されている。
ロック図を示すものであって、この図では、第4図に示
した種々のモジュールがどのようにして主要装置および
従属制御ユニット90のような関連する制御回路にイン
ターフェースしているかが直接示されている。
上記したように、この発明の主な目的は、整数の累乗演
算を実行し、その際にこの演算と基数関数とを組合、わ
せで実行するようにして演算回路を減少させることであ
る。本質的に、累乗の演算は、連続する乗算およびモジ
ュロ演算組に分けられ、ざらにこの連続する乗算および
モジュロ演算組は、連続するシフトおよび加算演算に分
けられる。さらに、回路の複雑性の減少を達成するため
に、゛°タイムスライス”技術が利用されている。第1
0図に示した回路は、上記したように時分割されたもの
である。
算を実行し、その際にこの演算と基数関数とを組合、わ
せで実行するようにして演算回路を減少させることであ
る。本質的に、累乗の演算は、連続する乗算およびモジ
ュロ演算組に分けられ、ざらにこの連続する乗算および
モジュロ演算組は、連続するシフトおよび加算演算に分
けられる。さらに、回路の複雑性の減少を達成するため
に、゛°タイムスライス”技術が利用されている。第1
0図に示した回路は、上記したように時分割されたもの
である。
第11図は、第10図の演算回路内で論理的遅延の最も
長いバスだけが示されている演算回路を示すものであっ
て、これは、最も患い伝搬遅延を示すものであり、この
伝搬遅延はクロックサイクルよりも短くなければならな
い。各乗算/′モジュロ演算は、約N回の加算およびシ
フトサイクルから成り、各加算およびシフトサイクルは
、4クロツクサイクルに分割されている。最も悪い場合
の伝搬遅延バスは、タイミング制御フリップ70ツブ9
1からXマルチプレクサ92、入出力回路93.94、
XMマルチプレクサ95および加算器96の9つのリッ
プルキャリーレベルを介して、設定時間を有するキャリ
ーセーブフリップフロップ97へのバスである。これは
、伝送速度がキャリーセーブスライス(8ビツトとして
示されている)の幅および接続間遅延に主に基づいてい
る。
長いバスだけが示されている演算回路を示すものであっ
て、これは、最も患い伝搬遅延を示すものであり、この
伝搬遅延はクロックサイクルよりも短くなければならな
い。各乗算/′モジュロ演算は、約N回の加算およびシ
フトサイクルから成り、各加算およびシフトサイクルは
、4クロツクサイクルに分割されている。最も悪い場合
の伝搬遅延バスは、タイミング制御フリップ70ツブ9
1からXマルチプレクサ92、入出力回路93.94、
XMマルチプレクサ95および加算器96の9つのリッ
プルキャリーレベルを介して、設定時間を有するキャリ
ーセーブフリップフロップ97へのバスである。これは
、伝送速度がキャリーセーブスライス(8ビツトとして
示されている)の幅および接続間遅延に主に基づいてい
る。
第12図は、“タイムスライス°′されたレジスタ(S
YレジスタまたはRYレジスタ)のその典型的な部分を
示す論理的なブロック図である。第12図では、レジス
タ中に記憶された2つのビット(1ビツト幅)だけが示
されているが、この設計は、所望の符号長の算術演算を
実行するために、Nビットまで繰返えされる。この設計
は、第4図および第8図に示したようなRYレジスタお
よびSYレジスタを構成するために利用される。Nピッ
ト長の演算においては、第12図に示されているN/2
の部分が実行される。なぜなら、各部分が記憶された2
つのビットを有しているからである。この演算は、最小
有効部および最大有効部に分割されて、任意の部分11
M 11において、MおよびM+N/2が記憶される
。
YレジスタまたはRYレジスタ)のその典型的な部分を
示す論理的なブロック図である。第12図では、レジス
タ中に記憶された2つのビット(1ビツト幅)だけが示
されているが、この設計は、所望の符号長の算術演算を
実行するために、Nビットまで繰返えされる。この設計
は、第4図および第8図に示したようなRYレジスタお
よびSYレジスタを構成するために利用される。Nピッ
ト長の演算においては、第12図に示されているN/2
の部分が実行される。なぜなら、各部分が記憶された2
つのビットを有しているからである。この演算は、最小
有効部および最大有効部に分割されて、任意の部分11
M 11において、MおよびM+N/2が記憶される
。
SYおよびRYレジスタは、10個の論理ゲートとそれ
ぞれ等価であり、この10mの論理ゲートは、各フリッ
プフロップに4つ、そしてマルチプレクサに2つである
。第12図から分るように、第4図に37および38と
して示したマルチプレクサは、2つの″゛D゛′D゛′
フリツプフロツプ10001を制御する。この2つの7
リツプフロツプ100および101は、必要とされるビ
ットを記憶するものである。
ぞれ等価であり、この10mの論理ゲートは、各フリッ
プフロップに4つ、そしてマルチプレクサに2つである
。第12図から分るように、第4図に37および38と
して示したマルチプレクサは、2つの″゛D゛′D゛′
フリツプフロツプ10001を制御する。この2つの7
リツプフロツプ100および101は、必要とされるビ
ットを記憶するものである。
第13図は、第4図に示したような“タイムスライス′
°されたXMレジスタおよびXMマルチプレクサの構成
を示すものである。前に示したように、×(成敗)、M
(基数)およびこれらの値は、どの演算期間中にも一定
の値を維持する。これらの値は、時間クリティカルなも
のではないので、“D 11フリツプフロツプの代わり
にローゲートカウントラッチ回路が使用される。したが
って、モジュール110および111は、それぞれラッ
チ回路である。
°されたXMレジスタおよびXMマルチプレクサの構成
を示すものである。前に示したように、×(成敗)、M
(基数)およびこれらの値は、どの演算期間中にも一定
の値を維持する。これらの値は、時間クリティカルなも
のではないので、“D 11フリツプフロツプの代わり
にローゲートカウントラッチ回路が使用される。したが
って、モジュール110および111は、それぞれラッ
チ回路である。
第13図は、簡単のためにデータフローパスだけを示す
ものである。Pレジスタからの値は、計鐸の開始時にX
Mおよび3Mレジスタにロードされる。前述のX/8お
よび3Mは、乗算/モジュロ演算の集束を行なうために
必要とされる。
ものである。Pレジスタからの値は、計鐸の開始時にX
Mおよび3Mレジスタにロードされる。前述のX/8お
よび3Mは、乗算/モジュロ演算の集束を行なうために
必要とされる。
第14図は、第4図に30.31.33および35とし
て示されている8ビツトキヤリーセーブスライスの加算
器およびPおよびCレジスタを示すブロック図である。
て示されている8ビツトキヤリーセーブスライスの加算
器およびPおよびCレジスタを示すブロック図である。
この回路は、半加算器および全加算器の両方を使用して
いる。この図では、半加算器をHlおよび全加算器をF
として示しである。データフローは、下方および左方に
進む。
いる。この図では、半加算器をHlおよび全加算器をF
として示しである。データフローは、下方および左方に
進む。
乗算およびモジュロ機能は、1サイクル内でインターリ
ーブされる。したがって、1サイクル当り2回の加算が
実行される。この図に示された回路においては、キャリ
ーピットの゛フラッシングは、N/8回の加算を必要と
し、また加算器への入力は、PおよびCレジスタ入力以
外は全てOである。1サイクル当り2回の加算が実行さ
れるので、キャリーをフラッシュするため、すなわちP
レジスタへの全てのキャリービットを合計するために、
N/16サイクルが必要とされる。
ーブされる。したがって、1サイクル当り2回の加算が
実行される。この図に示された回路においては、キャリ
ーピットの゛フラッシングは、N/8回の加算を必要と
し、また加算器への入力は、PおよびCレジスタ入力以
外は全てOである。1サイクル当り2回の加算が実行さ
れるので、キャリーをフラッシュするため、すなわちP
レジスタへの全てのキャリービットを合計するために、
N/16サイクルが必要とされる。
第14図の下方には、全加算器Fと半加算器Hとの間の
実際の入力を示したブロック図が示されており、この図
から分るように、全加算器Fからの出力は、半加算器の
入力に接続されている。半加算器Hには2つの出力があ
り、その一方は次の半加算器に直接接続され、他の一方
は、全加算器の入力に接続されている。全加算器も同様
に2つの入力端子を有している。第14図に関連して示
したこの小さなブロック図の目的は、隣接した加算器間
のキャリー接続を示すことにより、第14図の接続関係
を明白にすることである。
実際の入力を示したブロック図が示されており、この図
から分るように、全加算器Fからの出力は、半加算器の
入力に接続されている。半加算器Hには2つの出力があ
り、その一方は次の半加算器に直接接続され、他の一方
は、全加算器の入力に接続されている。全加算器も同様
に2つの入力端子を有している。第14図に関連して示
したこの小さなブロック図の目的は、隣接した加算器間
のキャリー接続を示すことにより、第14図の接続関係
を明白にすることである。
上記した動作は、当業者の知識範囲内のものであり、シ
ステム構築に基づいて、当業者は上記したような構成の
暗号装置を実施できよう。とにかく、上記したようなシ
ステムは、マイクロプロセッサ40によってその動作が
制御される。以下の記載は、符号のない大きな値の整数
をモジュロ演算の基数として符号のない大きな値の整数
に符号のない大きな値の整数を累乗する演算を実行する
ために、マイクロプロセッサ40から主要装置および従
属モジュールへ送られる指令を説明するものである。
ステム構築に基づいて、当業者は上記したような構成の
暗号装置を実施できよう。とにかく、上記したようなシ
ステムは、マイクロプロセッサ40によってその動作が
制御される。以下の記載は、符号のない大きな値の整数
をモジュロ演算の基数として符号のない大きな値の整数
に符号のない大きな値の整数を累乗する演算を実行する
ために、マイクロプロセッサ40から主要装置および従
属モジュールへ送られる指令を説明するものである。
A、転送指令
二M+P
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:PレジスタからM(基数)レジスタをロー
ドする。
ドする。
: M3−P
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:PレジスタからM3(3木基数)レジスタ
をロードする。
をロードする。
ム:=P
呼出し方ニアドレスT8Dに疑似的に書込む。
指令の説明:PレジスタからNR(サイクル力/
ラント)レジスタをロードする。
ラント)レジスタをロードする。
: YC−P
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:YR回転機能の打切りをセットするために
YC(Y形状)レジスタ をロードする。
YC(Y形状)レジスタ をロードする。
: =
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:PレジスタからYレジスタをロードする。
RYまたはSYレジ
スタのいずれかは、予め選択され
なければならない。
−: −P 5Y=P 5el−RY)呼出し
方;アドレスTBDに疑似的に書込む。
方;アドレスTBDに疑似的に書込む。
指令の説明:PレジスタからXレジスタをロードする。
次に、Pレジスタか
らSYレジスタをロードする。
最後に、RYレジスタを選択する。
Δ:Y=sel−Y
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:PレジスタからRYレジスタをロードする
。次に、SYレジスタ を選択する。
。次に、SYレジスタ を選択する。
ム:5el−
呼出し方ニアドレスTBDに疑似的に書込む。
指令の説明:SYレジスタを選択する。
B、演算指令
: (P+C=0
呼出し方:CRレジスタのアドレスTBDにTBDを書
込む。
込む。
指令の説明:PおよびCレジスタをクリアする。
直重ニー(21二上」uL二NCシ」しL反旦上二])
呼出し方:CRレジスタのアドレスTBDにTBDを書
込む。
呼出し方:CRレジスタのアドレスTBDにTBDを書
込む。
指令の説明:サイクルカウントレジスタ(NR)からサ
イクルカウンタ(NC)を ロードすることによって、乗算を 開始する。
イクルカウンタ(NC)を ロードすることによって、乗算を 開始する。
NRにはN+2の値がロードされ、この指令は、カウン
タNCを2木(N+5)にセットする。NCが負でない
時はいつでも、NCは、カウントダウンして2木(N+
3)サイクルをカウントして停止する。この2つの因子
は、各制御周期が最小有効タイムスライスのための1ク
ロツクサイクルおよび最大有効タイムスライスのための
1クロツクサイクルを含んでいることから必要とされる
。
タNCを2木(N+5)にセットする。NCが負でない
時はいつでも、NCは、カウントダウンして2木(N+
3)サイクルをカウントして停止する。この2つの因子
は、各制御周期が最小有効タイムスライスのための1ク
ロツクサイクルおよび最大有効タイムスライスのための
1クロツクサイクルを含んでいることから必要とされる
。
また、この制御周期は2つずつ配置されている。
すなわち、NGのビット1がOの場合にXの乗数が選択
され、NCのビット1が1の場合にMの乗数が選択され
る。
され、NCのビット1が1の場合にMの乗数が選択され
る。
乗算が実行された時、その乗算器のビジーフラグはクリ
アされる。この乗算の結果は、次のようになろう。
アされる。この乗算の結果は、次のようになろう。
P+C−(X*Y mod M)
ここでKは、−3≦に≦2である。
マイクロプロセッサは、N木4/16だけ待機し、全て
のキャリーをPにフラッシュさせるためにクロック周期
をセットする。この時の結果は次の通りである。
のキャリーをPにフラッシュさせるためにクロック周期
をセットする。この時の結果は次の通りである。
P=(X*Y mod M)+に*M次に、マイク
ロプロセッサは、Pを0≦P<Mの範囲内に収めるため
に、Pレジスタを°“クリンアップ″する。
ロプロセッサは、Pを0≦P<Mの範囲内に収めるため
に、Pレジスタを°“クリンアップ″する。
C,クリンアップ指令
Δ:P〉0ならばP+C−P+C−M3呼出し方:CR
レジスタのアドレスTBDにTBDを書込む。
レジスタのアドレスTBDにTBDを書込む。
指令の説明:Pレジスタが正であれば、3木Mを減算す
る。この指令は、積を °“クリンアップ″シて、 PをO≦P<Mの範囲に収めるた めに必要とされる。
る。この指令は、積を °“クリンアップ″シて、 PをO≦P<Mの範囲に収めるた めに必要とされる。
ム:P〈0ならばP+C=P+C十
呼出し方:CRレジスタのアドレスTBDにTBDを書
込む。
込む。
指令の説明:Pl、;ジスタが負であればMを加算する
。この指令は、積を “クリンアップ”して、Pを 0<P<Mの範囲に収める。
。この指令は、積を “クリンアップ”して、Pを 0<P<Mの範囲に収める。
ム: 十 冨 + +
呼出し方:CRレジスタのアドレスTBDにTBDを書
込む。
込む。
指令の説明:PレジスタにMレジスタを加算する。
この指令は、3木Mを計算するた
めに使用される。
D、入出力指令
:(ロー゛)
呼出し方ニアドレスTBDにバイトを書込む。
指令の説明二マイクロプロセッサからLRレジスタに8
ビツトを入力する。
ビツトを入力する。
Pレジスタ8ビットを左にシフト
し、LRレジスタからPレジスタ
の最小有効位置における8ビツト
(上位8ピツl〜)をロードする。
bA: アンロー°)
呼出し方ニアドレスTBDからバイトを読出す。
指令の説明:Pレジスタからマイクロプロセッサへ8つ
の最大有効ビットを出力 する。
の最大有効ビットを出力 する。
ム: ビジー
呼出し方ニアドレスTBDからバイトを読出す。
指令の説明:乗算器がビジー状態であることを示すごジ
−フラグを読出す。
−フラグを読出す。
上記したようなマイクロプロセッサ指令を利用して、基
本的なアルゴリズム演算を実行する方法の一例を以下に
示す。
本的なアルゴリズム演算を実行する方法の一例を以下に
示す。
以下のマイクロプロセッサのアルゴリズムにおいて、変
数を次のように定める。
数を次のように定める。
b−区数
e−指数
m−基数
1m−基数および区数の符号長
1e−指数の符号長
IC−デバイスセットの符号長
これらの変数は最初に与えられるものであって、符号長
はビット数を意味している。また混乱を避けるために、
マイクロプロセッサの変数には小文字、デバイスセット
のレジスタには大文字を使用する。
はビット数を意味している。また混乱を避けるために、
マイクロプロセッサの変数には小文字、デバイスセット
のレジスタには大文字を使用する。
アルゴリズムは、計算の各ステップ毎に疑似コードの書
式で示されている。マイクロプログラム指令は、上記し
たようなデバイスセットに使用されている。これらの指
令は、常にカッコ内に、例えば(ロード)のように示さ
れている。
式で示されている。マイクロプログラム指令は、上記し
たようなデバイスセットに使用されている。これらの指
令は、常にカッコ内に、例えば(ロード)のように示さ
れている。
まず、基数mは、以下の疑似コードに示すように、その
最大有効ビットを最初にしてPレジスタにロードされる
。この場合、基数mがバイト列として記憶されるものと
仮定している。また、ビジー状態時の待機が乗算指令の
後でのみ必要とされると仮定している。
最大有効ビットを最初にしてPレジスタにロードされる
。この場合、基数mがバイト列として記憶されるものと
仮定している。また、ビジー状態時の待機が乗算指令の
後でのみ必要とされると仮定している。
(P+C−0)
for i = 1m/8−1 down to
Q to begin(load) m [i ] nd PおよびCを最初にクリアすることは、Pレジスタの左
側および右側部の余分なビットをクリアすることを確実
にする。一般に、mをPレジスタの左端に合せるために
、その布部に0をロードすることがある。この場合、全
ての符号長は8の倍数である。次に示すアルゴリズムは
、必要とされるOのロードを示すものである。
Q to begin(load) m [i ] nd PおよびCを最初にクリアすることは、Pレジスタの左
側および右側部の余分なビットをクリアすることを確実
にする。一般に、mをPレジスタの左端に合せるために
、その布部に0をロードすることがある。この場合、全
ての符号長は8の倍数である。次に示すアルゴリズムは
、必要とされるOのロードを示すものである。
for i −1to (l c −1m)/8 d
o begin(load)O nd そして、PレジスタからMレジスタへmを転送し、そこ
で3木Mを計算して、この3木MをレジスタM3にロー
ドする。− (M−P) (P十〇=C+M) (P+C−P+C+M) (M3=P) 値lm=2をNR(サイクンルーカウント)レジスタに
ロードする。これは、その計算の符号長が前の計算にお
ける符号長と異なっている場合、またはこの計算が電源
投入後最初に実行されるものである場合にのみ必要とさ
れる。この値がnr[1]およびnr[o]と名付けら
れた2バイトであるとすると、以下に示されるように、
この値は、その最大有効バイトを最初にしてロードされ
る。
o begin(load)O nd そして、PレジスタからMレジスタへmを転送し、そこ
で3木Mを計算して、この3木MをレジスタM3にロー
ドする。− (M−P) (P十〇=C+M) (P+C−P+C+M) (M3=P) 値lm=2をNR(サイクンルーカウント)レジスタに
ロードする。これは、その計算の符号長が前の計算にお
ける符号長と異なっている場合、またはこの計算が電源
投入後最初に実行されるものである場合にのみ必要とさ
れる。この値がnr[1]およびnr[o]と名付けら
れた2バイトであるとすると、以下に示されるように、
この値は、その最大有効バイトを最初にしてロードされ
る。
(P+C−0)
(load) n r [1]
(load) n r [0]
(NR−P)
符号長1mは、RYレジスタの切捨て(トランケーショ
ン)を必要とすることも可能である。この切捨て符号長
(トランケーションレングス)は、YC(Y形状)レジ
スタによって設定される。このYCレジスタは、各装置
のバイトよりも少ないバイトから成っているが、そのデ
ータはPレジスタを介してロードされるので、そのデー
タは、ダミー(0)バイトによって分割される。Y形状
データがycdと名付けられたバイト列内に格納(装胃
当り1バイト)されると想定し、またSフィルのダミー
バイトが従属装置(R大有効従属装置を除く)毎に必要
とされ、mフィルのダミーバイトがマスター装置に必要
とされるとすると、Y形状データは次の手順でロードさ
れる。
ン)を必要とすることも可能である。この切捨て符号長
(トランケーションレングス)は、YC(Y形状)レジ
スタによって設定される。このYCレジスタは、各装置
のバイトよりも少ないバイトから成っているが、そのデ
ータはPレジスタを介してロードされるので、そのデー
タは、ダミー(0)バイトによって分割される。Y形状
データがycdと名付けられたバイト列内に格納(装胃
当り1バイト)されると想定し、またSフィルのダミー
バイトが従属装置(R大有効従属装置を除く)毎に必要
とされ、mフィルのダミーバイトがマスター装置に必要
とされるとすると、Y形状データは次の手順でロードさ
れる。
(P+C=O)
for i =4 down to 2 to b
egin(load) ycci [i ] forj=1 to sフィル do being
(load)O nd (load) ycd [1] rorj=1to mフィル do begin(l
oad)O nd (load) ycd [0] (YC=P) 偶数値の指数を許可するために、RYレジスタに1をセ
ットする。偶数値の指数においては、この手順の7ラグ
メントは必要ない。
egin(load) ycci [i ] forj=1 to sフィル do being
(load)O nd (load) ycd [1] rorj=1to mフィル do begin(l
oad)O nd (load) ycd [0] (YC=P) 偶数値の指数を許可するために、RYレジスタに1をセ
ットする。偶数値の指数においては、この手順の7ラグ
メントは必要ない。
(P+C−0)
(loacl)1
(RY=P、 se I SY)mのロードと
同様な形式で、置数すをレジスタP、XおよびSYにロ
ードする。
同様な形式で、置数すをレジスタP、XおよびSYにロ
ードする。
(P+C−0)
for i −1m/8 −1 down to
Odo begin(1oad) b [Iコ nd for i −1to (Ic−1m)/8 dob
eain(1oad) O nd (X−P、5Y−P、set RY>これは、O−デ
ィングフェーズを終了する。この回路は、主要な計算を
実行できる状態に現在なっている。この主要計算を実行
するためにその時間の大部分が使用される。
Odo begin(1oad) b [Iコ nd for i −1to (Ic−1m)/8 dob
eain(1oad) O nd (X−P、5Y−P、set RY>これは、O−デ
ィングフェーズを終了する。この回路は、主要な計算を
実行できる状態に現在なっている。この主要計算を実行
するためにその時間の大部分が使用される。
指数ビットをカウントするために110の指数ビットを
カウントするためにjlおよびプログラムループのft
繰返しのポーズをカウントするためにkを使用する。こ
のポーズによって、セーブされたキャリーをPレジスタ
にフラッシュする時間が1qられる。最小フラッシュ時
間は、乗11IFI#間の1/16である。乗算レジス
タに何も(キャリーは除く)加えられない時にフラッシ
ュが自然に発生するので、特定のフラッシュ指令は必要
ない。
カウントするためにjlおよびプログラムループのft
繰返しのポーズをカウントするためにkを使用する。こ
のポーズによって、セーブされたキャリーをPレジスタ
にフラッシュする時間が1qられる。最小フラッシュ時
間は、乗11IFI#間の1/16である。乗算レジス
タに何も(キャリーは除く)加えられない時にフラッシ
ュが自然に発生するので、特定のフラッシュ指令は必要
ない。
以下に示すぎぎコードにおいて、指数の最小有効ビット
を検査するための“I s b ”と名付けられた機能
、およびその指数を1ビツト右ヘシフトするための’s
h r”と名付けられた機能が使用されている。
を検査するための“I s b ”と名付けられた機能
、およびその指数を1ビツト右ヘシフトするための’s
h r”と名付けられた機能が使用されている。
j場1e/4
for i = i to I e do be
ginまず、Pレジスタは、置数の1乗すなわちbの1
乗を保持する。これは、指数のビットOに関連したもの
である。もし指数が基数であれば、たとえRYが1に等
しい場合でも、RY−8をセットする。このループの他
の繰返しでは、RY@RYの前の値に最後の2乗をした
値にセットする。
ginまず、Pレジスタは、置数の1乗すなわちbの1
乗を保持する。これは、指数のビットOに関連したもの
である。もし指数が基数であれば、たとえRYが1に等
しい場合でも、RY−8をセットする。このループの他
の繰返しでは、RY@RYの前の値に最後の2乗をした
値にセットする。
1flsb−1
then begin (RY−P、 se l
SY>nd else begin (se l SY
)nd shr(e) “°1t″状態に関係なく、次にいつも8mレジスタが
選択されることに注意されたい。SYをX四乗じること
により、次の2乗を計算する。PおよびCレジスタをク
リアし、基本的な乗算サイクルを開始する。そして、そ
の基本的な乗算が完了するをを持って、モジュロ演算を
゛クリーンナツプ”する。このクリ°−ンアップ操作の
各ステップにおいて、キャリーがPレジスタにフラッシ
ュされるのを待機しなければならないこと注意されたい
。
SY>nd else begin (se l SY
)nd shr(e) “°1t″状態に関係なく、次にいつも8mレジスタが
選択されることに注意されたい。SYをX四乗じること
により、次の2乗を計算する。PおよびCレジスタをク
リアし、基本的な乗算サイクルを開始する。そして、そ
の基本的な乗算が完了するをを持って、モジュロ演算を
゛クリーンナツプ”する。このクリ°−ンアップ操作の
各ステップにおいて、キャリーがPレジスタにフラッシ
ュされるのを待機しなければならないこと注意されたい
。
(P+C−0)
(スタート乗算:NC−NR) ・・・2乗を計算す
るための乗算 (ビジー)期間中は何も 実行しない ・・・乗算が完了するのを
待つ (P2OならばP+C−P+C−M) rorK−ttoft do nothing −・・キャリーをフラ
ッシュする ( P〈0ならばP+C=P+C+M)for k=1
to ft do no℃旧ng ・・・キャリーをフラ
ッシュする ( ProならばP十C−P+C+M)ror k−
1to ft do nothing −・・キャリーをフ
ラッシュする ( P<OならばP十C−P+C+M)for k−
1to f t do nothin(1 (X−P、5Y−P。
るための乗算 (ビジー)期間中は何も 実行しない ・・・乗算が完了するのを
待つ (P2OならばP+C−P+C−M) rorK−ttoft do nothing −・・キャリーをフラ
ッシュする ( P〈0ならばP+C=P+C+M)for k=1
to ft do no℃旧ng ・・・キャリーをフラ
ッシュする ( ProならばP十C−P+C+M)ror k−
1to ft do nothing −・・キャリーをフ
ラッシュする ( P<OならばP十C−P+C+M)for k−
1to f t do nothin(1 (X−P、5Y−P。
sel RY) −XおよびRY
へ2乗をロード
する
次のR値のための乗算は、この計算を時々スキップ可能
であること以外はこれと同様である。計算が終了した時
、Pレジスタの結果はそのままの状態にされる。RYレ
ジスタへのこの結果の転送は、ループの最初に実行され
る。
であること以外はこれと同様である。計算が終了した時
、Pレジスタの結果はそのままの状態にされる。RYレ
ジスタへのこの結果の転送は、ループの最初に実行され
る。
if I sb (e) −0℃henj=j−1i
f l5b(e)≧1 or J <Othen
begin(P+C−0) (スタート乗算:NC+NR)・・・2乗を計算するた
めに乗算 を実行する (ビジー)期間中は何も 実行しない ・・・乗算が完了するの
を持つ (P≧OならばP+C−P+C−M3)for K−1
to ft do nothin(1”・キャリーをフラッシュする ( Pく0ならばP+C−P十C+M)for k=1
to ft do not旧ng ・・・キャリーをフラ
ッシュする ( P<OならばP+C−P十C+M)for k
=1 to f tdo nothino
”’キャリーをフラッシュする ( Pく0ならばP+C−P+C+M)for k=1
to ft do nothing ・・・キャリーをフ
ラッシュする nd nd これでメインループが終了する。検査させる最後の指数
ビットがいつも1であるのので、その結果は常にPレジ
スタにあり、この結果をアンロードする。このダミーロ
ード指令は、次のアンロードのために、Pレジスタを左
へ8ビツトシフトさせる。
f l5b(e)≧1 or J <Othen
begin(P+C−0) (スタート乗算:NC+NR)・・・2乗を計算するた
めに乗算 を実行する (ビジー)期間中は何も 実行しない ・・・乗算が完了するの
を持つ (P≧OならばP+C−P+C−M3)for K−1
to ft do nothin(1”・キャリーをフラッシュする ( Pく0ならばP+C−P十C+M)for k=1
to ft do not旧ng ・・・キャリーをフラ
ッシュする ( P<OならばP+C−P十C+M)for k
=1 to f tdo nothino
”’キャリーをフラッシュする ( Pく0ならばP+C−P+C+M)for k=1
to ft do nothing ・・・キャリーをフ
ラッシュする nd nd これでメインループが終了する。検査させる最後の指数
ビットがいつも1であるのので、その結果は常にPレジ
スタにあり、この結果をアンロードする。このダミーロ
ード指令は、次のアンロードのために、Pレジスタを左
へ8ビツトシフトさせる。
r[O]=(アンロード)
for 1−1m/8 −1 downto Od
o begin (o−ド)・・・ダミーロード r[N=(アンロード) nd デバイスセットの左のデータを消去するために、以下の
ような手順が加えられる。
o begin (o−ド)・・・ダミーロード r[N=(アンロード) nd デバイスセットの左のデータを消去するために、以下の
ような手順が加えられる。
(P+C−0) ・・・Pをクリアする(X−
P、5Y=P、set RY)・・・XおよびRYを クリアする (RY−P、se I SY) ・・・RYをクリアする (M−P) ・・・Mをクリアする以上の
説明から、ここに示した装置は、極端に長い符号長を含
んだ複雑な算術計算を実行することが可能であり、しか
もその計算速度は高速化され、また回路の複雑性が緩和
されることが理解されよう。したがって、上記した構成
の装置は、リザル1−(R)および2乗(S)累算のた
めに共通の加算器を使用している。この加算器は、基数
(M)および乗数(X)の両方の乗算を加iするために
も必要とされる。積累算レジスタ(P)は、分配され、
別々のレジスタ状態における結果および2乗ファクター
(RYおよびSY)が供給される。このことにより、マ
ルチプレクサの数は減少される。基本的な論理回路は、
゛タイムスライス”されており、これによって、2つの
ファクターの組合わせ論理が減少される。、基数の3倍
は、主要制御Iロジックの動作を緩和させるアルゴリズ
ムを支援するために予め計算されている。このシステム
は、全てのデータをロードするためのシフトおよび加算
キャリー能力を利用している。このため、多くの場合に
、ラッチが、高価なフリップフロップよりも多く使用さ
れている。
P、5Y=P、set RY)・・・XおよびRYを クリアする (RY−P、se I SY) ・・・RYをクリアする (M−P) ・・・Mをクリアする以上の
説明から、ここに示した装置は、極端に長い符号長を含
んだ複雑な算術計算を実行することが可能であり、しか
もその計算速度は高速化され、また回路の複雑性が緩和
されることが理解されよう。したがって、上記した構成
の装置は、リザル1−(R)および2乗(S)累算のた
めに共通の加算器を使用している。この加算器は、基数
(M)および乗数(X)の両方の乗算を加iするために
も必要とされる。積累算レジスタ(P)は、分配され、
別々のレジスタ状態における結果および2乗ファクター
(RYおよびSY)が供給される。このことにより、マ
ルチプレクサの数は減少される。基本的な論理回路は、
゛タイムスライス”されており、これによって、2つの
ファクターの組合わせ論理が減少される。、基数の3倍
は、主要制御Iロジックの動作を緩和させるアルゴリズ
ムを支援するために予め計算されている。このシステム
は、全てのデータをロードするためのシフトおよび加算
キャリー能力を利用している。このため、多くの場合に
、ラッチが、高価なフリップフロップよりも多く使用さ
れている。
論理回路は区分されているので、全ての不均等な論理回
路は主要装置に配謬され、従属装置は、均一な回路を有
することになる。標準的な形式のマイクロプロセッサは
、簡単な相互接続されたシステムおよび簡単なプログラ
ム設計によって、主要装置および従属装置の制御を行な
うことができる。したがって、この発明による装置は、
廉価でしかもシステム要求に対する高速応答が可能とな
り、最少限の費用で信頼できる暗号化技術の利用を提供
することができる。
路は主要装置に配謬され、従属装置は、均一な回路を有
することになる。標準的な形式のマイクロプロセッサは
、簡単な相互接続されたシステムおよび簡単なプログラ
ム設計によって、主要装置および従属装置の制御を行な
うことができる。したがって、この発明による装置は、
廉価でしかもシステム要求に対する高速応答が可能とな
り、最少限の費用で信頼できる暗号化技術の利用を提供
することができる。
上記したような整数、および種々のレジスタのピットサ
イズは、単なる一例であって、他の算術計算に適応する
ためにこの値を変化することが可能であることが理解さ
れよう。同様に、特許請求の範囲に示されたこの発明の
技術的範囲内でこの装置を変形することが可能である。
イズは、単なる一例であって、他の算術計算に適応する
ためにこの値を変化することが可能であることが理解さ
れよう。同様に、特許請求の範囲に示されたこの発明の
技術的範囲内でこの装置を変形することが可能である。
第1図は通信チャンネル内で使用される暗号装置を示す
ブロック図、第2図はこの発明による暗号化のアルゴリ
ズムを計算する構成を示すブロック図、第3図は指数E
が21である場合における第2図に示した構成のサイク
ル毎の演算シーケンスを示すタイミング図、第4図はこ
の発明の一実施例に係る暗号装置に使用される算術デー
タバスを示すブロック図、第5図はこの発明によるマイ
クロプロセッサ制御下での暗号装置を示すブロック図、
第6a図および第6b図はこの発明に使用される主要装
置の実施例を詳細に示すブロック図、第7図はこの発明
による従属装置を示すブロック図、第8a図乃至第8e
図は大きさが異なった基数を処理する構成を示すブロッ
ク図、第9図は第5図に示した構成と類似したこの発明
による暗号装置システムを示すブロック図、第10図は
制御回路に接続された第4図の構成を示すブロック図、
第11図は第4図に示したような算術回路における伝送
遅延を決定するために使用されるブロック図、第12図
はこの発明に使用されるレジスタステージのために必要
とされる回路を示すブロック図、第13図はこの発明に
使用されるレジスタおよびマルチプレクサの構成を示す
ブロック図、第14図はこの発明に使用される加算器お
よび累算器の構成を示すブロック図である。 10・・・メツセージ元、11・・・回路モジュール、
12・・・受信器、40・・・マイクロブ巳セッサ、4
1・・・主要装置、42〜42N・・・従属装置。 出願人代理人 弁理士 鈴 江 武 彦×四=ロ CO
E N−2=6 =2
ブロック図、第2図はこの発明による暗号化のアルゴリ
ズムを計算する構成を示すブロック図、第3図は指数E
が21である場合における第2図に示した構成のサイク
ル毎の演算シーケンスを示すタイミング図、第4図はこ
の発明の一実施例に係る暗号装置に使用される算術デー
タバスを示すブロック図、第5図はこの発明によるマイ
クロプロセッサ制御下での暗号装置を示すブロック図、
第6a図および第6b図はこの発明に使用される主要装
置の実施例を詳細に示すブロック図、第7図はこの発明
による従属装置を示すブロック図、第8a図乃至第8e
図は大きさが異なった基数を処理する構成を示すブロッ
ク図、第9図は第5図に示した構成と類似したこの発明
による暗号装置システムを示すブロック図、第10図は
制御回路に接続された第4図の構成を示すブロック図、
第11図は第4図に示したような算術回路における伝送
遅延を決定するために使用されるブロック図、第12図
はこの発明に使用されるレジスタステージのために必要
とされる回路を示すブロック図、第13図はこの発明に
使用されるレジスタおよびマルチプレクサの構成を示す
ブロック図、第14図はこの発明に使用される加算器お
よび累算器の構成を示すブロック図である。 10・・・メツセージ元、11・・・回路モジュール、
12・・・受信器、40・・・マイクロブ巳セッサ、4
1・・・主要装置、42〜42N・・・従属装置。 出願人代理人 弁理士 鈴 江 武 彦×四=ロ CO
E N−2=6 =2
Claims (20)
- (1)符号のない大きな値の整数Mをモジユロ演算の基
数としてメツセージデータである符号のない大きな値の
整数(B)に符号のない大きな値の整数(E)を累乗す
る暗号装置であつて、上記各整数はNビツトの大きさを
有し、上記累乗の計算結果である符号のない大きな値の
整数(C)は機密保護されてない通信チヤンネルを介し
た伝送に適用される暗号装置において、 上記符号のない大きな値の整数(B)に応答してこの整
数を順次2乗する第1の論理手段であつて、上記順次2
乗された整数を与えられた基数によつて減少する手段を
備え、上記与えられた基数によつて減少された上記2乗
された整数の第1の値を出力に供給する第1の論理手段
と、 与えられた指数Eを示す第2の値を受信する入力および
上記第1の論理手段の出力に接続されたもう1つの入力
を有し、選択的に動作されるゲート手段と、 上記ゲート手段に接続された入力を有し、上記ゲート手
段によつて制御されて動作する第2の論理手段であつて
、この第2の論理手段に含まれている上記基数手段によ
りさらに変形された上記第1の値の積を表わす出力値を
出力し、上記機密保護されてない通信チヤンネルを介し
て伝送される上記累乗の計算結果である符号のない大き
な値の整数(C)を上記出力に供給する第2の論理手段
とを具備する暗号装置。 - (2)上記第1の論理手段は第1のレジスタを具備し、
この第1のレジスタは、符号のない大きな値の整数(B
)を受信する入力と、上記整数を順次2乗し、上記与え
られた基数によつて上記2乗された整数を減少させる第
1のモジユロ乗算手段に接続された出力とを有し、上記
モジユロ乗算手段の出力は、上記第1の値を上記第1の
レジスタに記憶するために、上記第1のレジスタの入力
に接続されている特許請求の範囲第1項記載の暗号装置
。 - (3)上記第2の論理手段は第2のレジスタを具備し、
この第2のレジスタは、第1の2進値を受信する入力と
、第2のモジユロ乗算手段の入力に接続された出力とを
有し、上記第2のモジユロ乗算手段のもう一方の入力は
、上記選択的に動作されるゲート手段に接続され、上記
第2のモジユロ乗算手段の出力は、上記第2のレジスタ
が上記符号のない大きな値の整数(M)を記憶できるよ
うに、上記第2のレジスタの入力に接続されている特許
請求の範囲第1項記載の暗号装置。 - (4)上記第2のレジスタに入力される上記2進入力は
2進値1である特許請求の範囲第3項記載の暗号装置。 - (5)上記与えられた基数を表わす値を記憶するように
構成された基数レジスタを具備し、この基数レジスタは
、上記与えられた基数をこの基数レジスタへ供給する上
記第1および第2の論理手段に接続された出力を有して
いる特許請求の範囲第1項記載の暗号装置。 - (6)上記第1の論理手段は、第1の複数のレジスタを
有する算術回路と、上記複数のレジスタの任意の1つの
出力を選択するマルチプレクサ手段と、加算手段とを具
備し、上記第1の複数のレジスタの1つは上記基数の値
を記憶し、もう1つは与えられたファクターが乗算され
た上記基数を記憶し、さらにもう1つは上記符号のない
大きな値の整数(B)を記憶し、上記マルチプレクサ手
段は上記複数のレジスタに接続され、上記加算手段は上
記マルチプレクサ手段に接続された入力と、変形された
第1の値を示す別の連続する値を上記加算器手段の出力
に供給するために上記第1の値に対応する第2の入力と
を具備している特許請求の範囲第1項記載の暗号装置。 - (7)符号のない大きな値の整数Mをモジユロ演算の基
数としてメツセージデータである符号のない大きな値の
整数(B)に符号のない大きな値の整数(E)を累乗す
る暗号装置であつて、上記各整数はNビツトの大きさを
有し、上記累乗の計算結果である符号のない大きな値の
整数(C)は機密保護されてない通信チヤンネルを介し
た伝送に適用される暗号装置において、 複数の入力および複数の出力を有し、上記符号のない大
きな値の整数(B)および与えられた基数を記憶する複
数の入力装置を備えた算術計算手段と、1つの与えられ
た入力装置を選択するために上記入力装置に接続されて
いる手段と、上記選択された装置に入力装置に記憶され
た情報に上記符号のない大きな値の整数を乗算する乗算
手段と、上記与えられた基数により減少された上記符号
のない大きな値の数値の連続する2乗の記憶を実行する
ための最小および最大有効ビツトに従つて上記乗算され
た情報を記憶するレジスタ手段と、指令データを発生す
る手段とを備えている主要論理手段と、 上記主要論理手段の上記出力に接続された複数の入力を
有し、乗算された情報である上記記憶された情報に従つ
て上記主要論理手段からの選択されたデータを受信する
従属回路手段であつて、上記主要論理手段によつて発生
された上記指令データに従つて上記乗算された情報を順
次処理する算術計算手段を備えている従属回路手段と、 上記主要論理手段の入力端子に接続され、処理されるべ
きメツセージデータおよびこのメツセージデータに割当
てられている与えられた基数を示す一連の命令を上記主
要論理手段へ供給するマイクロプロセツサとを具備して
いる暗号装置。 - (8)上記主要論理手段は上記算術計算手段の動作を制
御するクロツク発生手段を備え、上記従属回路手段のた
のタイミング波形を選択された出力に供給する特許請求
の範囲第7項記載の暗号装置。 - (9)上記主要論理手段および上記従属回路手段の双方
の上記計算手段は第1および第2の選択可能なレジスタ
を備え、上記第1のレジスタは上記与えられた基数によ
つて減少された上記符号のない大きな値の整数(B)の
2乗された値を記憶し、上記第2のレジスタは上記与え
られた基数によつてさらに変形された上記第1のレジス
タ内に記憶された上記値の積である出力値を記憶する特
許請求の範囲第7項記載の暗号装置。 - (10)上記主要論理手段は、この主要論理手段の計算
状態を上記従属回路手段に示すために、この従属回路手
段に接続された出力を有している状態レジスタを具備し
ている特許請求の範囲第7項記載の暗号装置。 - (11)上記主要論理手段と上記従属回路手段の双方は
、上記乗算の結果である部分積を記憶する部分積レジス
タを備えている特許請求の範囲第7項記載の暗号装置。 - (12)上記乗算手段は第1および第2の加算器を具備
し、上記第1の加算器はキヤリーを加算し、上記第2の
加算器は値を上記部分積レジスタに加算する特許請求の
範囲第11項記載の暗号装置。 - (13)上記主要論理手段は、上記マイクロプロセツサ
からの指令信号を受信するように構成された制御回路と
、上記指令に応答して、上記算術計算手段の動作を制御
するためのシフト動作を開始するロードレジスタとを具
備している特許請求の範囲第7項記載の暗号装置。 - (14)上記主要論理手段は、乗算の演算期間中に累算
された積の回数を制御するために、上記乗算手段によつ
て実行された乗算の回数を示すカウントを記憶するよう
に動作するサイクルカウントレジスタを具備している特
許請求の範囲第7項記載の暗号装置。 - (15)上記主要論理手段は、上記マイクロプロセツサ
からの指令をデータバスを介して受信する制御レジスタ
を具備している特許請求の範囲第7項記載の暗号装置。 - (16)符号のない大きな値の整数Mをモジユロ演算の
基数としてメツセージデータである符号のない大きな値
の整数(B)に符号のない大きな値の整数(E)を累乗
する暗号装置であつて、上記各整数はNビツトの大きさ
を有し、上記累乗の計算結果である符号のない大きな値
の整数(C)は機密保護されてない通信チヤンネルを介
した伝送に適用される暗号装置において、 メツセージデータである上記符号のない大きな値の整数
(B)を受信する入力を有し、上記符号のない大きな値
の整数を出力に供給する第1の手段と、 与えられた基数(M)を記憶する手段を備え、上記第1
の手段の出力に接続された入力を有し、選択された基数
によつて減少された上記メツセージデータの2乗された
値を示す信号を出力に供給する第1のモジユロ乗算手段
であつて、この第1のモジユロ乗算手段の出力は、上記
第1の手段が上記符号のない大きな値の整数である基数
(M)によるモジユロ演算の2乗の連続を出力できるよ
うに、上記第1の手段の入力に接続されている第1のモ
ジユロ乗算手段と、 上記整数である指数(E)の値を受信する1つの入力、
および上記第1の手段の出力に接続された他の1つの入
力を有しているゲート手段と、出力および与えられた2
進データを受信する入力を有し、選択されたモジユロ演
算の2乗の積を示す計算結果を記憶する第2の手段と、 上記与えられた基数を記憶する手段を備え、上記ゲート
手段に接続された第1の入力、および上記第2の手段の
出力に接続された第2の入力を有し、上記ゲート手段に
より制御される上記第1および第2の手段に記憶された
値の積を示す値を出力する第2のモジユロ乗算手段であ
つて、上記積は基数によつて減少されたものであり、上
記第2のモジユロ乗算手段の出力は、上記第2の手段が
上記通信チヤンネルを介した伝送のための上記モジユロ
演算の計算結果である符号のない大きな値の整数(C)
を記憶できるようにするために、上記第2の手段の入力
に接続されている第2のモジユロ乗算手段とを具備する
暗号装置。 - (17)上記第1のモジユロ乗算手段は上記選択された
基数によつて減少された上記メツセージデータの上記2
乗された値の部分積を記憶する部分積レジスタ手段を具
備し、最大および最小有効ビツトに従つて上記値を記憶
することができる特許請求の範囲第16項記載の暗号装
置。 - (18)上記第1および第2のモジユロ乗算手段は、上
記部分積レジスタをそれぞれ時分割するように構成され
ている特許請求の範囲第17項記載の暗号装置。 - (19)上記第1および第2のモジユロ乗算手段に接続
された出力データ線を有し、上記符号のない大きな値の
整数および上記与えられた2進値を出力し、さらに上記
第1および第2の手段のそれぞれの乗算を制御するため
に、上記第1および第2の手段に一連の指令を送信する
マイクロプロセツサを具備している特許請求の範囲第1
6項記載の暗号装置。 - (20)符号のない大きな値の整数をモジユロ演算の基
数(M)として符号のない大きな値の整数(B)に符号
のない大きな値の整数(E)(指数)を累乗する方法に
おいて、 (a)上記符号のない大きな値の整数を記憶し、 (b)上記記憶された値を2乗し、 (c)値Sを得るために、基数Mによつて上記2乗され
た値を減少し、 (d)モジユロ演算の基数をMとして、選択された2乗
の積を行ない、 (e)値Xを得るために、与えられた指数ビツト(E)
の値に従つて、上記値Sによるモジユロ演算の基数をM
として選択された2乗の上記積を乗算し、 (f)値Rを得るために、上記基数Mによつて上記値X
を減少し、 (g)上記符号のない大きな値の整数Mを示す上記値R
を記憶する ことを特徴とする累乗方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US716877 | 1985-03-28 | ||
| US06/716,877 US4658094A (en) | 1985-03-28 | 1985-03-28 | Encryption apparatus and methods for raising a large unsigned integer to a large unsigned integer power modulo a large unsigned integer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS61223876A true JPS61223876A (ja) | 1986-10-04 |
Family
ID=24879820
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61070651A Pending JPS61223876A (ja) | 1985-03-28 | 1986-03-28 | 暗号装置と累乗方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4658094A (ja) |
| EP (1) | EP0199620B1 (ja) |
| JP (1) | JPS61223876A (ja) |
Families Citing this family (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS619052A (ja) * | 1984-06-25 | 1986-01-16 | Toshiba Corp | 通信ネツトワ−クシステム |
| LU86203A1 (fr) * | 1985-12-11 | 1987-07-24 | Cen Centre Energie Nucleaire | Procede et appareil verifiant l'authenticite de documents lies a une personne et l'identite de leurs porteurs |
| ATE55033T1 (de) * | 1986-03-05 | 1990-08-15 | Holger Sedlak | Kryptographie-verfahren und kryptographieprozessor zur durchfuehrung des verfahrens. |
| EP0566215B1 (en) * | 1986-09-30 | 1996-11-20 | Canon Kabushiki Kaisha | Error correction apparatus |
| US4841570A (en) * | 1987-05-11 | 1989-06-20 | The United States Of America As Represented By The United States Department Of Energy | One-way transformation of information |
| JP2683022B2 (ja) * | 1988-04-13 | 1997-11-26 | 株式会社日立製作所 | データ秘匿方式 |
| US4949381A (en) * | 1988-09-19 | 1990-08-14 | Pitney Bowes Inc. | Electronic indicia in bit-mapped form |
| EP0383985A1 (de) * | 1989-02-24 | 1990-08-29 | Claus Peter Prof. Dr. Schnorr | Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem |
| US5091941A (en) * | 1990-10-31 | 1992-02-25 | Rose Communications, Inc. | Secure voice data transmission system |
| US5139376A (en) * | 1991-10-23 | 1992-08-18 | Excellon Automation | Method and apparatus for controlled penetration drilling |
| US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
| US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
| GB9203425D0 (en) * | 1992-02-18 | 1992-09-23 | Sewell Roger F | Devices for implementing public key cryptography and digital signatures |
| US5332340A (en) * | 1992-07-27 | 1994-07-26 | Excellon Automation | Drilling method and apparatus using variable dwell times |
| US5446909A (en) * | 1992-12-11 | 1995-08-29 | National Semiconductor Corporation | Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand |
| JPH0720778A (ja) * | 1993-07-02 | 1995-01-24 | Fujitsu Ltd | 剰余計算装置、テーブル作成装置および乗算剰余計算装置 |
| JP2727955B2 (ja) * | 1994-02-14 | 1998-03-18 | 日本電気株式会社 | 公開鍵暗号装置 |
| US5504817A (en) * | 1994-05-09 | 1996-04-02 | Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science | Method and apparatus for memory efficient variants of public key encryption and identification schemes for smart card applications |
| US5734721A (en) * | 1995-10-12 | 1998-03-31 | Itt Corporation | Anti-spoof without error extension (ANSWER) |
| US5796833A (en) * | 1996-09-23 | 1998-08-18 | Cylink Corporation | Public key sterilization |
| US6141422A (en) * | 1997-06-04 | 2000-10-31 | Philips Electronics North America Corporation | Secure cryptographic multi-exponentiation method and coprocessor subsystem |
| US6064740A (en) * | 1997-11-12 | 2000-05-16 | Curiger; Andreas | Method and apparatus for masking modulo exponentiation calculations in an integrated circuit |
| US7268700B1 (en) | 1998-01-27 | 2007-09-11 | Hoffberg Steven M | Mobile communication device |
| US6108421A (en) * | 1998-03-06 | 2000-08-22 | Harris Corporation | Method and apparatus for data encryption |
| US6182104B1 (en) * | 1998-07-22 | 2001-01-30 | Motorola, Inc. | Circuit and method of modulo multiplication |
| US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
| US8364136B2 (en) | 1999-02-01 | 2013-01-29 | Steven M Hoffberg | Mobile system, a method of operating mobile system and a non-transitory computer readable medium for a programmable control of a mobile system |
| KR100400198B1 (ko) * | 2001-09-28 | 2003-10-01 | 주식회사장미디어인터렉티브 | 공개키 암호시스템을 위한 특정 빅인티저에 대한 고속나머지 연산 방법 |
| US7184551B2 (en) * | 2002-09-30 | 2007-02-27 | Micron Technology, Inc. | Public key cryptography using matrices |
| JP2004145010A (ja) * | 2002-10-24 | 2004-05-20 | Renesas Technology Corp | 暗号回路 |
| US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
| US7849125B2 (en) | 2006-07-07 | 2010-12-07 | Via Telecom Co., Ltd | Efficient computation of the modulo operation based on divisor (2n-1) |
| US8005210B2 (en) * | 2007-06-30 | 2011-08-23 | Intel Corporation | Modulus scaling for elliptic-curve cryptography |
| EP2208165A4 (en) * | 2007-11-02 | 2010-11-24 | Certicom Corp | MONTGOMERY ARITHMETIC SIGNED |
| CN114218594A (zh) * | 2021-12-17 | 2022-03-22 | 京东方科技集团股份有限公司 | 加解密初始化配置方法、边缘端、加解密平台及安全系统 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5642852A (en) * | 1979-09-18 | 1981-04-21 | Fujitsu Ltd | Multiplication/division circuit |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2401459A1 (fr) * | 1977-08-26 | 1979-03-23 | Cii Honeywell Bull | Support d'information portatif muni d'un microprocesseur et d'une memoire morte programmable |
| US4405829A (en) * | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
| US4424414A (en) * | 1978-05-01 | 1984-01-03 | Board Of Trustees Of The Leland Stanford Junior University | Exponentiation cryptographic apparatus and method |
| US4514592A (en) * | 1981-07-27 | 1985-04-30 | Nippon Telegraph & Telephone Public Corporation | Cryptosystem |
| DE3138698A1 (de) * | 1981-09-29 | 1983-04-07 | Siemens AG, 1000 Berlin und 8000 München | Verfahren zur potenzierung grosser binaerzahlen in einer restklasse modulo n, insbesondere zur verschluesselung und entschluesselung digital dargestellter nachrichten |
| ATE55033T1 (de) * | 1986-03-05 | 1990-08-15 | Holger Sedlak | Kryptographie-verfahren und kryptographieprozessor zur durchfuehrung des verfahrens. |
-
1985
- 1985-03-28 US US06/716,877 patent/US4658094A/en not_active Expired - Lifetime
-
1986
- 1986-03-25 EP EP86400624A patent/EP0199620B1/en not_active Expired - Lifetime
- 1986-03-28 JP JP61070651A patent/JPS61223876A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5642852A (en) * | 1979-09-18 | 1981-04-21 | Fujitsu Ltd | Multiplication/division circuit |
Also Published As
| Publication number | Publication date |
|---|---|
| US4658094A (en) | 1987-04-14 |
| EP0199620A3 (en) | 1988-12-07 |
| EP0199620A2 (en) | 1986-10-29 |
| EP0199620B1 (en) | 1993-05-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS61223876A (ja) | 暗号装置と累乗方法 | |
| US5982900A (en) | Circuit and system for modulo exponentiation arithmetic and arithmetic method of performing modulo exponentiation arithmetic | |
| EP0947914B1 (en) | Computationally efficient modular multiplication method and apparatus | |
| US6182104B1 (en) | Circuit and method of modulo multiplication | |
| US4870681A (en) | Cryptographic method and cryptographic processor for carrying out the method | |
| US5742530A (en) | Compact microelectronic device for performing modular multiplication and exponentiation over large numbers | |
| US6356636B1 (en) | Circuit and method for fast modular multiplication | |
| USRE44697E1 (en) | Encryption processor with shared memory interconnect | |
| US8209369B2 (en) | Signal processing apparatus and method for performing modular multiplication in an electronic device, and smart card using the same | |
| EP0917047B1 (en) | Apparatus for modular inversion for information security | |
| US7206410B2 (en) | Circuit for the inner or scalar product computation in Galois fields | |
| JPH08263315A (ja) | モンゴメリ法によるモジュラリダクションの実施方法 | |
| EP0938790B1 (en) | A method and device for executing a decrypting mechanism through calculating a standardized modular exponentiation for thwarting timing attacks | |
| KR20030051992A (ko) | 아이씨카드용 알에스에이 암호 연산 장치 | |
| KR100442218B1 (ko) | 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기 | |
| IL97413A (en) | Microcircuit for the implementation of rsa algorithm and ordinary and modular arithmetic in particular exponentiation with large operands | |
| JPH05324277A (ja) | 暗号通信方法 | |
| US7113593B2 (en) | Recursive cryptoaccelerator and recursive VHDL design of logic circuits | |
| US5777916A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the montgomery method | |
| JP2000503146A (ja) | 整数除算回路を有するモジュラ算術演算コプロセッサ | |
| KR20060051572A (ko) | 임의 정밀도 연산기, 임의 정밀도 연산 방법, 및 전자 기기 | |
| KR100480997B1 (ko) | GF(p)와 GF(2^m)의 유한체 곱셈 연산 장치 | |
| JP3904421B2 (ja) | 剰余乗算演算装置 | |
| Lu et al. | A programmable VLSI architecture for computing multiplication and polynomial evaluation modulo a positive integer | |
| US7471789B2 (en) | Encryption circuit achieving higher operation speed |