(57)【要約】      （修正有）【課題】コンピュータで情報保護用ソフトウェア暗号製品が暗号演算を行う間にレジスタまたはＲＡＭなどの揮発性メモリに常駐するセッション状態情報を便利かつ安全に暗号化及び復号化するようにする方法を提供する。【解決手段】セッション状態情報の暗号化方法は、暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤおよび前記暗号セッションに対するセッション消滅カウンターの値に基づいて、前記暗号化しようとするセッション状態情報に対応するカウンターの値を計算する段階と、前記カウンターの値を計算する段階で計算された前記カウンターの値および所定のキーに基づいて、前記暗号化しようとするセッション状態情報を暗号化する段階とを含んでなる。【選択図】図１
2014081613.tif 000002
【特許請求の範囲】
【請求項１】
暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤおよび前記暗号セッションに対するセッション消滅カウンターの値に基づいて、前記暗号化しようとするセッション状態情報に対応するカウンターの値を計算する段階と、
前記カウンターの値を計算する段階で計算された前記カウンターの値および所定のキーに基づいて、前記暗号化しようとするセッション状態情報を暗号化する段階とを含んでなることを特徴とする、セッション状態情報の暗号化方法。
【請求項２】
前記暗号化しようとするセッション状態情報は平文のセッション状態情報であることを特徴とする、請求項１に記載のセッション状態情報の暗号化方法。
【請求項３】
前記カウンターの値を計算する段階は、ブロック暗号アルゴリズムのＣＴＲ運営モードで使用される運営モードカウンターを用いて前記カウンターの値を計算するが、
前記カウンターの値は（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔで計算することを特徴とする、請求項１に記載のセッション状態情報の暗号化方法。
ここで、前記ｉは前記暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤ （１≦ｉ≦ｎ）であり、前記ＴはＭ／ｍであり、前記Ｍは前記セッション状態情報のビットサイズであり、前記ｍは前記ブロック暗号アルゴリズムの平文ビットサイズであり、前記ｎは前記暗号セッションの最大個数であり、前記Ｐｉは前記暗号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【請求項４】
前記セッション消滅カウンターの値は前記暗号化しようとするセッション状態情報を暗号化するたびに１ずつ増加し、前記セッション消滅カウンターの値はメモリに記憶されることを特徴とする、請求項３に記載のセッション状態情報の暗号化方法。
【請求項５】
前記暗号化する段階によって、前記暗号化しようとするセッション状態情報が暗号化されると、前記暗号化されたセッション状態情報に対応する暗号セッションのセッションフラグの値を１にしておき、前記セッションフラグの値はメモリに記憶されることを特徴とする、請求項１に記載のセッション状態情報の暗号化方法。
【請求項６】
前記セッションフラグの値が１であれば、前記暗号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値を１増加させ、前記セッション消滅カウンターの値はメモリに記憶されることを特徴とする、請求項５に記載のセッション状態情報の暗号化方法。
【請求項７】
前記暗号化する段階によって暗号化されたセッション状態情報をメモリに記憶する段階をさらに含むことを特徴とする、請求項１に記載のセッション状態情報の暗号化方法。
【請求項８】
メモリで復号化しようとするセッション状態情報を読み出す段階と、
前記読み出す段階で読み出された前記復号化しようとするセッション状態情報に対応するカウンターの値を計算するが、前記復号化しようとするセッション状態情報に対応する暗号セッションのＩＤ及び前記暗号セッションに対するセッション消滅カウンターの値に基づいて前記カウンターの値を計算する段階と、
前記カウンターの値を計算する段階で計算された前記カウンターの値および所定の値に基づいて、前記復号化しようとするセッション状態情報を復号化する段階とを含んでなることを特徴とする、セッション状態情報の復号化方法。
【請求項９】
前記復号化する段階はブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて復号化を行うことを特徴とする、請求項８に記載のセッション状態情報の復号化方法。
【請求項１０】
前記カウンターの値を計算する段階は、ブロック暗号アルゴリズムのＣＴＲ運営モードで使用される運営モードカウンターを用いて前記カウンターの値を計算するが、
前記カウンターの値はＮｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔで計算することを特徴とする、請求項８に記載のセッション状態情報の復号化方法。
ここで、前記ｉは前記復号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、前記ＴはＭ／ｍであり、前記Ｍは前記復号化しようとするセッション状態情報のビットサイズであり、前記ｍは前記ブロック暗号アルゴリズムの平文ビットサイズであり、前記ｎは前記暗号セッションの最大個数であり、前記Ｐｉは前記復号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セッション状態情報の暗号化および復号化方法に係り、より詳しくは、暗号製品が支援する多数のセッションのセッション状態情報を安全に暗号化・復号化する方法に関する。
【背景技術】
【０００２】
個人情報保護、金融情報保護、公共機関の情報通信保護などのために、コンピュータで行う情報保護製品が広く用いられている。
【０００３】
このような情報保護製品は、ソフトウェアであって、プログラム難読化や安全なキー保存、無欠性確認などの保護対策が採用されている。
【０００４】
安全な秘密情報の保存に属する技術分野として、秘密情報がハードディスク、ＵＳＢまたは保安トークンなどに長期保存される場合、およびプログラムが動作する間に秘密情報が暗号演算のためにレジスタ或いはＲＡＭなどの揮発性メモリに常駐する場合などがある。
【０００５】
一般に、暗号演算のためにレジスタやＲＡＭなどの揮発性メモリに常駐する秘密情報は平文として存在する製品が多い。
【０００６】
しかも、暗号製品が多数の暗号セッションを支援するとき、多くのセッション状態情報が揮発性メモリに平文として常駐する場合が多い。この場合、揮発性メモリの解析を実行する悪性プログラムによって、秘密情報は容易にハッキングできる。暗号演算に必要な秘密情報が露出することにより、情報保護製品が保護しようとする敏感な情報が露出する脆弱性を有する。
【０００７】
揮発性メモリに常駐するセッション状態情報をキーとして暗号化する場合もある。この場合は、秘密情報が揮発性メモリに平文として存在する場合に比べてセッション状態情報を獲得することが難しい。
【０００８】
ところが、セッション状態情報を常に同一のキーと初期値で暗号化すると、暗号文に対する脆弱性が存在する。それにより、セッション状態情報を暗号セッション毎に異なるキーと初期値で暗号化することができるが、この場合には多くのセッションによるキーまたは初期値の管理が複雑である。
【０００９】
このように個人情報保護、金融情報保護、公共機関の情報通信保護などに適用される情報保護製品は、メモリ解析攻撃から防御するために、レジスタまたはＲＡＭなどの揮発性メモリに常駐する秘密情報の安全な保存が必要である。
【００１０】
また、暗号化プログラムが多数の暗号セッションを支援する場合、多くのセッション状態情報を揮発性メモリに常駐させる。この際、セッション状態情報を安全に保護するために暗号化を行わなければならない。一般に、暗号セッションは多くランダムに生成され、消滅する。よって、セッション状態情報を安全に暗号化するには困難さがある。
【００１１】
特許文献１（データ保護のためのメモリ、それを含むメモリシステムおよびその動作方法）には、暗号キーまたはデータが外部に露出するのを防止することが可能な方案が提示されている。その特許文献１は、メモリが暗号化または復号化動作を行うにあたって、ユーザーから直接暗号キーの入力を受けてユーザーの知っている領域に保存する。そして、メモリの特定の領域またはアドレス別に互いに異なる暗号キーを適用するように選択することにより、外部の攻撃などからメモリのデータまたは暗号キーの露出を防止することができ、信頼性のあるメモリデータの暗号化および復号化動作を行うことができる。
【００１２】
ところが、特許文献１はメモリに記憶されるデータまたは暗号キーの露出を防止することができるが、Ｎ個のメモリに記憶されるデータまたは暗号キーを保護するためにＮ個のキーが必要であってキーの管理に難しさがあり、同じメモリに記憶されるデータが同一であれば、常に同一の暗号文が生成されて脆弱性が存在する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】韓国公開特許第１０−２０１０−００９９８７１号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、上述した従来の問題点を解決するために提案されたもので、その目的は、コンピュータで情報保護用ソフトウェア暗号製品が暗号演算を行う間にレジスタまたはＲＡＭなどの揮発性メモリに常駐するセッション状態情報を便利かつ安全に暗号化及び復号化するようにする方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の好適な実施態様に係るセッション状態情報の暗号化方法は、暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤおよび前記暗号セッションに対するセッション消滅カウンターの値に基づいて、前記暗号化しようとするセッション状態情報に対応するカウンターの値を計算する段階と、前記カウンターの値を計算する段階で計算された前記カウンターの値および所定のキーに基づいて、前記暗号化しようとするセッション状態情報を暗号化する段階とを含んでなる。
【００１６】
前記暗号化しようとするセッション状態情報は平文のセッション状態情報である。
【００１７】
前記カウンターの値を計算する段階は、ブロック暗号アルゴリズムのＣＴＲ運営モードで使用される運営モードカウンターを用いて前記カウンターの値を計算するが、前記カウンターの値は（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔで計算する。ここで、前記ｉは前記暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、前記ＴはＭ／ｍであり、前記Ｍは前記セッション状態情報のビットサイズであり、前記ｍは前記ブロック暗号アルゴリズムの平文ビットサイズであり、前記ｎは前記暗号セッションの最大個数であり、前記Ｐｉは前記暗号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【００１８】
前記セッション消滅カウンターの値は、前記暗号化しようとするセッション状態情報を暗号化するたびに１ずつ増加し、前記セッション消滅カウンターの値はメモリに記憶される。
【００１９】
前記暗号化する段階によって、前記暗号化しようとするセッション状態情報が暗号化されると、前記暗号化されたセッション状態情報に対応する暗号セッションのセッションフラグの値を１にしておき、前記セッションフラグの値はメモリに記憶される。
【００２０】
前記セッションフラグの値が１であれば、前記暗号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値を１増加させ、前記セッション消滅カウンターの値はメモリに記憶される。
【００２１】
好ましくは、前記暗号化する段階によって暗号化されたセッション状態情報をメモリに記憶する段階をさらに含んでもよい。
【００２２】
一方、本発明の好適な実施態様に係るセッション状態情報の復号化方法は、メモリで復号化しようとするセッション状態情報を読み出す段階と、前記読み出す段階で読み出された前記復号化しようとするセッション状態情報に対応するカウンターの値を計算するが、前記復号化しようとするセッション状態情報に対応する暗号セッションのＩＤおよび前記暗号セッションに対するセッション消滅カウンターの値に基づいて前記カウンターの値を計算する段階と、前記カウンターの値を計算する段階で計算された前記カウンターの値および所定の値に基づいて、前記復号化しようとするセッション状態情報を復号化する段階とを含んでなる。
【００２３】
前記復号化する段階は、ブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて復号化を行う。
【００２４】
前記カウンターの値を計算する段階は、ブロック暗号アルゴリズムのＣＴＲ運営モードで使用される運営モードカウンターを用いて前記カウンターの値を計算するが、前記カウンターの値はＮｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔで計算する。ここで、前記ｉは前記復号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、前記ＴはＭ／ｍであり、前記Ｍは前記復号化しようとするセッション状態情報のビットサイズであり、前記ｍは前記ブロック暗号アルゴリズムの平文ビットサイズであり、前記ｎは前記暗号セッションの最大個数であり、前記Ｐｉは前記復号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【発明の効果】
【００２５】
このような構成の本発明によれば、ＣＴＲ運営モードのカウンター初期値をセッションＩＤに対応させてセッション状態情報に対する暗号化・復号化を行う。従来では暗号セッションを管理するためにセッションＩＤおよびセッション状態情報を保存したが、本発明では暗号セッションを管理するためにセッションＩＤ、セッション状態情報、セッション消滅カウンターおよびセッションフラグを保存する。本発明の方法を使用すると、１つの暗号・復号キーを用いてセッション状態情報を常に異なるＣＴＲ運営モードカウンター値で暗号化・復号化されるという利点がある。
【００２６】
このような本発明によれば、揮発性メモリに常駐するセッション状態情報を安全に保存することができるので、プログラムが実行される間に揮発性メモリに常駐する暗号セッション状態秘密情報のハッキングの困難さを高める。
【００２７】
揮発性メモリに常駐する暗号セッション状態情報は、セッションの順序なく頻繁に生成または消滅しても、１つのキーを使用することができてキーの管理も便利であり、同一の平文に対して常に異なる暗号文を生成することができて安全性を高めることができる。
【００２８】
よって、コンピュータで実行されるソフトウェア方式の情報保護製品のキー、認証情報などの秘密情報に対する安全性を高めるという効果を持つ。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施例によって暗号製品が暗号セッションｉで暗号演算を終え、セッション状態情報を揮発性メモリに常駐させるために暗号化する過程を示す図である。
【図２】本発明の実施例に係るセッション状態情報の暗号化方法を説明するためのフローチャートである。
【図３】本発明の実施例によって暗号製品が暗号セッションｉで暗号演算を再度開始する場合、揮発性メモリに常駐した、暗号化されたセッション状態情報を復号化する過程を示す図である。
【図４】本発明の実施例に係るセッション状態情報の復号化方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００３０】
本発明では、安全な暗号アルゴリズムを使用するという仮定の下で、ＣＴＲ運営モードを用いて順序なく頻繁に生成および消滅する多数の暗号セッションのセッション状態情報を便利かつ安全に暗号化・復号化する方法を提示する。
【００３１】
以下、添付図面を参照して本発明の実施例に係るセッション状態情報の暗号化および復号化方法について説明する。 本発明の詳細な説明に先立ち、本明細書及び請求の範囲に使用された用語又は単語は、通常的且つ辞典的な意味に限定されてはならない。よって、本明細書に記載された実施例と図面に示された構成は、本発明の最も好適な一実施例に過ぎず、本発明の技術的思想をすべて代弁するものではない。このため、本出願時点においてこれらを代替することが可能な様々な均等物及び変形例があり得ることを理解すべきである。
【００３２】
図１は本発明の実施例によって暗号製品が暗号セッションｉで暗号演算を終え、セッション状態情報を揮発性メモリに常駐させるために暗号化する過程を示す図である。
【００３３】
図１において、参照符号１０は暗号セッションｉで平文である暗号化しようとするセッション状態情報を意味する。
【００３４】
参照符号１２は、ｎ個の暗号セッションＩＤに対応するセッション消滅カウンター、セッションフラグが揮発性メモリに記憶されていることを示す。暗号セッションが消滅して暗号化された状態情報が消えても、暗号セッションに該当するセッション消滅カウンター、セッションフラグは記憶されていなければならず、暗号セッションがさらに生成されて新しい状態情報を暗号化するときに使用される。言い換えれば、暗号セッションｉは「閉」によって消滅するので、暗号化されたセッション状態情報が消えても、暗号セッションｉに該当するセッション消滅カウンターＰｉおよびセッションフラグＦｉに対する情報は記憶されていなければならない。これは、暗号セッションｉがさらに開いて、新しいセッション状態情報を暗号化するときに該当暗号セッションｉに対するセッション消滅カウンターＰｉおよびセッションフラグＦｉ値が使用されなければならないためである。
【００３５】
参照符号１４は、暗号セッションＩＤが１≦ｉ≦ｎであるセッション状態情報に対応する運営モードカウンターＮｉ、セッション消滅カウンターＰｉ、およびセッションフラグＦｉを示す。ここで、運営モードカウンターは記憶されず計算によって誘導される。すなわち、運営モードカウンターＮｉは「Ｎｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔ（Ｎｉはｍ／２ビットカウンターである）」で計算される。ｍはブロック暗号アルゴリズムの平文ビットサイズである。セッション消滅カウンターＰｉはセッションが消滅した回数を意味し、セッションフラグＦｉはセッション状態情報が暗号化されている場合には「１」を示し、そのセッション消滅カウンターＰｉおよびセッションフラグＦｉの値は揮発性メモリに記憶される。前記運営モードカウンターＮｉの値を計算する式において、ｉは暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、ＴはＭ／ｍである。Ｍはセッション状態情報のビットサイズであり、ｍはブロック暗号アルゴリズムの平文ビットサイズである。ｎは暗号製品が支援する最大セッション数であって暗号セッションの最大個数であり、Ｐｉは暗号化しようとするセッション状態情報に対応する暗号セッションｉのセッション消滅カウンターの値として理解すればよい。前記セッション消滅カウンターの値は暗号化しようとするセッション状態情報を暗号化するたびに、すなわちセッションが消滅してからさらにそのセッションが使用されるたびに１ずつ増加し、前記セッション消滅カウンターの値は揮発性メモリ（図示せず）に記憶される。
【００３６】
運営モードカウンターＮｉは、暗号化器１８で暗号化するときにＣＴＲ(CounTeR)運営モードでカウンター値として使用される。セッション消滅カウンターＰｉは暗号セッションｉが閉じる回数によって１ずつ増加する。
【００３７】
キー１６は、暗号化器１８の暗号化に使用されるキー（Ｋ）である。ここで、キー１６は、暗号化キーまたは秘密キーとも称することができ、予め設定される。例えば、キー１６は、ユーザーが入力してもよく、メモリに予め記憶されているものにしてもよい。
【００３８】
暗号化器１８は、ブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて暗号化を行う。暗号化器１８は、暗号化しようとするセッション状態情報１０をキー１６と参照符号１４の運営モードカウンターＮｉによって暗号化する。ここで、暗号化しようとするセッション状態情報１０は、平文のセッション状態情報であり、平文サイズｍ毎に運営モードカウンターＮｉは１ずつ増加する。このように、本発明では常に異なるＣＴＲ運営モードのカウンターＮｉの値をさらに用いるので、従来の問題点である暗号文に対する脆弱性を解消させるうえ、暗号化過程におけるキーまたは初期値の管理が容易になる。言い換えれば、本発明では、暗号化するたびに常に異なるＣＴＲ運営モードのカウンターＮｉの値を使用するので、従来常に同一のキーと初期値で暗号化するときの暗号文に対する脆弱性を解消させる。そして、従来では、セッション状態情報を暗号セッション毎に異なるキーと初期値で暗号化することができた。この場合には、多くのセッションによるキーまたは初期値の管理が複雑であったが、本発明は一つのキー１６を使用するので非常に簡便である。
【００３９】
参照符号２０は、暗号セッションＩＤが１≦ｉ≦ｎである、暗号化されたセッション状態情報を意味する。ここで、ｉは暗号化しようとする或いは暗号化されたセッション状態情報に対応する暗号セッションＩＤである。
【００４０】
参照符号２２は、揮発性メモリに暗号化されたセッション状態情報を記憶していることを示す。ここで、ｎは暗号製品が支援する最大セッション数を示し、セッションＩＤは該当暗号セッションを識別する番号であって最大ｎ個があり、セッション状態情報サイズはｍＴビットである。ここで、ｍは暗号化器１８の暗号アルゴリズムで使用する平文サイズを示す。
【００４１】
図２は本発明の実施例に係るセッション状態情報の暗号化方法を説明するためのフローチャートである。
【００４２】
暗号セッションｉから暗号演算後に他の暗号セッションへ移動する前に、該当暗号セッションｉのセッション状態情報を揮発性メモリに暗号化して記憶しなければならない。以下では、このときの暗号化過程について説明する。
【００４３】
ここで、暗号セッションｉから他の暗号セッションへ移動する前の該当暗号セッションｉのセッション状態情報は平文のセッション状態情報である。
【００４４】
暗号化する前に、セッション消滅カウンターの値Ｐｉ＝０（１≦ｉ≦ｎ）、セッションフラグＦｉ＝０（１≦ｉ≦ｎ）に初期化されていると仮定する。
【００４５】
一旦、暗号化器１８は、暗号化しようとするセッション状態情報１０、すなわち、暗号セッションｉから暗号演算後に他の暗号セッションへ移動する前のセッション状態情報の入力を受ける（Ｓ１０）。この際、セッションフラグＦｉの値が「１」であれば、セッション消滅カウンターＰｉは自分の現在の値を「１」増加させる。
【００４６】
次いで、その暗号化しようとするセッション状態情報に対応する運営モードカウンターＮｉの値を計算する。すなわち、運営モードカウンターは、Ｎｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔの計算式によって該当運営モードカウンターの値を計算する（Ｓ２０）。ここで、ｉは暗号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、ＴはＭ／ｍである。Ｍはセッション状態情報のビットサイズであり、ｍはブロック暗号アルゴリズムの平文ビットサイズである。ｎは暗号製品が支援する最大セッション数であって暗号セッションの最大個数であり、Ｐｉは暗号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【００４７】
その後、暗号化器１８は、ブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて、その暗号化しようとするセッション状態情報１０を所定のキー１６および計算された運営モードカウンターの値に基づいて暗号化する（Ｓ３０）。
【００４８】
このようにしてセッション状態情報が暗号化されると、セッションフラグＦは自分の現在の値を引き続き「１」にしておき（Ｓ４０）、暗号化器１８によって暗号化されたセッション状態情報２０が生成される（Ｓ５０）。
【００４９】
しかる後に、暗号化器１８は、該当暗号セッションｉに対して最終的に暗号化されたセッション状態情報２０を揮発性メモリに常駐させる（Ｓ６０）。
【００５０】
上述した図１および図２の説明において、運営モードカウンターの値の計算、セッションフラグの値の調整、およびセッション消滅カウンターの値の調整は、暗号化器１８または別途の制御部（図示せず）で行うものとしてもよい。
【００５１】
上述した本発明の実施例の暗号化方法によれば、所定のキー１６（すなわち、暗号化するときに使用されるキー）及び常に異なるＣＴＲ暗号運営モードカウンター値でセッション状態情報を暗号化することができる。
【００５２】
図３は、本発明の実施例によって暗号製品が暗号セッションｉで暗号演算を再度開始する場合、揮発性メモリに常駐した、暗号化されたセッション状態情報を復号化する過程を示す図である。
【００５３】
参照符号３０は、暗号セッションｉで暗号演算を再度開始する場合、暗号化されたセッション状態情報４０を復号化したことを意味する。すなわち、参照符号３０は復号化されたセッション状態情報を意味する。
【００５４】
参照符号３２は、ｎ個の暗号セッションＩＤに対応するセッション消滅カウンター、セッションフラグが揮発性メモリに記憶されていることを示す。
【００５５】
参照符号３４は、暗号セッションＩＤが１≦ｉ≦ｎであるセッション状態情報に対応する運営モードカウンターＮｉ、セッション消滅カウンターＰｉ、およびセッションフラグＦｉを示す。ここで、運営モードカウンターＮｉは記憶されず計算によって誘導される。すなわち、運営モードカウンターＮｉは「Ｎｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔ（Ｎｉはｍ／２カウンターである。）」で計算される。セッションフラグＦｉは、セッション状態情報が暗号化されている場合には「１」を示す。セッション消滅カウンターＰｉおよびセッションフラグＦｉの値は揮発性メモリに記憶される。前記運営モードカウンターＮｉの値を計算する式において、ｉは復号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、ＴはＭ／ｍである。Ｍはセッション状態情報のビットサイズであり、ｍはブロック暗号アルゴリズムの平文ビットサイズである。ｎは暗号製品が支援する最大セッション数であって暗号セッションの最大個数であり、Ｐｉは復号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値として理解すればよい。
【００５６】
運営モードカウンターＮｉは復号化器４２で復号化するときにＣＴＲ(CounTeR)運営モードでカウンター値として使用される。
【００５７】
キー３６は、復号化器４２の復号化に使用されるキー（Ｋ）である。ここで、キー３６は、復号化キーまたは秘密キーとも称することができ、予め設定される。例えば、キー３６は、ユーザーが入力してもよく、メモリに予め記憶されているものとしてもよい。本発明の実施例では、復号化するときに使用されるキー３６と暗号化するときに使用されるキー１６を同一のものとする。このように復号化するときに使用されるキー３６と暗号化するときに使用されるキー１６を同一のものとすると、１つの暗号化・復号化キーおよび常に異なるＣＴＲ暗号運営モードカウンター値でセッション状態情報を暗号化・復号化することができる。
【００５８】
参照符号３８は、揮発性メモリに暗号化されたセッション状態情報を記憶していることを示す。
【００５９】
参照符号４０は、暗号セッションＩＤが１≦ｉ≦ｎである、暗号化されたセッション状態情報を示す。
【００６０】
復号化器４２は、ブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて復号化を行う。復号化器４２は、暗号化されたセッション状態情報４０をキー３６と運営モードカウンターＮｉによって復号化する。ここで、平文サイズｍ毎に運営モードカウンターＮｉは１ずつ増加する。このように、本発明では、常に異なるＣＴＲ運営モードのカウンターＮｉの値をさらに用いるので、復号化過程におけるキーまたは初期値の管理が容易になる。言い換えれば、本発明では、復号化するたびに常に異なるＣＴＲ運営モードのカウンターＮｉの値を使用するので、従来での常に同一のキーと初期値で復号化する場合に比べて敏感情報の露出危険性が減少する。そして、従来では、セッション状態情報を暗号セッション毎に異なるキーと初期値で復号化することができた。この場合には多くのセッションによるキーまたは初期値の管理が複雑であったが、本発明は一つのキーを使用するので非常に簡便である。
【００６１】
図４は本発明の実施例に係るセッション状態情報の復号化方法を説明するためのフローチャートである。
【００６２】
暗号セッションｉを呼び出すために、揮発性メモリに常駐している該当暗号セッションｉのセッション状態情報を復号化しなければならない。以下、このときの復号化過程を説明する。
【００６３】
復号化器４２は、揮発性メモリに常駐している暗号セッションのうち、復号化しようとする暗号セッションｉの暗号化されたセッション状態情報４０を呼び出す（Ｓ１００）。
【００６４】
次いで、その復号化しようとする暗号化セッション状態情報４０に対応する運営モードカウンターＮｉの値を計算する。すなわち、運営モードカウンターＮｉは「Ｎｉ＝（ｉ−１）＊Ｔ＋ｎ＊Ｐｉ＊Ｔ」の計算式によって該当運営モードカウンターの値を計算する（Ｓ１１０）。ここで、ｉは復号化しようとするセッション状態情報に対応する暗号セッションのＩＤ（１≦ｉ≦ｎ）であり、ＴはＭ／ｍである。Ｍはセッション状態情報のビットサイズであり、ｍはブロック暗号アルゴリズムの平文ビットサイズである。ｎは暗号製品が支援する最大セッション数であって暗号セッションの最大個数であり、Ｐｉは復号化しようとするセッション状態情報に対応する暗号セッションのセッション消滅カウンターの値である。
【００６５】
その後、復号化器４２は、ブロック暗号アルゴリズムのＣＴＲ運営モードに基づいて、その復号化しようとする暗号化されたセッション状態情報４０を所定のキー３６及び計算された運営モードカウンターの値に基づいて復号化する（Ｓ１２０）。
【００６６】
このように暗号化されたセッション状態情報が復号化されると、復号化器４２によって復号化されたセッション状態情報が生成される（Ｓ１３０）。
【００６７】
しかる後に、復号化器４２は、該当暗号セッションｉに対して最終的に復号化されたセッション状態情報３０を出力する（Ｓ１４０）。
【００６８】
上述した図３および図４の説明において、運営モードカウンターの値の計算、セッションフラグの値の調整、およびセッション消滅カウンターの値の調整は、復号化器４２または別の制御部（図示せず）で行うものとしてもよい
【００６９】
上述した本発明の実施例の復号化方法によれば、所定のキー３６（すなわち、復号化するときに使用されるキー）および常に異なるＣＴＲ暗号運営モードカウンターの値でセッション状態情報を復号化することができる。
【００７０】
上述したような本発明の暗号化および復号化方法によれば、ＣＴＲ暗号運営モードのカウンター初期値をセッションＩＤに対応させてセッション状態情報の暗号化・復号化を行う。１つの暗号・復号キーおよび常に異なるＣＴＲ暗号運営モードカウンター値でセッション状態情報を暗号化・復号化するので、揮発性メモリに常駐するセッション状態情報を安全に記憶することができる。これにより、プログラムが実行される間に揮発性メモリに常駐する暗号セッション状態秘密情報のハッキングに対して困難さを高める。したがって、コンピュータで実行されるソフトウェア方式の情報保護製品のキーや認証情報などの秘密情報に対する安全性を高めるという効果を持つ。
【００７１】
また、本発明は、コンピュータで読み取れる記録媒体にコンピュータ読み取り可能コードとして実現することが可能である。コンピュータ読み取り可能記録媒体は、コンピュータシステムによって読み取れるデータが記憶される全種類の記録装置を含む。コンピュータ読み取り可能記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ記憶装置などがあり、キャリアウエーブ（例えば、インターネットを介しての伝送）の形で実現されることも含む。また、コンピュータ読み取り可能記録媒体は、ネットワークで連結されたコンピュータシステムに分散し、分散方式でコンピュータ読み取り可能コードが記憶及び実行できる。
【００７２】
一方、本発明は、上述した実施例に限定されず、本発明の要旨を逸脱しない範囲内で修正及び変形を加えて実施することができ、それらの修正及び変形が加えられた技術思想も添付された特許請求の範囲に属するものと理解すべきである。
【符号の説明】
【００７３】
１０    暗号化しようとするセッション状態情報
１６、３６    キー
１８    暗号化器
２０、４０    暗号化されたセッション状態情報
３０    復号化されたセッション状態情報
４２    復号化器
【図１】
2014081613.tif 000003
【図２】
2014081613.tif 000004
【図３】
2014081613.tif 000005
【図４】
2014081613.tif 000006