(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-17
(45)【発行日】2024-05-27
(54)【発明の名称】情報処理装置、制御方法、およびプログラム
(51)【国際特許分類】
H04N 1/00 20060101AFI20240520BHJP
G03G 21/00 20060101ALI20240520BHJP
H04L 9/32 20060101ALI20240520BHJP
【FI】
H04N1/00 838
H04N1/00 127A
G03G21/00 386
G03G21/00 388
G03G21/00 396
H04L9/32 200Z
(21)【出願番号】P 2020005256
(22)【出願日】2020-01-16
【審査請求日】2023-01-05
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】荒川 純也
【審査官】橘 高志
(56)【参考文献】
【文献】特開2019-053427(JP,A)
【文献】国際公開第2018/225428(WO,A1)
【文献】特開2019-121946(JP,A)
【文献】特開2020-155891(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
G03G 21/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置であって、
元文書に対して編集処理を行うことで新たな文書を生成する編集手段と、
生成された前記文書を前記管理サービスに送信する送信手段と、
前記元文書が編集されたことを示す情報を前記ブロックチェーンサービスに登録する連携手段と、を有し、
前記編集手段が前記ブロックチェーンサービスに信頼されたサービスであることを確認したうえで、前記元文書が編集されたことを示す情報が前記ブロックチェーンサービスに登録されることを特徴とする情報処理装置。
【請求項2】
前記元文書は、前記情報処理装置が備えるスキャン手段により原稿をスキャンすることで生成された文書であることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記元文書の編集の指示を受け付ける編集画面であって、前記ブロックチェーンサービスを利用するための指示を受け付ける前記編集画面を提供する提供手段を有する請求項1または2に記載の情報処理装置。
【請求項4】
前記情報処理装置を操作するユーザが生成された前記文書を前記ブロックチェーンサービスに登録する権限を有している場合に、前記編集画面が提供されることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記情報処理装置を操作するユーザが生成された前記文書を前記ブロックチェーンサービスに登録する権限を有していない場合、前記ブロックチェーンサービスを利用するための指示を受け付けない前記編集画面が提供されることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記編集手段は、前記元文書のハッシュ値を算出し、算出したハッシュ値が前記ブロックチェーンサービスに登録されているかを確認することで前記元文書が改ざんされていないことを確認したうえで、前記元文書が編集されたことを示す情報を生成することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置の制御方法であって、
元文書に対して編集処理を行うことで新たな文書を生成する編集ステップと、
生成された前記文書を前記管理サービスに送信する送信ステップと、
前記元文書が編集されたことを示す情報を前記ブロックチェーンサービスに登録する連携ステップと、を含み、
前記編集ステップが前記ブロックチェーンサービスに信頼されたサービスであることを確認したうえで、前記元文書が編集されたことを示す情報が前記ブロックチェーンサービスに登録されることを特徴とする制御方法。
【請求項8】
前記元文書は、前記情報処理装置が備えるスキャン手段により原稿をスキャンすることで生成された文書であることを特徴とする請求項7に記載の制御方法。
【請求項9】
前記元文書の編集の指示を受け付ける編集画面であって、前記ブロックチェーンサービスを利用するための指示を受け付ける前記編集画面を提供する提供ステップを含む請求項6または7に記載の制御方法。
【請求項10】
前記情報処理装置を操作するユーザが生成された前記文書を前記ブロックチェーンサービスに登録する権限を有している場合に、前記編集画面が提供されることを特徴とする請求項9に記載の制御方法。
【請求項11】
前記情報処理装置を操作するユーザが生成された前記文書を前記ブロックチェーンサービスに登録する権限を有していない場合、前記ブロックチェーンサービスを利用するための指示を受け付けない前記編集画面が提供されることを特徴とする請求項10に記載の制御方法。
【請求項12】
前記編集ステップは、前記元文書のハッシュ値を算出し、算出したハッシュ値が前記ブロックチェーンサービスに登録されているかを確認することで前記元文書が改ざんされていないことを確認したうえで、前記元文書が編集されたことを示す情報を生成することを特徴とする請求項7に記載の制御方法。
【請求項13】
ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置で実行されるプログラムであって、
元文書に対して編集処理を行うことで新たな文書を生成させる編集ステップと、
生成された前記文書を前記管理サービスに送信させる送信ステップと、
前記元文書が編集されたことを示す情報を前記ブロックチェーンサービスに登録させる連携ステップと、を含み、
前記編集ステップが前記ブロックチェーンサービスに信頼されたサービスであることを確認したうえで、前記元文書が編集されたことを示す情報が前記ブロックチェーンサービスに登録されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンサービスと連携する情報処理装置、制御方法、およびプログラムに関する。
【背景技術】
【0002】
公文書や経営文書など、国や企業などではそれぞれにとって重要な文書を保持しているが、その重要な文書に対しての改ざんが問題になっており、文書を改ざんできない、もしくは改ざんを検知できる仕組みが必要となっている。そのため、文書ファイルを電子化して格納し、格納された文書ファイルに対する操作(誰がいつどのような操作をしたか)を記録する機能を有するファイルサーバなどを含む文書管理装置を用いることが一般的に知られている。
【0003】
また、格納した文書ファイルが正しい状態であることを検証できるように文書管理装置への格納することに合わせて、文書ファイルの情報をブロックチェーンに登録しておくことも一般的に知られている。文書ファイルとその文書ファイルを表す情報の管理を分けておくことで、文書ファイルの正しい状態を管理することが可能となる。さらに、文書ファイルが編集された場合には、その編集後の文書ファイルについても、ブロックチェーンに登録済みの元文書との関連性情報とともにブロックチェーンに登録しておく技術(特許文献1を参照)も存在する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、このように厳密な文書ファイルの管理を行う場合、編集後の文書ファイルが、本当に登録済みの元文書ファイルが編集されたものであることを保証しなければならない。特許文献1においては、編集前後の文書ファイルのハッシュ値をブロックチェーンに登録することにより、文書の関係性をブロックチェーンでたどることは可能であるが、編集の過程で不正な編集が行われていないことは保証できない。
【0006】
本願発明は、ブロックチェーンに文書情報が登録済みの文書に対する編集処理を信頼できる編集モジュールによって行うことを目的とする。
【課題を解決するための手段】
【0007】
本発明の一実施形態に係る情報処理装置は、ネットワークを介して文書を受信し格納する管理サービスと、前記文書に関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義したうえで複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置であって、元文書に対して編集処理を行うことで新たな文書を生成する編集手段と、生成された前記文書を前記管理サービスに送信する送信手段と、前記元文書が編集されたことを示す情報を前記ブロックチェーンサービスに登録する連携手段と、を有し、前記編集手段が前記ブロックチェーンサービスに信頼されたサービスであることを確認したうえで、前記元文書が編集されたことを示す情報が前記ブロックチェーンサービスに登録されることを特徴とする。
【発明の効果】
【0008】
本発明により、ブロックチェーンに文書情報が登録済みの文書に対する編集処理を信頼できる編集モジュールによって行うことができる。
【図面の簡単な説明】
【0009】
【
図2】画像形成装置のハードウェア構成を示す図である。
【
図3】PCおよび文書管理装置のハードウェア構成を示す図である。
【
図4】画像形成装置のソフトウェア構成を示す図である。
【
図5】文書管理装置のソフトウェア構成を示す図である。
【
図6】ブロックチェーン装置のデータ構成を示す図である。
【
図10】アプリケーションAの文書登録画面の画面例である。
【
図11】アプリケーションAの登録文書の保存/印刷画面の画面例である。
【
図12】アプリケーションAの登録文書の検証画面の画面例である。
【
図13】文書の情報をブロックチェーン装置に登録する処理を示すフローチャート。
【
図14】電子文書を文書管理装置から取得し保存する処理を示すフローチャート。
【
図15】電子文書を画像形成装置で印刷する処理を示すフローチャート。
【
図16】電子文書を検証する処理を示すフローチャート。
【
図17】ブロックチェーン装置へのトランザクション処理を示すフローチャート。
【
図18】アプリケーションAの文書編集機能の文書選択画面の画面例である。
【
図19】アプリケーションAの文書編集機能の編集内容選択画面の画面例である。
【
図20】アプリケーションAの文書編集機能のマスク処理画面の画面例である。
【
図21】アプリケーションAの文書編集機能のコメント付加処理画面の画面例である。
【
図22】アプリケーションAの文書編集機能のページ挿入処理画面の画面例である。
【
図23】アプリケーションAの文書編集機能のページ削除処理画面の画面例である。
【
図24】アプリケーションAの文書編集機能のプレビュー画面の画面例である。
【
図25】電子文書を編集する処理の全体を示すフローチャート。
【
図26】電子文書を編集する処理のメイン処理部分の詳細を示すフローチャート。
【
図27】電子文書を編集する処理の編集を実行する処理を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、画像形成装置101と関連するシステムの全体図である。画像形成装置101、PC102、文書管理装置103がLAN100に接続されイントラネット内に存在し、インターネット110を介して、ブロックチェーン装置111と通信を行う。PC102はウェブブラウザを利用した画像形成装置101の管理やプリントドライバを利用した画像形成装置101からの印刷に利用される。
【0011】
ブロックチェーン装置111は画像形成装置101やPC102で生成された電子文書を一意に表す値をブロック単位でまとめて管理することで文書の正当性を保障するために利用されるブロックチェーンサービスである。文書管理装置103は情報処理装置である画像形成装置101やPC102で生成された電子文書を保存する文書管理サービスである。
【0012】
画像形成装置101は、ブロックチェーン装置111および文書管理装置103のサービスと連携することで、生成および/または編集した文書を格納したうえで、その文書が改ざんされていないことを担保できるソリューションを提供する。なお、ブロックチェーン装置111および文書管理装置103は1台で図示しているが複数台の装置で構成されたサービスを想定している。なお、文書管理装置103は1台の装置であってもよい。
【0013】
図2は、画像形成装置101のハードウェア構成を示すブロック図である。CPU201を含む制御部200は、画像形成装置101全体の動作を制御する。CPU201は、ROM202に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御を行う。RAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD204は、画像データや各種プログラム、あるいは後述する各種データを記憶する。操作部I/F205は、操作部209と制御部200とを接続する。
【0014】
プリンタI/F206は、プリンタ210と制御部200とを接続する。プリンタ210で印刷すべき画像データはプリンタI/F206を介して制御部200から転送され、プリンタ210において記録媒体上に印刷される。スキャナI/F207は、スキャナ211と制御部200とを接続する。スキャナ211は、原稿上の画像を読み取って画像データを生成し、スキャナI/F207を介して制御部200に入力する。ネットワークI/F208は、制御部200(画像形成装置101)をLAN100に接続する。ネットワークI/F208は、LAN100上の外部装置に画像データや情報を送信したり、LAN100上の外部装置から各種情報を受信したりする。
【0015】
図3は、PC102、および文書管理装置103のコンピューターのハードウェア構成を表すブロック図である。CPU302は装置全体の制御を行う。CPU302はHDD305に格納されているアプリケーションプログラムやOS等を実行し、RAM303にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM304は記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM303は一時記憶手段であり、CPU302の主メモリ、ワークエリア等として機能する。HDD305は外部記憶手段の一つであり、大容量メモリとして機能し、オフィスアプリケーションやWebブラウザー等のアプリケーションプログラム、OS、関連プログラム等を格納している。
【0016】
ディスプレイ306は表示手段であり、指示入力手段であるキーボード/マウス307から入力したコマンド等を表示したりするものである。インターフェース308は外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。システムバス301は、装置内におけるデータの流れを司るものである。ネットワークインターフェースカード(以降NIC)309は、LAN100を介して外部装置とのデータのやり取りを行う。なお、上記コンピューターの構成はその一例であり、
図3の構成例に限定されるものではない。
【0017】
例えば、データやプログラムの格納先は、その特徴に応じてROM304、RAM303、HDD305などで変更することも可能である。本実施例中で特に明記しない場合は、各種処理はROM304等に記憶されているプログラムをRAM303等にロードし、CPU302で実行することによって実現されるものとする。
【0018】
図4は、画像形成装置101において本発明に関連するソフトウェア構成について示したブロック図である。特に断りのない限り、各処理部はROM202に記憶された制御プログラムをCPU302が実行することで実現される機能である。
【0019】
ローカルUI制御部400は、操作部I/F205を介して操作部209を制御する機能を提供する。ローカルUI制御部400はユーザが操作部209で操作した内容をユーザ認証処理部402やアプリケーションに通知する。ローカルUI制御部400は機能選択画面900を操作部209に表示する。機能選択画面900の例を
図9(A)に示す。ローカルUI制御部400はユーザ認証処理部402やアプリケーションからの画面表示依頼を受けて、操作部209へ画面を表示するための制御を行う。特に断りのない限り、ユーザ認証処理部402とアプリケーションA404はローカルUI制御部400を介して操作部209に画面を表示する。
【0020】
リモートUI制御部401は、ネットワークI/F208を介してPC102上のウェブブラザに対してウェブページを提供する。リモートUI制御部401はユーザがウェブブラウザで操作した内容をユーザ認証処理部402やアプリケーションに通知する。リモートUI制御部401は機能選択画面910をPC102上のウェブブラザに表示する。機能選択画面910の例を
図9(B)に示す。リモートUI制御部401はユーザ認証処理部402やアプリケーションからの依頼を受けて、ウェブブラウザに対してウェブページを表示するための制御を行う。特に断りのない限り、ユーザ認証処理部402、アプリケーションA404、アプリケーションB405はリモートUI制御部401を介してウェブブラウザに対してウェブページを表示する。
【0021】
ユーザ認証処理部402は、画像形成装置101を利用するユーザを認証するための機能を提供する。そのため、ユーザ認証処理部402は認証画面700(画面例を
図7に示す)を操作部209に表示する。ユーザ認証処理部402は認証画面700を介して、ユーザからユーザ名とパスワードの入力を受信し、ユーザ情報DB403内に保持しているユーザ情報と比較することでユーザ認証を行う。
【0022】
ユーザ情報DB403は、画像形成装置101を利用するユーザに関する情報であるユーザ情報を保持する機能を提供する。ユーザ情報DB403は、HDD204内に構築され、格納される情報はHDD204に記憶される。ユーザ情報DB403に格納している情報の例を表1と表2に示す。
【0023】
【0024】
表1のユーザ情報テーブルは、「ユーザ名」と「パスワード」、「ロール」から構成される。「ユーザ名」はユーザを一意に識別するための名称である。「パスワード」はユーザ認証で利用するパスワードであり、ユーザ毎に任意の値を設定することができる。「ロール」は画像形成装置101のユーザに付与する権限であるロールの名称であり、本実施例ではAdministrator、General User、Guest Userの3つが存在する。Administratorは画像形成装置101の管理者ユーザに割り当てるロールであり、General Userは画像形成装置101を利用する一般的なユーザに割り当てるロールである。Guest Userは利用できる機能を制限したいユーザに割り当てるロールである。ログインしたユーザの「ロール」の値に従って、ロールごとに機能制限を行うことができる。
【0025】
【0026】
表2のロール情報テーブルは、「ロール」と「コピー」、「送信」、「保存」、「BC登録」、「BC保存/印刷」、「BC検証」、「文書編集-BC登録あり」、「文書編集-BC登録なし」から構成される。「ロール」はユーザに付与する権限であるロールの名称である。「コピー」、「送信」、「保存」、「BC登録」、「BC保存/印刷」、「BC検証」、「文書編集-BC登録あり」、「文書編集-BC登録なし」は画像形成装置101が有するそれぞれの機能を表す。表の値はそれぞれのロールに対してその機能の利用が許可されているか、禁止されているかを表す。
【0027】
「コピー」、「送信」、「保存」はコピー機能、スキャンした文書をPC102に送信する機能、スキャンした電子文書をHDD204に保存する機能に対する権限を表している。「BC登録」は文書の情報をブロックチェーン装置111に登録する機能に対する権限を表している。「BC保存/印刷」はブロックチェーン装置111に登録されている文書情報に紐付いている文書管理装置103に保存されている文書を画像形成装置101に保存したり、印刷したりする機能に対する権限を表している。「BC検証」はブロックチェーン装置111に登録されている文書情報を基にして正式な文書か否かを検証する機能に対する権限を表している。
【0028】
「文書編集-BC登録あり」と「文書編集-BC登録なし」は、ブロックチェーン装置111に登録されている文書情報に紐付いている文書管理装置103にて保存されている文書を画像形成装置101において編集する部分までは共通の機能の権限を表している。「文書編集-BC登録あり」の場合は、編集後の文書の文書情報をブロックチェーン装置111に登録することが可能な権限を表しているが、「文書編集-BC登録なし」の場合は登録することが出来ないことを表している。画像形成装置101のアプリケーションはログインしているユーザのロールに該当するロール情報テーブルのロールの権限に従って、それぞれの機能の制限を行う。
【0029】
アプリケーションA404は、スキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書の情報を、文書管理装置103に文書を登録する等の機能を提供する。アプリケーションA404はスキャナI/F207を介してスキャナ211を制御したり、ネットワークI/F208を介してLAN100へデータを送信したりすることで、外部装置へスキャンデータの送信を行う。
【0030】
アプリケーションA404はローカルUI制御部400を介して操作部209に表示された画面への入力を受け付け、それに応じて処理を行う。アプリケーションA404は登録画面1000、登録文書の保存/印刷画面1100、文書検証画面1200、編集画面1800を操作部209に表示する。登録画面1000の例を
図10(A)に、登録文書の保存/印刷画面1100の例を
図11(A)に、文書検証画面1200の例を
図12(A)、編集画面1800の例を
図18(A)に示す。また、アプリケーションA404はリモートUI制御部401を介してPC102上のウェブブラザからの入力を受け付け、それに応じて処理を行う。アプリケーションA404は登録画面1020、登録文書の保存/印刷画面1110、検証画面1210、編集画面1810をPC102上のウェブブラザに表示する。登録画面1020の例を
図10(C)に、登録文書の保存/印刷画面1110の例を
図11(B)に、検証画面1210の例を
図12(B)に、編集画面1810の例を
図18(B)に示す。
【0031】
アプリケーションB405は、アプリケーションA404と同様にスキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書情報を、文書管理装置103に文書を登録する等の機能を提供する。アプリケーションA404はローカルUI制御部400とリモートUI制御部401を介してローカルUIとリモートUIの両方からの入出力に対応するが、アプリケーションB405はリモートUIからだけの入出力に対応する点が異なる。
【0032】
編集モジュール411は、アプリケーション、アプリケーションA404やアプリケーションB405からの指示を受けて、文書を編集する機能を提供する。編集モジュール411は、ブロックチェーンアプリケーション406を介した文書の検証処理と、ユーザの指示にもとづく編集処理と、編集情報の生成を行う。編集情報は編集モジュール411による署名が行われており、編集モジュール411は編集情報の記載内容の保証も行う。編集情報には、編前後の文書の情報、編集処理の概要等が記載されており、記載されている編集処理が編集モジュール411により実行されたことを保証する。編集情報の具体例は、後述する文書編集情報608である。なお、編集モジュールはブロックチェーンサービスから信頼されたモジュールであることが実施例1の前提である。
【0033】
ブロックチェーンアプリケーション406は、アプリケーションA404やアプリケーションB405からの指示を受けて、ブロックチェーン装置111を利用して文書の情報を登録、取得、検証する機能を提供する。また、編集モジュール411からの指示を受けて、ブロックチェーン装置111を利用して文書の情報を検証する機能を提供する。ブロックチェーンアプリケーション406がブロックチェーン装置111に登録するトランザクション601とブロックのデータ構造の例を
図6に示す。
【0034】
ブロックチェーンアプリケーション406は、アプリーションからブロックチェーン装置111に対する指示を受けた際にクレデンシャル情報管理部410からクレデンシャル情報も受け取る。ブロックチェーンアプリケーション406は、受け取ったクレデンシャル情報の検証を行って、検証が成功した場合だけ、ブロックチェーン装置111に対して処理を実行する。
【0035】
クレデンシャル情報A408は、アプリケーションA404がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。クレデンシャル情報A408は正しい処理を行っていることが検証されたアプリケーションに対して発行され、アプリケーションはクレデンシャル情報が組み込まれた状態で画像形成装置101に搭載される。
【0036】
クレデンシャル情報A408の実体はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよい。クレデンシャル情報A408の中身はアプリケーションごとに異なるものでもよい。また、アプリケーションにデフォルトの証明書を組み込んでおき、画像形成装置101にインストールされた後にブロックチェーン装置111と通信しその証明書を基にクレデンシャル情報A408が発行されアプリケーションA404に組み込まれる形態でも良い。
【0037】
クレデンシャル情報B409は、アプリケーションB405がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。その保持方法はクレデンシャル情報A408と同様である。
【0038】
クレデンシャル情報C407は、画像形成装置101がブロックチェーン装置111を利用する正規の装置であることを保証するためのクレデンシャル情報である。クレデンシャル情報C407は例えば本システムを運営する団体が装置のメーカーごとに発行してもよい。
【0039】
クレデンシャル情報C407は画像形成装置101のファームウェア内に組み込んだ状態で出荷してもよいし、出荷後に画像形成装置101へインストールしてもよい。また、画像形成装置101にデフォルトの証明書を組み込んでおき、後にブロックチェーン装置111と通信しその証明書を基にクレデンシャル情報C407が発行されクレデンシャル情報管理部410に組み込まれる形態でも良い。
【0040】
クレデンシャル情報管理部410は、画像形成装置101内のクレデンシャル情報を管理する機能を提供する。本実施例ではクレデンシャル情報管理部410は、ブロックチェーンアプリケーション406からの指示を受けて、ブロックチェーンアプリケーション406にクレデンシャル情報C407を渡す。
【0041】
クレデンシャル情報D412は、編集モジュール411がブロックチェーン装置111を利用する正規の編集モジュールであることを保証するためのクレデンシャル情報である。クレデンシャル情報D412は正しい処理を行っていることが検証された編集モジュールに対して発行され、編集モジュール412はクレデンシャル情報D412が組み込まれた状態で画像形成装置101に搭載される。
【0042】
クレデンシャル情報D412の実体はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよい。クレデンシャル情報D412の中身はアプリケーションごとに異なるものでもよい。クレデンシャル情報D412は例えば本システムを運営する団体が装置のメーカーごとに発行してもよい。クレデンシャル情報D412が組み込まれた編集モジュール411は、画像形成装置101のファームウェア内に組み込まれた状態で出荷してもよいし、出荷後に画像形成装置101へインストールしてもよい。また、編集モジュール411にデフォルトの証明書を組み込んでおき、後にブロックチェーン装置111と通信しその証明書を基にクレデンシャル情報D412が発行され編集モジュール411に組み込まれる形態でも良い。
【0043】
図5は、文書管理装置103において、本発明に関連するソフトウェア構成について示したブロック図である。文書管理装置103で管理する電子文書は、ファイル保持部501に保存する文書ファイルと、文書情報保持部502に保存する文書を表す情報とで構成される。文書情報保持部502に格納するデータは、表3の文書情報テーブルに記載した情報である。
【0044】
【0045】
表3の文書情報テーブルは、「ID」と「文書名」、「登録日時」、「ファイルパス」から構成される。「ID」は、電子文書を一意に管理するための識別情報である。「文書名」は電子文書をユーザが識別するために付与する名称である。この文書名は複数の電子文書で重複してもよい。「登録日時」は、電子文書を文書管理装置103に保存した日時である。「ファイルパス」はファイル保持部501に格納された文書ファイルを保存している位置を表す。本実施例ではファイルシステム上のパスとして示しているが、保存場所を一意に表す情報であればパスでなくても良い。
【0046】
これらは、本実施例を説明するために必要な最低限の項目で構成しているが、文書を分類するための情報などを合わせて保持しても良い。電子文書処理部503は、ファイル保持部501と文書情報保持部502へアクセスを行い、電子文書の登録や取得、リストの取得といった処理を制御するための機能を有する。この電子文書処理部503での処理は、画像形成装置101やPC102など文書管理装置103の外部からの電子文書に関する入出力処理の要求を受け付ける電子文書送受信部504から起動されることにより実行される。
【0047】
図6は、ブロックチェーン装置111に保持するトランザクション601とそのトランザクションを複数格納したブロックのデータ構造について示したブロック図である。ブロックチェーン装置111は、ブロックチェーンと呼ばれる方式でデータを管理する装置である。このブロックチェーンは、情報をトランザクションという単位で取り扱い、そのトランザクションを複数まとめたブロックという単位で管理する。個々のブロックはその前後のブロックとの関連を定義することで、ブロックが数珠繋ぎの状態を保つように構成される。
【0048】
また、ブロックチェーンサービスはノードと呼ばれる複数のブロックチェーン装置111で構成されており、それぞれのノードがすべて等しくブロックデータの管理を行う非中央集権的な装置構造となる。このため、ブロックデータの改ざんを行う場合には構成されている複数のノードに対して更新を行わなければならず、対改ざん性の強いデータ管理方法として知られている。
【0049】
本実施例では、画像形成装置101での電子文書処理時にブロックチェーン装置111に文書を表すトランザクションを送信し、ブロック管理することで、電子文書の正しい状態を保持する。これにより、文書管理装置103内の電子文書に対する改ざんが行われていないかを確認できることができる。
【0050】
文書管理装置103への電子文書の登録や出力の処理を表すトランザクション601には、以下の7情報を含む。文書ハッシュ値602は、対象の電子文書を一意に表すために算出されたハッシュ値である。このハッシュ値602は、文書ファイル全体から算出されるものであり、電子文書自体に変更が入る事で算出されるハッシュ値が変わるものである。ただし、これ以外の算出方法を制限するものではない。
【0051】
文書識別情報603は、文書管理装置103で管理されている電子文書との紐付けを行うために保持する情報であり、本実施例では表3のID値を格納する。登録デバイス識別情報604は、文書登録を行った画像形成装置101を識別する情報であり、本実施例ではクレデンシャル情報C407のハッシュ値を格納する。文書登録日時605は、文書を登録した時点を表す情報であり、本実施例では表3の登録日時の値を格納する。
【0052】
文書登録者606は、文書登録を行ったユーザを表す情報であり、本実施例では画像形成装置101へログインしたユーザのユーザ名のハッシュ値を格納する。ここで、画像形成装置101を利用するために既に登録されているユーザ名などの情報をブロックチェーン装置111に登録する情報としてそのまま利用できるため、システムの管理者の管理業務負荷を少なくすることが可能となる。
【0053】
元文書ハッシュ値607は、文書間の関連を表す情報である。これは、文書管理装置103に格納されている電子文書に対して、印刷や電子データ保存や編集処理などを行った場合に元となる電子文書のハッシュ値を保存しておくための領域である。この情報により、元文書と文書ハッシュ値602のハッシュ算出元の文書との紐付けを行うことが可能となる。元文書が存在しない場合には、本領域に情報は格納されない。
【0054】
文書編集情報608は、文書の編集処理が行われた際の編集内容を示す情報である。編集処理が行われていない場合には、この領域に情報は格納されない。編集処理情報全体が編集モジュール411により署名されていてもよい。文書編集情報608には、以下の6情報を含む。
【0055】
編集モジュール識別情報614は、文書編集を行った編集モジュール411を識別する情報であり、本実施例ではクレデンシャル情報D412のハッシュ値を格納する。
【0056】
編集日時615は、文書を編集した時点を表す情報であり、本実施例では編集モジュール411で、文書編集情報608を生成した時点の日時の値を格納する。編集者情報616は、文書編集を行ったユーザを表す情報であり、本実施例では画像形成装置101へログインしたユーザのユーザ名のハッシュ値を格納する。
【0057】
編集詳細617は、元文書からどのような編集処理が施されて、トランザクション対象の編集後の電子文書になったかを示す情報である。詳細な編集情報を格納することは、情報流出の観点およびデータ量の観点で望ましくないため、抽象的な編集情報を格納する。編集詳細の例を表4に示す。
【0058】
【0059】
表4の編集詳細テーブルは、「編集ID」と「編集元文書編集対象ページ」、「編集後文書編集対象ページ」、「編集内容」、「位置」、「文字数」から構成される。「編集ID」は、編集処理を一意に管理するための識別情報である。「編集元文書編集対象ページ」は、編集元文書における編集処理の対象ページである。「編集後文書編集対象ページ」は、編集後文書における編集処理の対象ページである。「編集内容」は、編集処理の種類を示している。「位置」は、編集位置の情報が存在する編集処理について、編集が行われたページ内の位置を示すための情報である。編集領域を矩形で表現しており、左上X座標,左上Y座標,幅,高さからなる。「文字数」は、編集された文字数についての情報を示すための情報である。
【0060】
例えば、編集IDが「1」の編集処理は、元文書の「3ページ目」に対して「マスク処理」を行っている。このページは編集後の文書でも「3ページ目」が対応する。マスクされた領域は、「左上X座標115mm、左上Y座標120mmの位置に対して、幅16mmで高さ4mmの矩形領域」である。マスクされた文字列数は「4文字」である。
【0061】
編集IDが「2」の編集処理は、元文書の「3ページ目」に対して「コメント付加」を行っている。このページは編集後の文書でも「3ページ目」が対応する。コメントが付加された領域は、「左上X座標120mm、左上Y座標60mmの位置に対して、幅36mmで高さ4mmの矩形領域」である。付加されたコメントの文字列数は「9文字」である。
【0062】
編集IDが「3」の編集処理は、編集後の文書の「4ページ目」に対して「挿入処理」を行っている。このページは挿入されたページであるため元文書には存在しない。編集IDが「4」の編集処理は、元文書の「4ページ目」に対して「削除処理」を行っている。このページは編集後の文書には削除されているため存在しない。
【0063】
これらは、本実施例の説明のために幾つかの項目で構成しているが、ページの順番を入れかえる編集を行った場合の情報などを合わせて保持しても良い。編集前文書のハッシュ値618は、編集元の文書のハッシュ値であり、本実施例では編集モジュール411が編集対象の文書として取得した文書のハッシュ値を格納する。編集後文書のハッシュ値619は、編集後の文書のハッシュ値であり、本実施例では編集モジュール411が編集して生成した文書のハッシュ値を格納する。
【0064】
続けて、トランザクション601を保持するブロックの構造についてブロック611を用いて説明する。これは一般的なブロックチェーン構造を模式化したものである。ブロック611には、複数のトランザクション601(a)~601(c)と、それらのトランザクション601から算出するブロックのハッシュ値612を保持する。本実施例ではブロックに含むトランザクション601の数は3つとしたがトランザクション数を制限するものではない。また、ブロック間を連結するための前ブロックのハッシュ値613を保持する。本実施例においては、ブロック614のブロックのハッシュ値を前ブロックのハッシュ値613に格納し、ブロックが関連を持っていることを表している。
【0065】
図7は、認証画面の画面例である。
図7(A)の認証画面700はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。ユーザ名入力フィールド701は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド702は画像形成装置101のユーザがパスワードを入力するためのフィールドである。ログインボタン703はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド701とパスワード入力フィールド702に入力された値を元にユーザ認証を行う。
【0066】
図7(B)の認証画面(ゲストログイン)710はゲストログインを設けた認証画面の画面例であり、ユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、認証画面700との違いのみ説明する。
【0067】
ゲストログインボタン711はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン711を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなり、表2のロール情報テーブルの権限に従って利用できる機能が制限される。尚、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定で認証画面700と認証画面(ゲストログイン)710のどちらの画面を表示するかを切り替えてもよい。
【0068】
図8はリモート認証画面の画面例である。
図8(A)のリモート認証画面800はユーザがPC102上のウェブブラウザから画像形成装置101の機能を利用するために、ユーザ認証を行うための画面である。ユーザ名入力フィール801は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド802は画像形成装置101のユーザがパスワードを入力するためのフィールドである。ログイン803はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド801とパスワード入力フィールド802に入力された値を元にユーザ認証を行う。
【0069】
図8(B)のリモート認証画面(ゲストログイン)810はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、リモート認証画面800との違いのみ説明する。
【0070】
ゲストログインボタン811はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン811を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなり、表2のロール情報テーブルの権限に従って利用できる機能が制限される。尚、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定でリモート認証画面800とリモート認証画面(ゲストログイン)810のどちらの画面を表示するかを切り替えてもよい。
【0071】
図9はローカルUI制御部400およびリモートUI制御部401が表示する機能を選択する画面の画面例である。
図9に示す機能を選択する画面は画像形成装置101に搭載されている機能の一覧である。画像形成装置101のユーザはこの画面に表示されているボタンを押下することで、画像形成装置101に搭載されている各機能を利用することができる。
【0072】
図9(A)の機能選択画面900は、認証画面700または認証画面(ゲストログイン)710でログインした直後にローカルUI制御部400によって操作部209に表示される画面である。機能選択ボタン901は画像形成装置101の各機能を利用するためのボタンである。コピーボタンはコピー機能を利用する画面を、送信ボタンはスキャンした文書をPC102に送信する機能を利用する画面を、保存ボタンはスキャンした電子文書をHDD204に保存する機能を利用する画面を表示するためのボタンである。
【0073】
本実施例ではそれぞれのボタンが押下された後に表示する画面の説明は省略するが、各種機能を利用するための画面が表示される。なお、ユーザのロールで許可されていない機能に関するボタンは表示されない。文書登録ボタンが押下された場合は、登録画面1000または登録画面1010を表示する。登録文書保存/印刷ボタンが押下された場合は、登録文書の保存/印刷画面1100を表示する。文書検証ボタンが押下された場合は、文書検証画面1200を表示する。文書編集ボタンが押下された場合は、編集画面1800を表示する。
【0074】
ログアウトボタン902は、ログイン中に表示されるログアウト処理を実行するためのボタンである。このボタンが押下されるとログアウト処理が実行され、その後、認証画面700または認証画面(ゲストログイン)710が表示される。
【0075】
図9(B)の機能選択画面910はリモート認証画面800またはリモート認証画面(ゲストログイン)810でログインした直後にリモートUI制御部401によってPC102上のウェブブラウザに表示する画面の例である。
【0076】
機能選択ボタン911はそれぞれの機能を利用するためのボタンである。機能選択画面900と同様に保存ボタンが押下された後に表示する画面の説明は省略する。文書登録ボタンが押下された場合は、登録画面1020または登録画面1030を表示する。登録文書保存/印刷ボタンが押下された場合は、登録文書の保存/印刷画面1110を表示する。文書検証ボタンが押下された場合は、検証画面1210を表示する。文書編集ボタンが押下された場合は、編集画面1810を表示する。
【0077】
図10はアプリケーションA404およびアプリケーションB405が表示する登録画面の画面例である。本実施例ではアプリケーションA404はローカルUI制御部400とリモートUI制御部401を介して操作部209とPC102上のウェブブラウザに画面を表示し、アプリケーションB405はPC102上のウェブブラウザにだけ画面を表示する。尚、アプリケーションB405も操作部209とPC102上のウェブブラウザの両方に画面を表示してもよい。
【0078】
図10(A)の登録画面1000は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面である。文書選択設定1001は登録の対象となる文書をスキャンした紙文書または画像形成装置101に保存されている文書から選択する設定であり、スキャンまたは保存文書のどちらか一方が選択できる。スキャン設定1002はスキャンに関する各種の設定である。ブロックチェーンボタン1003は文書の情報をブロックチェーン装置111に登録するか否かを選択するボタンである。ブロックチェーンボタン1003が選択されている場合は文書の情報をブロックチェーン装置111に登録し、選択されていない場合はブロックチェーン装置111に登録しない。
【0079】
登録するボタン1004は文書選択設定1001でスキャンが選択されていた場合は文書のスキャンを実行して電子文書を生成する。保存文書が選択されていた場合は保存文書のリストを表示し、そのリストからユーザが選択した文書を取得する。その後、ブロックチェーンボタン1003が選択されている場合は、電子文書を文書管理装置103に登録し、電子文書の情報をブロックチェーン装置111へ登録する。ブロックチェーンボタン1003が選択されていない場合は、電子文書を文書管理装置103に登録し、ブロックチェーン装置111には登録しない。保存先設定1005は文書を文書管理装置103のどのパスに保存するかを指定する設定である。
【0080】
図10(B)の登録画面1010は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、ゲストログインしたユーザもしくはブロックチェーン装置111の機能を利用する権限をもっていないユーザに対して表示される画面である。本実施例ではゲストユーザにはブロックチェーン装置111に文書情報を登録する権限が無いため、本画面にはブロックチェーンボタン1003は表示しない点が登録画面1000とは異なる。
【0081】
図10(C)の登録画面1020は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
図10(D)の登録画面1030は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、ゲストログインしたユーザに対してPC102上のウェブブラウザに表示する画面である。
【0082】
図11は、アプリケーションA404が表示する登録されている文書を保存または印刷する画面の画面例である。
図11(A)の登録文書の保存/印刷画面1100はブロックチェーン装置111および文書管理装置103で管理されている文書を保存または印刷する機能を提供するための画面である。文書選択リスト1101は、保存または印刷する文書を選択するためのリストであり、アプリケーションA404は文書管理装置103で管理されている文書を文書選択リスト1101に表示する。プリントするボタン1102は、文書選択リスト1101で選択した文書の印刷を実行するボタンである。保存するボタン1103は、文書選択リスト1101で選択した文書を画像形成装置101のHDD204に保存するボタンである。
【0083】
図11(B)の登録文書の保存/印刷画面1110はブロックチェーン装置111および文書管理装置103で管理されている文書を保存または印刷する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0084】
図12はアプリケーションA404が表示する文書を検証するための画面の画面例である。
図12(A)の文書検証画面1200は、スキャンした文書または画像形成装置101に保存されている文書がブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面である。
【0085】
文書選択設定1201は検証の対象となる文書をスキャンした紙文書または画像形成装置101に保存されている文書から選択する設定である。文書選択リスト1202は検証対象となる文書を選択するためのリストであり、HDD204に保存されている文書の一覧である。検証するボタン1203は文書選択設定1201でスキャンが選択されていた場合は文書のスキャンを実行し、その後、ブロックチェーン装置111を利用して文書の検証を実行するボタンである。検証するボタン1203は文書選択設定1201で保存文書が選択されていた場合は文書選択リスト1202で選択されている文書の検証を行う。
【0086】
図12(B)の検証画面1210はHDD204に保存されている文書がブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0087】
図18は、アプリケーションA404が表示する、登録されている文書から編集対象の文書選択する画面の画面例である。
図18(A)の登録文書の編集画面1800はブロックチェーン装置111および文書管理装置103で管理されている文書の中から編集対象の文書を選択する機能を提供するための画面である。文書選択リスト1801は、編集する文書を選択するためのリストであり、アプリケーションA404は文書管理装置103で管理されている文書を文書選択リスト1801に表示する。編集するボタン1802は、文書選択リスト1801で選択した文書の編集を実行するボタンである。編集するボタン1802が押下された場合には、編集方法選択画面1900を表示する。
【0088】
図18(B)の登録文書の編集画面1810はブロックチェーン装置111および文書管理装置103で管理されている文書の中から編集対象の文書を選択する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。編集するボタン1811が押下された場合には、編集方法選択画面1910を表示する。
【0089】
図19はアプリケーションA404が表示する、文書の編集方法を選択する画面の画面例である。
図19(A)の編集方法選択画面1900は、編集対象の文書に対して、どのような編集を行うかを選択する機能を提供するための画面である。編集方法選択ボタン1901は編集機能の各機能を選択するためのボタンである。マスクボタン1902が押下された場合は、マスク編集画面2000を表示する。コメント付加ボタン1903が押下された場合は、コメント付加編集画面2100を表示する。ページ挿入ボタン1904が押下された場合は、ページ挿入編集画面2200を表示する。ページ削除ボタン1905が押下された場合は、ページ削除編集画面2300を表示する。プレビューボタン1906が押下された場合は編集結果プレビュー画面2400または2410を表示する。
【0090】
図19(B)の編集方法選択画面1910は、編集対象の文書に対して、どのような編集を行うかを選択する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。編集方法選択ボタン1911は編集機能の各機能を選択するためのボタンである。マスクボタンが押下された場合は、マスク編集画面2010を表示する。コメント付加ボタンが押下された場合は、コメント付加編集画面2110を表示する。ページ挿入ボタンが押下された場合は、ページ挿入編集画面2210を表示する。ページ削除ボタンが押下された場合は、ページ削除編集画面2310を表示する。プレビューボタンが押下された場合は編集結果プレビュー画面2420または2430を表示する。
【0091】
図20は、アプリケーションA404が表示する、文書編集処理としてマスク処理を実行する画面の画面例である。
図20(A)のマスク処理画面2000は、編集対象の文書に対して、マスク処理を行う機能を提供するための画面である。編集対象文書表示部2001は、マスク処理をする対象領域を指定するためのサブ画面である。ページ選択ボタン2002を押下することにより、所望のページが編集対象文書表示部2001に表示される。ユーザがマスク処理部分を編集対象文書表示部2001で指定した際の例が、マスク領域2003である。選択したマスク領域に関する情報は、マスク領域情報表示部2004に表示される。ここでの例では、マスク領域2003に関する情報が表示されている。削除ボタンを押下することにより、マスク領域を削除することが可能である。マスク領域情報の行追加を行いたい場合には、追加ボタン2005を押下するか、編集対象文書表示部2001において追加のマスク領域を指定すればよい。
【0092】
キャンセルボタン2006はマスク処理をキャンセルするボタンである。キャンセルボタン2006が押下された場合は、マスク処理に関する内容をアプリケーションA404に送信せずに、アプリ編集方法選択画面1900を表示する。確定ボタン2007はマスク処理を確定するボタンである。確定ボタン2007が押下された場合は、マスク処理に関する内容をアプリケーションA404に送信し、アプリ編集方法選択画面1900を表示する。
【0093】
図20(B)のマスク処理画面2010は、編集対象の文書に対して、マスク処理を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。この画面からは、アプリ編集方法選択画面1910に遷移する。
【0094】
図21は、アプリケーションA404が表示する、文書編集処理としてコメント付加処理を実行する画面の画面例である。
図21(A)のコメント付加処理画面2100は、編集対象の文書に対して、コメント付加処理を行う機能を提供するための画面である。編集対象文書表示部2101は、コメント付加処理をする対象領域を指定するためのサブ画面である。ページ選択ボタン2102を押下することにより、所望のページが編集対象文書表示部2101に表示される。ユーザがコメント付加処理部分を編集対象文書表示部2101で指定した際の例が、コメント付加領域2103である。選択したコメント付加領域に関する情報は、コメント付加領域情報表示部2104に表示される。
【0095】
ここでの例では、コメント付加領域2103に関する情報が表示されている。付加コメントの内容については、コメント付加領域情報表示部2104のコメント内容領域に、ユーザが入力する。削除ボタンを押下することにより、コメント付加領域を削除することが可能である。コメント付加領域情報の行追加を行いたい場合には、追加ボタン2105を押下するか、編集対象文書表示部2101において追加のコメント付加領域を指定すればよい。キャンセルボタン2106はコメント付加処理をキャンセルするボタンである。
【0096】
キャンセルボタン2106が押下された場合は、コメント付加処理に関する内容をアプリケーションA404に送信せずに、アプリ編集方法選択画面1900を表示する。確定ボタン2107はコメント付加処理を確定するボタンである。確定ボタン2107が押下された場合は、コメント付加処理に関する内容をアプリケーションA404に送信し、アプリ編集方法選択画面1900を表示する。
【0097】
図21(B)のコメント付加処理画面2110は、編集対象の文書に対して、コメント付加処理を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。この画面からは、アプリ編集方法選択画面1910に遷移する。
【0098】
図22は、アプリケーションA404が表示する、文書編集処理としてページ挿入処理を実行する画面の画面例である。
図22(A)のページ挿入処理画面2200は、編集対象の文書に対して、ページ挿入処理を行う機能を提供するための画面である。編集対象文書表示部2201は、ページ挿入処理をする対象ページを選択するために、編集対象文書を表示するサブ画面である。ページ選択ボタン2202を押下することにより、所望のページが編集対象文書表示部2201に表示される。挿入文書選択リスト2203は、挿入文書を選択するためのリストである。
【0099】
挿入文書選択ボタン2204を押下することにより、所望の文書が選択される。本例においては、「Document B」が選択されている。挿入箇所選択リスト2205は、挿入箇所を選択するためのページ番号のリストである。挿入箇所選択リスト2205を押下することにより、挿入したいページを選択することが可能である。本例においては「3ページ」が選択されている。
【0100】
キャンセルボタン2206はページ挿入処理をキャンセルするボタンである。キャンセルボタン2206が押下された場合は、ページ挿入処理に関する内容をアプリケーションA404に送信せずに、アプリ編集方法選択画面1900を表示する。確定ボタン2207はページ挿入処理を確定するボタンである。確定ボタン2207が押下された場合は、ページ挿入処理に関する内容をアプリケーションA404に送信し、アプリ編集方法選択画面1900を表示する。
【0101】
図22(B)のページ挿入処理画面2210は、編集対象の文書に対して、ページ挿入処理を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。この画面からは、アプリ編集方法選択画面1910に遷移する。
【0102】
図23は、アプリケーションA404が表示する、文書編集処理としてページ削除処理を実行する画面の画面例である。
図23(A)のページ削除処理画面2300は、編集対象の文書に対して、ページ削除処理を行う機能を提供するための画面である。編集対象文書表示部2301は、ページ削除処理をする対象ページを選択するために、編集対象文書を表示するサブ画面である。
【0103】
ページ選択ボタン2302を押下することにより、所望のページが編集対象文書表示部2301に表示される。削除対象ページ選択リスト2303は、削除ページを選択するためのページ番号のリストである。リストを押下することにより、削除対象ページの選択が可能である。本例においては「4ページ」が選択されている。リストの行追加を行いたい場合には、追加ボタン2304を押下する。キャンセルボタン2305はページ削除処理をキャンセルするボタンである。
【0104】
キャンセルボタン2305が押下された場合は、ページ削除処理に関する内容をアプリケーションA404に送信せずに、アプリ編集方法選択画面1900を表示する。確定ボタン2306はページ削除処理を確定するボタンである。確定ボタン2306が押下された場合は、ページ削除処理に関する内容をアプリケーションA404に送信し、アプリ編集方法選択画面1900を表示する。
【0105】
図23(B)のページ削除処理画面2310は、編集対象の文書に対して、ページ削除処理を行う機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。この画面からは、アプリ編集方法選択画面1910に遷移する。
【0106】
図24は、アプリケーションA404が表示する、文書編集処理の結果として生成された編集後文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面例である。
図24(A)の登録画面2400は編集後の文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面である。編集後文書表示部2401は、編集結果を確認するために、編集後の文書を表示するサブ画面である。ページ選択ボタン2402を押下することにより、所望のページが編集後文書表示部2401に表示される。
【0107】
ブロックチェーンボタン2403は編集後の文書の情報をブロックチェーン装置111に登録するか否かを選択するボタンである。ブロックチェーンボタン2403が選択されている場合は編集後の文書の情報をブロックチェーン装置111に登録し、選択されていない場合はブロックチェーン装置111に登録しない。戻るボタン2404はアプリ編集方法選択画面1900へと戻るためのボタンである。戻るボタン2404が押下された場合は、アプリ編集方法選択画面1900を表示する。
【0108】
登録するボタン2405は、実際に編集後の文書のブロックチェーン装置111および文書管理装置103への登録を実行するためのボタンである。登録するボタン2405が押下され、ブロックチェーンボタン2403が選択されている場合は、編集後の文書を文書管理装置103に登録し、編集後の文書の情報をブロックチェーン装置111へ登録する。ブロックチェーンボタン2403が選択されていない場合は、編集後の文書を文書管理装置103に登録し、ブロックチェーン装置111には登録しない。登録ボタン2405の押下後には、登録結果を表示する標準ダイアログ(不図示)を表示する。
【0109】
図24(B)の登録画面2410は編集後の文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、ロールがGeneral Userのユーザに対して表示される画面である。本実施例ではGeneral Userにはブロックチェーン装置111に編集後の文書の情報を登録する権限が無いため、本画面にはブロックチェーンボタン2403は表示しない点が登録画面2400とは異なる。
【0110】
図24(C)の登録画面2420は編集後の文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面である。戻るボタンを押下した場合は、アプリ編集方法選択画面1910に遷移する。登録ボタンを押下した場合は、登録結果を表示する標準ダイアログ(不図示)を表示する。
【0111】
図24(D)の登録画面2430は編集後の文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、ロールがGeneral Userのユーザに対してPC102上のウェブブラウザに表示する画面である。
【0112】
図13は、画像形成装置101において文書の情報をブロックチェーン装置111に登録する処理のフローチャートである。本実施例では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まず、ユーザ認証処理部402としてCPU201において実行される。
【0113】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1301では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1302では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1303へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1314へ進む。
【0114】
ステップS1303では、ログイン処理として現在ログインしているユーザとしてステップS1301で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって文書登録ボタン901が押下され、それ以降の処理はアプリケーションA404としてCPU201において実行される。
【0115】
処理を引き継いだアプリケーションA404は現在ログインしているユーザのロールを元に機能制限を反映した画面を表示する。具体的には、ログインしているユーザのユーザ名がGuestの場合は該当するロールであるGuest UserはBC登録が禁止されているため、ブロックチェーン装置111への文書登録機能が制限されている登録画面1010を操作部209に表示する。ログインしているユーザのユーザ名がGuest以外の場合はBC登録が許可されているため、登録画面1000を操作部209に表示する。
【0116】
ステップS1314では、エラー処理としてユーザ認証の失敗やブロックチェーン装置111を利用する権限が無いことを操作部I/F205を経由して操作部209に表示して処理を終了する。ステップS1304では、アプリケーションA404は登録画面1000において登録するボタン1003が押下されるまで待ち、押下された場合はステップS1305に進む。ステップS1305では、登録画面1000でスキャンが選択されていた場合は、ステップS1306に進み、保存文書が選択されていた場合は、ステップS1308に進む。
【0117】
ステップS1306では、スキャナ211を用いて紙文書に対してスキャン処理を実行する。ステップS1307では、ステップS1306でスキャンしたデータを基にしてスキャン設定1002に従って電子文書を生成し、一時的にHDD204に保存する。この一時的なデータについては、本フローチャート終了時に削除する。
【0118】
ステップS1308では、ログインしているユーザのユーザ名がGuest以外の場合、かつ、登録画面1000でブロックチェーンボタン1003が選択されていた場合はステップS1309に進む。ログインしているユーザのユーザ名がGuestの場合、または、Guest以外の場合かつ登録画面1000でブロックチェーンボタン1003が選択されていなかった場合はステップS1315に進む。
【0119】
ステップS1309では、画像形成装置101のユーザにブロックチェーン装置111を利用する権限があるかを確認し、権限がある場合はステップS1310に進み、権限がない場合はステップS1314に進む。尚、画像形成装置101の正規ユーザにのみ、ブロックチェーン装置111を利用させたい場合、ステップS1303で保持したユーザ名のロールがGuest Userではない場合に権限があると見なす方法もある。また、ブロックチェーン装置111を利用する権限は、ブロックチェーン専用のロールを作成し、それを基に判断しても良い。
【0120】
ステップS1310では、ステップS1307で生成した電子文書のハッシュ値を算出する。ステップS1311では、ステップS1307で生成した電子文書を文書管理装置103に登録を依頼し、結果として、登録が完了した電子文書を表すIDと登録が完了した日時を表す日時情報を取得する。ステップS1311まではアプリケーションA404で処理を行っていたが、ステップS1312はブロックチェーンアプリケーション406が処理を実行する。
【0121】
ステップS1312では、電子文書をブロックチェーン装置111に登録する。ブロックチェーン装置111への登録処理は後述の
図17で説明する。ここでは、登録するためのトランザクション601へ指定する値と、クレデンシャル情報について説明する。
【0122】
文書ハッシュ値602にはステップS1310で算出したハッシュ値を指定する。文書識別情報603にはステップS1311で受け取った電子文書を表すIDを指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはステップS1311で受け取った登録が完了した日時を表す日時情報を指定する。文書登録者606には登録操作を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。尚、本フローでは元文書は存在しないため、元文書ハッシュ値607には値を指定しない。また、編集処理ではないため、文書編集情報608にも値は指定しない。
【0123】
アプリケーションA404はトランザクション601へ指定する値に加えて、クレデンシャル情報A408もブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、登録に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0124】
ステップS1313では、アプリケーションA404がブロックチェーン装置111への登録処理の結果をブロックチェーンアプリケーション406から取得する。ステップS1315では、ステップS1311と同じ処理を実行して、ステップS1316に進む。ステップS1316では、アプリケーションA404がステップS1313で取得した登録結果を操作部I/F205を経由して操作部209に表示する。これについては画面上に文書管理装置103への登録の成否やブロックチェーン装置111への登録の成否などの情報(不図示)を表示する。その後、処理を終了する。
【0125】
図14は、文書管理装置103に保存されている電子文書を画像形成装置101に保存する処理のフローチャートである。本実施例では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まずユーザ認証処理部402としてCPU201において実行される。
【0126】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1401では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1402では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1403へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1411へ進む。
【0127】
ステップS1403では、ログイン処理として現在ログインしているユーザとしてステップS1401で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって登録文書保存/印刷ボタン901が押下され、それ以降の処理はアプリケーションA404としてCPU201において実行される。処理を引き継いだアプリケーションA404は登録文書の保存/印刷画面1100を操作部209に表示する。
【0128】
ステップS1404では、アプリケーションA404は
図11に示した登録文書の保存/印刷画面1100を操作部I/F205を経由して操作部209に表示し、保存するボタン1103が押下されるまで待ち、押下された場合はステップS1405に進む。ステップS1405では、登録文書の保存/印刷画面1100の文書選択リスト1101で選択された電子文書を文書管理装置103から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。
【0129】
ステップS1405まではアプリケーションA404で処理を行っていたが、ステップS1406はブロックチェーンアプリケーション406が処理を実行する。ステップS1406では、RAM203に保存した文書情報のIDを文書識別情報603に保持するトランザクション601を取得する。この取得処理については、後述の
図17において説明する。
【0130】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0131】
ステップS1407では、ステップS1406で該当するトランザクション情報を取得できたかどうかを判定する。トランザクション情報が存在しない場合には、ブロックチェーン装置111で管理されていない情報であるため、ステップS1410に進む。トランザクション情報が存在する場合には、ステップS1408に進む。
【0132】
ステップS1408では、HDD204に保存した文書データからハッシュ値を算出する。そのハッシュ値は、ステップS1409においてステップS1406で取得したトランザクション情報の文書ハッシュ値602と同一値であるかどうかを判定する。同一値でなければ、文書管理装置103に保存されている文書ファイルは不正なデータであるため、ステップS1411のエラー表示に進む。同一値である場合には、ステップS1410に進む。
【0133】
ステップS1410では、ステップS1405でHDD204に一時的に保存した文書データをHDD204内の正規な保存場所に移動し、保存する。本実施例においては、画像形成装置101のHDD204に保存する構成としたが、登録文書の保存/印刷画面1100に保存先のパスを指定するようにして、指定された場所へ保存するように構成しても良い。ステップS1411では、本処理フローチャートにおいて取得を許可できない場合のエラー表示を行う。これについては画面上にエラーダイアログ(不図示)を表示する。この際、HDD204に一時的に保存した文書ファイルは削除する。
【0134】
図15は、文書管理装置103に保存されている電子文書を画像形成装置101から印刷処理を行うフローチャートである。本実施例では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まずユーザ認証処理部402としてCPU201において実行される。
【0135】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1501では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1502では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1503へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1515へ進む。
【0136】
ステップS1503では、ログイン処理として現在ログインしているユーザとしてステップS1501で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって登録文書保存/印刷ボタン901が押下され、それ以降の処理はアプリケーションA404としてCPU201において実行される。処理を引き継いだアプリケーションA404は登録文書の保存/印刷画面1100を操作部209に表示する。
【0137】
ステップS1504では、アプリケーションA404は
図11に示した登録文書の保存/印刷画面1100を操作部I/F205を経由して操作部209に表示し、プリントするボタン1102が押下されるまで待ち、押下された場合はステップS1505に進む。ステップS1505では、登録文書の保存/印刷画面1100の文書選択リスト1101で選択された電子文書を文書管理装置103から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。
【0138】
ステップS1505まではアプリケーションA404で処理を行っていたが、ステップS1506はブロックチェーンアプリケーション406が処理を実行する。ステップS1506では、RAM203に保存した文書情報のIDを文書識別情報603に保持するトランザクション601を取得する。この取得処理については、後述の
図17において説明する。ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0139】
ステップS1507では、ステップS1506で該当するトランザクション情報を取得できたかどうかを判定する。トランザクション情報が存在しない場合には、ブロックチェーン装置111で管理されていない文書であるため、ステップS1508に進む。トランザクション情報が存在する場合には、ステップS1509に進む。ステップS1508では、HDD204に保存した文書データを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。
【0140】
ステップS1509では、HDD204に保存した文書データからハッシュ値を算出する。そのハッシュ値は、ステップS1510においてステップS1507で取得したトランザクション情報の文書ハッシュ値602と同一値であるかどうかを判定する。同一値でなければ、文書管理装置103に保存されている文書ファイルは不正なデータであるため、ステップS1515のエラー表示に進む。同一値である場合には、ステップS1511に進む。
【0141】
ステップS1511では、印刷文書に設定するためのハッシュ値を算出する。これには、ステップS1507で取得したトランザクション情報の文書ハッシュ値602と処理を行う画像形成装置101のクレデンシャル情報C407と本ステップ処理時点の画像形成装置内の日時情報を使用して計算する。ステップS1512では、ステップS1511で算出された印刷物を表すハッシュ値と、元の画像を表すトランザクション情報の文書ハッシュ値602をステップS1513で印刷するファイル内に設定する。ここで設定する形式は、後述の検証で印刷した紙をスキャンした際に読み取れる形式であり、二次元バーコードとして印刷物上で判断できる情報であっても良いし、不可視情報として埋め込んでもよい。
【0142】
ステップS1513では、ハッシュ値を設定した文書ファイルを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。
【0143】
ステップS1513まではアプリケーションA404で処理を行っていたが、ステップS1514はブロックチェーンアプリケーション406が処理を実行する。ステップS1514では、印刷処理の情報をブロックチェーン装置111に登録する。この登録処理は後述の
図17で説明する。ここでは、登録するためのトランザクション601へ指定する値について説明する。
【0144】
文書ハッシュ値602にはステップS1511で算出した印刷文書のハッシュ値を、文書識別情報603には引数で受け取った電子文書を表すIDを指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはS1511でハッシュ値を検索した際の日時情報を指定する。文書登録者606は、印刷を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。元文書ハッシュ値607には、S1506で取得した元の画像を表すトランザクション情報の文書ハッシュ値602を指定する。尚、本フローは、編集処理ではないため、文書編集情報608に値は指定しない。
【0145】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。ステップS1515では、本処理フローチャートにおいて印刷を許可できない場合のエラー表示を行う。これについては画面上にエラーダイアログ(不図示)を表示する。
【0146】
図16は、ユーザが指定した文書ファイル、もしくは印刷した紙文書を画像形成装置101から検証処理を行うフローチャートである。本フローチャートは、
図7に示した画像形成装置101の認証画面700でログインボタン703もしくは、ゲストログインボタン711が押下されたことにより起動され、まずユーザ認証処理部402としてCPU201において実行される。本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。
【0147】
ステップS1601では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1602では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1603へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1614へ進む。ステップS1603では、ログイン処理として現在ログインしているユーザとしてステップS1601で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。
【0148】
本フローチャートでは、その後、機能選択画面900においてユーザによって文書検証ボタン901が押下され、それ以降の処理はアプリケーションA404としてCPU201において実行される。処理を引き継いだアプリケーションA404は文書検証画面1200を操作部209に表示する。ステップS1604では、アプリケーションA404は
図12に示した文書検証画面1200を操作部I/F205を経由して操作部209に表示し、検証するボタン1203が押下されるまで待ち、押下された場合はステップS1605に進む。
【0149】
ステップS1605では、起動時に受け取った文書選択設定1201の値で対象文書が紙データかどうかを判定する。紙データの場合にはステップS1607へ進み、電子データである場合にはステップS1606へ進む。ステップS1606では、選択されたHDD204内の電子データを特定し、その電子データのハッシュ値を算出する。このハッシュ値が検証対象の文書を表すものであり、ステップS1611での検証処理に使用される。
【0150】
ステップS1607では、画像形成装置101にセットされた紙文書をスキャンする。スキャンは、スキャナI/F207を通じてスキャナ211で紙文書を読み込み、画像データを生成する。ステップS1608では、スキャナ211によって画像化されたデータを電子化し、電子データとして一時的にHDD204に保存する。この一時的なデータについては、本フローチャート終了時に削除する。
【0151】
ステップS1609では、ステップS1608でHDD204に保存した電子データに埋め込まれたハッシュ値を取得する。この取得は、前述の
図15で説明した印刷フローチャートのステップS1512で埋め込んだ方法に合わせたハッシュ値を取得する処理を行う。ステップS1610では、電子データからハッシュ値を取得できたかを判定する。ハッシュ値がある場合にはステップS1611へ進み、ハッシュ値がない場合には検証処理ができないためステップS1614へ進む。
【0152】
ステップS1610まではアプリケーションA404で処理を行っていたが、ステップS1611はブロックチェーンアプリケーション406が処理を実行する。ステップS1611では、ブロックチェーン装置111に記録されているトランザクション情報を使用した文書検証処理を行う。この文書検証処理は後述の
図17で説明する。その際には、処理種別として文書検証と、ステップS1606もしくはステップS1609において算出/取得した文書ハッシュ値と、クレデンシャル情報A408とを渡す。依頼した処理結果を受け取ったら、ステップS1612で検証結果を判定する。
【0153】
検証が成功した場合には、ステップS1613で検証が成功した等のメッセージを表示する標準ダイアログ(不図示)を表示する。また、検証が失敗した場合には、ステップS1614で検証が失敗したもしくは検証不可能である旨のメッセージを表示する標準ダイアログ(不図示)を表示する。それぞれのメッセージ表示後、ユーザがダイアログを閉じる指示を行ったら本フローチャートを終了する。
【0154】
図25は、画像形成装置101において文書の編集を行い、編集された文書の情報をブロックチェーン装置111に登録する処理のフローチャートである。本実施例では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まず、ユーザ認証処理部402としてCPU201において実行される。
【0155】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS2501では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS2502では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS2503へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS2514へ進む。
【0156】
ステップS2503では、ログイン処理として現在ログインしているユーザとしてステップS2501で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって文書編集ボタン901が押下され、それ以降の処理はアプリケーションA404としてCPU201において実行される。
【0157】
なお、文書編集ボタン901は、「文書編集-BC登録あり」もしくは「文書編集-BC登録なし」の機能実行が許可されたロールのユーザのみに表示される。それ以外のユーザには表示されないため、本ステップ以降の処理ステップに進むことは出来ない。つまり、ログインしているユーザのユーザ名がGuestの場合は、該当するロールであるGuest Userは「文書編集-BC登録あり」も「文書編集-BC登録なし」も許可されていないため、これ以降の処理を実行できない。処理を引き継いだアプリケーションA404は文書の編集画面1800を操作部209に表示する。
【0158】
ステップS2504では、アプリケーションA404は、ユーザからの指示に基づき編集処理を行う。編集処理の詳細については後述する。編集処理の結果として、編集後の文書が生成され、編集前後の文書と、編集処理に関する情報と、登録画面2400においてブロックチェーンボタン2403が選択されているかの情報が取得される。ここで、編集処理に関する情報は、文書編集情報608に対応する情報と、編集モジュールのクレデンシャル情報D412である。編集処理に失敗していた場合には、エラー情報が取得される。
【0159】
ステップS2505では、アプリケーションA404は、ステップS2504における編集処理が成功したかどうかを判定する。ステップS2504において、エラー情報が取得されていた場合は失敗となる。エラー情報が取得されておらず、成功と判定された場合はステップS2506へ進む。失敗と判定された場合はステップS2514へと進む。
【0160】
ステップS2506では、ログインしているユーザのユーザ名がUserAの場合で、かつ、登録画面2400でブロックチェーンボタン2403が選択されていた場合はステップS2507に進む。ログインしているユーザのユーザ名がUserBの場合、または、UserAの場合かつ登録画面2400でブロックチェーンボタン2403が選択されていなかった場合はステップS2512に進む。ここで、ログインしているユーザのユーザ名がUserAの場合は、該当するロールであるAdministratorは「文書編集-BC登録あり」が許可されている。一方、ログインしているユーザのユーザ名がUserBの場合は、該当するロールであるGeneral Userは「文書編集-BC登録あり」が禁止されているが、「文書編集-BC登録なし」が許可されている。
【0161】
ステップS2507では、画像形成装置101のユーザにブロックチェーン装置111に編集した文書の情報を登録する権限があるかを確認し、権限がある場合はステップS2508に進み、権限がない場合はステップS2514に進む。尚、画像形成装置101の正規ユーザにのみ、ブロックチェーン装置111を利用させたい場合、ステップS2503で保持したユーザ名のロールがGuest Userではない場合に権限があると見なす方法もある。また、ブロックチェーン装置111を利用する権限は、ブロックチェーン専用のロールを作成し、それを基に判断しても良い。
【0162】
ステップS2508では、ステップS2504で取得した編集前の文書のハッシュ値と、ステップS2504で生成した編集後の文書のハッシュ値を取得する。編集前の文書のハッシュ値は、後述するステップS2504の詳細フローにおけるステップS2605で算出された値を取得する。編集後の文書のハッシュ値については、ステップS2504で得られた文書編集情報608の含まれる編集後文書のハッシュ値619を取得する。なお、本ステップであらためてそれぞれの文書のハッシュ値を算出するようにしてもよい。
【0163】
ステップS2509では、ステップS2504で生成した編集後の文書を文書管理装置103に登録を依頼し、結果として、登録が完了した電子文書を表すIDと登録が完了した日時を表す日時情報を取得する。ステップS2509まではアプリケーションA404で処理を行っていたが、ステップS2510はブロックチェーンアプリケーション406が処理を実行する。
【0164】
ステップS2510では、編集後の文書をブロックチェーン装置111に登録する。ブロックチェーン装置111への登録処理は後述の
図17で説明する。ここでは、登録するためのトランザクション601へ指定する値と、クレデンシャル情報について説明する。文書ハッシュ値602には、ステップS2508で算出した編集後の文書のハッシュ値を指定する。文書識別情報603にはステップS2509で受け取った編集後の文書を表すIDを指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはステップS2509で受け取った登録が完了した日時を表す日時情報を指定する。
【0165】
文書登録者606には登録操作を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。元文書ハッシュ値607には、ステップS2508で算出した編集後の文書のハッシュ値を指定する。文書編集情報608には、ステップS2504で生成した文書編集情報を指定する。文書編集情報608には、編集モジュール411による署名がなされており、改ざんすることはできない。また、文書ハッシュ値602や、元文書ハッシュ値607に対して、実際に編集対象とした文書のハッシュ値とは異なる値を登録しても、文書編集情報608の内容と矛盾する。そのため、アプリケーションA404が不正な操作により、編集前後の文書として、異なる文書の文書ハッシュ値602や、元文書ハッシュ値607を登録しようとしても、ブロックチェーンアプリケーション406で不正な登録を検知することが可能である。
【0166】
アプリケーションA404はトランザクション601へ指定する値に加えて、クレデンシャル情報A408もブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、編集に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。アプリケーションA404は、さらに、ステップS2504で取得したクレデンシャル情報D412もブロックチェーンアプリケーション406に渡す。クレデンシャル情報D412は、編集処理自体が正規な編集モジュールによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0167】
ステップS2511では、アプリケーションA404がブロックチェーン装置111への登録処理の結果をブロックチェーンアプリケーション406から取得する。ステップS2512では、ステップS2509と同じ処理を実行して、ステップS2513に進む。ステップS2513では、アプリケーションA404がステップS2511で取得した編集処理結果の登録結果を操作部I/F205を経由して操作部209に表示する。これについては画面上に文書管理装置103への登録の成否やブロックチェーン装置111への登録の成否などの情報(不図示)を表示する。その後、処理を終了する。
【0168】
ステップS2514に進んだ場合は、エラー処理の理由として、ユーザ認証の失敗、編集処理の失敗、ブロックチェーン装置111を利用する権限が無いことのいずれかを、操作部I/F205を経由して操作部209に表示して処理を終了する。本フローの終了時には、HDD204に一時的に保存された編集処理関連情報については削除する。
【0169】
図25のフローチャートにおけるステップS2504の詳細について、
図26を用いて説明する。本フローは、まず、アプリケーションA404としてCPU201において実行される。ステップS2601では、アプリケーションA404は
図18に示した編集画面1800を操作部I/F205を経由して操作部209に表示し、編集するボタン1802が押下されるまで待ち、押下された場合はステップS2602に進む。
【0170】
ステップS2602では、編集画面1800の文書選択リスト1801で選択された電子文書を文書管理装置103から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。文書管理装置103に格納されている電子文書には、画像形成装置101で原稿をスキャンして生成した元文書が含まれており、元文書から編集する形態を実施例1は含んでいる。ステップS2602まではアプリケーションA404で処理を行っていたが、ステップS2603はブロックチェーンアプリケーション406が処理を実行する。
【0171】
ステップS2603では、RAM203に保存した文書情報のIDを文書識別情報603に保持するトランザクション601を取得する。この取得処理については、後述の
図17において説明する。ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0172】
ステップS2604では、再び、アプリケーションA404に処理が戻り、ステップS2603で該当するトランザクション情報を取得できたかどうかを判定する。トランザクション情報が存在しない場合には、ブロックチェーン装置111で管理されていない情報であるため、ステップS2607に進む。トランザクション情報が存在する場合には、ステップS2605に進む。
【0173】
ステップS2605では、HDD204に保存した文書データからハッシュ値を算出する。そのハッシュ値が、ステップS2606において、ステップS2603で取得したトランザクション情報の文書ハッシュ値602と同一値であるかどうかを判定する。同一値でなければ、文書管理装置103に保存されている文書ファイルは不正なデータであるため、ステップS2617のエラー情報生成に進む。同一値である場合には、ステップS2607に進む。
【0174】
ステップS2607では、アプリケーションA404は、
図19に示した編集方法選択画面1900を操作部I/F205を経由して操作部209に表示し、編集方法選択ボタン1901が押下されるまで待ち、押下されたボタンに応じたステップへと進む。マスクボタン1902が押下された場合には、ステップS2608へと進む。コメント付加ボタン1903が押下された場合には、ステップS2609へと進む。ページ追加ボタン1904が押下された場合には、ステップS2610へと進む。ページ削除ボタン1905が押下された場合には、ステップS2611へと進む。プレビューボタン1906が押された場合には、ステップS2612と進む。
【0175】
ステップS2608では、アプリケーションA404は、
図20に示したマスク処理画面2000を操作部I/F205を経由して操作部209に表示し、キャンセルボタン2006または確定ボタン2007が押下されるのを待つ。編集対象文書表示部2001には、元文書を表示しても良いし、HDD204に保存されているプレビュー用文書がある場合には、その文書を表示してもよい。プレビュー文書の生成については後述する。
【0176】
キャンセルボタン2006が押下された場合は、何も処理を行わず、ステップS2607に戻る。確定ボタン2007が押下された場合には、マスク編集画面2000におけるユーザ指示に基づく、編集作業情報を生成し、RAM203に保存する。編集作業情報の詳細については後述する。また、編集作業情報に基づく仮の編集処理を行ったプレビュー用文書を作成して、HDD204に保存してもよい。そして、ステップS2607へと戻る。
【0177】
ステップS2609では、アプリケーションA404は、
図21に示したコメント付加処理画面2100を操作部I/F205を経由して操作部209に表示し、キャンセルボタン2106または確定ボタン2107が押下されるのを待つ。編集対象文書表示部2101には、元文書を表示しても良いし、HDD204に保存されているプレビュー用文書がある場合には、その文書を表示してもよい。
【0178】
キャンセルボタン2106が押下された場合は、何も処理を行わず、ステップS2607に戻る。確定ボタン2107が押下された場合には、コメント付加処理画面2100におけるユーザ指示に基づく、編集作業情報を生成し、RAM203に保存する。編集作業情報の詳細については後述する。また、編集作業情報に基づく仮の編集処理を行ったプレビュー用文書を作成して、HDD204に保存してもよい。そして、ステップS2607へと戻る。
【0179】
ステップS2610では、アプリケーションA404は、
図22に示したページ挿入処理画面2200を操作部I/F205を経由して操作部209に表示し、キャンセルボタン2206または確定ボタン2207が押下されるのを待つ。編集対象文書表示部2201には、元文書を表示しても良いし、HDD204に保存されているプレビュー用文書がある場合には、その文書を表示してもよい。
【0180】
キャンセルボタン2206が押下された場合は、何も処理を行わず、ステップS2607に戻る。確定ボタン2207が押下された場合には、ページ挿入処理画面2200におけるユーザ指示に基づく、編集作業情報を生成し、RAM203に保存する。編集作業情報の詳細については後述する。また、編集作業情報に基づく仮の編集処理を行ったプレビュー用文書を作成して、HDD204に保存してもよい。そして、ステップS2607へと戻る。
【0181】
ステップS2611では、アプリケーションA404は、
図23に示したページ削除処理画面2300を操作部I/F205を経由して操作部209に表示し、キャンセルボタン2305または確定ボタン2306が押下されるのを待つ。編集対象文書表示部2301には、元文書を表示しても良いし、HDD204に保存されているプレビュー用文書がある場合には、その文書を表示してもよい。
【0182】
キャンセルボタン2305が押下された場合は、何も処理を行わず、ステップS2607に戻る。確定ボタン2306が押下された場合には、ページ削除処理画面2300におけるユーザ指示に基づく、編集作業情報を生成し、RAM203に保存する。編集作業情報の詳細については後述する。また、編集作業情報に基づく仮の編集処理を行ったプレビュー用文書を作成して、HDD204に保存してもよい。そして、ステップS2607へと戻る。
【0183】
ここで、保存する編集作業情報の例を表5に示す。
【0184】
【0185】
表5は、基本的に表4と同一の編集処理を表現しているが、「文字数」列が「文字列/挿入文書」列となっていることが異なる。編集作業情報は、実際に、編集作業を実行するための情報であり、具体的な文字列情報や挿入文書の情報が記載されている。表5の編集IDが1の行は、ステップS2608におけるマスク編集画面2000から生成されたマスク処理パラメータである。
【0186】
表4とは異なり、具体的なマスク対象の文字列情報である「BBBB」を「文字列/挿入文書」列に持つ。表5の編集IDが2の行は、ステップS2609におけるコメント付加編集画面2100から生成されたコメント付加処理パラメータである。表4とは異なり、具体的な付加されるコメントの文字列情報である「EEEE万円に変更」を「文字列/挿入文書」列に持つ。表5の編集IDが3の行は、ステップS2610におけるページ挿入編集画面2200から生成されたページ挿入処理パラメータである。表4とは異なり、具体的な挿入元の文書についての情報である「Document B」を「文字列/挿入文書」列に持つ。表5の編集IDが4の行は、ステップS2611におけるページ削除編集画面2300から生成されたページ削除処理パラメータである。削除のため、「文字列/挿入文書」列には情報を持たない。
【0187】
続いて、ステップS2612の説明を行う。ステップS2612では、アプリケーションA404は、編集モジュールへ実際の編集処理を指示する。具体的には、アプリケーションA404は、編集モジュール411へ、HDD204に保存されている編集対象の文書データと、RAM203に保持されている編集作業情報を送付する。また、編集対象の文書がブロックチェーン装置111へ登録されているかの情報と、ログインしているユーザのユーザ名のハッシュ値についての情報も送付する。編集モジュール411における編集処理の詳細については、後述する。
【0188】
ステップS2613において、アプリケーションA404は、編集結果を取得する。編集に成功した場合は、編集後の文書と、文書編集情報608と、クレデンシャル情報D412を取得する。これらの情報は、一時的にHDD204に保存する。編集に失敗した場合には、エラー情報を取得する。
【0189】
ステップS2614において、アプリケーションA404は、編集が成功したかどうかの判定を行う。ステップS2613において、編集後の文書等を取得していた場合には、ステップS2615に進む。ステップS2613において、エラー情報を取得していた場合には、ステップS2617に進む。
【0190】
ステップS2615において、アプリケーションA404は、
図24に示したプレビュー画面2400またはプレビュー画面2410を操作部I/F205を経由して操作部209に表示する。そして、戻るボタン2404または、登録するボタン2405が押下されるのを待つ。どちらかのボタンが押下されたら、ステップS2616に進む。プレビュー画面はログインしているユーザのロールを元に機能制限を反映した画面を表示する。ログインしているユーザのロールにおいて、「文書編集-BC登録あり」が許可されている場合には、プレビュー画面2400を表示する。それ以外の場合には、BC登録ができないため、プレビュー画面2410を表示する。
【0191】
ステップ2616において、アプリケーションA404は、ステップS2615において、戻るボタン2404が押下されたか、登録ボタン2405が押下されたかを判定する。戻るボタン2404が押下された場合は、編集内容の修正を実施できるように、ステップS2607に戻る。また、この際、編集モジュールから取得したHDD204に保存されている編集結果を消去する。登録ボタン2405が押下された場合は、本フローを終了する。ステップS2617に進んだ場合は、エラー情報として、編集処理の失敗を示すエラー情報を生成し、本フローを終了する。
【0192】
続いて、編集モジュール411における編集処理について、
図27のフローチャートを用いて説明する。本フローチャートは、アプリケーションA404から編集指示が行われることにより編集モジュール411として起動され、まず、CPU201において実行される。
【0193】
まず、ステップS2701において、編集モジュール411は、アプリケーションA404から、編集対象の文書データと、編集作業情報を取得する。また、編集対象の文書がブロックチェーン装置111に登録されているかの情報と、ログインしているユーザのユーザ名のハッシュ値の情報も取得する。取得したデータは1次的にHDD204に保存される。もしくは、取得する情報が格納されているHDD204上のファイルパス情報をアプリケーションA404から取得し、それを利用するようにしてもよい。
【0194】
続いて、ステップS2702において、編集モジュール411は、編集作業情報に基づき、編集対象の文書データに対して、マスク処理を行う。編集作業情報にマスク処理の指示がなかった場合には、マスク処理は施されない。例えば、表5のような編集作業指示を受け取った場合には、まず、編集内容列が「マスク」となっている行を探索する。本例においては、編集ID1の行が該当行である。続いて、探索された行の内容の基づき、マスク処理を行う。本例においては、編集対象の文書データの3ページ目に、黒塗り領域を付加する。黒塗り領域は、左上X座標が115mm、左上Y座標が120mm、幅16mm、高さ4mmの矩形領域である。
【0195】
次に、ステップS2703において、編集モジュール411は、編集作業情報に基づき、ステップ2702で処理された文書データに対して、コメント付加処理を行う。編集作業情報にコメント付加処理の指示がなかった場合には、コメント付加処理は施されない。例えば、表5のような編集作業指示を受け取った場合には、まず、編集内容が「コメント付加」となっている行を探索する。本例においては、編集ID2の行が該当行である。続いて、探索された行の内容の基づき、コメント付加処理を行う。本例においては、処理対象の文書データの3ページ目に、コメントを付加する。コメント内容は「EEEE万円に変更」であり、付加領域は左上X座標が120mm、左上Y座標が60mm、幅36mm、高さ4mmの矩形領域である。
【0196】
さらに、ステップS2704において、編集モジュール411は、編集作業情報に基づき、ステップ2703で処理された文書データに対して、ページ挿入・削除処理を行う。編集作業情報にページ挿入・削除処理の指示がなかった場合には、ページ挿入・削除処理は施されない。
【0197】
例えば、表5のような編集作業指示を受け取った場合には、まず、編集内容が「挿入」となっている行を探索する。本例においては、編集ID3の行が該当行である。続いて、探索された行の内容の基づき、挿入処理を行う。本例においては、まず、挿入される文書である「Document B」を取得する。そして、対象の文書データの4ページ目として、「Document B」を挿入する。この挿入処理により、処理対象文書の4ページ目が5ページ目になり、それ以降のページも1ページずつページ番号がインクリメントされている。この処理対象文書のページ数と、挿入処理後の文書のページ数の対応関係をRAM203に保持しておく。次に、編集内容が「削除」となっている行を探索する。本例においては、編集ID4の行が該当行である。続いて、探索された行の内容の基づき、削除処理を行う。本例においては、処理対象文書の4ページ目を削除することになっているが、RAM203に保持されている挿入処理前後のページ関係情報から、削除対象ページが5ページ目であることを算出する。そして、5ページ目を削除する。
【0198】
ステップS2704までの処理により、編集対象の文書に対する編集作業は終了し、編集後文書が生成される。この編集後の文書は、HDD204に保存される。続いて、ステップS2705において、編集モジュール411は、アプリケーションA404から取得した情報に基づいて、編集処理対象の文書がブロックチェーンに登録されているかどうかを判定する。ブロックチェーンに登録されていると判定された場合には、ステップS2706以降に進み、ブロックチェーン装置111に編集処理を登録するための情報を生成する。ブロックチェーンに登録されていると判定されなかった場合には、ステップS2711に進む。
【0199】
ステップS2706において、編集モジュール411は、編集対象の文書が本当にブロックチェーンに登録されている文書であるかの検証のために、アプリケーションA404から取得した文書のハッシュ値を算出する。
【0200】
ステップS2706までは、編集モジュール411で処理を行っていたが、ステップS2707はブロックチェーンアプリケーション406が処理を実行する。ステップS2707では、ブロックチェーン装置111に記録されているトランザクション情報を使用した文書検証処理を行う。この文書検証処理は後述の
図17で説明する。その際には、処理種別として文書検証と、ステップS2706において算出した文書ハッシュ値と、クレデンシャル情報D412とを渡す。依頼した処理結果を受け取ったら、ステップS2708で検証結果を判定する。検証が成功した場合には、ステップS2709に進む。また、検証が失敗した場合には、ステップS2711に進む。
【0201】
ステップS2709において、ブロックチェーン装置111は、文書編集情報608の生成準備のために、ステップS2704で生成さHDD204に保存されている編集後の文書のハッシュ値を算出する。続いて、ステップS2710において、ブロックチェーン装置111は、文書編集情報608を生成する。ここで、文書編集情報608の各要素に指定される情報について説明を行う。
【0202】
編集モジュール識別情報614には、編集モジュール411を識別するための情報として、クレデンシャル情報D412のハッシュ値を格納する。編集日時615には、文書を編集した時点を表す情報として、本ステップを実行している際の日時の値を格納する。編集者情報616には、文書編集を行ったユーザを表す情報として、アプリケーションA404から取得したユーザ名のハッシュ値を格納する。
【0203】
編集詳細617には、元文書からどのような編集処理が施されて、トランザクション対象の編集後の電子文書になったかを示す情報として、編集作業情報を編集詳細に抽象化して格納する。本例では、表5の編集作業情報の内容を、表4の編集詳細に抽象化して格納を行う。抽象化処理は、「文字列/挿入文書列」を「文字数」列に変換することにより行う。「文字列/挿入文書列」の具体的な文字列を文字数に変換し、挿入文書名を削除する。編集前文書のハッシュ値618には、編集元の文書のハッシュ値として、ステップS2706で算出したハッシュ値を格納する。編集後文書のハッシュ値619には、編集後の文書のハッシュ値として、ステップS2709で算出したハッシュ値を格納する。
【0204】
ステップS2711において、編集モジュール411は、元文書の検証が失敗したために編集が失敗した旨のエラー情報を生成する。最後に、ステップS2712において、編集モジュール411は、ステップS2710から遷移してきた場合には、編集後の文書および文書編集情報608およびクレデンシャル情報D412をアプリケーションA404に送信する。ステップS2711から遷移してきた場合には、エラー情報をアプリケーションA404に送信する。そして、一時的にHDD204に保存していたデータを消去して、フローを終了する。
【0205】
図17は、画像形成装置101のブロックチェーンアプリケーション406でブロックチェーン装置111へのトランザクション処理を行うフローチャートである。本フローチャートは、
図13から
図16、
図25、
図26におけるアプリケーションA404の処理中もしくは、
図27における編集モジュール411の処理中に、ブロックチェーンアプリケーション406として起動され、CPU201において実行される。
【0206】
本フローチャート起動時には、アプリケーションA404もしくは編集モジュール411から、ブロックチェーン装置111への処理種別と、処理種別ごとに必要な情報が渡される。処理種別ごとに必要な情報は、トランザクション登録時にはトランザクション601、文書検証時には検証が必要な文書ハッシュ値602、トランザクション取得時には文書識別番号603である。
【0207】
ステップS1701で、ブロックチェーンアプリケーション406は、アプリケーションA404から呼び出された場合には、クレデンシャル情報C407とクレデンシャル情報A408をブロックチェーン装置111に渡す。そして、正しいクレデンシャル情報であることを確認する。また、
図25のフローから呼び出された場合であって、編集処理結果の登録をする際には、ブロックチェーンアプリケーション406はクレデンシャル情報D412をブロックチェーン装置111に渡す。そして、正しいクレデンシャル情報であることを確認する。
【0208】
ここで、クレデンシャル情報C407はブロックチェーンアプリケーション406の起動時にクレデンシャル情報管理部410から取得したものを、クレデンシャル情報A408はアプリケーションA404から取得したものを用いる。クレデンシャル情報D412については、アプリケーションA404経由で取得したものを用いる。このようにブロックチェーンサービスに信頼されたサービスであることを確認することで、格納された文書が正しいこと、および/または元文書から正しい編集が行われたことが担保される。
【0209】
ステップS1701で、ブロックチェーンアプリケーション406は、編集モジュール411から呼び出された場合には、クレデンシャル情報D412とクレデンシャル情報A408をブロックチェーン装置111に渡す。そして、正しいクレデンシャル情報であることを確認する。ここで、クレデンシャル情報C407はブロックチェーンアプリケーション406の起動時にクレデンシャル情報管理部410から取得したものを、クレデンシャル情報D412は編集モジュール411から取得したものを用いる。
【0210】
ステップS1702では、ステップS1701で確認したクレデンシャル情報が正しいものであるかどうかを判定する。正しいか否かの判定は、クレデンシャル情報がデジタル証明書の場合は証明書の検証を行って検証が成功した場合に、正しいクレデンシャル情報であると判断する。また、予め定められたデータ値の場合は値が一致する場合に、正しいクレデンシャル情報であると判断する。正しいクレデンシャルであった場合にはブロックチェーン装置111へのアクセスが可能な状況であるため、ステップS1703に進み、正しいクレデンシャルでなかった場合にはステップS1704に進む。
【0211】
ここで、編集モジュール411のクレデンシャル情報D412が正しい情報であるという確認を行うのは、信頼できない編集モジュールで編集された結果をブロックチェーン装置111に登録させないためである。信頼する編集モジュールのみが編集された結果をブロックチェーン装置111に登録することで、編集された文書に改ざんがないことを担保することができる。
【0212】
ステップS1703では、ブロックチェーンアプリケーション406が受信した処理種別を判定する。トランザクション登録であればステップS1705へ、トランザクション取得であればステップS1710へ、文書検証であればステップS1713へ進む。
【0213】
ステップS1704では、本処理フローチャートにおいてブロックチェーン装置111へのアクセス権限を満たしていない旨のエラー情報を生成する。ステップS1705では、処理起動時に受け取ったトランザクション情報がそろっているかどうかを確認する。
【0214】
また、文書ハッシュ値602についてはブロックチェーン装置111内に登録されていない事を、ブロックチェーン装置111を検索することで確認する。さらに、元文書ハッシュ値607についてはブロックチェーン装置111内に登録されている事を、ブロックチェーン装置111を検索することで確認する。文書編集情報608が存在する場合については、文書編集情報608の正当性を検証する。
【0215】
検証は、例えば、クレデンシャル情報D412と紐づく署名が行われているかどうか検証することにより行われる。また、文書ハッシュ値602と編集後文書のハッシュ値619が一致するかどうか、元文書ハッシュ値607と編集前文書のハッシュ値618が一致するかどうかのチェックも行い、編集行為の正当性も検証する。情報がそろっていない、もしくはハッシュ値が正しい状態ではない場合には、トランザクション情報は不正なものとなる。このチェック結果をステップS1706で判定し、トランザクション情報が正当であればステップS1707へ、不正な情報であればステップS1709のエラー処理へ進む。
【0216】
ステップS1707では、ブロックチェーン装置111に対してチェック済みのトランザクション601の登録を依頼する。本ステップではブロックチェーン装置111から登録処理の結果として成功/失敗を受け取る。ステップS1708では、そのブロックチェーン装置111からの処理結果を判定し、失敗の場合にはステップS1709のエラー処理へ進み、成功であれば結果通知S1719へ進む。
【0217】
ステップS1709では、本処理フローチャートにおいてトランザクション登録ができない旨のエラー情報を生成する。ステップS1710では、処理起動時に受け取った文書識別番号を保持するトランザクションをブロックチェーン装置111から検索し、取得する。検索結果はステップS1711で判定し、トランザクションデータを取得できなかった場合には、対象の文書はブロックチェーン装置111に登録されていないため、ステップS1712のエラー処理へ進む。トランザクションデータを取得できた場合には、ステップS1719へ進む。ステップS1712では、本処理フローチャートにおいてトランザクション取得に失敗した旨のエラー情報を生成する。
【0218】
ステップS1713では、処理起動時に受け取ったハッシュ値を文書ハッシュ値として保持するトランザクションをブロックチェーン装置111から検索し取得する。検索結果はステップS1714で判定し、トランザクションデータを取得できた場合には、正当なハッシュ値としてステップS1715へ進み、取得できなかった場合には、不正なハッシュ値としてステップS1718のエラー処理へ進む。
【0219】
ステップS1715では、ステップS1713で取得したトランザクションに元文書ハッシュ値を持っているかどうかを判定する。元文書ハッシュ値を持っていない場合には、ステップS1707で確認したハッシュ値が一番先頭の文書であるため検証処理は終了となり、ステップS1719へ進む。元文書ハッシュ値を持っている場合、その元文書の存在を確認する必要があるため、ステップS1716へ進む。
【0220】
ステップS1716では、処理種別として文書検証を、処理に必要な情報として元文書ハッシュ値を指定し、本
図17のフローチャートを再帰実行する。この実行結果はステップS1717で判定し、元文書まで含めた検証が成功した場合には、ステップS1719へ進む。検証が失敗した場合には、ステップS1718のエラー処理へ進む。ステップS1718では、本処理フローチャートにおいて文書検証に失敗した旨のエラー情報を生成する。
【0221】
ステップS1719では、それぞれの処理種別ごとの処理成功時の情報として、トランザクション登録の場合には登録完了ステータスを、文書検証の場合には検証成功ステータスを呼び出し元となる処理に通知する。トランザクション取得の場合には取得したトランザクション情報を、またエラー処理が行われている場合にはエラー情報を呼び出し元となる処理に通知する。
【0222】
本発明により、本発明により、ブロックチェーンに登録済み文書に対する編集処理を信頼できる編集モジュールによってのみ行うことにより、ブロックチェーンで管理している文書自体のすり替えなどによる改ざんを防止できる。さらに、厳密な文書ファイルを管理するための編集処理を画像形成装置に集約して実施する事により、編集処理の正当性を効率的に行うことが可能となり、システム管理者が管理すべき機器数が低減されるため、管理業務の負荷を軽減する事ができる。
【0223】
[その他の実施例]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0224】
400 ローカルUI制御部
401 リモートUI制御部
402 ユーザ認証処理部
403 ユーザ情報DB
404 アプリケーションA
405 アプリケーションB
406 ブロックチェーンアプリケーション
407 クレデンシャル情報C
408 クレデンシャル情報A
409 クレデンシャル情報B
410 クレデンシャル情報管理部
411 編集モジュール
412 クレデンシャル情報D