JP2012068351A - 暗号演算装置及びメモリシステム - Google Patents

暗号演算装置及びメモリシステム Download PDF

Info

Publication number
JP2012068351A
JP2012068351A JP2010211727A JP2010211727A JP2012068351A JP 2012068351 A JP2012068351 A JP 2012068351A JP 2010211727 A JP2010211727 A JP 2010211727A JP 2010211727 A JP2010211727 A JP 2010211727A JP 2012068351 A JP2012068351 A JP 2012068351A
Authority
JP
Japan
Prior art keywords
data
cryptographic
input data
input
output control
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.)
Granted
Application number
JP2010211727A
Other languages
English (en)
Other versions
JP5017439B2 (ja
Inventor
Koichi Fujisaki
浩一 藤崎
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010211727A priority Critical patent/JP5017439B2/ja
Priority to US13/037,710 priority patent/US8908859B2/en
Priority to EP11176922A priority patent/EP2434682A1/en
Priority to TW100128623A priority patent/TWI424384B/zh
Priority to KR1020110087178A priority patent/KR101305627B1/ko
Priority to CN201110254941.4A priority patent/CN102411694B/zh
Publication of JP2012068351A publication Critical patent/JP2012068351A/ja
Application granted granted Critical
Publication of JP5017439B2 publication Critical patent/JP5017439B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】暗号化速度を高速化することができる暗号演算装置及びメモリシステムを提供する。
【解決手段】実施形態の暗号演算装置は、複数の暗号コアと、割当部と、連接部と、出力制御部と、を備える。複数の暗号コアは、CTSフラグがオンの場合に共通鍵を用いてCTSを利用した共通鍵暗号アルゴリズムの演算を行う。割当部は、CTS信号が入力された場合に、第1入力データを複数の暗号コアのいずれかに割り当て、第1入力データを割り当てた所定暗号コアのCTSフラグをオンする。連接部は、第1入力データの演算過程で生成された演算データと第1入力データの次に入力される第2入力データとを連接して連接データを生成する。出力制御部は、所定暗号コアへの連接データの出力制御、連接データの演算結果である第1暗号化データの出力制御、及び第1入力データの演算結果である第2暗号化データの出力制御を行って、所定暗号コアのCTSフラグをオフする。
【選択図】図2

Description

本発明の実施形態は、暗号演算装置及びメモリシステムに関する。
共通鍵方式の暗号アルゴリズムは、予め決められたブロック長のデータを秘匿化することを目的に設計されたものであり、そのままではブロック長よりも長いデータの秘匿化を行うことができない。このため、共通鍵方式の暗号アルゴリズムを用いてブロック長より長いデータの秘匿化を行えるような暗号演算方法や、元のデータの改ざん検出のための認証子を生成する暗号演算方法などが開発されている。このような、共通鍵暗号方式を基本として様々な用途に向いた暗号演算方法は、暗号利用モードと呼ばれる。
ストレージデバイスに保存するデータの暗号利用モードについては、IEEE P1619−Std−2007に開示されている。また、IEEE P1619−Std−2007に開示されている暗号利用モードは、暗号利用モードを定めたFIPS PUB SP800−38シリーズにSP800−38E(XTS mode)として採用されている。
ところで、共通鍵暗号方式では、ブロック長のデータを演算して暗号化するように設計されているため、暗号化対象のデータをブロック長に分割した入力データ毎に演算することになるが、暗号化対象のデータがブロック長の整数倍でない場合、最後の入力データは、ブロック長未満のデータとなる。このため、XTS modeにおいては、RFC2040で提案されたCTS(ciphertext stealing)という演算方法を利用して、ブロック長未満のデータを演算し、暗号化する。
IEEE P1619−Std−2007 FIPS PUB SP800−38E
しかしながら、CTSを利用した演算方法では、ブロック長未満のデータの演算と、当該ブロック長未満のデータの直前に演算するブロック長のデータの演算との間に、依存関係が生じるため、ブロック長のデータの演算が所定の段階まで終了しなければ、ブロック長未満のデータの演算を開始することができない。
このため、複数の暗号コアを用いて入力データを並列に演算して暗号化する場合、ブロック長のデータが割り当てられた暗号コアによる演算が所定の段階まで終了するまで、ブロック長未満のデータが割り当てられた暗号コアは待ち状態となり、並列して暗号化を行うことができず、暗号化速度が遅延してしまう。
実施形態の暗号演算装置は、複数の暗号コアと、割当部と、連接部と、出力制御部と、を備える。複数の暗号コアは、CTS(ciphertext stealing)を利用した演算を行うか否かを示すCTSフラグを記憶するフラグ記憶部を有し、CTSフラグがオンに設定されている場合に、共通鍵を用いてCTSを利用した共通鍵暗号アルゴリズムの演算を行う。割当部は、ブロック長のデータである第1入力データの次に入力される第2入力データがブロック長未満であることを示すCTS信号が入力された場合に、前記第1入力データを前記複数の暗号コアのいずれかに割り当て、前記第1入力データを割り当てた暗号コアである所定暗号コアの前記CTSフラグをオンに設定する。連接部は、前記所定暗号コアによる前記第1入力データの演算過程で生成された演算データと前記第2入力データとを連接して、連接データを生成する。出力制御部は、前記所定暗号コアへの前記連接データの出力制御、前記所定暗号コアによる前記連接データの演算結果である第1暗号化データの出力制御、及び前記所定暗号コアによる前記第1入力データの演算結果である第2暗号化データの出力制御を行って、前記所定暗号コアの前記CTSフラグをオフに設定する。
図1は、本実施形態のメモリシステムの構成例を示すブロック図。 図2は、本実施形態の暗号演算装置の構成例を示すブロック図。 図3は、本実施形態の割当処理例を示すフローチャート。 図4は、本実施形態の通常の共通鍵暗号アルゴリズムの演算例を示すフローチャート。 図5は、本実施形態のCTSを利用した共通鍵暗号アルゴリズムの前段の演算例を示すフローチャート。 図6は、本実施形態の出力制御及び連接処理例を示すフローチャート。 図7は、本実施形態のCTSを利用した共通鍵暗号アルゴリズムの後段の演算例を示すフローチャート。 図8は、本実施形態の暗号コア及びレジスタへの入力データの割当例を示す図。 図9は、本実施形態の暗号コア及びレジスタからの暗号化データの出力例を示す図。 図10は、暗号コアへの入力データの割当の比較例を示す図。 図11は、暗号コアからの暗号化データの出力の比較例を示す図。
まず、本実施形態の暗号演算装置を備えるメモリシステムの構成について説明する。
図1は、本実施形態のメモリシステム1の構成の一例を示すブロック図である。メモリシステム1は、ホスト装置2からの書込要求に従って書込対象データを暗号化して記憶したり、暗号化して記憶している読出対象データをホスト装置2からの読出要求に従って復号化して読み出したりするものである。メモリシステム1は、例えば、NAND型半導体メモリ装置などにより実現できる。メモリシステム1は、図1に示すように、暗号演算装置10と、メモリ50と、インタフェース部60とを、備えている。ホスト装置2は、メモリシステム1が内蔵又は外付けされるコンピュータである。メモリシステム1への書込要求や読出要求は、ホスト装置2のOS(Operating System)により行われる。
暗号演算装置10は、ホスト装置2からの書込対象データを暗号化したり、メモリ50に暗号化して記憶されている読出対象データを復号化したりする演算回路である。本実施形態では、書込対象データ及び読出対象データがブロック単位で暗号演算装置10に入力され、暗号演算装置10は、ブロック単位で書込対象データの暗号化及び読出対象データの復号化を行うものとする。本実施形態では、1ブロックを128ビットとして説明するが、1ブロックの大きさは、これに限定されるものではない。なお、暗号演算装置10の詳細については、後述する。
メモリ50は、暗号演算装置10により暗号化されたデータを記憶する不揮発性のメモリであり、例えば、NAND型フラッシュメモリなどにより実現できる。
インタフェース部60は、ホスト装置2からの要求に従ってメモリシステム1の各部を制御する回路である。具体的には、インタフェース部60は、ホスト装置2から書込対象データの書込要求を受け付けると、受け付けた書込対象データをブロック長の入力データに分割し、分割した入力データを暗号演算装置10に順次出力して暗号化させる。そしてインタフェース部60は、暗号演算装置10から入力データを暗号化した暗号化データの入力を順次受け付け、受け付けた暗号化データをメモリ50に出力して記憶させる。また、インタフェース部60は、ホスト装置2から読出要求を受け付けると、読出対象データをブロック単位でメモリ50から読み出し、暗号演算装置10に順次出力して復号化させる。そしてインタフェース部60は、暗号演算装置10から復号化された読出対象データの入力を順次受け付け、復号化された読出対象データをホスト装置2に返却する。
図2は、本実施形態の暗号演算装置10の構成の一例を示すブロック図である。図2に示すように、暗号演算装置10は、暗号コア20−1〜20−4と、暗号演算制御部30と、を備えている。なお本実施形態では、暗号コアの数が4つである場合を例に取り説明するが、暗号コアの数は、2つ以上であればいくつであってもよい。また以下では、暗号コア20−1〜20−4を各々区別する必要がない場合、単に暗号コア20と称する場合がある。また、図2に示す例では、暗号演算装置10の各部と接続される線は、データ信号が流れるデータ線を示しており、制御信号が流れる制御線については記載を省略している。
暗号コア20−1〜20−4の各々は、鍵データ信号線41から入力される共通鍵を用いて、暗号演算制御部30から入力される入力データに対して共通鍵暗号アルゴリズムの演算を行う。そして暗号コア20−1〜20−4の各々は、入力データの演算結果である暗号化データを暗号演算制御部30へ出力する。ここで、暗号コア20−1〜20−4は、暗号演算制御部30から順次入力される複数の入力データを並列して暗号化するものとする。なお本実施形態では、暗号コア20の暗号化方式がXTSモードであり、暗号コア20の演算に用いる共通鍵暗号アルゴリズムがAES(Advanced Encryption Standard)である場合を例に取り説明するが、これに限定されるものではない。また鍵データ信号線41は、インタフェース部60と接続されている。つまり、共通鍵は、インタフェース部60から鍵データ信号線41を介して暗号コア20−1〜20−4に入力される。
暗号コア20−1〜20−4は、それぞれ、CTS(ciphertext stealing)を利用した演算を行うか否かを示すCTSフラグを記憶するフラグ記憶部22−1〜22−4を有している。暗号コア20−1〜20−4の各々は、自身のCTSフラグがオフに設定されていれば、通常の共通鍵暗号アルゴリズムの演算を行う。一方、暗号コア20−1〜20−4の各々は、自身のCTSフラグがオンに設定されていれば、CTSを利用した共通鍵暗号アルゴリズムの演算を行う。
暗号演算制御部30は、暗号コア20−1〜20−4の制御や暗号コア20−1〜20−4の演算結果の出力制御など行う回路であり、セレクタ31と、レジスタ32と、連接部33と、セレクタ34と、セレクタ35と、割当部36と、出力制御部37とを、備える。
セレクタ31は、割当部36及び出力制御部37により制御され、入力データ信号線42から入力される入力データや暗号コア20−1〜20−4から入力される演算結果の出力先を、レジスタ32、連接部33、及びセレクタ35のいずれかに選択する。そしてセレクタ31は、入力された入力データや演算結果を、選択した出力先に出力する。また入力データ信号線42は、インタフェース部60と接続されている。つまり、入力データは、インタフェース部60から入力データ信号線42を介してセレクタ31に入力される。なお、入力データ信号線42から入力される入力データは、ブロック長又はブロック長未満のデータである。
レジスタ32は、セレクタ31から入力される入力データや演算結果を記憶するものである。
連接部33は、割当部36及び出力制御部37により制御され、セレクタ31から入力される演算結果と、レジスタ32に記憶されている入力データとを連接して、連接データを生成する回路である。
セレクタ34は、割当部36又は出力制御部37により制御され、入力データ信号線42から入力される入力データや連接部33から入力される連接データの出力先を、暗号コア20−1〜20−4のいずれかに選択する。そしてセレクタ34は、入力された入力データや連接データを、選択した出力先に出力する。
セレクタ35は、出力制御部37により制御され、セレクタ31から入力される演算結果やレジスタ32から入力される演算結果である暗号化データを出力データ信号線43から出力する。なお出力データ信号線43は、インタフェース部60と接続されている。つまり、暗号化データは、セレクタ35から出力データ信号線43を介してインタフェース部60に出力される。
割当部36は、入力データ信号線42から入力される入力データを暗号コア20−1〜20−4のいずれかに割り当てる回路である。そして割当部36は、セレクタ34を制御して、割り当てを行った暗号コア20−1〜20−4のいずれかに入力データを出力する。なお、割当部36は、入力データをラウンドロビン方式で暗号コア20−1〜20−4に順番に割り当てる。
また割当部36は、入力データ信号線42からブロック長の入力データ(第1入力データの一例)の次に入力される次入力データ(第2入力データの一例)がブロック長未満であることを示すCTS信号がCTS信号線44から入力された場合に、入力データ信号線42から次入力データの前に入力されているブロック長の入力データを暗号コア20−1〜20−4のいずれかに割り当てる。そして割当部36は、入力データを割り当てた暗号コアである所定暗号コアのCTSフラグをオンに設定する。更に割当部36は、入力データ信号線42から入力された次入力データをレジスタ32に記憶させ、データ長信号線45から入力される次入力データのデータ長を連接部33に出力するとともに、セレクタ34を制御して、所定暗号コアに出力する。なおCTS信号線44及びデータ長信号線45は、インタフェース部60と接続されている。つまり、CTS信号は、インタフェース部60からCTS信号線44を介して割当部36に入力され、次入力データのデータ長は、インタフェース部60からデータ長信号線45を介して割当部36に入力される。
出力制御部37は、暗号コア20から入力される演算結果の出力制御などを行う回路である。出力制御部37は、CTSフラグがオフに設定されている暗号コア20から演算結果である暗号化データが暗号演算制御部30に入力された場合、セレクタ31を制御して、入力された暗号化データをセレクタ35に出力し、出力データ信号線43から出力する。なお、暗号コア20による演算が終了すると、暗号コア20から出力制御部37へ終了信号が出力されるため、出力制御部37は、終了信号の出力元の暗号コア20のCTSフラグを確認することで、CTSフラグがオフに設定されている暗号コア20からの入力であるか否かを確認する。
また出力制御部37は、前述のCTSフラグがオンに設定されている所定暗号コアから入力データの演算過程で生成された演算データが暗号演算制御部30に入力された場合、セレクタ31を制御して、入力された演算データを連接部33に出力するとともに、レジスタ32に記憶されている次入力データを連接部33に出力する。そして出力制御部37は、連接部33により生成された連接データを所定暗号コアに出力する。
また出力制御部37は、所定暗号コアから入力データの演算結果である暗号化データ(第2暗号化データの一例)が暗号演算制御部30に入力された場合、セレクタ31を制御して、入力された暗号化データをレジスタ32に出力し、記憶させる。
また出力制御部37は、所定暗号コアから連接データの演算結果である暗号化データ(第1暗号化データの一例)が暗号演算制御部30に入力された場合、セレクタ31を制御して、入力された暗号化データをセレクタ35に出力し、出力データ信号線43から出力する。その後、出力制御部37は、レジスタ32に記憶されている暗号化データをセレクタ35に出力して、出力データ信号線43から出力する。そして、出力制御部37は、所定暗号コアのCTSフラグをオフに設定する。
次に、本実施形態の暗号演算装置の動作について説明する。
なお以下では、ホスト装置2から書込要求が行われる書込対象データはインタフェース部60によりm+1個のブロック長の入力データPj(0≦j≦m)に分割され、入力データ信号線42から順次入力データPが暗号演算装置10に入力されるものとする。但し、最後の入力データPはブロック長未満であるものとする。
図3は、本実施形態の割当部36で行われる割当処理の手順の流れの一例を示すフローチャートである。
まず、割当部36は、CTS信号線44からCTS信号が入力されない場合、入力データ信号線42から次に入力される次入力データPj+1(0≦j≦m−2)がブロック長であると判定する(ステップS100でNo)。この場合、割当部36は、次入力データPj+1の前に入力されている入力データPをラウンドロビン方式で暗号コア20−1〜20−4のいずれかに割り当てる(ステップS102)。そして、ステップS100に戻る。
一方、割当部36は、CTS信号線44からCTS信号が入力された場合、入力データ信号線42から次に入力される次入力データPがブロック長未満であると判定する(ステップS100でYes)。この場合、割当部36は、次入力データPの前に入力されている入力データPm−1をラウンドロビン方式で暗号コア20−1〜20−4のいずれかに割り当て、入力データPm−1を割り当てた暗号コアである所定暗号コアのCTSフラグをオンに設定する(ステップS104)。ここでは、割当部36は、入力データPm−1を暗号コア20−2に割り当てるものとする。つまり、所定暗号コアは、暗号コア20−2であるものとする。
続いて、割当部36は、入力データ信号線42から入力された次入力データPをレジスタ32に記憶させるとともに、データ長信号線45から入力される次入力データPのデータ長を連接部33に出力する(ステップS106)。また割当部36は、セレクタ34を制御して、次入力データPのデータ長を暗号コア20−2にも出力する。そして割当部36は、処理を終了する。
なお、インタフェース部60がホスト装置2から新たな書込要求を受け付けると、入力データ信号線42から新たな入力データが入力されるため、割当部36は、ステップS100から処理を再開する。
図4は、本実施形態の暗号コア20で行われる通常の共通鍵暗号アルゴリズムの演算、即ちCTSを利用しない共通鍵暗号アルゴリズムの演算の手順の流れの一例を示すフローチャートである。図4に示す処理は、図3のステップS102で割当部36により入力データが割り当てられた暗号コア20で行われる。
まず、暗号コア20は、j(0≦j≦m−2)番目のブロックの入力データPとマスク値Tとの排他的論理和PPを算出する(ステップS200)。ここで、マスク値Tは、j=0の場合、共通鍵Key2及びセクター番号i(Teak Value)を数式(1)に代入することにより算出され、1≦j≦m−2の場合、数式(2)により算出される。なお、αjは、ガロア体の原始元を示す。
=AESenc(Key2,i)×α …(1)
=Tj−1×αj−1 …(2)
続いて、暗号コア20は、算出した排他的論理和PPと共通鍵Key1を数式(3)に代入して、暗号化値CCを算出する(ステップS202)。
CC=AESenc(Key1,PP) …(3)
続いて、暗号コア20は、算出した暗号化値CCとマスク値Tとの排他的論理和である暗号化データCを算出し、暗号演算制御部30へ出力する(ステップS204)。
なお、図4に示す処理は、暗号コア20−1〜20−4で並列して行われる。
図5は、本実施形態の暗号コア20−2で行われるCTSを利用した共通鍵暗号アルゴリズムの演算の前段の手順の流れの一例を示すフローチャートである。図5に示す処理は、図3のステップS104で割当部36により入力データが割り当てられた暗号コア20−2で行われる。
まず、暗号コア20−2は、m−1番目のブロックの入力データPm−1とマスク値Tm−1との排他的論理和PPを算出する(ステップS210)。なお、マスク値Tm−1は、数式(4)により算出される。
m−1=Tm−2×αm−2 …(4)
続いて、暗号コア20−2は、算出した排他的論理和PPと共通鍵Key1を数式(3)に代入して、暗号化値CCを算出し、暗号演算制御部30へ出力する(ステップS212)。
続いて、暗号コア20−2は、算出した暗号化値CCとマスク値Tm−1との排他的論理和のうちの次入力データPのデータ長分の上位ビットを暗号化データCとして算出し、暗号演算制御部30へ出力する(ステップS214)。
以降の後段の処理については後述する。
図6は、本実施形態の出力制御部37で行われる出力制御及び連接部33で行われる連接処理の手順の流れの一例を示すフローチャートである。
まず、出力制御部37は、CTSフラグがオフに設定されている暗号コア20から入力データP(0≦j≦m−2)の演算結果である暗号化データCが暗号演算制御部30に入力された場合(ステップS300でNo)、セレクタ31を制御して、入力された暗号化データCをセレクタ35に出力し、出力データ信号線43から出力する(ステップS302)。そして、ステップS300に戻る。
一方、出力制御部37は、CTSフラグがオンに設定されている暗号コア20−2から入力データPm−1の演算過程で生成された演算データである暗号化値CCが暗号演算制御部30に入力された場合(ステップS300でYes)、セレクタ31を制御して、入力された暗号化値CCを連接部33に出力するとともに、レジスタ32に記憶されている次入力データPを連接部33に出力する。そして連接部33は、次入力データPに、暗号化値CCとマスク値Tm−1との排他的論理和のうちの、ブロック長から次入力データPのデータ長を引いた長さのデータを連接し、この連接してできたデータとマスク値Tm−1との排他的論理和PPを算出する(ステップS304)。なお、マスク値Tは、数式(5)により算出される。
=T×α …(5)
続いて、出力制御部37は、連接部33により算出された排他的論理和PPをCTSフラグがオンに設定されている暗号コア20−2に出力するとともに、暗号コア20−2から入力データPm−1の演算結果である暗号化データCが暗号演算制御部30に入力されると、セレクタ31を制御して、入力された暗号化データCをレジスタ32に出力し、記憶させる(ステップS306)。
続いて、出力制御部37は、CTSフラグがオンに設定されている暗号コア20−2から排他的論理和PP(次入力データP)の演算結果である暗号化データCm−1が暗号演算制御部30に入力されると、セレクタ31を制御して、入力された暗号化データCm−1をセレクタ35に出力し、出力データ信号線43から出力する(ステップS308)。
続いて、出力制御部37は、レジスタ32に記憶されている暗号化データCをセレクタ35に出力して、出力データ信号線43から出力する。そして、出力制御部37は、暗号コア20−2のCTSフラグをオフに設定する(ステップS310)。
図7は、本実施形態の暗号コア20−2で行われるCTSを利用した共通鍵暗号アルゴリズムの演算の後段の手順の流れの一例を示すフローチャートである。図7に示す処理は、図6のステップS306の処理以降、ステップS308の処理以前に行われる。
まず、暗号コア20−2は、暗号演算制御部30から入力された排他的論理和PPと共通鍵Key1を数式(3)に代入して、暗号化値CCを算出する(ステップS220)。
続いて、暗号コア20−2は、算出した暗号化値CCとマスク値Tとの排他的論理和である暗号化データCm−1を算出し、暗号演算制御部30へ出力する(ステップS222)。そして出力制御部37は、処理を終了する。
なお、インタフェース部60がホスト装置2から新たな書込要求を受け付けると、入力データ信号線42から新たな入力データが入力され、割当部36による割当処理が再開されるため、出力制御部37も、ステップS300から処理を再開する。
図8は、割当部36による割当処理により、暗号コア20−1〜20−4及びレジスタ32に割り当てられた入力データPの一例を示す図であり、図9は、出力制御部37による出力制御により、暗号コア20−1〜20−4及びレジスタ32から出力される暗号化データCの一例を示す図である。
図8に示す例では、割当部36による図3に示す割当処理により、暗号コア20−1、暗号コア20−2、レジスタ32、暗号コア20−3、暗号コア20−4の順番で、それぞれ、入力データPm−2、入力データPm−1、入力データP、入力データQ、入力データQが割り当てられている。
そして、出力制御部37による図7に示す出力制御により、図9に示すように、暗号コア20−1、暗号コア20−2、レジスタ32、暗号コア20−3、暗号コア20−4の順番で、それぞれ、入力データPm−2の暗号化データCm−2、入力データPの暗号化データCm−1、入力データPm−1の暗号化データC、入力データQの暗号化データCQ0、入力データQの暗号化データCQ1が出力される。
このように、本実施形態の暗号演算装置10では、CTSにより依存関係が生じる入力データPm−1及び入力データPの演算を、暗号コア20−2、レジスタ32、及び連接部33を用いて行う。即ち、本実施形態の暗号演算装置10では、依存関係が生じる入力データPm−1及び入力データPの演算を、複数の暗号コアを用いて行うのではなく、レジスタ32、及び連接部33を利用することで、単一の暗号コアで行う。このため、本実施形態の暗号演算装置10によれば、CTSを利用した演算を行う場合であっても、暗号コアに待ち状態を生じさせることなく並列して暗号化を行うことができるので、暗号化速度を高速化することができる。
また本実施形態の暗号演算装置10では、入力データPの入力順序で対応する暗号化データCを出力することができるので、暗号化データCの出力制御を簡素化することができる。
ここで、比較例として、本実施形態の暗号演算装置10を用いずに入力データPを暗号コア20−1’〜20−4’に割り当て、暗号化データCを出力する例を、それぞれ、図10、図11に示す。
図10に示す例では、暗号コア20−1’、暗号コア20−2’、暗号コア20−3’、暗号コア20−4’の順番で、それぞれ、入力データPm−2、入力データPm−1、入力データP、入力データQが割り当てられている。この場合、暗号コア20−3’は、暗号コア20−2’の演算仮定で生成される暗号化値CCを用いて入力データPの暗号化を行うので、暗号コア20−2’により暗号化値CCが生成されるまで待ち状態となり、並列して処理を行えないことになる。
そして、図11に示すように、暗号コア20−1’、暗号コア20−2’、暗号コア20−3’、暗号コア20−4’の順番で、それぞれ、入力データPm−2の暗号化データCm−2、入力データPm−1の暗号化データC、入力データPの暗号化データCm−1、入力データQの暗号化データCQ0が出力される。この場合、入力データPm−1及び入力データPの入力順序で対応する暗号化データC及び暗号化データCm−1が出力されないため、暗号化データCの出力制御が複雑になる。
以上説明した通り、本実施形態によれば、暗号化速度を高速化することができる。
(変形例)
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
例えば上記実施形態では、暗号演算装置をNAND型半導体メモリ装置などのメモリシステムに適用した場合を例に取り説明したが、これに限定されるものではなく、磁気ディスク装置などに適用してもよい。つまり、上記実施形態の暗号演算装置が適用される記憶装置の記憶方式は、特定の記憶方式に限定されるものではない。
また上記実施形態では、暗号化を例に取り説明したが、復号化についても同様の手法を適用することができる。
1 メモリシステム
2 ホスト装置
10 暗号演算装置
20−1〜20−4(20) 暗号コア
22−1〜22−4 フラグ記憶部
30 暗号演算制御部
31、34、35 セレクタ
32 レジスタ
33 連接部
36 割当部
37 出力制御部
41 鍵データ信号線
42 入力データ信号線
43 出力データ信号線
44 CTS信号線
45 データ長信号線
50 メモリ
60 インタフェース部

Claims (5)

  1. CTS(ciphertext stealing)を利用した演算を行うか否かを示すCTSフラグを記憶するフラグ記憶部を有し、前記CTSフラグがオンに設定されている場合に、共通鍵を用いて前記CTSを利用した共通鍵暗号アルゴリズムの演算を行う複数の暗号コアと、
    ブロック長のデータである第1入力データの次に入力される第2入力データがブロック長未満であることを示すCTS信号が入力された場合に、前記第1入力データを前記複数の暗号コアのいずれかに割り当て、前記第1入力データを割り当てた暗号コアである所定暗号コアの前記CTSフラグをオンに設定する割当部と、
    前記所定暗号コアによる前記第1入力データの演算過程で生成された演算データと前記第2入力データとを連接して、連接データを生成する連接部と、
    前記所定暗号コアへの前記連接データの出力制御、前記所定暗号コアによる前記連接データの演算結果である第1暗号化データの出力制御、及び前記所定暗号コアによる前記第1入力データの演算結果である第2暗号化データの出力制御を行って、前記所定暗号コアの前記CTSフラグをオフに設定する出力制御部と、
    を備えることを特徴とする暗号演算装置。
  2. レジスタを更に備え、
    前記割当部は、前記第2入力データを前記レジスタに記憶させ、
    前記所定暗号コアは、前記第1入力データに対して前記CTSを利用した共通鍵暗号アルゴリズムの演算を行い、前記演算データ及び前記第2暗号化データを生成し、
    前記出力制御部は、前記演算データ及び前記レジスタに記憶されている前記第2入力データの前記連接部への出力制御を行い、
    前記所定暗号コアは、前記連接データに対して前記CTSを利用した共通鍵暗号アルゴリズムの演算を行い、前記第1暗号化データを生成することを特徴とする請求項1に記載の暗号演算装置。
  3. 前記出力制御部は、前記第2入力データが出力された前記レジスタに前記第2暗号化データを記憶させ、前記第1暗号化データの出力制御を行った後に、前記レジスタに記憶されている前記第2暗号化データの出力制御を行うことを特徴とする請求項2に記載の暗号演算装置。
  4. 前記割当部は、前記第2入力データのデータ長を前記連接部に出力し、
    前記連接部は、前記データ長に従い、前記演算データと前記第2入力データとを連接することを特徴とする請求項1〜3のいずれか1つに記載の暗号演算装置。
  5. 請求項1〜4のいずれか1つに記載の暗号演算装置と、
    前記暗号演算装置から出力された暗号化データを記憶するメモリと、
    を備えることを特徴とするメモリシステム。
JP2010211727A 2010-09-22 2010-09-22 暗号演算装置及びメモリシステム Expired - Fee Related JP5017439B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2010211727A JP5017439B2 (ja) 2010-09-22 2010-09-22 暗号演算装置及びメモリシステム
US13/037,710 US8908859B2 (en) 2010-09-22 2011-03-01 Cryptographic apparatus and memory system
EP11176922A EP2434682A1 (en) 2010-09-22 2011-08-09 Cryptographic apparatus and memory system
TW100128623A TWI424384B (zh) 2010-09-22 2011-08-10 加密裝置及記憶體系統
KR1020110087178A KR101305627B1 (ko) 2010-09-22 2011-08-30 암호 연산 장치 및 메모리 시스템
CN201110254941.4A CN102411694B (zh) 2010-09-22 2011-08-31 加密装置及存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010211727A JP5017439B2 (ja) 2010-09-22 2010-09-22 暗号演算装置及びメモリシステム

Publications (2)

Publication Number Publication Date
JP2012068351A true JP2012068351A (ja) 2012-04-05
JP5017439B2 JP5017439B2 (ja) 2012-09-05

Family

ID=44582352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010211727A Expired - Fee Related JP5017439B2 (ja) 2010-09-22 2010-09-22 暗号演算装置及びメモリシステム

Country Status (6)

Country Link
US (1) US8908859B2 (ja)
EP (1) EP2434682A1 (ja)
JP (1) JP5017439B2 (ja)
KR (1) KR101305627B1 (ja)
CN (1) CN102411694B (ja)
TW (1) TWI424384B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014141773A1 (ja) * 2013-03-14 2014-09-18 株式会社 東芝 情報処理装置及びそのコンテンツファイル変換処理方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101612518B1 (ko) * 2009-11-26 2016-04-15 삼성전자주식회사 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법
JP6552184B2 (ja) * 2014-01-14 2019-07-31 キヤノン株式会社 情報処理装置およびその方法
KR102376506B1 (ko) * 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
US10009169B2 (en) * 2014-12-02 2018-06-26 Zettaset, Inc. Format-preserving cipher
KR102447476B1 (ko) 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
CN107888373A (zh) * 2016-09-29 2018-04-06 北京忆芯科技有限公司 Xts‑aes加密电路、解密电路及其方法
CN110650008B (zh) * 2019-08-30 2023-05-19 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 多端口fc加密方法及装置
CN114025347B (zh) * 2021-11-03 2023-12-01 苏州欧清电子有限公司 一种蓝牙设备的加密方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161162A (ja) * 1997-11-27 1999-06-18 Hitachi Ltd 暗号化方法または復号化方法およびそれを用いた装置
JP2003263106A (ja) * 2002-03-11 2003-09-19 Toyo Commun Equip Co Ltd パディング方式
JP2006292921A (ja) * 2005-04-08 2006-10-26 Canon Inc 暗号処理装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US6125182A (en) * 1994-11-09 2000-09-26 Channel One Communications, Inc. Cryptographic engine using logic and base conversions
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
FR2784829B1 (fr) * 1998-10-16 2000-12-29 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
WO2000057290A1 (fr) * 1999-03-19 2000-09-28 Hitachi, Ltd. Processeur d'informations
CN1357182A (zh) * 1999-04-27 2002-07-03 V·A·米什克 用于加密信息的方法以及用于实现该方法的设备
TW545023B (en) * 1999-12-10 2003-08-01 Koninkl Philips Electronics Nv Synchronization of session keys
US7392398B1 (en) * 2000-06-05 2008-06-24 Ati International Srl Method and apparatus for protection of computer assets from unauthorized access
US20020114451A1 (en) * 2000-07-06 2002-08-22 Richard Satterfield Variable width block cipher
WO2002082715A1 (en) * 2001-04-03 2002-10-17 Mitsubishi Denki Kabushiki Kaisha Encrypting device
US8068610B2 (en) * 2001-11-21 2011-11-29 General Instrument Corporation Method and system for providing security within multiple set-top boxes assigned for a single customer
US20030223581A1 (en) * 2002-05-30 2003-12-04 Bedros Hanounik Cipher block chaining unit for use with multiple encryption cores
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치
JP3984206B2 (ja) * 2003-09-02 2007-10-03 株式会社東芝 マイクロプロセッサー及び映像音声システム
US20060078107A1 (en) * 2004-10-12 2006-04-13 Chiou-Haun Lee Diffused data encryption/decryption processing method
JP4119882B2 (ja) * 2004-11-19 2008-07-16 株式会社メガチップス メモリ情報保護システム、メモリ情報の保護方法、および半導体メモリ
JP2008524754A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレーション イン−ストリームデータの暗号化/復号およびエラー訂正の機能を有するメモリシステム
US20060242429A1 (en) * 2004-12-21 2006-10-26 Michael Holtzman In stream data encryption / decryption method
US7702099B2 (en) * 2005-06-30 2010-04-20 Chiou-Haun Lee Multipoint synchronous diffused encryption/decryption method
US8155308B1 (en) * 2006-10-10 2012-04-10 Marvell International Ltd. Advanced encryption system hardware architecture
US20080107275A1 (en) * 2006-11-08 2008-05-08 Mehdi Asnaashari Method and system for encryption of information stored in an external nonvolatile memory
US8300805B1 (en) * 2007-01-04 2012-10-30 Altera Corporation AES core with independent inputs and outputs
KR101612518B1 (ko) * 2009-11-26 2016-04-15 삼성전자주식회사 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161162A (ja) * 1997-11-27 1999-06-18 Hitachi Ltd 暗号化方法または復号化方法およびそれを用いた装置
JP2003263106A (ja) * 2002-03-11 2003-09-19 Toyo Commun Equip Co Ltd パディング方式
JP2006292921A (ja) * 2005-04-08 2006-10-26 Canon Inc 暗号処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014141773A1 (ja) * 2013-03-14 2014-09-18 株式会社 東芝 情報処理装置及びそのコンテンツファイル変換処理方法
JP2014178871A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 情報処理装置及びそのコンテンツファイル変換処理方法

Also Published As

Publication number Publication date
TW201229811A (en) 2012-07-16
JP5017439B2 (ja) 2012-09-05
EP2434682A1 (en) 2012-03-28
US8908859B2 (en) 2014-12-09
CN102411694B (zh) 2015-09-16
KR101305627B1 (ko) 2013-09-09
KR20120031123A (ko) 2012-03-30
CN102411694A (zh) 2012-04-11
US20120069993A1 (en) 2012-03-22
TWI424384B (zh) 2014-01-21

Similar Documents

Publication Publication Date Title
JP5017439B2 (ja) 暗号演算装置及びメモリシステム
US8666064B2 (en) Endecryptor capable of performing parallel processing and encryption/decryption method thereof
JP5120830B2 (ja) 共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するための方法及びシステム
ES2805125T3 (es) Arquitectura e instrucciones flexibles para el estándar de cifrado avanzado (AES)
TWI496024B (zh) An encryption calculation means, a memory means, and an encryption calculation method
TWI510017B (zh) 利用隨機排序和隨機區塊大小的用於安全資料傳輸的裝置和方法
JP4549303B2 (ja) パイプラインを用いてメッセージ認証コードを提供する方法および装置
TWI573039B (zh) 計算系統及其加解密裝置與加解密方法
ES2880268T3 (es) Colas de mensajes en soporte físico para una comunicación dentro de un grupo de cómputo
US8942374B2 (en) Encryption device
US20150023501A1 (en) Method and Apparatus for Hardware-Accelerated Encryption/Decryption
US9843440B2 (en) Encryptor/decryptor, electronic device including encryptor/decryptor, and method of operating encryptor/decryptor
JP2008292852A (ja) ディスクアレイ制御装置とディスクアレイ制御方法およびストレージシステム
CN111008407A (zh) 用于执行虚拟加密操作的加密电路
US7403615B2 (en) Methods and apparatus for accelerating ARC4 processing
JP2004240427A (ja) 移動通信システムにおける最適の暗号化関数を設計する方法及び最適の暗号化装置
US20150058639A1 (en) Encryption processing device and storage device
JP6273226B2 (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
KR101126596B1 (ko) 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법
US9838199B2 (en) Initialization vectors generation from encryption/decryption
JP5481354B2 (ja) 情報処理装置
KR20210049412A (ko) Cbc 암호화 및 복호화를 통한 통신 방법 및 시스템
JP2013037290A (ja) 情報処理システム、情報処理方法、及びプログラム
KR20210081908A (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
KR20200009649A (ko) 전력 플랫폼 서버 환경상에서의 경량 암호 고속화 연산 처리 방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120515

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120611

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5017439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees