(57)【特許請求の範囲】
【請求項１】
セキュア情報を含むＷｅｂページを作成するためのシステムであって、オーサリング・コンピュータが
第１ストリングを形成するために少なくとも複数の記述子を連結する手段と、
暗号化ストリングを形成するために前記第１ストリングを暗号化する手段と、
表示可能ストリングを生成するために、少なくとも前記暗号化ストリングをエンコードする手段と、
前記表示可能ストリングを、ＷｅｂページコードのターゲットＵＲＬアドレスを参照するフォームセクションに入力する手段と、
前記フォームセクションに一つ以上の選択可能オプションコードを入力する手段と、
前記フォームセクションに処理依頼コードを入力する手段と、
第１のサーバ・コンピュータ上に前記Ｗｅｂページコードをロードする手段とを含み、
ユーザによるクライアントコンピュータ上のＷｅｂブラウザに入力された要求に応答して、前記第１のサーバ・コンピュータが前記クライアントコンピュータに前記Ｗｅｂページコードを転送する手段と、
前記クライアントコンピュータが、前記Ｗｅｂブラウザに前記Ｗｅｂページコードをロードし、前記Ｗｅｂページコードを解釈する手段と、
前記選択可能オプションコードから生成された一つ以上のグラフィカル・ユーザ・インターフェース・デバイスを活動化している前記ユーザによる一つ以上のユーザ入力のアクションに応答して、前記クライアントコンピュータが一組の選択可能オプションの値を設定する手段と、
前記処理依頼コードから生成されたグラフィカル・ユーザ・インターフェース・デバイスと対話している前記ユーザに応答して、前記ターゲットＵＲＬアドレスに対し、前記クライアントコンピュータが前記表示可能ストリング及び一組の選択可能オプションの値を送信する手段と、
を含むシステム。
【請求項２】
前記暗号化する手段が、
秘密ストリングを提供する手段と、
ランダムストリングを提供する手段と、
前記秘密ストリングと前記ランダムストリングを連結する手段と、
前記連結されたランダムストリングと秘密ストリングから、キー・セキュア・ハッシュ・アルゴリズム・ダイジェストを生成する手段と、
前記キー・セキュア・ハッシュ・アルゴリズム・ダイジェストから、キーセグメントを抽出する手段と、
前記暗号化ストリングを生成するために前記キーセグメントと少なくとも前記第１ストリングを含むメッセージストリングとをＸＯＲする手段と、
を含む、請求項１に記載のシステム。
【請求項３】
前記連結する手段が、
記述子｜秘密ストリングを生成するために、前記複数の記述子と秘密ストリングを連結する手段と、
第１シグネチャを生成するために、秘密セキュアハッシュアルゴリズム・ダイジェストを前記記述子｜秘密ストリングに適用する手段と、
前記第１ストリングを生成するために前記第１シグネチャと前記複数の記述子を連結する手段と、
を含む、請求項１に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、当事者間でセキュアな情報を送付することに関するものであり、特に、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）でセキュアな方法で情報を提供することに関し、さらには、ＥコマースのＷｅｂページでの製品情報が、暗号化され、署名されて、キャッシュ・レジスタ・サーバへ伝送される方法に関する。
【０００２】
【従来の技術】
本発明は、Ｅコマースに関する。特に、インターネットを経由して、売るために商品あるいはサービスを掲載し、そのような商品あるいはサービスの注文を対話的に受け取るために使用される、Ｗｅｂページに関する。より一般的には、類似の使用に関するものである。すなわち、ユーザには、何らかの情報を含むＷｅｂページが提示され、そのＷｅｂページは応答（すなわちフォーム）を受け取ることができ、その応答は、インターネット上のある宛先にＷｅｂページからの情報を伝送させ、そして、伝送された情報を機密に保持することが望ましいようなＷｅｂページの使用である。
【０００３】
インターネットを経由して送られるメッセージの機密性については大きな関心がもたれている。あるコンピュータから他のコンピュータへ、インターネットを経由して送られるメッセージは、途中で他のコンピュータ及びネットワーク・ルータを通過する場合がある。実際、メッセージの正確な経路は、あらかじめ決められておらず、２つのコンピュータの間で、さまざまな経路を取りうる。問題は、部分的には、伝送中に複数のコンピュータをメッセージが通過することにより、不法な傍受や、改ざんの機会が増えるという事実に起因する。
【０００４】
Ｅコマースで機密性を保持する必要性には、多くの理由がある。インターネットの一般のユーザは、商品を注文するときに、インターネットにクレジット・カードの情報を入力するため、インターネットのセキュリティについて、関心を示してきた。この要求に答えるため、セキュリティ及び暗号化のＳＳＬプロトコルが広く使用されてきている。このプロトコルは、ユーザにより入力されたクレジットカードのどんな情報のセキュリティも保持するが、クライアントとサーバの間のそれぞれの伝送に対し、キーの折衝と暗号化及び解読とを必要とする。それには、クライアント及びサーバ・コンピュータの両方での処理を必要とし、ユーザの入力に対する応答を遅延させる。
【０００５】
Ｅコマース取引では、また、購入される製品のＩＤの機密性を保持することが望ましい。消費者の機密性に対する要求は、プライバシーの観点から発生する。売り手は、所有する特定の製品の数量やタイプを考慮する。ＳＳＬプロトコルの処理オーバーヘッド、及び、時間的な遅れを生じることなく、機密性を保持することが望まれている。
【０００６】
Ｗｅｂページから注文された商品のセキュリティを保つことは、入力されたクレジット・カードの情報の機密保持とは異なる挑戦を与える。クレジット・カードの場合には、クレジット・カード情報を受け取るためのフォームを含んでいるＷｅｂページがダウンロードされるとき、クレジット・カード情報は未知である。一方、たとえば、製品に対する購入注文を受け入れるＷｅｂページがクライアント・コンピュータにダウンロードされたときは、購入（フォーム提出）ボタンが押されるときに要求される製品のＩＤは、すでに既知である。いくつかの補助的な情報、たとえばサイズや色のような情報のみが、既知ではない。
【０００７】
ＷＷＷでマーチャントＷｅｂページをホストする機能を十分有している多くのインターネット・サービス・プロバイダ（ＩＳＰ）があるが、それらは、たとえば、Ｗｅｂサイトに関連する注文処理のようなビジネス／金融トランザクションを取り扱うには、機能及び熟練性に欠けている。
【０００８】
【発明が解決しようとする課題】
必要とされているものは、ＷＷＷユーザが、ＷＷＷサーバからＷｅｂページで受け取ったセキュアな情報を元のＷＷＷサーバへ、またはＷｅｂページでアドレスされたほかのＷＷＷサーバへ、ＳＳＬまたは他の暗号化技術の使用を必要とすることなく送ることができるシステムである。たとえば、インターネットを経由した買い物の場合、オンラインのＷＷＷを使用する買い物客が、Ｗｅｂページから製品を購入する要求を提出することができ、その情報が、機密のまま保持されるようなシステムが望ましい。オンラインの買い物客、または他のユーザが、補助的な情報を特定し、その情報を機密情報と共に首尾よく提出することができるシステムを提供することも、また、望まれている。
【０００９】
Ｅコマースの方法論の提供が望まれ、それにより、オンライン・ショッピングのＷｅｂページがＩＳＰでホストされることが可能となり、ショッピングＷｅｂページからのトランザクションの処理が、Ｅコマースに対しビジネス／金融サービスを提供するよう特化されたサービスにより取り扱われることが可能となる。ＩＳＰは、インターネットと速いスピードで接続することができるが、ビジネス／金融トランザクションを取り扱うためのハードウェア、ソフトウェア及び知識が欠けている。
【００１０】
無数の選択の組み合わせ（たとえば、衣服のサイズ及び色）に対応する個々の購入ボタンの大きな配列を持つＷｅｂページと対照的に、ラジオボタンまたはブルダウン選択メニューのような一組の選択可能な入力、及び、単一の購入ボタンのような簡単できれいなレイアウトを持つ、オンライン・ショッピングＷｅｂページをＷＷＷユーザに提供することが望ましい。
【００１１】
暗号化された基本製品データと互換性を持つ製品Ｗｅｂページごとに、そのような一つの購入ボタンを持つことが望ましく、そうすれば、基本製品データに関する機密が保持される。
【００１２】
【課題を解決するための手段】
本発明の一つの側面は、セキュア情報を含むＷｅｂページを作成する方法であって、少なくとも、一つまたは複数の関連した名前値の対を連結することにより、第１の連結ストリングをアセンブリするステップと、暗号化ストリングをもたらすために、第１の連結ストリングを暗号化するステップと、表示可能文字ストリングを作成するために暗号化ストリングをエンコードするステップと、表示可能文字ストリングを名前と関連づけるステップと、その名前及び表示可能文字ストリングをＨＴＭＬソースコードの中に配置するステップとを含む。
【００１３】
本発明の別の側面は、上記方法を実行するためのシステム及びコンピュータ可読媒体を提供することである。
【００１４】
【発明の実施の形態】
本発明の一つの実施例によると、マーチャントＷｅｂページは、マーチャントにより提供された製品に関する情報を含む、エンコードされ（表示可能文字）、暗号化されたストリングを含む。その情報は、在庫管理、注文処理、または他のビジネスに関連する目的に有用であり、フィールド名値の対に配置される、基本製品データを含む。フィールド名は、その情報のタイプを示し、値は情報そのものを与える。バーチャル・バー・コード（ＶＢＣ）メッセージ・ストリングがエンコードされ、暗号化された結果として得られるストリングは、当該ストリングを解読するのに有用なほかの付加情報を持っていて、その全体が「ＶＢＣ」と呼ばれる。本発明の一実施例によると、ＶＢＣメッセージ・ストリングは、フィールド名により表される、基本製品情報の以下の項目を含む。
ｖｂｃ_ｉｄ ＝ ＜最大４０文字＞（ＶＢＣを識別する作成された値）
ｐｒｏｄ_ｉｄ ＝ ＜最大２０文字＞（製品ＩＤ）
ｐｒｉｃｅ ＝ ＜最大１０文字＞（浮動小数点表示）
ｄｅｓｃ ＝ ＜最大１０２４文字＞（製品説明）
ｖｂｃ_ｃｒｅａｔｅ ＝ ＜最大１０文字＞（日付／時刻（長さ）表示）
そして、以下の情報がまた、含まれてもよい。
ｓｋｕ ＝ ＜最大２０文字＞（ｓｋｕ数）
ｗｔ ＝ ＜最大２０文字＞（製品重量）
ｗｔｍ ＝ ＜最大２０文字＞（重量測定の単位）
ｓｈｉｐ ＝ ＜最大２０文字＞（輸送データ）
ｔａｘ ＝ ＜最大２０文字＞（税金データ）
ｖｂｃ_ｔｙｐｅ ＝ ＜最大２０文字＞（ｖｂｃタイプ）
ｅｘｐｉｒｅ ＝ ＜最大１０文字＞（日付／時刻（長さ）表示）
【００１５】
上記項目は、単に例示的なものであり、選択された基本製品記述子のセットは、マーチャントの要求による。付加的な情報が、以下に述べられる暗号化及び解読のために使用される。
【００１６】
フィールド名値の対は、連結されて一つのストリングを形成する。たとえば、ＷＷＷ上でのＨＴＭＬ文書の伝送に関する標準であるＨＴＴＰの規約に従い、フィールド名値の対は、各対において値からフィールド名を分離する等号、及び、次の対からそれぞれの対を分離するアンパ−サンド文字でフォーマットでき、概要的には、前述した区切り記号を持つ連結ストリングは、以下のように表示される。
Ｎａｍｅ１＝Ｖａｌｕｅ１＆Ｎａｍｅ２＝Ｖａｌｕｅ２＆Ｎａｍｅ３＝Ｖａｌｕｅ３．．．．
【００１７】
フィールド名値の対のストリングは、それから、秘密ストリングと、暗号解読をより困難にするランダム・ストリングとを使って暗号化される。ランダム・ストリング及び秘密ＩＤは、秘密ストリングと関連付けられ、許可された受信者により、その受信者が所有するデータベースへのインデックスとして使用され得る。ランダム・ストリング及び秘密ＩＤは、もし要求があれば、適当な区切り記号文字を用いて、フィールド名値の対のストリングに付加または連結される。
【００１８】
強度暗号化アルゴリズムは、ビット・レベルで作動し、作成される暗号は、ビット・シーケンスであり、文字ストリングである必要はない。しかし、入力は、文字ストリングでなされる。ランダム・ストリング及び、場合によっては、秘密ＩＤも２進シーケンスでよい。一方、ＨＴＭＬおよびＨＴＴＰは、クライアント・コンピュータで解釈される、表示可能文字をベースとするコードの交換を必要とする。連結されたバイナリ・ストリングを含むために、ＨＴＭＬ文書は、文字コード化され、文字コード化のための標準の一つは、Ｂａｓｅ６４エンコードと呼ばれる。Ｂａｓｅ６４エンコードは、それぞれの６ビットの連続したグループを、標準により与えられたテーブルで特定された文字に、変換する。
【００１９】
エンコードされたストリングの全体が、ＶＢＣを構成する。ＶＢＣに含まれる特定の補助情報、たとえば、ランダム・ストリング及び秘密ＩＤは、暗号化アルゴリズムの選択に依存する。
【００２０】
表示可能文字ストリング、ランダム・ストリング、及び秘密ＩＤは、別々にＷｅｂページ・コードに入力することもできるが、望ましくは、バイナリ・シーケンスなどの適当な区切り記号をオプションで使って、それらを連結し、その連結されたストリングの全体が、Ｂａｓｅ６４でエンコードされる。
【００２１】
オンライン・ストアの実施例によると、インターネット上で売られる製品の全ての基本データを含む、この表示可能文字ストリングは、それからＷｅｂページの一つのセクションに含まれる。そのセクションは、販売される品目に関する説明文、写真、及び他のマルチメディア・コンテンツを含んでもよい。表示可能文字ストリングは、ＨＴＭＬソース・コードに含まれ、Ｗｅｂページで特定されるＵＲＬターゲット・アドレスに伝送される。本発明者は、この暗号化された製品情報を含むことを成し遂げるために、ＨＴＭＬ及びＨＴＴＰ標準のフレームワークで、代替方法を決定した。
【００２２】
本明細書では、ＨＴＭＬトークンは大文字で示され、特にＨＴＭＬタグは、ＨＴＭＬ構文に従い角括弧＜＞内に示される。
【００２３】
図１を参照すると、ＨＴＭＬコードの抜粋されたセクションが示されている。図１の例によると、上述されるように、多数の製品記述子を表示可能ストリングは、ＨＴＭＬタグ＜Ａ＞のＨＲＥＦ属性のＵＲＬ値に付加される。このＵＲＬ値は、以下に記述される解読アルゴリズムを実行するか、または、提出されたデータを前処理して別の解読プログラムを呼び出す、コモン・ゲートウェイ・インターフェース（ＣＧＩ）スクリプトを指定する。図示のＨＴＭＬコードは、クライアント・コンピュータのＷｅｂブラウザ（たとえばＮｅｔｓｃａｐｅ Ｎａｖｉｇａｔｏｒまたは Ｍｉｃｒｏｓｏｆｔ Ｉｎｔｅｒｎｅｔ Ｅｘｐｌｏｒｅｒ）で解釈されると、＜Ａ＞タイプのＨＴＭＬタグによって囲まれる”ＢＵＹ  ＮＯＷ”という語をハイパーテキスト・リンクとして表示させる。Ｗｅｂサーファが、”ＢＵＹ  ＮＯＷ”のハイパーテキスト・リンクをクリックすると、開始＜Ａ＞タグの内容がＷｅｂブラウザにより解釈され、タグのＨＲＥＦ属性のＵＲＬにより指定されたＣＧＩに表示可能ストリングが送付される。製品情報は、エンコードされ、暗号化された形式で送付されるため、ＷＷＷユーザは、その購入活動に対するプライバシーを保護されることができる。
【００２４】
図２を参照すると、別のＨＴＭＬコードの抜粋されたセクションが示されている。この例によると、エンコードされ、暗号化された製品情報を含む表示可能ストリングは、ＨＴＭＬタグ＜ＦＯＲＭ＞のＡＣＴＩＯＮ属性のＵＲＬ値に付加される。このＵＲＬ値は、以下に記述される解読アルゴリズムの実行または呼び出しを行う、ＣＧＩスクリプトを指定する。図示のＨＴＭＬコードにおいて、フォーム・タグ＜ＦＯＲＭ＞及び＜／ＦＯＲＭ＞によって囲まれるフォーム・セクションは、ユーザが選択可能なオプションの値を設定することができるＧＵＩデバイスを作成するために使われる、＜ＩＮＰＵＴ＞、＜ＳＥＬＥＣＴ＞などの特殊コードを含む。図２では、ＴＹＰＥ属性がＲＡＤＩＯに設定されている＜ＩＮＰＵＴ＞タグは、ＨＴＭＬの用語でラジオボタンとして知られる一組のＧＵＩデバイスを表示させる。それらのラジオ・ボタンにより提供される複数のオプションのうち、一つだけが選択可能である。それぞれの＜ＩＮＰＵＴ＞タグは、同じ名前属性（たとえばＣＯＬＯＲ）、及び異なるＶＡＬＵＥ属性（たとえばＢｌｕｅ、Ｇｒａｙなど）を持つ。それぞれのラジオボタンは、対応するテキスト、たとえば、’Ｂｌｕｅ’、’Ｇｒａｙ’に隣接して表示される。たとえばマウスのようなポインティング・デバイスを使用するユーザは、ラジオボタンの一つをクリックすることにより、共通のＮＡＭＥ属性により与えられた名前を持つ、選択可能なオプションの値を所望の値、例えば青に、設定することができる。’ＳＵＢＭＩＴ’として設定されたＴＹＰＥ属性を持つ＜ＩＮＰＵＴ＞タグも、フォーム・セクションに含まれる。ＳＵＢＭＩＴタイプの＜ＩＮＰＩＵＴ＞タグは、Ｗｅｂブラウザの画面上にボタン形式のＧＵＩデバイスを表示させる。このデバイスをたとえばマウスをクリックすることにより活動化したユーザは、製品情報を含む表示可能ストリングと共に、フォーム内のデータを、開始＜ＦＯＲＭ＞タグのＡＣＴＩＯＮ属性で指定されたＵＲＬアドレスへ伝送させる。ＨＴＴＰ標準によると、開始フォーム・タグのＭＥＴＨＯＤ属性はＧＥＴと設定されるので、選択されたラジオ・ボタンの名前値の対、たとえば、色＝青のような対は、アンパ−サンド区切り文字により、表示可能ストリング、及び、その名前ＶＢＣと連結され、次のような形のストリングを生成する：ｖｂｃ＝ｄｉｓｐｌａｙａｂｌｅ＿ｓｔｒｉｎｇ＆ｃｏｌｏｒ＝ｂｌｕｅ。これは、ＨＴＴＰ標準によると、ターゲットＵＲＬでＣＧＩスクリプトによりアクセスされ得る、環境変数名ＱＵＥＲＹ＿ＳＴＲＩＮＧに保存される。もしＭＥＴＨＯＤ属性がＰＯＳＴであったならば、表示可能ストリングは同様にＱＵＥＲＹ＿ＳＴＲＩＮＧで送られるが、選択された名前値の対は、ＳＴＤＩＮ（標準入力）と呼ばれる他のＨＴＴＰプログラム構造で送られる。
【００２５】
ＧＥＴ ＭＥＴＨＯＤの場合、または、複数の選択されたオプション・データが送られるＰＯＳＴ ＭＥＴＨＯＤの場合のデータの最初の構文解析は、ＷＷＷプログラミングの当業者により知られているスクリプトで成し遂げることができる
【００２６】
図３を参照すると、ＨＴＭＬコードの別の抜粋されたセクションが示されている。この場合には、表示可能ストリングは、ＴＹＰＥ属性がＨＩＤＤＥＮ、ＮＡＭＥ属性がＶＢＣである、＜ＩＮＰＵＴ＞タグのＶＡＬＵＥ属性である。この＜ＩＮＰＵＴ＞タグは、ＨＴＭＬコードのフォーム・セクションにある。フォーム・セクションにはまた、Ｗｅｂブラウザにより解釈されると、ＧＵＩデバイス、具体的には選択リストをＷｅｂブラウザの画面に表示させる複数組の＜ＯＰＴＩＯＮ＞タグを囲んでいる一組の＜ＳＥＬＥＣＴ＞タグがある。＜ＳＥＬＥＣＴ＞タグは、たとえばサイズのような、選択できるオプションの名前を与える名前属性を持ち、＜ＯＰＴＩＯＮ＞タグは、代替オプションを囲んでいる。ユーザが表示された選択リストのオプションをクリックすると、名前属性の値に対応する選択可能なオプションのデータ値が設定される。また、＜ＦＯＲＭ＞タグには、ＳＵＢＭＩＴのＴＹＰＥ属性を持つ＜ＩＮＰＵＴ＞タグがある。これが、Ｗｅｂブラウザにより解釈されると、サブミット・ボタンの形式のユーザが活動化できるＧＵＩデバイスがＷｅｂブラウザの画面上に表示される。このデバイスが、たとえばマウスのポインタをクリックすることにより、作動されると、Ｗｅｂブラウザは、選択されたオプションの値及び名前属性の対応する値と共に、表示可能ストリング及びその名前ＶＢＣを伝送する。もし開始＜ＦＯＲＭ＞タグのＭＥＴＨＯＤ属性がＧＥＴと設定されていれば、表示可能ストリング、そのストリング名たとえばＶＢＣ、並びに選択されたオプションの名前及び値を含む伝送データは、名前値の対に配置され、適当な区切り記号文字、たとえば、それぞれの名前をその対応する値から分離する等号、及び対の間のアンパ−サンドを用いて連結される。その連結されたストリングは、ＨＴＴＰ標準により指定された環境変数ＱＵＥＲＹ＿ＳＴＲＩＮＧに設定することができる。ＭＥＴＨＯＤ属性は、また、図２のところで述べたように、ＰＯＳＴとして設定することができる。
【００２７】
前述の抜粋セクションにはスペースも含まれ、そこには、販売品目を記述したテキスト、または販売品目に関係するイメージその他のマルチメディア・コンテンツ（ビデオ、オーディオなど）へのＨＴＭＬコード参照が、広告、法的事項の告知などのために置かれてもよい。
【００２８】
図１から図３では使用されていないが、チェックボックス・タイプの＜ＩＮＰＵＴ＞ＨＴＭＬタグもまた、ユーザ入力を受け付けるためのＧＵＩを作成するのに使用することができる。
【００２９】
もし暗号化に使用されるランダム・ストリング及び秘密ＩＤが、基本製品情報を与えるフィールド名値の対のセットと連結されないならば、それらを、別々にフォームに含めてもよい。たとえば、ＴＹＰＥ属性がＨＩＤＤＥＮに設定された＜ＩＮＰＵＴ＞タグの中に含めることができる。
【００３０】
図４を参照すると、Ｗｅｂページに含まれるバーチャル・バー・コードを作成するためのアルゴリズムのフロー・ダイアグラムが示されている。ブロック４０１では、製品記述情報が得られる。そのデータは、たとえば、データベースからインポートされるか、マーチャントがデータを入力した他のＷｅｂページ・フォームを処理するＣＧＩスクリプトにより集められるか、または、あとで説明するアルゴリズムを実行し、マーチャントからデータを集めるために使われるＧＵＩを含む特殊プログラムにより集められる。
【００３１】
ブロック４０６では、情報は、それぞれのフィールド名と値との間の等号、及び、フィールド名値の対を分離するアンパ−サンドのような、ＨＴＴＰ標準により指定された同じ区切り記号で連結されることが望ましい。ブロック４１１は、ブロック４０６での連結により作成されたＶＢＣメッセージ・ストリングを示している。ブロック４２１では、ＶＢＣメッセージを暗号化するために使われる秘密ストリングが、アルゴリズムに入力される。バイナリ・シーケンスが望ましいこの秘密ストリングはまた、ＶＢＣの最終受信者にとって既知である。たとえば、最終受信者は、ＣＧＩ  ＵＲＬで指定される宛先であり、そこには、この購入注文あるいは他のＷＷＷメッセージを伝送するためのＧＵＩデバイスをユーザが活動化した後にＶＢＣが送られる。
【００３２】
ブロック４２３では、たとえばバイナリの乱数のようなランダム・ストリングが入力される。このランダム・ストリングはまた、ＳＡＬＴとして知られている。ランダム・ストリングは、プログラミングの分野で公知のさまざまな乱数発生器または擬似乱数発生器により発生することができる。ステップ４２５では、秘密ストリングは、ランダム・ストリングと連結される。ブロック４２８では、キーを生成するセキュア・ハッシュ・アルゴリズムが、連結された秘密ストリング及びランダム・ストリングに対し適用される。セキュア・ハッシュ・アルゴリズムは、さまざまな長さの入力ストリングを受け入れ、固定長のストリングを出力するアルゴリズムであって、たとえば後述のようなメッセージ・ダイジェスト・アルゴリズムを使用できる。セキュア・ハッシュ・アルゴリズムの本質は、アルゴリズムが既知のときでさえ、セキュア・ハッシュ・アルゴリズム・ダイジェスト（ＳＨＡＤ）と呼ばれる出力ストリングからその入力ストリングを決定することが、きわめて困難なことである。ブロック４３１は、ブロック４２８によるＳＨＡＤ出力である。ブロック４３３では、ＳＨＡＤ４３１は、ＶＢＣメッセージ・ストリングの連続セグメントとの排他的論理和（ＸＯＲ）を順次に実行する暗号キーとして使用され、暗号化ＶＢＣストリング４３５を作成する。その暗号キーはＶＢＣメッセージ・ストリングよりも短く、従って暗号（暗号化メッセージ）を作成するために、キーは、複数回、ＶＢＣメッセージ・ストリングの連続セグメントとＸＯＲされなければならない。ＸＯＲオペレーションは、ビット・レベルで行われる。ブロック４３６では、秘密ＩＤが提供される。秘密ＩＤは、暗号キーを作成するために、ランダム・ストリングとともに使用される、ブロック４２１で提供される秘密ストリングと相互に関連する。その相関性は、暗号化ＶＢＣストリングの最終受信者（たとえば、ＷＷＷユーザがサブミット用ＧＵＩデバイスを活動化したことに応答してＶＢＣが送られる、ＵＲＬを管理するパーティ）により知られている。最終受信者は、秘密ＩＤとともにＶＢＣを受信すると、たとえば自身が所有するデータベースにある相関情報に基づいて、秘密ストリングを決定することができる。秘密ＩＤ、ランダム・ストリング、及び暗号化ＶＢＣストリングは、それから、ブロック４３７で連結される。ブロック４３８では、連結ストリングは、バーチャル・バー・コードを形成するために、たとえばＢａｓｅ６４エンコードにより、文字コード化される。Ｂａｓｅ６４エンコードは、作成された結果としての文字ストリングが、ＡＳＣＩＩ、ＥＢＣＤＩＣ、その他の、ＨＴＴＰメッセージを伝送する世界中のコンピュータにより使用される文字セットに共通の文字で構成されるという利点を持つ。ＶＢＣはセキュア・メッセージであり、たとえば、オンラインの買い物客のようなＷＷＷユーザと、ＷＷＷストア・キャッシュ・レジスタ・サーバのような最終受信者との間の通信のプライバシーを保護する。ブロック４４６では、ＶＢＣは、図１〜図３に例示したような、フォーマットされたＨＴＭＬソースコードに含まれる。図１〜図３に関連して説明したように、ＶＢＣは、さまざまな方法でＨＴＭＬコードに含めることができる。
【００３３】
ＨＴＭＬソース・コードは、ＷＷＷサーバにロードされ、ＷＷＷユーザはＷｅｂブラウザを使用して、そのクライアント・コンピュータにＨＴＭＬソース・コードを直接ダウンロードすることができる。ＨＴＭＬソース・コードは、それから、製品に関係するさまざまなマルチメディア情報を表示するために、クライアントＷｅｂブラウザで解釈される。この解釈により、一組の選択可能なオプションの値を設定するために、ユーザ入力を受け付けるためのＧＵＩデバイスを作成したり、購入ボタンのようなサブミット用ＧＵＩデバイスを作成したりすることも可能である。ユーザが購入ボタンをクリックすると、Ｗｅｂブラウザは、一つまたは複数の製品記述子、秘密ＩＤ、及びランダム・ストリングを含むＶＢＣを、選択されたオプションの名前及び値とともに、ＨＴＭＬソース・コードのターゲットＵＲＬで指定されたサーバへ伝送する。ＶＢＣ及びオプションの選択名値の対は、ターゲットＵＲＬで指定されたコンピュータで受け取られ、オプションの選択名値の対とＶＢＣを分離するために、解析される。それから、たとえば製品ＩＤ、値段などのような基本製品データを抽出するために、ＶＢＣをデコードし、暗号解読する必要がある。
【００３４】
図５を参照すると、受信したＶＢＣを処理するためのデコード及び暗号解読アルゴリズムがフロー・ダイアグラムの形式で示されている。ブロック５０１は、ＶＢＣ入力である。ブロック５０４では、ＶＢＣはデコードされ（たとえばＢａｓｅ６４デコード）、ブロック５０７では、その結果として得られたストリングは、暗号化ＶＢＣストリング５１０、ランダム・ストリング５１４、及び、秘密ＩＤ５１７を得るために、解析される。秘密ＩＤ５１７は、ＶＢＣを暗号化するために使われた秘密ストリング５２１を見つけるために、ステップ５１８において秘密ストリングのデータベースを検索するための、インデックスとして使われる。ブロック５２４では、秘密ストリング５２１が、ランダム・ストリング５１４と連結され、ブロック５２７では、同じキー生成用セキュア・ハッシュ・アルゴリズムが、ＳＨＡＤ（キー）５３０を再生するために使用される。そのキー５３０は、ブロック５３３で暗号化ＶＢＣストリング５１０の連続セグメントと順次にＸＯＲされ、（図４の４１１に対応する）ＶＢＣメッセージ・ストリング５３６を再生する。そのＶＢＣメッセージ・ストリングは、それから、名前値の対を分離するためにブロック５３９で解析され、その名前値の対は注文処理ブロック５４３に送られる。注文処理ブロックの詳細は、本発明とは関係はないが、たとえばユーザＷｅｂブラウザへのＳＳＬ接続を開始し、ユーザに対し購入品目のリストを提示し、たとえばクレジットカード情報のような、支払い用フォームを提示する、ＷＷＷベースのショッピング・カート・サーバ・アプリケーションでもよい。注文処理は、在庫及び出荷管理のようなバック・エンド・アプリケーションも含む。
【００３５】
図６を参照すると、署名され、暗号化され、エンコードされたＶＢＣを作成するためのアルゴリズムのフロー・ダイアグラムが示されている。製品記述子のフィールド名値の対は、ブロック６１０で提供される。ブロック６１４では、フィールド名値の対は、ＶＢＣメッセージ・データ・ストリング６１５を作成するために適当な区切り記号で連結される。秘密ストリングは、ブロック６３１で与えられる。秘密ストリングは、ブロック６１８でＶＢＣメッセージ・データと連結される。その結果としての連結ストリングは、ブロック６２１でシグニチャ・セキュア・ハッシュ・アルゴリズムへの入力として供給される。そのセキュア・ハッシュ・アルゴリズムは、シグニチャＳＨＡＤ６２４を作成する。そのシグニチャＳＨＡＤは、最終地でＶＢＣメッセージ・データを認証するために使われる。シグニチャＳＨＡＤは、それから、メッセージ・ストリング６２８を作成するために、ブロック６２７で、ＶＢＣメッセージ・データと連結する。
【００３６】
ランダム・ストリングは、ブロック６７０で提供される。秘密ストリング及びランダム・ストリングは、ブロック６３４で連結され、連結されたストリングは、キーＳＨＡＤ６４０を作成するため、ブロック６３７でセキュア・ハッシュ・アルゴリズムへの入力として供給される。
【００３７】
暗号キーとして使用される、キーＳＨＡＤ６４０は、暗号化メッセージ・ストリング６４９を作成するために、ブロック６４６で、メッセージ・ストリング６２８とＸＯＲされる。秘密ＩＤ６７３が供給され、ブロック６８０で、ランダムストリング６７０及び暗号化メッセージストリング６４９と連結される。その連結ストリングは、ブロック６８３で文字エンコード（望ましくはＢａｓｅ６４エンコード）され、その結果得られたＶＢＣ６８５は、前述のようにブロック６８７でＨＴＭＬ文書にフォーマットされる。
【００３８】
図７を参照すると、図６のアルゴリズムにより作成されたＶＢＣをデコード、暗号解読、及び認証するためのアルゴリズムが示されている。ブロック７１１では、選択されたオプション名値の対を含むことがある受信ＨＴＴＰメッセージの解析後に、ＶＢＣが受け取られる。ブロック７１４では、受け取られたＶＢＣは、その文字ストリングからバイナリ・ストリングを作成するためにデコードされ（たとえばｂａｓｅ６４デコード）、ブロック７１７では、そのバイナリ・ストリングは、暗号化ストリング７２１、ランダム・ストリング７２４、及び秘密ＩＤ７２７を分離するために解析される。秘密ＩＤは、対応する秘密ストリング７３３をアクセスするために、ブロック７３０で、データベースのインデックスとして使われる。秘密ストリング７３３は、ランダム・ストリング７２４とブロック７３６で連結される。その連結出力は、解読キーとして使われるＳＨＡＤ７４７（図６の６４０と同じ）を作成するために、ブロック７３９で、セキュア・ハッシュ・アルゴリズムに供給される。その解読キー７４７は、それから、メッセージ・ストリング７４８をもたらすために、ブロック７４５で暗号化されたストリングとＸＯＲされる。メッセージ・ストリング７４８は、それから、シグニチャＳＨＡＤ７５５（図６の６２４）とＶＢＣメッセージ・データ７５３を分離するために、ブロック７５１で解析される。ＶＢＣメッセージ・データ７５３は、それから、ブロック７５９で解析され、ブロック７６３の注文処理へ出力される。ＶＢＣメッセージ・データを認証し、クライアントからターゲットＵＲＬへの伝送中に改ざんされていないことを保証するために、セキュリティの目的で、以下のステップが実行される。ＶＢＣメッセージ・データ７５３は、ブロック７５７で秘密ストリング７３３と連結され、その連結ストリングが、シグニチャＳＨＡＤ７６５を再生するために、図６の６２１と同一のシグニチャ・セキュア・ハッシュ・アルゴリズム７６１に供給される。メッセージ・ストリング７４８から解析されたシグニチャＳＨＡＤ７５５は、シグニチャＳＨＡＤ７６５と、ブロック７６７で比較される。秘密ストリング７３３を知らずに、不法な第３者が、受信者のシグニチャ・セキュア・ハッシュ・アルゴリズム７６１により作成されるシグニチャＳＨＡＤ７６５と一致するシグニチャＳＨＡＤ７５５を複製することは、不可能である。
【００３９】
シグニチャＳＨＡＤ７５５及び７６５が一致しなければ、注文処理を終了させるために、メッセージが注文処理ブロック７６３へ送られる。
【００４０】
今のところ、ランダム・ストリング、秘密ストリング及びシグニチャＳＨＡＤは、２０バイト長のバイナリ・シーケンス、キーＳＨＡＤは１６バイトを想定している。しかし、これらのストリングの長さは、コンピュータの能力の増加により直面する暗号解読の攻撃に備えるため、将来増大することが予想される。
【００４１】
米国輸出規則及び多くの国々の法律では、ソフトウェア製品の暗号化に使用されるキー長に制限を設けている。本発明は、使用されるメッセージ・ダイジェスト・アルゴリズムの出力の長さより短い長さのキーを使用するように、ＶＢＣ暗号アルゴリズムを修正することにより、これらの制約に従っている。図４〜図７と関連して説明したセキュア・ハッシュ・アルゴリズムにより作成されるダイジェストの長さは、１６バイトすなわち、１２８ビットである。
【００４２】
図８は、短縮された長さの暗号キーを使用して、署名され、暗号化され、エンコードされたＶＢＣを作成するためのアルゴリズムのフローダイアグラムである。このアルゴリズムの多くの機能ブロック、及び機能ブロックの順序は図６と共通している。図６及図８の同じ目的をもつブロックは、下位２桁が共通する参照番号で示されている。それらのブロックについては、図６に関する前述の説明を参照されたい。
【００４３】
図８では、下位ビット暗号キーとして使用される、ＳＨＡＤ８９１のセグメントを抽出する、機能ブロックの新しいセットが示されている。ブロック８９１は、セキュア・ハッシュ・アルゴリズム８３７（図６の６３７）により作成されたＳＨＡＤである。ＳＨＡＤ８９１のセグメントを選択するために、ランダム・ストリング８７０が第１バイト抽出ブロック８９３に供給され、除数（たとえば１６バイトＳＨＡＤ８９１の場合では１６）がブロック８９０に供給される。ランダム・ストリングの第１バイト及び除数は、ランダム・ストリングの第１のバイトを除数で除した後の、剰余を抽出するモジュロ・ブロック８９２に供給される。剰余はゼロと１５の間の数であるが、ＳＨＡＤ８９１のバイト番号開始点８９４を示すインデックスとして用いられる。要求されるセキュリティのレベルに依存し、ＶＢＣが使用される国々の法律にもまた適合しなければならない、キー長は、ブロック８９６で供給される。キー長は、フランスでの法的要件を満たすためには、たとえば４０ビットでよい。キー長及び開始点は、開始点から始まり、開始点にキー長を加えた点で終わる、キー・セグメント８９９をＳＨＡＤ８９１から抽出する、セグメント抽出ブロック８９８へ入力される。もし開始点８９４とキー長８９６によって決まるセグメントがＳＨＡＤ８９１の終わりを超えていると、セグメント抽出ブロック８９８開始点からＳＨＡＤの終わりまでのビット・シーケンスを抽出し、ＳＨＡＤの始まりに戻って、残りのビットを抽出する。短縮された長さのキー８９９は、図６の完全なＳＨＡＤ６４０と同じ方法で使用される。すなわち、キー８９９は、ブロック８４６でメッセージ・ストリングとＸＯＲされる。
【００４４】
図９と図１０は、図８のフロー・ダイアグラムにより作成されたＶＢＣをデコードし、暗号解読するためのフロー・ダイアグラムを示している。このフロー・ダイアグラムの多くのブロック及び機能ブロック間の関係は、図７と共通している。同じ目的をもつ、図７及び図９の機能ブロックは、参照番号の下位２桁が共通している。それらのブロックについては、図７に関する前述の説明を参照されたい。
【００４５】
図９、図１０を参照すると、ランダム・ストリング９２４の第１バイトが、ブロック９９３で抽出される。暗号化アルゴリズムで使用されたものと同じ除数９９０が、供給される。抽出ブロック９９３からのランダム・ストリング９２４の第１バイト及び除数９９０は、セグメント抽出ブロック９９８へ剰余を供給する、モジュロ・ブロック９９２に入力される。ゼロと１５の間の数である剰余は、開始点を与える。キー長９９６もまた、暗号化に使用されたのと同じであるが（たとえば４０ビット）、セグメント抽出ブロック９９８へ供給される。セグメント抽出ブロック９９８は、１２８ビット（１６バイト）ＳＨＡＤ９９１も受け取り、剰余により示されたバイトで開始し、キー長の入力９９６により与えられるビット長を持つ、キー９９９を出力する。セグメント抽出がＳＨＡＤの終わりを超える場合には、図８に関して説明したような処理が行われる。キー９９９は、ＸＯＲオペレーションにより暗号化ストリングを解読するために使用される。図１０を含む残りの部分については、図７の説明を参照されたい。
【００４６】
図１１を参照すると、本発明の実施例による全てのプロセス・フローが示されている。ブロック１００１では、暗号化されエンコードされたデータが作成される。オンライン・ショッピング・アプリケーションの場合には、暗号化され、エンコードされたデータは、ＶＢＣであってもよい。ＶＢＣ作成は、図４、図６、図８に関連して記述されたアルゴリズムを使用してもよく、その出力は、文字エンコード（表示可能な）ストリングである。ブロック１００５では、暗号化され、エンコードされたデータは、たとえば図１〜図３に示されるようなＷｅｂページにフォーマットされる。Ｗｅｂページはまた、たとえば図２及び図３にそれぞれ示されるラジオ・ボタン、及び選択リストのような、ユーザ入力受け付け用及び処理依頼（サブミット）受け付け用ＧＵＩといった、Ｗｅｂページ・デバイスを作成するためのコードを含む。ブロック１０１０では、Ｗｅｂページは、第１のサーバにロードされる。本発明のオンライン・ショッピング・アプリケーションの場合には、第１のサーバは、たとえばストア・フロント・サーバである。ブロック１０１５では、Ｗｅｂページは、ＷＷＷクライアントへ送られる。ＷＷＷクライアントは、インターネットに接続したクライアント・コンピュータで作動するＷｅｂブラウザの形式であり、Ｗｅｂページは、クライアント・コンピュータを操作しているユーザによるＷｅｂナビゲーション入力（たとえばページへのリンクのクリック）に応答して送られてもよい。ブロック１０２０では、ＷｅｂページはたとえばＷｅｂブラウザのようなＷＷＷクライアントにより、解釈される。ＧＵＩデバイスは、ユーザ入力を受け取り、サブミッション指令を受け取るために、Ｗｅｂページ・コードに基づいて作成される。ブロック１０２５では、ブロック１０２０で作成されたデバイスに基づいて、ユーザ入力がクライアント・コンピュータにより受け付けられる。ブロック１０３０では、ユーザの処理依頼が、受け付けられる（たとえばユーザがサブミット・ボタンをクリックするような場合である）。処理依頼に応答して、ブロック１００１で作成された、暗号化エンコード・データ、及び、ブロック１０２５におけるユーザ入力に基づくデータが、ブロック１０３５でサーバに送られ、ブロック１０４０で受け取られる。ブロック１０４０でデータを受け取るサーバは、ブロック１０１０でＷｅｂページがロードされたサーバと同じでもよく、あるいは、違うサーバでもよい。オンライン・ショッピング・アプリケーションの場合には、この２つのサーバは、異なることが望ましい。そうすれば、ＷＷＷストア・フロントが、ステップ１０１０でサーバにＷｅｂページをロードする、一つのインターネット・サービス・プロバイダ（ＩＳＰ）によりホストされ、そのサービスがストア所有者にとって都合がよく、購入トランザクション処理が、ブロック１０４０でデータを受け取り、且つ購入トランザクションを処理する専用の金融／ビジネス・サービス・プロバイダにより取り扱われるような、コンピュータ／ビジネス環境が可能になる。ステップ１０５０では、受け取られたデータは、暗号化エンコード・データ１０６０、及びユーザ入力データ１０５５を分離するために、解析される。図２に関して説明したようなＨＴＭＬＷｅｂページの場合には、もし暗号化エンコード・データが、＜ＦＯＲＭ＞タグのＡＣＴＩＯＮ属性で指定されるＵＲＬに付加する形で含まれ、且つＰＯＳＴ ＭＥＨＯＤが使用されるなら、暗号化エンコード・データは、ユーザ入力データとは別の変数でＨＴＴＰにより伝送されるので、それらを解析によって分離する必要はない。ブロック１０６５では、暗号化エンコード・データは、解読される。その解読は、図５、図７、図９、図１０と関連して議論されたアルゴリズムに従ってもよい。ブロック１０７０では、解読されたデータ及びユーザ入力データは、注文処理のために、受け取られる。
【００４７】
図１２を参照すると、本発明の実施例によるコンピュータ・ネットワーク１１０１が示される。ネットワークは、たとえば、インターネット、イントラネットのようなものであってもよい。オーサリング・コンピュータ１１０３は、ネットワークに接続し、図４、図６、図８に示されるフロー・ダイアグラムによるオンライン・ショッピングＶＢＣのケースのような、一つまたは複数のデータ項目を暗号化及びエンコードするためのアルゴリズムを実行する。オーサリング・コンピュータ１１０３は、たとえばディジタル加入者線（ＤＳＬ）、モデム接続、イーサネットなどのような、通信リンク１１０５を介して、ネットワークに接続されてもよい。オーサリング・コンピュータは、ＢＩＯＳ ＲＯＭ、 ＲＡＭ、ハードディスク、キーボード、マウス、ディスプレイ・スクリーン、及び、着脱可能なメディア・ドライブから構成される、標準的なパーソナル・コンピュータの形式をとってもよい。着脱可能なメディア・ドライブは、オーサリング・コンピュータに、暗号化及びエンコードのアルゴリズムを含むオーサリング・ソフトウェアをそのメモリ媒体からロードするために、使用されてもよい。着脱可能な媒体は、光ディスク（たとえばＣＤＲＯＭ）、磁気ディスク（たとえば３．５インチ／１．４４メガディスク）などでもよい。オーサリング・ソフトウェアは、ユーザが、ＶＢＣ構築のために基本製品情報を入力する対話式入力を持っていてもよく、あるいは、その情報は、オーサリング・コンピュータ１１０３のデータベースから、あるいは、ネットワークを通ってアクセスされる他のコンピュータのデータベースから、ユーザの入力に基づいて、取り出されてもよい。実際ユーザは、たとえばマーチャントのＷＷＷクライアント・コンピュータ１１０７のように、ネットワークを経由して、離れた位置から、オーサリング・コンピュータ１１０３を使用してもよく、その場合には、オーサリング・ソフトウェアは、オーサリング・コンピュータで作動するＣＧＩと通信する（たとえばＷｅｂブラウザのような）ＷＷＷベース・インターフェースを介して操作される。マーチャントのＷＷＷクライアント・コンピュータ１１０７はまた、ネットワークへのリンク１１０８を持つ、上述したようなパーソナル・コンピュータの形式をとってもよい。オーサリング・ソフトウェアは、ユーザ・フレンドリなＷｅｂページ作成アプリケーションに組み込まれてもよく、あるいは、暗号化され、エンコードされたＶＢＣをウィンドウに表示して、それをユーザが、Ｗｅｂページ・コードを作成するテキスト・エディタまたは、他のアプリケーションにペーストするような、スタンド・アローンのユーティリティであってもよい。Ｗｅｂページ作成機能をマーチャントＷＷＷクライアントで遂行し、ＶＢＣの作成は、マーチャントＷＷＷクライアントからアクセスされる、オーサリング・コンピュータのサーバ側アプリケーションで実行する、といった機能分割も可能である。その場合、マーチャントは、Ｗｅｂページに含めるために、オーサリング・コンピュータ１１０３からＶＢＣをダウンロードすることができる。２つのコンピュータは、ＶＢＣ作成に使用するためにオーサリング・コンピュータ１１０３へ送られる、基本���品データのプライバシーを保護するため、たとえばＳＳＬのような暗号を使って、通信をすることができる。
【００４８】
マーチャントのＷｅｂページが完成すると、それは、ストア・フロント・サーバ・コンピュータ１１０９へネットワークを介して、アップロードされる。ストア・フロント・サーバ・コンピュータ１１０９は、多量のＷＷＷトラフィックを取り扱うためにＴ１ライン接続のような高速ネットワーク接続を持ち、マーチャントにとって都合のよい、ＩＳＰによって操作されるコンピュータであってもよい。ストア・フロント・サーバは、たとえばＵＮＩＸオペレーティング・システムを実行する高性能コンピュータであり、多量のネットワークトラフィックを効率よく取り扱うことができる。
【００４９】
オンライン・ショッパーは、たとえばモデム、ケーブル・モデム、またはＤＳＬのような通信リンク１１２５によりネットワークに接続されるショッパーＷＷＷクライアント・コンピュータ１１２０を使用する。オンライン・ショッパーＷＷＷクライアント・コンピュータ１１２０には、望ましくはＷｅｂブラウザのようなネットワーク通信ソフトウェアがロードされる。Ｗｅｂブラウザは、マーチャントＷｅｂページへナビゲートするために使用される。すなわち、ショッパーがリンクをクリックすると、中にＶＢＣが組み込まれているマーチャントのＷｅｂページ・コードがショッパーＷＷＷクライアント・コンピュータ１１２０へ伝送され、Ｗｅｂブラウザにより解釈される。解釈されたＷｅｂページ・コードは、一つまたは複数の製品の情報を表示し、オプションで、ユーザの選択を受け付けるためのＧＵＩデバイスを表示するように、ショッパーＷＷＷクライアント・コンピュータを構成する。Ｗｅｂページ・コードは、ネットワーク上の宛先アドレス（たとえばＵＲＬ）を参照するＧＵＩデバイスを作成するためのコードを含む。ＧＵＩデバイスは、ユーザにより活動化されると、ＶＢＣ及びユーザ選択データを宛先に伝送する。コードは、ＨＲＥＦ属性で指定されるＵＲＬにＶＢＣが付加されている＜Ａ＞ＨＴＭＬタグを含んでもよく（図１）、または、＜ＦＯＲＭ＞タグのＡＣＴＩＯＮ属性で指定されるＵＲＬにＶＢＣが付加されるか(図２）、もしくはＨＩＤＤＥＮタイプの＜ＩＮＰＵＴ＞タグにＶＢＣが含まれる（図３）ようなＨＴＭＬフォームを構成してもよい。
【００５０】
指定された宛先（ＵＲＬ）は、ストア・フロント・サーバ１１０９とは別のキャッシュ・レジスタ・サーバ・コンピュータ１１３０であることが望ましく、そうすると、キャッシュ・レジスタ・サーバ・コンピュータ１１３０は、注文処理のような、ビジネス／金融サービスを提供するために使用される、専用のコンピュータとなることができる。キャッシュ・レジスタ・サーバ・コンピュータ１１３０には、ＶＢＣのような、暗号化エンコード・データを、デコード及び暗号解読することができるプログラムがロードされる。そのプログラムは、たとえば、図５、図７、図９、図１０を参照して説明した、アルゴリズムを含んでもよい。キャッシュ・レジスタ・サーバは、ショッパーＷＷＷクライアント・コンピュータ１１２０から伝送された情報を受け取り、その情報を解析し、ＶＢＣをデコード及び暗号解読する。キャッシュ・レジスタ・サーバは、また、たとえば、支払い請求、出荷のような、さらなる注文処理機能を取り扱ってもよいが、それは、本発明の範囲外である。
【００５１】
図１２のシステムは、ハードウェアとソフトウェアの組み合わせにより実装することができる。さらに、本発明を使用するために必要な機能は、コンピュータ可読媒体、たとえば、情報処理装置（たとえばパーソナル・コンピュータ）をプログラミングするのに使用される３．５インチ・ディスケットにプログラムの形で記録しておくことができる。本明細書でコンピュータ・プログラムとは、情報処理能力を持つシステムに特定の機能を直接、または別の言語、コード、もしくは表記法への変換後、もしくは、異なった物理フォームでの複製後に、実行させる一組の命令を，任意の言語、コードもしくは表記法で表現したものである。
【００５２】
オンライン・ショッピングへの、本発明の適用例を、図を参照して説明してきたが、、本発明は、それに限定されるものではなく、さまざまな変更が可能である。Ｗｅｂページは、販売可能品目に関連するページである必要はなく、暗号化エンコード・データは、製品に関する情報である必要はない。
【図面の簡単な説明】
【図１】暗号化製品情報が＜Ａ＞タグに組み込まれているＨＴＭＬコード・フラグメントである。
【図２】＜ＦＯＲＭ＞タグに組み込まれた暗号化製品情報と、ラジオ・ボタンの形式の、ユーザが選択可能な入力を作成するコードとを含むＨＴＭＬコード・フラグメントである。
【図３】ＨＩＤＤＥＮタイプの＜ＩＮＰＵＴ＞に組み込まれた暗号化製品情報と、選択リストの形式の、ユーザが選択可能な入力を作成するコードとを含むＨＴＭＬコード・フラグメントである。
【図４】バーチャル・バー・コードを作成するためのアルゴリズムのフロー・ダイアグラムである。
【図５】バーチャル・バー・コードをデコード及び暗号解読するためのアルゴリズムのフロー・ダイアグラムである。
【図６】署名され、暗号化され、エンコードされたＶＢＣを作成するためのアルゴリズムのフロー・ダイアグラムである。
【図７】ＶＢＣをデコード、暗号解読、及び認証するための、アルゴリズムのフロー・ダイアグラムである。
【図８】短ビット長の暗号キーを使って署名済み暗号化ＶＢＣを作成するためのアルゴリズムのフロー・ダイアグラムである。
【図９】図８のアルゴリズムを使って作成されるＶＢＣを，デコード、暗号解読、及び認証するためのアルゴリズムの前半のフロー・ダイアグラムである。
【図１０】図８のアルゴリズムを使って作成されるＶＢＣをデコード、暗号解読、及び認証するためのアルゴリズムの後半のフロー・ダイアグラムである。
【図１１】本発明の実施例を示す高レベルのフロー・ダイアグラムである。
【図１２】本発明の実施例によるネットワークの概略図である。
【図１】
0004098965.tif 000002
【図２】
0004098965.tif 000003
【図３】
0004098965.tif 000004
【図４】
0004098965.tif 000005
【図５】
0004098965.tif 000006
【図６】
0004098965.tif 000007
【図７】
0004098965.tif 000008
【図８】
0004098965.tif 000009
【図９】
0004098965.tif 000010
【図１０】
0004098965.tif 000011
【図１１】
0004098965.tif 000012
【図１２】
0004098965.tif 000013