<実施例1>
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本実施例におけるブロックチェーンサービスに関連するシステムの全体図である。画像形成装置101、文書管理装置102、PC103、文書管理装置104がLAN100に接続されイントラネット内に存在し、インターネット110を介して、ブロックチェーン装置111と通信を行う。なお、ここではインターネット110を介す構成を示しているが同じイントラなネット内にある構成であっても良い。ブロックチェーン装置111はブロックチェーンに文書情報を格納したトランザクションを登録、検証するためのブロックチェーンサービスを提供するための装置である。PC103は、ウェブブラウザを利用した画像形成装置101の管理や、プリントドライバを利用した画像形成装置101への印刷や、文書管理装置102、104の電子文書の管理に利用される。
ブロックチェーン装置111は画像形成装置101で生成された印刷文書や、文書管理装置102、104で保存された文書に関する情報をブロック単位にまとめて管理する装置である。また、ブロックチェーン装置111は、文書の正当性を保障するためのブロックチェーン機能を提供する装置である。文書管理装置102、104は、電子文書を管理(閲覧、新規保存、更新、削除)するための文書管理サービスを提供する。文書管理装置102、104は、画像形成装置101やPC103で生成された電子文書を保存する装置であり、保存済みの文書に対して内容変更された文書を更新して保存することで改訂記録も管理する。さらに文書管理装置102、104は、どちらも、電子文書に関する情報をブロックチェーン装置111に登録指示する機能を持つ。ここで、文書管理装置102は、登録する指示する際に内容変更された文書である情報も併せて登録指示する。一方、文書管理装置104は、内容変更された文書という情報は含めずに、電子文書に関する情報をブロックチェーン装置111に登録指示する。文書管理装置102と104は、内容変更された文書という情報を含めるか否かといった違い以外の構成は同様のため、図3、図5、図8における文書管理装置102の説明は文書管理装置104の説明も含めるものとする。ユーザは、ブロックチェーン装置111に登録する文書を、内容変更された文書か複製された文書か見分ける必要があるシステムや、改訂履歴をブロックチェーン装置111でも表現する必要があるシステムを扱う際に、文書管理装置102を利用する。一方で、ユーザは、ブロックチェーン装置111に登録する文書を、内容変更された文書か複製された文書かを見分ける必要がないシステムを扱う際に、文書管理装置104を使う。本実施例では、文書管理装置102、104を含める例を示したが、文書管理装置104がない構成であっても良く、あるいは、文書管理装置102、104の特徴を持つ別々の異なるシステムを1つの文書管理装置内に含める構成で合っても良い。
ブロックチェーン装置111および文書管理装置102が提供するサービスはクラウドサービスとして提供されてもよく、その場合、複数のコンピューターを仮想化することで1つの装置としサービスを提供する形態でも良い。
図2は、情報処理装置の一例である画像形成装置101のハードウェア構成を示すブロック図である。Central Processing UnitであるCPU201を含む制御部200は、画像形成装置101全体の動作を制御する。CPU201は、Read Only MemoryであるROM202に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御を行う。Randam Access MemoryであるRAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。Hard Disc DriveであるHDD204は、画像データや各種プログラム、あるいは後述する各種データを記憶する。画像形成装置101は情報処理装置としてのハードウェア構成を有しているが、これに加え以下のハードウェア構成をさらに有する。
操作部I/F205は、操作部209と制御部200とを接続する。プリンタ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上の外部装置から各種情報を受信したりする。
図3は、情報処理装置の一例である文書管理装置102のハードウェア構成を表すブロック図である。なお、ここでは例示していないが、情報処理装置の他の一例であるPC103、文書管理装置104、ブロックチェーン装置も111文書管理装置102と同じハードウェア構成でよい。CPU302は装置全体の制御を行う。CPU302はHDD305に格納されているアプリケーションプログラムやOS等を実行し、RAM303にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM304は記憶部であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM303は一時記憶部であり、CPU302の主メモリ、ワークエリア等として機能する。HDD305は外部記憶部の一つであり、大容量メモリとして機能し、オフィスアプリケーションやWebブラウザー等のアプリケーションプログラム、OS、関連プログラム等を格納している。
ディスプレイ306は表示手段であり、指示入力部であるキーボード/マウス307から入力したコマンド等を表示したりするものである。インターフェース308は外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。システムバス301は、装置内におけるデータの流れを司るものである。ネットワークインターフェースカード(以降NIC)309は、LAN100を介して外部装置とのデータのやり取りを行う。
なお、情報処理装置の構成はその一例であり、図2および図3の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM304、RAM303、HDD305などで変更することも可能である。本実施例中で特に明記しない場合は、各種処理はROM304等に記憶されているプログラムをRAM303等にロードし、CPU302で実行することによって実現されるものとする。
図4は、画像形成装置101において本発明に関連するソフトウェア構成について示したブロック図である。特に断りのない限り、各処理部はROM202に記憶された制御プログラムをCPU201が実行することにより実現されるソフトウェア機能である。
ローカルUI制御部400は、操作部I/F205を介して操作部209を制御する機能を提供する。ローカルUI制御部400はユーザが操作部209で操作した内容をユーザ認証処理部402やアプリケーション404に通知する。ローカルUI制御部400はユーザ認証処理部402やアプリケーションからの画面表示依頼を受けて、操作部209へ画面を表示するための制御を行う。ユーザ認証処理部402、アプリケーション404はローカルUI制御部400を介して操作部209に画面を表示する。
リモートUI制御部401は、ネットワークI/F208を介してPC103上のウェブブラザに対してウェブページを提供する。リモートUI制御部401はユーザがウェブブラウザで操作した内容をユーザ認証処理部402やアプリケーションに通知する。リモートUI制御部401はユーザ認証処理部402やアプリケーションからの依頼を受けて、ウェブブラウザに対してウェブページを表示するための制御を行う。ユーザ認証処理部402、アプリケーション404はリモートUI制御部401を介してウェブブラウザに対してウェブページを表示させる。
ユーザ認証処理部402は、画像形成装置101を利用するユーザを認証するための機能を提供する。ユーザ認証処理部402は、ユーザからユーザ名とパスワードの入力と言った認証情報を受信し、ユーザ情報DB403内に保持しているユーザ情報と比較することでユーザ認証を行う。また、ユーザ認証処理部402は、ブロックチェーンアプリケーション406からの指示を受けて、ブロックチェーンアプリケーション406にクレデンシャル情報405を渡す。クレデンシャル情報405は、ユーザが組織単位でブロックチェーン装置111を利用する正規のユーザであることを保証するためのクレデンシャル情報である。ここでは、1つの画像形成装置101を1つの組織で利用する構成で示しているが、複数のユーザ組織で画像形成装置101を利用する場合は、ユーザ組織の数だけ存在する構成を取れば良い。あるいは、ユーザ単位でクレデンシャル情報を用意する構成を取っても良い。
ユーザ情報DB403は、画像形成装置101を利用するユーザに関する情報であるユーザ情報を保持する機能を提供する。ユーザ情報DB403は、HDD204内に構築され、格納される情報はHDD204に記憶される。ユーザ情報DB403に格納している情報の例を表1に示す。
表1のユーザ情報テーブルは、「ユーザ名」と「パスワード」から構成されており、「ユーザ名」はユーザを一意に識別するための名称、「パスワード」はユーザ認証で利用するパスワードであり、ユーザ毎に任意の値を設定することができる。
アプリケーション404は、ネットワークI/F208を介して、PC103や文書管理装置102、104から文書を受信しプリンタI/F206を介して印刷する機能を提供する。他にもアプリケーション404は、スキャンした文書を電子文書に変換しHDD204に保存する機能やPC103や文書管理装置102、104にネットワークI/F208を介して送信する機能、もしくはコピーとして印刷する機能を提供する。さらにブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書(印刷文書、保存/送信された電子文書)の情報を登録する機能や、スキャンした文書がブロックチェーン装置111に登録済みかを検証する機能を提供する。アプリケーション404は、ブロックチェーン装置111に登録有無を問い合わせる際に必要となる問い合わせ情報に対応する埋込情報を文書に埋め込んだ状態で印刷することができる。印刷物の一例として文書として示すが、文書以外の印刷物も同様に扱うことができる。アプリケーション404はスキャナI/F207を介してスキャナ211を制御したり、ネットワークI/F208を介してLAN100へデータを送信したりすることで、外部装置(例えばPC103)へスキャンデータの送信を行う。アプリケーション404はローカルUI制御部400およびリモートUI制御部401へ画面情報を提供する。アプリケーション404はローカルUI制御部400を介して操作部209に表示された画面への入力を受け付け、それに応じて処理を行う。また、アプリケーション404はリモートUI制御部401を介してPC103上のウェブブラザからの入力を受け付け、それに応じて処理を行う。なお、文書の印刷、検証と言った機能を1つのアプリケーションに備える例を説明するが、それらの機能を複数のアプリケーションに分担させても良い。例えば、文書の登録を行うスキャンアプリケーションと、印刷を行う印刷アプリケーションのように分ける形態が考えられる。
ブロックチェーンアプリケーション406は、ブロックチェーン連携するためのアプリケーションであり、アプリケーション404からの指示を受け、ブロックチェーン装置111に文書の情報を登録、検証する機能を提供する。ブロックチェーンアプリケーション406がブロックチェーン装置111に登録するトランザクション701とブロックのデータ構造の例を図7に示すが詳細は後述する。ブロックチェーンアプリケーション406は、アプリーションからブロックチェーン装置111に対する指示を受けた際に、ユーザ認証処理部402からクレデンシャル情報405と、クレデンシャル情報管理部410からクレデンシャル情報407も受け取る。ブロックチェーンアプリケーション406は、ブロックチェーン装置111に指示を送る際に、受け取ったクレデンシャル情報405、407も送信する。ブロックチェーン装置111で送信したクレデンシャル情報が検証され、検証が成功した場合だけ、ブロックチェーン装置111に送信した指示が実行される。また、ブロックチェーンアプリケーション406は、ブロックチェーン装置111に関する処理の設定をポリシー設定408から取得し、ブロックチェーン装置111に指示を送る際に一緒に送信する。ポリシー設定408は、ブロックチェーン装置111の登録処理に関する設定である。設定例は図7で後述する。ポリシー設定408は、画像形成装置101の管理者が設定する。もしくは他の構成例として、ブロックチェーン装置111の管理者が設定したポリシー設定をブロックチェーン装置111からダウンロードし、ポリシー設定408に設定する構成としても良い。あるいは、ポリシー設定408は、システム開発者によってあらかじめ画像形成装置101に組み込まれる構成でも良い。
クレデンシャル情報407は、画像形成装置101がブロックチェーン装置111を利用する正規の装置であることを保証するためのクレデンシャル情報である。クレデンシャル情報407は、例えば本システムを運営する団体が装置のメーカーごとに発行してもよい。クレデンシャル情報407は画像形成装置101のファームウェア内に組み込んだ状態で出荷してもよいし、出荷後に画像形成装置101へインストールしてもよい。なお、クレデンシャル情報はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよく、クレデンシャル情報の実態に制限はない。クレデンシャル情報はアプリケーションごとに異なる実態であってもよい。クレデンシャル情報管理部410は、画像形成装置101内のクレデンシャル情報407を管理する機能を提供する。本実施例ではクレデンシャル情報管理部410は、ブロックチェーンアプリケーション406からの指示を受けて、ブロックチェーンアプリケーション406にクレデンシャル情報407を渡す。
図5は、文書管理装置102において本発明に関連するソフトウェア構成について示したブロック図である。文書管理装置104も同じソフトウェア構成で良い。
UI制御部501は、NIC309を介してPC103上のウェブブラザに対してウェブページを提供する。UI制御部501はユーザがウェブブラウザで操作した内容をユーザ認証処理部502や文書管理部504に通知する。UI制御部501はユーザ認証処理部502や文書管理部504からの依頼を受けて、ウェブブラウザに対してウェブページを表示するための制御を行う。ユーザ認証処理部502、文書管理部504はUI制御部501を介してウェブブラウザに対してウェブページを表示させる。UI制御部501がウェブブラウザに表示させる文書管理画面の一例を図9(A)に示す。なお、ここでは、NIC309を介してUIを提供する例を示しているが、ディスプレイ306にUIを提供する構成でも良い。
ユーザ認証処理部502は、文書管理装置102を利用するユーザを認証するための機能を提供する。そのため、ユーザ認証処理部502は認証画面800(画面例を図8(A)に示す)を操作部209に表示する。ユーザ認証処理部402は認証画面800を介して、ユーザからユーザ名とパスワードの入力と言った認証情報を受信し、ユーザ情報DB503内に保持しているユーザ情報と比較することでユーザ認証を行う。また、ユーザ認証処理部502は、ブロックチェーンプラグイン506からの指示を受けて、ブロックチェーンプラグイン506にクレデンシャル情報505を渡す。クレデンシャル情報505は、ユーザが組織単位でブロックチェーン装置111を利用する正規のユーザであることを保証するためのクレデンシャル情報である。ここでは、1つの文書管理装置102を1つの組織で利用する構成で示しているが、複数のユーザ組織で文書管理装置102を利用する場合は、ユーザ組織の数だけ存在する構成を取れば良い。あるいは、ユーザ単位でクレデンシャル情報を用意する構成を取っても良い。
ユーザ情報DB503は、画像形成装置101を利用するユーザに関する情報であるユーザ情報を保持する機能を提供する。ユーザ情報DB503は、HDD305内に構築され、格納される情報はHDD305に記憶される。ユーザ情報DB503に格納している情報の例を表2に示す。
表2のユーザ情報テーブルは、「ユーザ名」と「パスワード」から構成されており、「ユーザ名」はユーザを一意に識別するための名称、「パスワード」はユーザ認証で利用するパスワードであり、ユーザ毎に任意の値を設定することができる。なお、ここでは表1に示したユーザ認証処理部403のユーザ情報と異なるユーザ情報テーブルの例を示したが、ユーザ情報DB403上のユーザ情報と同期する構成でも良い。他にも、ユーザ認証処理部403とユーザ認証処理部503のどちらか一方のユーザ情報DBを利用する構成や、あるいは外部にユーザ情報DBを配置してそこからユーザ情報を参照する構成でも良い。
文書管理部504は、文書の閲覧、ダウンロード、文書の新規保存、文書の更新、文書の削除といった文書管理機能を提供する。さらにブロックチェーンプラグイン506を介してブロックチェーン装置111に文書(新規保存、更新保存された電子文書)の情報を登録する機能や、保存済みの電子文書がブロックチェーン装置111に登録済みかを検証する機能を提供する。閲覧/ダウンロード機能では、UI制御部501を介して電子文書DB520に保存された文書を表示し、ユーザ指示に応じて、NIC309を介してPC103に電子文書を送信する。新規保存機能では、PC103から受信した電子文書をHDD305内の電子文書DB520に保存する。文書更新機能では、電子文書DB520に保存された電子文書を、PC103から受信する電子文書に更新して、新たに電子文書DB520に保存する。ユーザが文書の更新を行うと、文書管理としては更新前の文書は表示されずに更新後の文書が表示されるが、電子文書DB520には、更新前と更新後の双方の電子文書が保存されたままとなる。電子文書DB520に保存する文書の例を表3に示す。
表3の保存済み電子文書の情報として、電子文書自体である「文書」と、同じ電子文書名のもの同士を識別するための「バージョン」から構成されている。
文書管理を行うユーザは、文書管理部504からダウンロードした文書を編集し内容変更した後に、文書更新機能を使って、変更後の文書を電子文書DB520に送信し、文書管理部504が電子文書を電子文書DB520に保存する。文書削除機能では、電子文書DBに保存された文書を削除する。文書管理部504はさらに、文書の改訂管理機能を提供する。改訂管理機能では、文書更新機能により文書の更新を行った後、文書管理504が、更新前の文書と更新後の文書を紐づけることで、文書の関連と保存の順序を改訂履歴として、HDD305内の改訂記録DB521に記録する。改訂記録DB521に保存する記録の例を表4に示す。
表4の改訂記録は、「文書名」「更新前バージョン」「更新後バージョン」「更新日」「更新者」から構成されており、文書の更新を行う度に「文書名」の文書の更新前のバージョンと、更新後のバージョンを記録する。ブロックチェーンプラグイン506は、ブロックチェーン連携するためのプラグインであり、文書管理部504からの指示を受け、ブロックチェーン装置111に文書の情報を登録、検証する機能を提供する。ブロックチェーンプラグイン506がブロックチェーン装置111に登録するトランザクション701とブロックのデータ構造の例を図7(A)に示すが詳細は後述する。ブロックチェーンプラグイン506は、文書管理部504からブロックチェーン装置111に対する指示を受けた際に、ユーザ認証処理部502からクレデンシャル情報505とクレデンシャル情報管理部510からクレデンシャル情報507も受け取る。ブロックチェーンプラグイン506は、ブロックチェーン装置111に指示を送る際に、受け取ったクレデンシャル情報505、507も送信する。ブロックチェーン装置111で送信したクレデンシャル情報が検証され、検証が成功した場合だけ、ブロックチェーン装置111に送信した指示が実行される。また、ブロックチェーンプラグイン506は、ブロックチェーン装置111に関する処理の設定をポリシー設定508から取得し、ブロックチェーン装置111に指示を送る際に一緒に送信する。ポリシー設定508は、ブロックチェーン装置111の登録処理に関する設定である。設定例は図7(B)で後述する。ポリシー設定508は、文書管理装置102の管理者が設定する。もしくは他の構成例として、ブロックチェーン装置111の管理者が設定したポリシー設定をブロックチェーン装置111からダウンロードし、ポリシー設定508に設定する構成としても良い。あるいは、ポリシー設定508は、システム開発者によってあらかじめ文書管理装置102に組み込まれる構成でも良い。
クレデンシャル情報507は、文書管理装置102がブロックチェーン装置111を利用する正規の装置であることを保証するためのクレデンシャル情報である。クレデンシャル情報507は、例えば本システムを運営する団体が文書管理サービスのベンダーごとに発行してもよい。クレデンシャル情報507は文書管理装置102のシステム内に組み込んだ構成でもよいし、あとから文書管理装置102へインストールしてもよい。なお、クレデンシャル情報はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよく、クレデンシャル情報の実態に制限はない。クレデンシャル情報管理部510は、文書管理装置102内のクレデンシャル情報を管理する機能を提供する。本実施例ではクレデンシャル情報管理部510は、ブロックチェーンプラグイン506からの指示を受けて、ブロックチェーンプラグイン506にクレデンシャル情報507を渡す。
図6は、本実施例におけるブロックチェーン装置111において本発明に関連するソフトウェア構成について示したブロック図である。
処理制御部601は、ネットワークI/F208を介して、画像形成装置101、文書管理装置102、104、PC103といった外部装置からブロックチェーン装置111に処理の指示を受信する。外部装置からの指示を受けると、処理制御部601は認証処理部602の認証機能を実行し、そのあとにブロックデータ管理部605のブロックチェーン管理機能を実行する。そして、ネットワークI/F208を介して処理結果を外部装置に送信する。
認証処理部602は、ブロックチェーン装置111におけるサービスを利用する装置、システム、ユーザを認証するための機能を提供する。アカウント情報DB603は、サービスを利用する装置、システム、ユーザの情報を保持する。認証処理部602は、クレデンシャル情報405、407、505、507といったクレデンシャル情報と、アカウント情報DB603の情報を照合することで、認証処理を行う。アカウント情報DBの例を表5に示す。
表5では、アカウント名が保存されている。認証処理部602は、クレデンシャル情報405、407、505、507といったクレデンシャル情報を復号し、複合した文字列が表5に示すアカウント名に含まれるか照合することで、認証処理を行うことができる。アカウント情報DB603に保存する情報は、ブロックチェーン装置111の管理者が事前に保存しておけば良い。
ブロックデータ管理部604では登録用トランザクションの生成、ブロックの生成、分散台帳607への書き込み、分散台帳607への参照処理などブロックチェーンの処理を行う。外部装置から処理の指示とともにトランザクションを受信するが、ブロックデータ管理部604は受信したトランザクションの情報を登録用トランザクションに格納、登録用トランザクションを生成する。登録用トランザクションのデータ構成は図7に示すトランザクションのデータ構成と同様である。ブロックのデータ構成についても図7で後述する。分散台帳605はブロックを保持する機能を提供する。一般的に、ブロックチェーンでは複数のノード(コンピュータ)で台帳を管理しており、ブロックデータ管理部604は複数から構成されていてもよい。
図7(A)は、ブロックチェーン装置111に保持するトランザクション701とそのトランザクションを複数格納したブロックのデータ構造について示したブロック図である。ブロックチェーン装置111は、ブロックチェーンと呼ばれる方式でデータを管理する装置である。このブロックチェーンは、情報をトランザクションという単位で取り扱い、そのトランザクションを複数まとめたブロックという単位で管理する。
個々のブロックはその前後のブロックとの関連が定義されることで、各ブロックが数珠繋ぎの状態を保つように構成される。また、ブロックチェーンはノードと呼ばれる複数のコンピューターで管理されており、それぞれのノードがすべて等しいブロックデータの管理を行う構造となる。このため、ブロックデータの改ざんを行う場合には構成されている複数のノードに対して更新を行わなければならず、対改ざん性の強いデータ管理方法として知られている。なお、ブロックチェーン装置111と記載はしたが、上述の通り複数のコンピューターで構成されている装置であって、それらによってブロックチェーンサービスが提供される。
本実施例では、画像形成装置101、および文書管理装置102、104での文書処理時にブロックチェーン装置111に文書ハッシュ値を含めたトランザクションを送信し、ブロック管理することで、文書の正しい状態を保持する。これにより、文書がある時点においては確かに存在していたことを確認でき、さらに、文書管理装置102、104内の電子文書に対する改ざんが行われていないかを確認できるようになる。ここでは各トランザクションを識別する情報の一例として文書ハッシュ値を用いるが、通し番号を付与したIDや、タイムスタンプなど、他の情報を基にした識別情報を用いても良い。
文書をブロックチェーン装置111に登録する際に、画像形成装置101、および文書管理装置102、104が送信するトランザクション701には、以下の情報を含む。
文書ハッシュ値702は、対象の文書を一意に表すために算出されたハッシュ値である。例えば、印刷文書に関しては、画像形成装置101のクレデンシャル情報407と、印刷時のタイムスタンプを基に算出することができる。電子文書の場合、文書ハッシュ値702は文書ファイル全体から算出されるものである。ただし、これ以外の算出方法を制限するものではない。
登録システム情報704は、文書登録を行った画像形成装置101、もしくは文書管理装置102、104を識別する情報であり、本実施例ではクレデンシャル情報407、もしくはクレデンシャル情報507のハッシュ値を格納する。
文書登録日時705は、文書を登録した時点を表す情報である。ここでは、画像形成装置101もしくは文書管理装置102、104が登録日時をトランザクションに含める構成を示しているが、ブロックチェーン装置111が登録日時を格納する構成を取っても良い。
文書登録者706は、文書登録を行ったユーザを表す情報であり、クレデンシャル情報405、もしくはクレデンシャル情報505のハッシュ値を格納する。
元文書ハッシュ値707は、文書間の関連を表す情報である。これは、文書管理装置102で電子文書の更新を行った場合や、文書管理装置102、104に格納されている電子文書を元に印刷を行った場合、印刷物を元にスキャンして電子データ保存などを行った場合に、元となる文書と紐付けを行うために使用する。なお、文書管理装置102の新規保存のように元となる文書がない場合は、元文書ハッシュ値707には情報を格納しなくても良い。
文書属性708は、文書が、内容変更されて改訂された文書であるか、文書の内容は変更されずに複製された文書であるかを示す情報を格納する。本実施例では、文書管理装置102が、電子文書の新規保存、電子文書の更新を行った際に、“オリジナル文書”という情報を格納する。格納する情報はこれに制限するものではなく、例えば「オリジナル」「org」「非複製物」「原本」といった表現でも良い。“オリジナル文書”が文書属性708(属性情報)に格納されたトランザクションをブロックチェーンに登録することで、対応する文書が内容変更されて改訂された文書であると確認できる。逆に、“オリジナル文書”が文書属性708に格納されていないトランザクションに対応する文書は、複製された文書であると確認できる。本実施例では、電子文書内のデータが変更されたことを内容変更として例示しているが、これに限定されるものではない。例えば、文書を更新したユーザ情報、文書の保存場所、更新日時や、一般的なワークフローシステムなどにおける文書のステータス状況など、他の項目の変更を内容変更と扱う構成を取っても良い。さらに電子文書の内容変更にも限定されず、電子データ以外の内容変更を扱う構成や、文書以外の改訂管理を行う電子データの内容変更を扱う構成でも良い。例えば、電子データ以外の内容変更を扱う例としては、ワークフローシステムで紙文書のステータス状況の変更を内容として扱うケースがある。また、文書以外の改訂管理を行う電子データの内容変更を扱う例としては、住民基本台帳ネットワークシステムで、住民基本台帳上の電子データの変更を内容変更として扱うケースがある。いずれの場合でも、文書管理装置102に代わり内容変更を管理するシステム(例ではワークフローシステム、住民基本台帳ネットワークシステム)が、管理する対象物の内容変更時に、文書属性708に“オリジナル”という情報を格納する構成にすれば良い。また、ここまでは「文書の更新を行った際に、“オリジナル文書”を文書属性708に格納するだけの構成」を例示したが、逆に「文書の複製を行った際に、“複製文書”示す情報を文書属性708に格納するだけの構成」であっても良い。例えば、画像形成装置101が文書の複製(電子文書の電子コピー、電子文書からの印刷、紙文書をスキャンして電子文書で保存、紙文書からのコピー印刷)を行う際に、“複製文書“という情報を格納しても良い。電子文書から電子文書への電子コピーの場合は、文書ハッシュ値と、例えば文書名、保存場所、更新日時も併せた文書識別情報として扱えば、文書を一意に特定できる情報になる。また、格納する情報は“複製文書“に制限するものではなく、例えば「duplication」「写し」「副本」「謄本」「正本」「抄本」といった表現でも良い。”複製文書“が文書属性708に格納されたトランザクションに対応する文書は複製された文書であると確認でき、格納されていないトランザクションに対応する文書は内容変更されて改訂された文書であると確認できる。さらなる構成例として、「文書の更新を行った際には“オリジナル文書”を文書属性708に格納し、かつ、文書の複製を行った際には“複製文書”を文書属性708に格納する構成」のような、前述までに例示した2つの構成を併用した構成を取っても良い。
ポリシー設定709は、ブロックチェーン装置111の処理に関する設定を格納する。ポリシー設定例については図7(B)で後述する。本実施例ではポリシー設定408、もしくはポリシー設定508を格納する。
続けて、トランザクション701を保持するブロックの構造についてブロック711を用いて説明する。これは一般的なブロックチェーン構造を模式化したものである。ブロック711には、複数のトランザクション701(a)~701(c)と、それらのトランザクション701から算出するブロックのハッシュ値712を保持する。
本実施例ではブロックに含むトランザクション701の数は3つとしたがトランザクション数を制限するものではない。また、ブロック間を連結するための前ブロックのハッシュ値713を保持する。本実施例においては、ブロック714のブロックのハッシュ値を前ブロックのハッシュ値713に格納し、ブロックが関連を持っていることを表している。本実施例では前ブロックのハッシュ値としたが、後ブロックのハッシュ値を管理する、もしくは前ブロックと後ブロックの両方のハッシュ値を管理する形態であっても良い。
図7(B)のポリシー設定721は、ブロックチェーン装置の登録処理に関するポリシー設定を示す。設定項目722は、登録指示されたトランザクション(図ではTxと示す)の元文書ハッシュ値707に対応するトランザクションがブロックチェーン装置111に登録されていなかった場合に、登録指示されたトランザクションの登録を許容するか否かを設定する。さらに、設定項目723では、元文書ハッシュ値707に対応するトランザクションの文書属性708が、“オリジナル文書“としてブロックチェーン装置111に登録されていなかった場合に、登録指示されたトランザクションの登録を許容するか否かを設定する。設定項目724では、登録指示するトランザクションが、登録指示された別のトランザクションの元文書ハッシュ値707として指定された場合、双方の文書登録者706が一致しない場合に、別のトランザクションの登録を許容するか否かを設定する。設定項目722~724で、特に設定がされていない場合は*で示すデフォルトの設定値となる。本実施例では、ポリシー設定408、ポリシー設定508をポリシー設定709に格納する例を示しているが、格納する設定は、後のトランザクション登録に関わる設定のみを格納する構成を取っても良い。例えばここでは、設定項目724は、別のトランザクションの登録指示の処理に関わるため、設定項目724のみを格納する構成であっても良い。また、設定項目はここに例示するものには限定されない。例えば、「登録指示されたトランザクションに適用する設定」か、「登録指示されたトランザクションを元文書と指定している別のトランザクションに適用する設定」か、は例示したものに限定されてない。さらに、例えば、「登録システム情報が一致しない場合」、「登録日時が一定基準より離れている場合」など、他の条件の場合におけるブロックチェーン装置111の登録処理に関する設定項目があっても良い。
図8は、文書管理装置102のUI制御部UIがNIC309を介してPC103に送信され、PC103のディスプレイ306に表示される画面例である。
図8(A)の認証画面800はユーザが文書管理装置102の機能を利用するためにユーザ認証を行う機能を提供するための画面例である。ユーザ名入力フィールド801は、ユーザ名を入力するためのフィールドである。パスワード入力フィールド802はパスワードを入力するためのフィールドである。ログインボタン803はユーザ認証を実行するためのボタンである。ユーザがPC103のディスプレイ306に表示されたログインボタン803を押下した場合、ユーザ認証処理部502はユーザ名入力フィールド801とパスワード入力フィールド802に入力された値を元にユーザ認証を行う。
図8(B)の文書管理画面810はユーザに文書管理装置102の文書管理機能を提供するための画面例である。文書管理装置102は、改訂記録DB521から改訂履歴を取得し、文書管理リスト811に、電子文書DB520に保存されている各電子文書のうち最新バージョンの電子文書を表示する。文書管理リスト811には左から順に選択欄、文書名、文書のバージョン、文書の更新日、文書の更新者といった、電子文書DB520および改訂記録DB521に保存された電子文書に関する情報を表示する。
表示ボタン812は、文書管理リスト811で選択されている文書の内容を表示するボタンである。ダウンロードボタン813は、文書管理リスト811で選択されている文書を、本画面を表示している装置にダウンロードするためのボタンである。
改訂記録表示ボタン814は、文書管理リスト811で選択されている文書の改訂記録を表示するボタンであり、改訂記録画面については図8(C)で後述する。
文書入力フィールド815は、文書の新規保存、文書の更新を行う際に、ユーザがPC103内に保存されている文書を指定するためのフィールドである。
新規保存ボタン816は、文書入力フィールド815で指定された文書を文書管理リスト811に登録するボタンである。ユーザが新規保存ボタン816を押下すると、文書管理装置102は、文書入力フィールド815で指定された文書を電子文書DB520に保存し、文書管理リスト811に文書情報を追加して表示し、最初の改訂履歴として改訂記録DB521に記録する。
更新保存ボタン817は、文書管理リスト811で選択されている文書を、文書入力フィールド815で指定された文書に更新するボタンである。ユーザは、電子文書DB520に保存された電子文書の内容変更を行う場合、文書管理リスト811の電子文書をダウンロードし、PC103で文書の内容を変更した後、変更した文書を指定して、更新保存ボタン817によって更新する。ユーザが更新保存ボタン817を押下すると、文書管理装置102は、文書入力フィールド815で指定された文書を電子文書DB520に保存する。そして、文書管理装置102は文書管理リスト811で選択されている文書のバージョンを1つ増やし、改訂履歴として改訂記録DB521に記録する。改訂記録DB521には、文書管理リスト811で選択されている文書が、文書入力フィールド815で指定された文書に更新されたことを示す記録が保存される。削除ボタン818は文書管理リスト811で選択されている文書を削除するボタンである。ユーザが削除ボタン818を押下すると、文書管理装置102は、文書管理リスト811で選択されている文書の表示を削除し、電子文書DB520および改訂記録DB521から、関連する電子文書と改訂記録を削除する。印刷ボタン819は文書管理リスト811で選択されている文書を印刷指示するボタンである。ユーザが印刷ボタン830を押下すると、文書管理装置102は、画像形成装置101に、文書管理リスト811で選択されている文書の印刷指示を送る。検証ボタン831は文書管理リスト811で選択されている文書を検証指示するボタンである。ユーザが検証ボタン831を押下すると、文書管理装置102は、ブロックチェーン装置111に、文書管理リスト811で選択されている文書の検証指示を送る。
図8(C)の改訂記録画面820は、ユーザに文書管理装置102の改訂記録機能を提供するための画面例である。文書管理画面810で、ユーザが改訂記録表示ボタン814を押下すると、改訂記録画面820には、文書管理リスト811で選択された文書の改訂記録テーブル821を表示する。文書管理装置102は、改訂記録DB521に保存された記録情報から、関連する電子文書を特定し、電子文書DB520に保存された関連する電子文書の情報を改訂記録テーブル821に表示する。つまり、改訂記録テーブル821には、文書管理リスト811で選択された文書と、その文書の更新前の電子文書の情報を表示する。改訂記録テーブル821には、左から順に選択欄、文書名、文書のバージョン、文書の更新日、文書の更新者といった情報を表示する。表示ボタン822は、改訂記録テーブル821で選択されている文書の内容を表示するボタンである。ダウンロードボタン823は、改訂記録テーブル821で選択されている文書を、PC103にダウンロードするためのボタンである。印刷ボタン824は改訂記録テーブル821で選択されている文書を印刷指示するボタンである。ユーザが印刷ボタン832を押下すると、文書管理装置102は、画像形成装置101に、改訂記録テーブル821で選択されている文書の印刷指示を送る。ユーザが検証ボタン833を押下すると、文書管理装置102は、ブロックチェーン装置111に、文書管理リスト811で選択されている文書の検証指示を送る。
図9(A)は、文書管理装置102が、ブロックチェーン装置111に文書に対応するトランザクションを登録指示する処理と、文書管理装置102の基本的な処理の流れを示したフローチャートである。ユーザが、認証画面800で認証処理を行い、文書管理画面810の新規保存ボタン816もしくは更新保存ボタン817を押下して文書を保存する際の処理の流れを示す。
まずユーザは、文書管理装置102を利用するため、認証画面800にてユーザ情報を入力し、ログインボタン803を押下する。そのあと、文書管理装置102のユーザ認証部502はS9001で、入力されたユーザ情報とユーザ情報DB503を照合し、入力されたユーザ情報がユーザ情報DB503にあればS9003に処理を進め、なければS9002に進む。S9002で、文書管理装置102は認証に失敗した旨をユーザに通知する。
S9003で、文書管理装置102は、ユーザに指示された機能が文書の新規保存、更新保存、もしくはそのどちらでもない操作かを判定する。ユーザが文書管理画面の新規保存ボタン816を押下した場合は、S9004に処理を進める。ユーザが更新保存ボタン817を押下した場合は、文書管理装置102はS9005に処理を進める。ユーザが他のボタンを押下した時は、文書管理装置102はS9012に処理を進める。
S9004で、文書管理装置102の文書管理部504は、文書入力フィールド815で指定された文書をバージョン「1」として電子文書DB520に保存する。そして、文書管理部504は文書管理リスト811に文書情報を追加して表示し、最初の改訂履歴として改訂記録DB521に記録する。そして、文書管理部504は保存した電子文書をブロックチェーンプラグイン506に渡し、処理をS9006に進める。
S9005で、文書管理装置102の文書管理部504は、文書管理リスト811で選択されている文書名とそのバージョン情報から、更新前の電子文書を電子文書DB520から特定する。そして、文書入力フィールド815で指定された文書を更新後の文書として電子文書DB520に保存し、更新後の文書のバージョンとして、特定した更新前の文書のバージョンから1つ増やした値を設定する。さらに改訂履歴として、更新する文書の「文書名」「更新前バージョン」「更新後バージョン」「更新日」「更新者」を改訂記録DB521に記録する。文書の改訂を終えると、文書管理部504は特定した更新前の電子文書と、保存した更新後の電子文書をブロックチェーンプラグイン506に渡す。
S9006で、文書管理装置102のブロックチェーンプラグイン506はブロックチェーン装置111に登録指示するためのトランザクション701の生成を行う。ブロックチェーンプラグイン506は、S9004で渡された新規保存された電子文書、もしくはS9005で渡された更新保存した電子文書から、ハッシュ値を算出する。算出されたハッシュ値を文書ハッシュ値702格納する。登録システム情報704には、ブロックチェーンプラグイン506がクレデンシャル情報管理部510からクレデンシャル情報507を取得し、格納する。文書登録日時705には、この処理時点の日時を格納する。文書登録者706には、ブロックチェーンプラグイン506がユーザ認証処理部502からクレデンシャル情報506を取得し、格納する。
S9007で、ブロックチェーンプラグイン506は、S9006で生成したトランザクションの文書属性508に、ブロックチェーンプラグイン506が“オリジナル文書”という値を格納する。
S9008で、ブロックチェーンプラグイン506は、S9003でユーザから指示された処理が新規保存か更新保存かを判定する。新規保存の場合はS9010に処理を進め、更新保存の場合は、S9009に処理を進める。
S9009で、ブロックチェーンプラグイン506は、S9005で文書管理部504に渡された更新前の電子文書からハッシュ値を算出し、その値をS9006で生成したトランザクションの元文書ハッシュ値707に格納する。
S9010で、ブロックチェーンプラグイン506はポリシー設定508を取得し、その設定値をS9006で生成したトランザクションのポリシー設定709に格納する。
S9011で、ブロックチェーンプラグイン506は、S9006~S9010で生成・値格納したトランザクション701を含めた登録指示をブロックチェーン装置111に送信し、本フローチャートは終了する。
S9012で、文書管理装置102は、ユーザに指示された機能が検証、印刷、もしくはそのどちらでもない操作かを判定する。ユーザが文書管理画面の検証ボタン831、もしくは検証ボタン833を押下した場合は、S9014に処理を進める。ユーザが印刷ボタン830、もしくは印刷ボタン832を押下した場合は、文書管理装置102はS9017に処理を進める。ユーザが他のボタンを押下した時は、文書管理装置102はS9013に処理を進める。
S9013で、文書管理装置102の文書管理部504は、ユーザに指示された文書管理機能の処理を実行し、本フローチャートを終了する。
S9014で、文書管理装置102の文書管理部504は、文書管理リスト811で選択されている文書名とそのバージョン情報から、電子文書DB520から電子文書を取得し、ブロックチェーンプラグイン506に渡す。ブロックチェーンプラグイン506は渡された電子文書からハッシュ値を算出する。
S9015で、文書管理装置102のブロックチェーンプラグイン506は、S9014で算出したハッシュ値が登録されているかブロックチェーン装置111に検証指示を行う。
S9016で、文書管理装置102のブロックチェーンプラグイン506は、UI制御部501を介して、S9015で検証指示した結果を表示して、本フローチャートを終了する。
S9017で、文書管理装置102の文書管理部504は、文書管理リスト811で選択されている文書名とそのバージョン情報から、電子文書DB520から電子文書を取得し、取得した電子文書と共に画像形成装置101に印刷指示を送信する。ここでは図示していないが、文書管理装置102が画像形成装置101に印刷指示と電子文書を送信すると、画像形成装置101は、ユーザ指示があるまで印刷する電子文書をHDD204に保存する。文書管理部504が印刷指示を送信すると、本フローチャートを終了する。
なお本実施例では、文書管理装置102と、画像形成装置101やPC103などが分かれた構成で示したが、ここで例示した文書管理装置102による文書の新規保存や更新保存の機能を、画像形成装置101やPC103が行う構成でも良い。
図9(B)は、文書管理装置104が、ブロックチェーン装置111に文書に対応するトランザクションを登録指示する処理と、文書管理装置104の基本的な処理の流れを示したフローチャートである。
図9(B)に示すS9001~S9006、S9008~S9017の処理は図9(A)に示すものと同様である。図9(A)に示す文書管理装置102の処理と比較して、文書管理装置104は、S9006の処理は行わない。つまり、文書管理装置102と異なり、文書管理装置104は、S9006で生成したトランザクションの文書属性508には値を設定しない。
このように、本実施例のシステムでは、文書属性に“オリジナル文書”を設定しない装置も含まれる構成となっている。
図9(C)は、画像形成装置101が行うブロックチェーン装置111と関わる処理の流れを示すフローチャートである。ユーザが、印刷物をブロックチェーン装置111に登録したい場合や、印刷物がブロックチェーン装置111に登録されているかをスキャン検証したい場合の画像形成装置101の処理の流れを示す。例えば、ユーザが文書管理装置102、もしくは104で印刷指示を行うと、文書管理装置102、もしくは104は画像形成装置101に印刷指示を行う。そのあとユーザが画像形成装置101を使って印刷指示した文書の印刷を行う過程で、画像形成装置101が本フローチャートに示す処理を実施する。
S9101で、画像形成装置101のユーザ認証処理部402は、画像形成装置101を利用するユーザがユーザ情報DB403にあるかを判定する。ユーザの情報は、文書管理装置102がUIを介して情報取得したように、ローカルUI制御部400、もしくは、リモートUI制御部401を介して、ユーザに入力してもらう情報を参照すれば良い。ユーザ情報がユーザ情報DB403にあればS9103に処理を進め、なければS9102に進む。S9102で、画像形成装置101は認証に失敗した旨をユーザに通知する。
S9103で、画像形成装置101は、ユーザからの指示が、印刷物をブロックチェーン装置111に登録して印刷する機能か、印刷物がブロックチェーン装置111に登録されているかをスキャン検証する機能か、もしくはその他の操作であるかを判定する。それぞれの機能ごとのUIを、ローカルUI制御部400、もしくは、リモートUI制御部401を介してユーザに表示することで、画像形成装置101はユーザがどの機能のUIを操作したかを判断すれば良い。ユーザ指示が、印刷物をブロックチェーン装置111に登録して印刷する機能で合った場合は、画像形成装置101はS9104に処理を進める。ユーザ指示が、印刷物がブロックチェーン装置111に登録されているかをスキャン検証する機能であった場合は、画像形成装置101はS9109に処理を進める。ユーザ指示が、例えば文書の印刷のみ行う機能や、文書のスキャン保存のみを行う機能などブロックチェーン装置に関わらない機能であった場合は、S9112に処理を進める。
S9104で、画像形成装置101のアプリケーション404はS9017で送信された印刷する文書をHDD204から取得する。アプリケーション404は取得した文書を画像形成装置101のブロックチェーンアプリケーション406に渡す。そして、S9105で、ブロックチェーンアプリケーション406はブロックチェーン装置111に登録指示するためのトランザクション701の生成を行う。ここでブロックチェーンアプリケーション406は、文書ハッシュ値702には、クレデンシャル情報管理部410から取得できるクレデンシャル情報407とその時点での日時情報からハッシュ値を算出し、その値を格納する。1台の画像形成装置101で同時刻に印刷される文書はないため、この2つの要素からハッシュ値を算出することで、印刷文書を一意に識別するための情報として利用できる。登録システム情報704には、ブロックチェーンアプリケーション406がクレデンシャル情報管理部410からクレデンシャル情報407を取得し、格納する。文書登録日時705には、この処理時点の日時を格納する。文書登録者706には、ブロックチェーンアプリケーション406がユーザ認証処理部402からクレデンシャル情報405を取得し、格納する。元文書ハッシュ値707には、S9104でアプリケーション404から渡された文書から、ハッシュ値を算出し、その値を格納する。ポリシー設定709には、ポリシー設定508から取得した設定値を格納する。
S9106で、ブロックチェーンアプリケーション406は、S9105で生成したトランザクション701を含めた登録指示をブロックチェーン装置111に送信する。
S9107で、ブロックチェーンアプリケーション406は、文書ハッシュ値702の値をコード化した画像を生成する。コード化した画像は画像形成装置101を代表とした、ブロックチェーン装置111に検証指示するシステムがデコードして再びハッシュ値の文字列に復元できる形式であれば良い。たとえば、ハッシュ値をそのまま文字列として画像や、暗号化した文字列の画像、文字列をQRなどの2次元バーコードにした画像、文字列をパターン化した画像、人の目では認識が難しい不可視の画像とする構成がある。ブロックチェーンアプリケーション406は、文書ハッシュ値702の値をコード化した画像をS9104で、アプリケーション404から渡された電子文書に、文書ハッシュ値702の値をコード化した画像を合成し、印刷文書用の画像を生成する。ブロックチェーンアプリケーション406は生成した画像をアプリケーション404に渡す。
S9108で、アプリケーション404は、S9107でブロックチェーンアプリケーション406から渡された印刷文書用の画像を、プリンタ210を使って印刷し、本フローチャートを終了する。
S9109で、画像形成装置101のアプリケーション404は、スキャナ211を使って、スキャン検証を行う紙文書をスキャンし、電子データとしてHDD204に保存する。そして、アプリケーション404は、スキャンした電子データをブロックチェーンアプリケーション406に渡す。
S9110で、ブロックチェーンアプリケーション406は、S9109で渡された電子データからコードを読み込み、ブロックチェーン装置111に問い合わせを行うための文字列にデコードする。そして、ブロックチェーンアプリケーション406は、ブロックチェーン装置111にデコードして取得した文字列と一緒に検証指示を送る。
S9111で、ブロックチェーンアプリケーション406は、ローカルUI制御部400、もしくは、リモートUI制御部401を介して、S9110で検証指示した結果を表示して、本フローチャートを終了する。
S9112で、画像形成装置101のアプリケーション404は、ユーザ指示に応じて画像形成装置101の印刷機能やスキャン機能などを実施して、本フローチャートを終了する。
なお、本実施例では文書管理装置102、もしくは104が送信した文書を印刷する例を示しているが、印刷する文書はこの形態に限るものではない。PC102から送信された文書であっても良いし、画像形成装置101に保存された文書の印刷や、クラウドのストレージサービスなど外部に保存された文書を印刷する構成で合っても良い。
図9(D)は、ブロックチェーン装置111におけるトランザクションの登録処理の流れを示すフローチャートである。
S9201で、ブロックチェーン装置111の処理制御部601は、画像形成装置101、文書管理装置102、PC103、文書管理装置104といった外部装置からトランザクションのブロックチェーンへの登録指示を受信する。そして、外部装置から受信したトランザクション701から登録システム情報704と文書登録者706、すなわちクレデンシャル情報405、407、505、507を取得し、その値を認証処理部602に渡してS9202に処理を進める。S9202では、ブロックチェーン装置111の認証処理部602は、S9201で渡されたクレデンシャル情報がアカウント情報DB603に含まれるかを照合する。含まれる場合はS9204に処理を進め、含まれない場合はS9203で認証エラーを登録指示した外部装置に通知する。
S9204で、処理制御部601はブロックデータ管理部604に受信したトランザクション701をブロックデータ管理部604に渡す。そして、ブロックデータ管理部604は、渡されたトランザクション701の文書属性708の値が“オリジナル文書“であるかを判定する。オリジナル文書であった場合はS9205に処理を進め、オリジナル文書ではない場合はS9214に処理を進める。
S9205で、ブロックデータ管理部604は、受信したトランザクション701のポリシー設定709を取得し、設定項目722で元文書がブロックチェーンに未登録の場合に、登録処理を許容しない設定になっているかを判定する。許容しない設定の場合はS9206に処理をすすめ、許容する設定の場合はS9211に処理を進める。
S9206で、ブロックデータ管理部604は、受信したトランザクション701の元文書ハッシュ値707を取得し、その値が分散台帳605に未登録かを判定する。分散台帳605に未登録であれば、S9207でポリシー設定により登録処理を中断するエラーを登録指示した外部装置に通知し、分散台帳605に登録済みであれば、S9208に処理を進める。
S9208で、ブロックデータ管理部604は、受信したトランザクション701の設定項目723で元文書がオリジナル文書としてブロックチェーンに未登録の場合に、登録処理を許容しない設定になっているかを判定する。許容しない設定の場合はS9209に処理をすすめ、許容する設定の場合はS9211に処理を進める。
S9209で、ブロックデータ管理部604は、S9206で登録済みと判定した元文書に対応するトランザクションの文書属性708の値が“オリジナル文書“として分散台帳605に登録されていないかを判定する。分散台帳605にオリジナル文書として登録されていない場合は、S9210でポリシー設定により登録処理を中断するエラーを登録指示した外部装置に通知し、分散台帳605にオリジナル文書として登録済みであれば、S9211に処理を進める。
S9211で、ブロックデータ管理部604は、S9206で登録済みと判定した元文書に対応するトランザクションのポリシー設定709を取得する。そして、元文書のポリシー設定である設定項目724で、登録者情報が一致しない場合に登録処理を許容しない設定になっているかを判定する。登録処理を許容しない設定の場合はS9212に処理を進め、許容する設定の場合はS9214に処理を進める。
S9212で、ブロックデータ管理部604は、受信したトランザクション701と、S9206で登録済みと判定した元文書に対応するトランザクションそれぞれの登録システム情報704、文書登録者706が一致していないかを判定する。各トランザクションの登録システム情報704と文書登録者706が一致しない場合にはS9213でポリシー設定により登録処理を中断するエラーを登録指示した外部装置に通知し、一致する場合にはS9214に処理を進める。
S9214で、ブロックデータ管理部604は、受信したトランザクション701の分散台帳605への登録処理を行い、本フローチャートは終了する。
本実施例では、S9212で、登録システム情報704と文書登録者706の双方が一致するかを判定したが、いずれか一方のみを判定する構成でも良い。またS9214でブロックデータ管理部604が登録処理を行った後に、登録結果を登録指示した外部装置に通知する構成でも良い。なお、ここでは、S9204~S9213の処理をブロックチェーン装置111で行う構成を示した。しかし、登録指示する装置、すなわち画像形成装置101、文書管理装置102、104、PC103が、図9(D)で説明する検証機能を使って実施する構成でも良い。
図9(E)は、ブロックチェーン装置111におけるトランザクションの検証処理の流れを示すフローチャートである。
S9301で、ブロックチェーン装置111の処理制御部601は、画像形成装置101、文書管理装置102、PC103といった外部装置から文書がブロックチェーン登録済みかの検証指示を受信する。検証の際には、外部装置から文書ハッシュ値のみを受信する。
S9302で、処理制御部601は、受信した文書ハッシュ値に対応するトランザクション701が分散台帳605に登録されていないかを判定する。分散台帳605に登録されていない場合は、S9303で文書は未登録である結果を検証指示した外部装置に通知し、分散台帳605に登録されていればS9304に処理を進める。
S9304で、処理制御部601は、S9302で登録済みと判定したトランザクション701の文書属性708がオリジナル文書として分散台帳605に登録されていないかを判定する。分散台帳605にオリジナル文書として登録されていない場合はS9305に処理を進め、登録されている場合はS9310に処理を進める。
S9305で、処理制御部601は、S9302で登録済みと判定したトランザクション701の元文書ハッシュ値707に対応するトランザクションが、分散台帳605に登録されているかを判定する。元文書に対応するトランザクションが分散台帳605に登録されている場合はS9307に処理を進め、登録されていない場合は、S9306で文書は複製文書である結果を検証指示した外部装置に通知する。
S9307で、処理制御部601は、S9305で登録済みと判定した元文書に対応するトランザクションの文書属性708がオリジナル文書として分散台帳605に登録されているかを判定する。オリジナル文書として分散台帳605に登録されていた場合は、S9308で、文書はオリジナル文書から複製された文書である結果を検証指示した外部装置に通知する。オリジナル文書として分散台帳605に登録されていない場合は、S9309で、文書は複製文書から複製された文書である結果を検証指示した外部装置に通知する。
S9310で、処理制御部601は、S9302で登録済みと判定したトランザクション701の元文書ハッシュ値707に対応するトランザクションが、分散台帳605に登録されているかを判定する。元文書に対応するトランザクションが分散台帳605に登録されている場合はS9312に処理を進め、登録されていない場合は、S9311で文書は新規保存されたオリジナル文書である結果を検証指示した外部装置に通知する。
S9312で、処理制御部601は、S9310で登録済みと判定した元文書に対応するトランザクションの文書属性708がオリジナル文書として分散台帳605に登録されているかを判定する。オリジナル文書として分散台帳605に登録されていた場合は、S9313で、文書は更新保存されたオリジナル文書である結果を検証指示した外部装置に通知する。オリジナル文書として分散台帳605に登録されていない場合は、S9314で、文書は複製文書から保存されたオリジナル文書である結果を検証指示した外部装置に通知する。検証指示した外部装置に通知すると、本フローチャートは終了する。
本実施例では、S9304で、ブロックチェーン装置111が分散台帳605に登録されたトランザクションの文書属性の判定を行う構成を示したが、外部装置が行う構成を取っても良い。例えば、ブロックチェーン装置111が、検証指示した外部装置に、分散台帳605に登録されたトランザクションを送信すれば、検証指示した装置が文書属性の判定することができる。また、本実施例では検証機能を利用する際に認証処理を行わない構成を示したが、検証機能においてもS9202、S9203のように外部装置からクレデンシャル情報を受信し、認証を行う構成を取っても良い。
以上、本実施例によれば、ユーザが文書の内容変更を行い、文書管理装置102に保存すると、S9007で文書属性708に格納した“オリジナル文書“という情報を、S9214で文書情報とともにブロックチェーンである分散台帳605に登録できる。また、ユーザが文書の検証を行う場合、画像形成装置101、文書管理装置102、PC103を介して文書検証を行うことで、S9304で分散台帳に対応する文書のトランザクションがオリジナル文書として登録されていることを確認できる。これにより、ユーザは、ブロックチェーン装置を介して、検証する文書が、「文書管理装置102に正しく保存された文書」であると判断することができる。逆に言えば、ユーザは、ブロックチェーン装置を介して、検証する文書が、「複製された文書ではない」と判断することができる。そして、S9310、S9311、S9313にて、オリジナル文書の元文書の分散台帳の登録状況を確認することで、文書が文書管理装置102に新規保存された文書か、更新保存された文書かを判断できる。これにより、ユーザは、ブロックチェーン装置を介して、検証する文書が、「更新保存された文書、すなわち内容変更された文書」であると判断することができる。加えて、ブロックチェーン装置を介しているため、画像形成装置101や文書管理装置102のユーザでなくても文書の検証ができる上に、文書属性を含めた文書に関する情報の耐改ざん性も高い。
本実施例では、ポリシー設定を用いて、S9206、S9209、S9212の制限を判断するような例を示したが、ポリシー設定709は必ずしも必要なわけではない。例えば、ポリシー設定は特定のシステムだけに閉じて利用する構成とし、基本的な構成としては、ポリシー設定の運用はせずにS9206、S9209、S9212の制限を行う構成にしても良い。その場合、基本的な構成は、オリジナル文書は、別のオリジナル文書(非複製文書)しか元文書として指定できない構成にできる。これにより、文書管理装置102の新規保存、あるいは更新保存のケースでしかオリジナル文書であるトランザクションが分散台帳605に登録されなくなる。そのため、分散台帳605のオリジナル文書であるトランザクションのつながりを文書の改訂記録として扱うことができるようになる。つまり、ユーザは、「S9313にて更新保存されたオリジナル文書という結果になった文書の元文書」に対して、再帰的に、ブロックチェーン装置を介した文書の検証を行うことで、文書管理装置102の改訂履歴と同様の文書の更新状況を確認することができる。
さらに本実施例のS9212の処理により、文書管理装置102がブロックチェーン装置111に登録した文書を、別の装置が元文書と指定することを防ぐことができる。分散台帳605に登録されたオリジナル文書のつながりに、別の登録システム(もしくはユーザ)が入ることを防ぐことで、分散台帳605に登録されたオリジナル文書のつながりを、さらに正確性の高い改訂履歴として扱うことができる。
本実施例で示すポリシー設定709により、特定のシステムにおいて、S9206、S9209、S9212の制限を緩和することも可能となる。
本実施例では、文書属性708に“オリジナル文書“という情報を格納せずにブロックチェーン装置111にトランザクションの登録指示をするような画像形成装置101、文書管理装置104を含めたシステム構成を示した。しかし、画像形成装置101、文書管理装置104といった、文書属性708に“オリジナル文書“を格納しない装置を含めないシステム構成であっても良い。
<実施例2>
実施例1では、文書管理装置102が文書属性708に“オリジナル文書“を格納することで、ブロックチェーン装置111に登録する文書を、内容変更された文書か複製された文書か見分けることができた。一方で、世の中に普及済みの文書管理装置においては、ソフトウェアのバージョンアップができず、ユーザが利用する文書管理装置が文書管理装置102と同様の処理を行えないケースもある。そのような場合においても、課題を解決する本発明を実施するための実施例2について図面を用いて説明する。
図10は、本実施例におけるブロックチェーンサービスに関連するシステムの全体図である。画像形成装置101、PC103、LAN100、インターネット110は図1で示したものと同様であるため、ハードウェア構成、ソフトウェア構成も含め、説明を省略する。ブロックチェーン装置111も図1で示したものと同様であるため、ハードウェア構成も含め説明を省略する。文書管理装置105は、情報処理装置の一例であり、内容変更された文書という情報は含めずに、電子文書に関する情報をブロックチェーン装置111に登録指示する装置である。文書管理装置105のハードウェア構成は図3と同様であり、ソフトウェア構成は図5と同様であるため説明を省略する。なお、別の構成として、文書管理装置102や、文書管理装置104を含めるシステム構成であっても良い。
本実施例におけるブロックチェーン装置111に関連するトランザクション、ブロックチェーンにおけるブロックのデータ構造や、ポリシー設定例に関しては図7(A)、(B)に示すものと同様であるため説明を省略する。
図11は、本実施例におけるブロックチェーン装置111において本発明に関連するソフトウェア構成について示したブロック図である。601、602、604、605は図6に示すものと同様のため説明を省略する。アカウント情報DB610は、サービスを利用する装置、システム、ユーザの情報を保持する。認証処理部602は、クレデンシャル情報405、407、505、507といったクレデンシャル情報と、アカウント情報DB610の情報を照合することで、認証処理を行う。アカウント情報DBの例を表6に示す。
表6では、アカウント名が保存されている。認証処理部602は、クレデンシャル情報405、407、505、507といったクレデンシャル情報を復号し、複合した文字列が表6に示すアカウント名に含まれるか照合することで、認証処理を行うことができる。そして、表6ではさらに、オリジナル文書を作成するアカウントであるか否かを示す設定と、図7(B)に示すポリシー設定項目と同様の設定が保存されている。処理制御部601は、アカウント情報DB610に保存されたアカウント情報を参照することで、ブロックチェーン装置111を利用する装置、システム、ユーザの、オリジナル文書を作成するアカウントであるかの設定や、ポリシー設定を取得することができる。アカウント情報DB610に保存する情報は、ブロックチェーン装置111の管理者が事前に保存しておけば良い。
本実施例における文書管理装置105の処理の流れは図9(B)に、画像形成装置101の処理の流れは図9(C)に示すものと同様であるため、説明を省略する。また、本実施例におけるブロックチェーン装置111のトランザクションの検証処理の流れは図9(E)に示すものと同様であるため、説明を省略する。
図12は本実施例におけるブロックチェーン装置111におけるトランザクションの登録処理の流れを示すフローチャートである。S9201でブロックチェーン装置111の処理制御部601は、画像形成装置101、文書管理装置105、PC103といった外部装置からトランザクションのブロックチェーンへの登録指示を受信すると本フローチャートが開始する。なお、S9201~S9214における処理は、図9(D)に示すものと同様であるため説明を省略する。S9202で、ブロックチェーン装置111の認証処理部602は、S9201で渡されたクレデンシャル情報がアカウント情報DB603に含まれるかを照合し、含まれている場合はS9401に処理を進める。
S9202で、ブロックチェーン装置111の処理制御部601は、アカウント情報DB610で認証を行ったアカウントがオリジナル文書を作成するアカウントであるか否かの情報を、認証処理部602から受け取る。表6に示す「オリジナル文書を作成するアカウント」の項目に「〇」があれば、処理制御部601はS9402に処理を進める。「オリジナル文書を作成するアカウント」の項目に「〇」がなければ、処理制御部601はS9204に処理を進める。
S9402で、処理制御部601は、S9201で外部装置から受信したトランザクションの文書属性708に“オリジナル文書”が格納されているかを判定する。文書属性708に“オリジナル文書”格納されていない場合、処理制御部601はS9403に処理を進め、文書属性708に“オリジナル文書”格納されていた場合、処理制御部601はS9204に処理を進める。
S9403で、処理制御部601は、S9201で外部装置から受信したトランザクションの文書属性708に“オリジナル文書”を格納する。
S9404で、処理制御部601は、アカウント情報DB610で認証を行ったアカウントのポリシー設定に関する情報を、認証処理部602から受け取る。
S9405で、処理制御部601は、S9403のトランザクションの文書属性709に、S9402で認証処理部602から受け取ったポリシー設定を格納し、S9204に処理を進める。
以上、本実施例によれば、ユーザが利用する文書管理装置が文書管理装置102と同様の処理を行えないケースがあっても、分散台帳605にトランザクションを登録する前に、文書属性708に“オリジナル文書”を格納することができる。したがって、ユーザが文書の検証を行う場合、画像形成装置101、文書管理装置102、PC103を介して文書検証を行うことで、S9304で分散台帳に対応する文書のトランザクションがオリジナル文書として登録されていることを確認できる。これにより、ユーザは、ブロックチェーン装置を介して、検証する文書が、「文書管理装置102に正しく保存された文書」であると判断することができる。
<その他の実施例>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。