JPH0851421A - ビット攪拌器 - Google Patents

ビット攪拌器

Info

Publication number
JPH0851421A
JPH0851421A JP6185958A JP18595894A JPH0851421A JP H0851421 A JPH0851421 A JP H0851421A JP 6185958 A JP6185958 A JP 6185958A JP 18595894 A JP18595894 A JP 18595894A JP H0851421 A JPH0851421 A JP H0851421A
Authority
JP
Japan
Prior art keywords
bit
value
function
input
stirrer
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
Application number
JP6185958A
Other languages
English (en)
Inventor
Mitsuko Miyaji
充子 宮地
Motoji Omori
基司 大森
Makoto Tatebayashi
誠 館林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP6185958A priority Critical patent/JPH0851421A/ja
Priority to US08/511,851 priority patent/US5751810A/en
Publication of JPH0851421A publication Critical patent/JPH0851421A/ja
Priority to US08/783,107 priority patent/US5825885A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 従来のビット攪拌器よりも安全性が高く、し
かもユーザインターフェースの良好なビット攪拌器を提
供することである。 【構成】 10進n桁の入力値A及び予め準備された拡
張用固定値Lを拡張関数fに代入することにより、当該
入力値Aを10進m桁の値f(A,L)に拡張する。そ
して、この拡張された値f(A,L)をビット攪拌用鍵
Rを用いてビット攪拌する。さらに、ビット攪拌処理に
より得られた値Cを縮小関数gに代入することにより、
10進n桁の出力値Bを得るようにしている。このよう
に、入力値Aを拡張処理によって拡張した後、ビット攪
拌処理を施すようにしているので、入力値Aの桁数を増
やすことなく、機密の安全性を高めることができる。ま
た、ビット攪拌後、縮小演算するようにしているので、
出力値Bを人間の記憶力に耐えうる桁数に低減できる。
従って、従来のビット攪拌器よりも安全性が高く、しか
もユーザインターフェースの良好なビット攪拌器が得ら
れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ビット攪拌器に関し、
より特定的には、10進n桁の入力値Aをビット攪拌し
て10進m桁の出力値Bを得るためのビット攪拌器に関
する。
【0002】
【従来の技術】デジタル化された情報を送信するとき、
第三者が容易にその情報を得たり改ざんしたりすること
ができないようにするために、送信側は情報を攪拌して
送信し、受信側で攪拌された情報を元に戻すことがしば
しば行なわれる。また、個人認証を行う際に、認証側は
あるデータを認証する側に送信し、被認証側はそのデー
タをその人のもつ秘密情報で攪拌した値を認証側に提示
し、認証側でも独立に被認証者の秘密情報を用いて上記
データを攪拌した値を求め、被認証者によって提示され
た値が認証者により求められた値に一致するかどうかに
よって、個人認証を行うことが行われている。
【0003】上記のような技術に用いられるのがビット
攪拌器である。すなわち、ビット攪拌は、秘密鍵通信方
式の一つであり、高速で攪拌率が高いことが要求され
る。また、個人認証に用いる場合には、入力するデータ
が人間が記憶できる程度の長さであることが望まれる。
以下、ビット攪拌を行うための従来技術について説明す
る。
【0004】(第1の従来例)ビット攪拌器の第1の従
来例として、NTTにより開発されたFEALというビ
ット攪拌器がある。詳しくは、清水ほか著:「高速デー
タ暗号アルゴリズムFEAL」、電子通信学会技術報告
(情報理論)、vol.80,No.113,IT86
−33,p1−6,1986を参照されたい。図8は、
この従来例のデータ攪乱部を示している。
【0005】図8において、FEALは、64ビット入
出力のビット攪拌器である。すなわち、FEALは、入
力64ビットの右半分の32ビットをデータ攪乱部に入
力して暗号化した結果と入力の左半分とのビット毎の排
他的論理和を出力の左半分とし、入力の左半分を出力の
右半分とするという構成であり、この操作を何回か繰り
返して用いている。以下、FEALのデータ攪乱部につ
いてより詳細に説明する。
【0006】[1.鍵と入力の分割]16ビットの鍵を
K、32ビットの入力をAとする。Kを8ビットの2ブ
ロックK1、K2に分け、Aを8ビットの4ブロックA
1、A2、A3、A4に分ける。
【0007】[2.鍵と入力の関与]K1とA2のビッ
ト毎の排他的論理和をとったものをB1とし、K2とA
3のビット毎の排他的論理和をとったものをB2とす
る。
【0008】[3.入力の攪乱部]B1とA1とのビッ
ト毎の排他的論理和を取ったものをD1とし、B2とA
4とのビット毎の排他的論理和をとったものをD2と
し、32ビットの出力Cを4ブロックC1、C2、C
3、C4に分けて、((D1+D2+1) mod 2
56)を出力C3とし、((C3+D1) mod 2
56)を出力C2とし、((C2+A1+1) mod
256)を出力C1とし、((C3+A4) mod
256)を出力C4とする。ここで、一般に、(α
mod β)は、αをβで割った際の余りを示してい
る。
【0009】FEALは、高速ビット攪拌器として開発
されたが、データ入出力が64ビットの2進数である。
そのため、個人認証等において、被認証者が認証者から
提示された64ビットデータをFEALに入力し、その
処理結果である64ビット出力値を認証者に提示するの
は、通常の人間の記憶力から見て困難である。そこで、
データ入出力が人間の記憶力にあうように、例えば10
進の6〜7桁の入出力の攪拌器を構成した例を第2の従
来例として次に示す。
【0010】(第2の従来例)図9は、デジタル化され
た10進6桁の情報を、ある特定値との和により攪拌す
るビット攪拌器の従来例を示している。以下、このビッ
ト攪拌器について説明する。
【0011】図9において、このビット攪拌器は、10
進6桁の入力[a0 ,a1 ,a2 ,a3 ,a4 ,a5
と、特定値k=[0,1,2,3,4,5]との各桁毎
の和を出力[b0 ,b1 ,b2 ,b3 ,b4 ,b5 ]と
している。
【0012】
【発明が解決しようとする課題】図9のビット攪拌器の
場合、前述の第1の従来例と比較して、人間の記憶力に
頼った入出力に十分耐え得る攪拌器になっている。しか
しながら、鍵のデータ量が106 のため、総当たり法に
より簡単に解読されてしまうという問題がある。ここ
で、総当たり法とは、1つの入力値を固定し鍵を全て動
かしたときの出力を求めて表にすることにより、鍵を見
つけようとする解読法である。通常、ビット攪拌器は、
安易に構成されると、この解読法によって容易に解法さ
れることになるので、総当たり法を回避することが安全
性の目安になる。
【0013】それゆえに、本発明の目的は、従来のビッ
ト攪拌器よりも安全性が高く、しかもユーザインターフ
ェースの良好なビット攪拌器を提供することである。
【0014】
【課題を解決するための手段】請求項1に係る発明は、
10進n桁の入力値A(0≦A≦10n −1)をビット
攪拌して10進m桁の出力値B(0≦B≦10m −1)
を得るためのビット攪拌器であって、入力値Aおよび予
め準備された拡張用固定値Lを拡張関数fに代入するこ
とにより、当該入力値Aを拡張された値f(A,L)に
変換するための拡張手段と、拡張手段により得られた値
f(A,L)をビット攪拌用鍵を用いてビット攪拌する
ことにより、値Cを得るためのビット攪拌手段と、値C
を縮小関数gに代入することにより、10進m桁の出力
値Bを得るための縮小手段とを備えている。
【0015】請求項2に係る発明は、請求項1の発明に
おいて、拡張手段は、入力値Aを10進k桁(kは、n
よりも大きい正の整数)の値f(A,L)に拡張し(0
≦f(A,L)≦10k −1)、ビット攪拌手段は、拡
張された値f(A,L)をビット攪拌して10進k桁の
値C(0≦C≦10k −1)を得ることを特徴とする。
【0016】請求項3に係る発明は、請求項2の発明に
おいて、拡張用固定値Lは、10進(k−n)桁の値で
あり(0≦L≦10k-n −1)、拡張関数fとして、 f(A,L)=A+10n L で規定される関数が用いられることを特徴とする。
【0017】請求項4に係る発明は、請求項2の発明に
おいて、拡張用固定値Lは、10進(k−n)桁の値で
あり(0≦L≦10k-n −1)、拡張関数fとして、 f(A,L)=10k-n A+L で規定される関数が用いられることを特徴とする。
【0018】請求項5に係る発明は、請求項2〜4のい
ずれかの発明において、縮小関数gとして、 g(C)=(C mod 10m ) で規定される関数(但し、(C mod 10m )は、
Cを10m で割ったときの余りを表している)が用いら
れることを特徴とする。
【0019】請求項6に係る発明は、請求項2〜4のい
ずれかの発明において、縮小関数gとして、 g(C)=[C/10k-m ] で規定される関数(但し、[C/10k-m ]は、Cを1
k-m で割ったときの商を表している)が用いられるこ
とを特徴とする。
【0020】請求項7に係る発明は、請求項1の発明に
おいて、拡張手段は、入力値Aを2進kビット(kは、
k ≧10n の条件を満足する正の整数)の値f(A,
L)に拡張し、ビット攪拌手段は、拡張された値f
(A,L)をビット攪拌して2進kビットの値Cを得る
ことを特徴とする。
【0021】請求項8に係る発明は、請求項7の発明に
おいて、拡張用固定値Lは、0≦L≦2k −10n の条
件を満足する整数であり、拡張関数fとして、 f(A,L)=A+L で規定される関数を用いることを特徴とする。
【0022】請求項9に係る発明は、請求項7または8
の発明において、縮小関数gとして、 g(C)=(C mod 10m ) で規定される関数(但し、(C mod 10m )は、
Cを10m で割ったときの余りを表している)が用いら
れることを特徴とする。
【0023】請求項10に係る発明は、請求項7または
8の発明において、値Cをビット置換関数hに代入する
ことにより、ビット位置が置換された値h(C)を得る
ためのビット置換手段をさらに備え、縮小関数gとし
て、 g(C)=(h(C) mod 10m ) で規定される関数(但し、(h(C) mod 10
m )は、h(C)を10mで割ったときの余り)を用い
ることを特徴とする。
【0024】請求項11に係る発明は、請求項1の発明
において、記憶手段をさらに備え、拡張用固定値Lは、
記憶手段において、ビット攪拌器の外部から読み出され
ない領域に格納されていることを特徴とする。
【0025】請求項12に係る発明は、請求項1の発明
において、ビット攪拌用鍵は、その一部が記憶手段にお
いてビット攪拌器の外部から読み出されない領域に格納
されており、その残りの部分がユーザによって入力され
ることを特徴とする。
【0026】請求項13に係る発明は、請求項1に記載
のビット攪拌器を用いた個人認証システムであって、入
力値Aを生成してビット攪拌器に提示する入力値生成手
段と、ビット攪拌器によって入力値Aから生成された出
力値Bが、正しい値であるか否かを照合する照合手段と
を含む認証装置を備えている。
【0027】請求項14に係る発明は、請求項13の発
明において、入力値生成手段は、乱数発生器を含む。
【0028】
【作用】請求項1に係る発明においては、入力値Aおよ
び予め準備された拡張用固定値Lを拡張関数fに代入す
ることにより、当該入力値Aを拡張された値f(A,
L)に変換し、この拡張された値f(A,L)をビット
攪拌用鍵を用いてビット攪拌する。そして、ビット攪拌
処理により得られた値Cを縮小関数gに代入することに
より、10進m桁の出力値Bを得るようにしている。こ
のように、入力値Aを拡張処理によって拡張した後、ビ
ット攪拌処理を施すようにしているので、入力値Aの桁
数を増やすことなく、機密の安全性を高めることができ
る。また、ビット攪拌後、縮小演算するようにしている
ので、出力値Bを人間の記憶力に耐えうる桁数に低減で
きる。従って、従来のビット攪拌器よりも安全性が高
く、しかもユーザインターフェースの良好なビット攪拌
器が得られる。
【0029】請求項2に係る発明においては、拡張手段
は、入力値Aを10進k桁の値f(A,L)に拡張し、
ビット攪拌手段は、拡張された値f(A,L)をビット
攪拌して10進k桁の値Cを得るようにしている。
【0030】請求項3に係る発明においては、拡張手段
は、 f(A,L)=A+10n L で規定される拡張関数を用いて拡張演算を行うようにし
ている。
【0031】請求項4に係る発明においては、拡張手段
は、 f(A,L)=10k-n A+L で規定される拡張関数を用いて拡張演算を行うようにし
ている。
【0032】請求項5に係る発明においては、縮小手段
は、 g(C)=(C mod 10m ) で規定される縮小関数を用いて縮小演算を行うようにし
ている。
【0033】請求項6に係る発明においては、縮小手段
は、 g(C)=[C/10k-m ] で規定される縮小関数を用いて縮小演算を行うようにし
ている。
【0034】請求項7に係る発明においては、拡張手段
は、入力値Aを2進数kビットの値f(A,L)に拡張
し、ビット攪拌手段は、拡張された値f(A,L)をビ
ット攪拌して2進kビットの値Cを得るようにしてい
る。
【0035】請求項8に係る発明においては、拡張手段
は、 f(A,L)=A+L で規定される拡張関数を用いて拡張演算を行うようにし
ている。
【0036】請求項9に係る発明においては、縮小手段
は、 g(C)=(C mod 10m ) で規定される縮小関数を用いて縮小演算を行うようにし
ている。
【0037】請求項10に係る発明においては、ビット
置換手段が値Cをビット置換関数hに代入することによ
り、ビット位置が置換されたh(C)を得る。この場
合、縮小手段は、 g(C)=(h(C) mod 10m ) で規定される縮小関数を用いて縮小演算を行う。
【0038】請求項11に係る発明においては、拡張用
固定値Lは、記憶手段において、ビット攪拌器の外部か
ら読み出されない領域に格納されている。これによっ
て、拡張用固定値Lの安全性が確保される。
【0039】請求項12に係る発明においては、ビット
攪拌用鍵は、その一部が記憶手段においてビット攪拌器
の外部から読み出されない領域に格納され、その残りの
部分がユーザによって入力される。従って、ビット攪拌
用鍵全体の桁数が大きい場合でも、ユーザの記憶力に十
分耐え得るビット攪拌器が得られる。
【0040】請求項13に係る発明においては、入力値
Aを生成してビット攪拌器に提示し、ビット攪拌器によ
って入力値Aから生成された出力値Bが正しい値である
か否かを照合することにより、個人認証を行うようにし
ている。
【0041】請求項14に係る発明においては、乱数発
生器によって入力値Aを生成するようにしている。
【0042】
【実施例】図1は、本発明の一実施例に係るビット攪拌
器を用いた個人認証システムの構成の一例を示す図であ
る。なお、本実施例の個人認証システムは、例えば、株
取引や商品取引等のように、個人認証が必要な商取引の
ために用いられる。図1において、認証者側とユーザ側
(被認証者側)とは、一例として、電話回線1によって
接続されている。認証者側およびユーザ側間のデータ伝
送は、双方のオペレータが、電話機2および3を介し
て、音声による会話によって達成される。
【0043】また、認証者側には、コンピュータ等によ
って構成された認証装置4が設けられる。一方、ユーザ
側には、コンピュータ等によって構成されたビット攪拌
器5が設けられる。なお、ビット攪拌器5は、携帯型の
コンピュータが好ましく、ノートブックタイプのパーソ
ナルコンピュータ、ペン入力コンピュータ、または電子
式卓上計算機にビット攪拌機能を加えたものであっても
良い。また、本実施例では、音声会話によるデータ伝送
を行っているが、図1に点線で示すように、認証装置4
とビット攪拌器5が、オンラインでデータ伝送を行うよ
うに構成されても良い。
【0044】図2は、図1に示す認証装置4の構成の一
例を示すブロック図である。図2において、この認証装
置4は、CPU41と、ROM42と、RAM43と、
入力操作器44と、表示器45と、乱数発生器46と、
個人別データ記憶部47とを備えている。ROM42に
は、プログラムデータが格納され、CPU41は、この
プログラムデータに従って動作する。RAM43は、C
PU41の動作に必要な種々のデータを記憶する。入力
操作器44は、オペレータによって操作されるキーボー
ドやマウス等を含み、CPU41に種々のデータや指示
を入力する。表示器45は、CRTディスプレイや液晶
表示器によって構成され、CPU42から与えられる画
像データを表示する。乱数発生器46は、ユーザ側に提
示する乱数パラメータを発生する。個人別データ記憶部
47には、各ユーザに割り当てられた識別番号それぞれ
について、対応する拡張用固定値Lとビット攪拌用鍵R
とを記憶している。
【0045】図3は、図1に示すビット攪拌器5の構成
の一例を示すブロック図である。図3において、このビ
ット攪拌器5は、CPU51と、ROM52と、RAM
53と、入力操作器54と、表示器55とを備えてい
る。ROM52には、プログラムデータが格納され、C
PU51は、このプログラムデータに従って動作する。
また、ROM52において、外部から読み出されない領
域には、後述する拡張用固定値Lが格納されている。R
AM53は、CPU51の動作に必要な種々のデータを
記憶する。入力操作器54は、オペレータによって操作
されるキーボードやマウス等を含み、CPU51に種々
のデータや指示を入力する。表示器55は、CRTディ
スプレイや液晶表示器によって構成され、CPU52か
ら与えられる画像データを表示する。
【0046】図4は、図1に示す個人認証システム全体
の動作を示すシーケンスチャートである。図5は、図1
の認証装置4の動作を示すフローチャートである。図6
は、図1のビット攪拌器5の動作を示すフローチャート
である。以下、これら図4〜図6を参照して、上記実施
例の動作を説明する。
【0047】個人認証を必要とするデータ(商取引デー
タ等)が発生すると、ユーザは、図4に示すように、ま
ず認証者に電話をかける。電話機2と3との間で電話回
線1が接続されると、ユーザは、予め自分に割り当てら
れた識別番号を、電話回線1を介して、認証者に口頭で
伝える。認証者は、ユーザから伝えられた識別番号を認
証装置4に入力する(図5のステップS101)。次
に、認証装置4のCPU41は、入力された識別番号に
基づいて、個人別データ格納部47から対応する個人デ
ータ(拡張用固定値Lとビット攪拌用鍵R)を読み出
し、RAM43に一旦格納する(ステップS102)。
次に、認証者は、認証装置4に乱数の発生を指示する。
応じて、CPU41は、乱数発生器46を用いて乱数パ
ラメータAを発生する(ステップS103)。このとき
発生された乱数パラメータAは、表示器45に表示され
る。認証者は、表示器45に表示された乱数パラメータ
Aの値を、電話回線1を介して、ユーザに口頭で伝え
る。
【0048】ユーザは、認証者から伝えられた乱数パラ
メータAを、ビット攪拌器5に入力する(図6のステッ
プS201)。次に、ユーザは、自分に割り当てられた
ビット攪拌用鍵Rをビット攪拌器5に入力する(ステッ
プS202)。なお、各ユーザには、各個人毎に異なる
ビット攪拌用鍵(または、パスワード)が予め割り当て
られており、当該ビット攪拌用鍵は、それを所有するユ
ーザと認証者のみが知っている。ただし、ビット攪拌用
鍵の桁数が大きすぎる場合、その一部をROM52内の
外部から読み出されない領域に格納しておき、ユーザは
残りの部分をビット攪拌器5に入力するようにしても良
い。次に、ビット攪拌器5のCPU51は、乱数パラメ
ータAに対して拡張演算を行い、その桁数(または、ビ
ット数)を増加させる(ステップS203)。このと
き、CPU51は、ROM52から拡張用固定値Lを読
み出し、この拡張用固定値Lおよび乱数パラメータAを
予め定められた拡張関数に代入することにより、拡張演
算を行う。この拡張用固定値Lは、機密の安全性の観点
から見て、各ビット攪拌器別に異ならせておくことが好
ましいが、実用上全てのビット攪拌器に異なる拡張用固
定値Lを与えることは、困難である。そのため、例え
ば、ビット攪拌器の生産時において、所定のロット別に
拡張固定値を異ならせるようにしても良い。
【0049】次に、CPU51は、拡張演算の結果得ら
れた値に対し、ビット攪拌用鍵Rを用いてビット攪拌演
算を行う(ステップS204)。なお、ビット攪拌用鍵
Rは、上記ステップS202においてユーザによって入
力されるが、桁数が多いため、ユーザがビット攪拌用鍵
Rの一部のみを入力する場合は、CPU51は、ユーザ
によって入力された値と、ROM52から読み出した値
とを組み合わせて、ビット攪拌用鍵Rを得る。次に、C
PU51は、ビット攪拌されたデータに対して縮小演算
を行い、その桁数(または、ビット数)を元の乱数パラ
メータAと同じ桁数(ビット数)に縮小する(ステップ
S205)。次に、CPU51は、縮小演算によって得
られた値を表示器55に表示させる(ステップS20
6)。ユーザは、表示器55に表示された値を、リスポ
ンス値として認証者に口頭で伝える。
【0050】認証者は、ユーザから伝えれたリスポンス
値を認証装置4に入力する(ステップS104)。この
とき入力されたリスポンス値は、RAM43に格納され
る。次に、認証装置4のCPU41は、前述のステップ
S103においてユーザに与えた乱数パラメータAに対
し、図6のステップS203〜S205と同様の拡張演
算,ビット攪拌処理および縮小演算を実行する(ステッ
プS105〜S107)。なお、このときCPU41
は、前述のステップS102で個人別データ記憶部47
から読み出された拡張用固定値Lおよびビット攪拌用鍵
Rを用いて、それぞれ、ステップS105の拡張演算お
よびステップS106のビット攪拌処理を実行する。次
に、CPU41は、上記ステップS104でRAM43
に格納されたリスポンス値と、上記ステップS105〜
S107の処理で得られた値とを比較し、一致するか否
かを照合する(ステップS108)。次に、CPU41
は、ステップS108の照合結果を、表示器45に表示
させる(ステップS109)。認証者は、表示器45に
表示された照合結果を見て、そのユーザに対し、個人認
証を行うか否かを判断する。当該ユーザに対して個人認
証が得られた場合、当該ユーザは、その後、実際の商取
引データ(株の売買等のデータ)を、口頭で(または、
場合によってはコンピュータ間データ伝送によって)認
証者側に伝える。
【0051】図7は、前述のステップS203〜S20
5(または、ステップS105〜S107)で実行され
るビット攪拌のための処理の一例を模式的に示した図で
ある。以下、同図を参照しながらビット攪拌のための処
理手順の一例を説明する。
【0052】今、入力値(乱数パラメータ)Aを10進
6桁の値、 A=[a0 ,a1 ,a2 ,a3 ,a4 ,a5 ] とし(0≦A≦106 −1)、出力値(縮小演算結果)
Bを10進6桁の値、 B=[b0 ,b1 ,b2 ,b3 ,b4 ,b5 ] とし(0≦B≦106 −1)、拡張用固定値Lを10進
6桁の値、 L=[l0 ,l1 ,l2 ,l3 ,l4 ,l5 ] とし(0≦L≦106 −1)、ビット攪拌用鍵Rを10
進12桁の値、 R=[r0 ,r1 ,…,r11] とし(0≦R≦1012−1)、拡張関数fを、 f(A,L)=A+106 L とし、縮小関数gを、 g(C)=(C mod 106 ) とする。
【0053】入力値Aは、拡張用固定値Lとともに、拡
張関数fに代入され、その結果f(A,L)を既存の6
ビット攪拌器を12桁の入出力に拡張したビット攪拌処
理Xに入力する。その処理結果Cを縮小関数gに代入
し、その結果g(C)を出力値Bとする。
【0054】上記のように構成されたビット攪拌器5
は、ユーザの使用する入出力部分が10進6桁になるた
め、人間の記憶力に対して十分使用可能な範囲になって
いる。
【0055】また、上記のように構成されたビット攪拌
器5の安全性は、主としてビット攪拌処理Xに依存す
る。すなわち、ビット攪拌処理Xが総当たり法による解
法(1012の操作回数を必要とする)以外の解法がない
ように構成されたビット攪拌処理であれば、上記のよう
に拡張されたビット攪拌器5の解法は、 1012×106 の操作回数が必要になり、単に12桁入出力のビット攪
拌器を用いた場合に比べて、より強度な機密安全性が保
てる。
【0056】以上説明したように、上記実施例のビット
攪拌器5は、ユーザインターフェースにあたる入出力桁
数を人間の処理可能な範囲である10進6桁に抑えなが
ら、既存のビット攪拌器を拡張することにより、十分な
安全性を保つことが可能になる。
【0057】なお、上記実施例は、入力値Aと出力値B
との桁数が等しい場合について説明されたが、これらの
桁数が相互に異なる場合でも本発明を適用することが可
能である。
【0058】また、上記実施例では、拡張関数fとし
て、 f(A,L)=A+106 L を用いたが、これを一般化して記述すれば、 f(A,L)=A+10n L となる。但し、nは、入力値Aの桁数である。また、こ
れに代えて、 f(A,L)=10k-n A+L で規定される関数を用いるようにしても良い。ただし、
kは、拡張演算の結果f(A,L)の桁数であり、k>
nである。
【0059】また、上記実施例では、縮小関数gとし
て、 g(C)=(C mod 106 ) を用いたが、これを一般化して記述すれば、 g(C)=(C mod 10m ) となる。また、これに代えて、 g(C)=[C/10k-m ] で規定される関数(ただし、[C/10k-m ]は、Cを
10k-m で割ったときの商)を用いるようにしても良
い。
【0060】また、上記実施例では、理解を容易にする
ため、拡張演算,ビット攪拌処理および縮小演算を10
進数の状態で実行する場合について示したが、通常、コ
ンピュータでは、演算処理を2進数で取り扱うので、こ
れらの演算処理を2進数の状態で行うようにしても良
い。この場合、10進n桁の入力値Aは、拡張用固定値
Lと共に、拡張関数fに代入され、2進kビットのデー
タに拡張される。このとき、kは、2k ≧10n の条件
を満足する正の整数であり、拡張用固定値Lは、0≦L
≦2k −10n の条件を満足する整数である。そして、
拡張関数fには、一例として、 f(A,L)=A+L で規定される関数が用いられる。また、ビット攪拌処理
は、kビット入出力のものが準備される。また、縮小関
数gには、一例として、 g(C)=(C mod 10m ) で規定される関数が用いられる。
【0061】なお、ビット攪拌処理後、縮小演算前に、
値Cをビット置換関数hに代入することにより、ビット
位置が置換されたC’を得る処理を追加しても良い。こ
の場合、縮小関数gとしては、一例として、 g(C)=(h(C) mod 10m ) で規定される関数が用いられる。
【0062】
【発明の効果】以上説明したように、本発明によれば、
入力値Aを拡張処理によって拡張した後、ビット攪拌処
理を施すようにしているので、入力値Aの桁数を増やす
ことなく、機密の安全性を高めることができる。また、
ビット攪拌後、縮小演算するようにしているので、出力
値Bを人間の記憶力に耐えうる桁数に低減できる。従っ
て、従来のビット攪拌器よりも安全性が高く、しかもユ
ーザインターフェースの良好なビット攪拌器が得られ
る。
【0063】また、ビット攪拌用鍵の一部を記憶手段に
おいてビット攪拌器の外部から読み出されない領域に格
納し、その残りの部分をユーザによって入力させること
により、ビット攪拌用鍵全体の桁数が大きい場合でも、
ユーザの記憶力に十分耐え得るビット攪拌器を構成でき
る。
【0064】また、本発明のビット攪拌器を用いて個人
認証システムを構築することにより、安全性が高く、し
かもユーザインターフェースの良好なシステムが得られ
る。
【図面の簡単な説明】
【図1】本発明の一実施例に係るビット攪拌器を用いた
個人認証システムの構成の一例を示す図である。
【図2】図1に示す認証装置4の構成の一例を示すブロ
ック図である。
【図3】図1に示すビット攪拌器5の構成の一例を示す
ブロック図である。
【図4】図1に示す個人認証システム全体の動作を示す
シーケンスチャートである。
【図5】図1の認証装置4の動作を示すフローチャート
である。
【図6】図1のビット攪拌器5の動作を示すフローチャ
ートである。
【図7】図6のステップS203〜S205で実行され
るビット攪拌のための処理の一例を模式的に示した図で
ある。
【図8】従来のビット攪拌処理の一例を示す図である。
【図9】デジタル化された10進6桁の情報を、ある特
定値との和により攪拌するビット攪拌器の従来例を示し
ている。
【符号の説明】
1…電話回線 2,3…電話機 4…認証装置 5…ビット攪拌器 41,51…CPU 42,52…ROM 43,53…RAM 44,54…入力操作器 45,46…表示器 46…乱数発生器 47…個人別データ記憶部

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 10進n桁の入力値A(0≦A≦10n
    −1)をビット攪拌して10進m桁の出力値B(0≦B
    ≦10m −1)を得るためのビット攪拌器であって、 前記入力値Aおよび予め準備された拡張用固定値Lを拡
    張関数fに代入することにより、当該入力値Aを拡張さ
    れた値f(A,L)に変換するための拡張手段と、 前記拡張手段により得られた値f(A,L)をビット攪
    拌用鍵を用いてビット攪拌することにより、値Cを得る
    ためのビット攪拌手段と、 前記値Cを縮小関数gに代入することにより、前記10
    進m桁の出力値Bを得るための縮小手段とを備える、ビ
    ット攪拌器。
  2. 【請求項2】 前記拡張手段は、前記入力値Aを10進
    k桁(kは、nよりも大きい正の整数)の値f(A,
    L)に拡張し(0≦f(A,L)≦10k −1)、 前記ビット攪拌手段は、前記拡張された値f(A,L)
    をビット攪拌して10進k桁の値C(0≦C≦10k
    1)を得ることを特徴とする、請求項1に記載のビット
    攪拌器。
  3. 【請求項3】 前記拡張用固定値Lは、10進(k−
    n)桁の値であり(0≦L≦10k-n −1)、 前記拡張関数fとして、 f(A,L)=A+10n L で規定される関数が用いられることを特徴とする、請求
    項2に記載のビット攪拌器。
  4. 【請求項4】 前記拡張用固定値Lは、10進(k−
    n)桁の値であり(0≦L≦10k-n −1)、前記拡張
    関数fとして、 f(A,L)=10k-n A+L で規定される関数が用いられることを特徴とする、請求
    項2に記載のビット攪拌器。
  5. 【請求項5】 前記縮小関数gとして、 g(C)=(C mod 10m ) で規定される関数(但し、(C mod 10m )は、
    Cを10m で割ったときの余りを表している)が用いら
    れることを特徴とする、請求項2〜4のいずれかに記載
    のビット攪拌器。
  6. 【請求項6】 前記縮小関数gとして、 g(C)=[C/10k-m ] で規定される関数(但し、[C/10k-m ]は、Cを1
    k-m で割ったときの商を表している)が用いられるこ
    とを特徴とする、請求項2〜4のいずれかに記載のビッ
    ト攪拌器。
  7. 【請求項7】 前記拡張手段は、前記入力値Aを2進k
    ビット(kは、2k≧10n の条件を満足する正の整
    数)の値f(A,L)に拡張し、 前記ビット攪拌手段は、前記拡張された値f(A,L)
    をビット攪拌して2進kビットの値Cを得ることを特徴
    とする、請求項1に記載のビット攪拌器。
  8. 【請求項8】 前記拡張用固定値Lは、0≦L≦2k
    10n の条件を満足する整数であり、 前記拡張関数fとして、 f(A,L)=A+L で規定される関数を用いることを特徴とする、請求項7
    に記載のビット攪拌器。
  9. 【請求項9】 前記縮小関数gとして、 g(C)=(C mod 10m ) で規定される関数(但し、(C mod 10m )は、
    Cを10m で割ったときの余りを表している)が用いら
    れることを特徴とする、請求項7または8に記載のビッ
    ト攪拌器。
  10. 【請求項10】 前記値Cをビット置換関数hに代入す
    ることにより、ビット位置が置換されたh(C)を得る
    ためのビット置換手段をさらに備え、 前記縮小関数gとして、 g(C)=(h(C) mod 10m ) で規定される関数(但し、(h(C) mod 10
    m )は、h(C)を10mで割ったときの余り)を用い
    ることを特徴とする、請求項7または8に記載のビット
    攪拌器。
  11. 【請求項11】 記憶手段をさらに備え、 前記拡張用固定値Lは、前記記憶手段において、ビット
    攪拌器の外部から読み出されない領域に格納されている
    ことを特徴とする、請求項1に記載のビット攪拌器。
  12. 【請求項12】 前記ビット攪拌用鍵は、その一部が前
    記記憶手段においてビット攪拌器の外部から読み出され
    ない領域に格納されており、その残りの部分がユーザに
    よって入力されることを特徴とする、請求項1に記載の
    ビット攪拌器。
  13. 【請求項13】 請求項1に記載のビット攪拌器を用い
    た個人認証システムであって、 前記入力値Aを生成して前記ビット攪拌器に提示する入
    力値生成手段と、前記ビット攪拌器によって前記入力値
    Aから生成された前記出力値Bが、正しい値であるか否
    かを照合する照合手段とを含む認証装置を備える、請求
    項12に記載の個人認証システム。
  14. 【請求項14】 前記入力値生成手段は、乱数発生器を
    含む、請求項13に記載の個人認証システム。
JP6185958A 1994-08-08 1994-08-08 ビット攪拌器 Pending JPH0851421A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6185958A JPH0851421A (ja) 1994-08-08 1994-08-08 ビット攪拌器
US08/511,851 US5751810A (en) 1994-08-08 1995-08-07 Bit agitator
US08/783,107 US5825885A (en) 1994-08-08 1997-01-14 Bit agitator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6185958A JPH0851421A (ja) 1994-08-08 1994-08-08 ビット攪拌器

Publications (1)

Publication Number Publication Date
JPH0851421A true JPH0851421A (ja) 1996-02-20

Family

ID=16179858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6185958A Pending JPH0851421A (ja) 1994-08-08 1994-08-08 ビット攪拌器

Country Status (2)

Country Link
US (2) US5751810A (ja)
JP (1) JPH0851421A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122375A (en) * 1996-12-10 2000-09-19 Hitachi, Ltd. Hash value generating method and device, data encryption method and device, data decryption method and device
DE19914407A1 (de) * 1999-03-30 2000-10-05 Deutsche Telekom Ag Verfahren zur Ableitung von Identifikationsnummern
US10754983B2 (en) * 2017-03-31 2020-08-25 Interset Software Inc. Anonymization of sensitive data for use in user interfaces

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694412A (en) * 1982-09-22 1987-09-15 Intel Corporation Random number generator for use in an authenticated read-only memory
GB9212266D0 (en) * 1992-06-10 1992-07-22 Racal Datacom Ltd Access control
JP2883243B2 (ja) * 1992-06-11 1999-04-19 ケイディディ株式会社 相手認証/暗号鍵配送方式
JP2942913B2 (ja) * 1993-06-10 1999-08-30 ケイディディ株式会社 相手認証/暗号鍵配送方式
US5546463A (en) * 1994-07-12 1996-08-13 Information Resource Engineering, Inc. Pocket encrypting and authenticating communications device

Also Published As

Publication number Publication date
US5751810A (en) 1998-05-12
US5825885A (en) 1998-10-20

Similar Documents

Publication Publication Date Title
US4982429A (en) Encipher method and decipher method
JP2006352904A (ja) データの正確性チェックのための方法、システムおよび携帯端末
CN112003696B (zh) Sm9密钥生成方法、***、电子设备、装置及存储介质
JP2011505034A (ja) 使い捨て用仮想秘密情報認証システムおよび認証方法
CN106570405A (zh) 一种在输入法中对文字进行加密/解密的方法和装置
JPH0675525A (ja) 暗号通信装置
CN108616359B (zh) 一种基于二维码的otp认证方法及***
US20170214670A1 (en) Symmetric encryption key generation/distribution
JPH0851421A (ja) ビット攪拌器
JP4851179B2 (ja) 通信方法、通信装置、情報通信システム、及びプログラム
CN110968878A (zh) 信息传输方法、***、电子设备及可读介质
CN101424142B (zh) 一种锁具及其开锁方法及锁具管理中心及其控制方法
US20050175173A1 (en) Communication device
CN111212068B (zh) 一种输入法对文字加解密的方法
JPH1023548A (ja) 携帯型通信装置及び携帯型記憶装置
EP3902197A1 (en) Confidential data management device, program and recording medium
JP2721238B2 (ja) 署名機能を持つ鍵配送方式
US20090125994A1 (en) Communication between a human user and a computer resistant to automated eavesdropping
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP2570136B2 (ja) 鍵生成装置
JPH0575596A (ja) 信号撹拌装置および暗号装置
CN107241185A (zh) 数据传输与接收方法及传输与接收装置
JP4132968B2 (ja) 識別番号変換システム、及び認証装置
JP2003249929A (ja) 通信装置
JP2000134195A (ja) 暗号化装置、復号化装置、方法及びその記録媒体