(57)【要約】  本願では、データ共有方法が提供されている。該方法は、鍵で平文データを暗号化することにより、暗号化データを取得するステップと、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードするステップであって、前記情報共有システムがブロックチェーンシステムである、ステップと、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードするステップと、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信するステップと、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信するステップであって、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含む。本願では、相応のクライアント、サーバ、コンピューティングデバイス、及び記憶媒体も提供されている。
2021502023.tif 000002
【特許請求の範囲】
【請求項１】
第１クライアントにより実行されるデータ共有方法であって、
鍵で平文データを暗号化することにより、暗号化データを取得するステップと、
前記暗号化データを、情報共有システムにおける１つのブロックにアップロードするステップであって、前記情報共有システムがブロックチェーンシステムである、ステップと、
前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードするステップと、
前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信するステップと、
あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにさせるステップであって、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む、ステップと、
を含む方法。
【請求項２】
前記暗号化データを前記情報共有システムにおける前記ブロックにアップロードする際に、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子とをさらにアップロードすることにより、前記情報共有システムが、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、前記アクセス許可サーバが、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記情報共有システムにおける前記ブロックから前記暗号化データを取得するようにさせる、
請求項１に記載の方法。
【請求項３】
前記鍵の前記第１部分を前記アクセス許可サーバにアップロードする際に、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、前記アクセス許可サーバが、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成するようにさせる、
請求項２に記載の方法。
【請求項４】
前記許可コードへの取り消し要求を前記アクセス許可サーバに送信することにより、前記アクセス許可サーバが前記許可コードを失効させるようにさせるステップと、
ローカルの前記許可コードを失効させるステップと、
をさらに含む請求項１に記載の方法。
【請求項５】
前記暗号化データへの許可コード更新要求を前記アクセス許可サーバに送信することにより、前記アクセス許可サーバが、前記暗号化データに対応する新たな許可コードを生成し、元の前記許可コードを前記新たな許可コードに置き換えるようにさせるステップと、
前記アクセス許可サーバから前記新たな許可コードを受信し、元の前記許可コードを前記新たな許可コードに置き換えるステップと、
をさらに含む請求項１に記載の方法。
【請求項６】
アクセス許可サーバにより実行されるデータ共有方法であって、
第１クライアントから第１鍵の第１部分を受信するステップであって、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである、ステップと、
前記暗号化データに対応する第１許可コードを生成するステップと、
前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにさせるステップであって、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含み、
いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、
前記アクセス要求から、第２許可コード及び不完全な鍵を取得するステップと、
前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである、ステップと、
前記情報共有システムにおける前記ブロックから、前記暗号化データを取得するステップと、
前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信するステップと、
をさらに含む方法。
【請求項７】
前記第１クライアントから前記鍵の前記第１部分を受信する際に、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信し、
前記暗号化データに対応する第１許可コードを生成するステップは、
前記保有者のユーザ識別子に対応する規則に従って、前記第１許可コードを生成し、前記第１許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるステップと、
前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記第１許可コードと前記鍵の前記第１部分とを取得するステップと、を含む、
請求項６に記載の方法。
【請求項８】
前記ブロックが、ブロックの高さに対応するものであり、
生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものであり、
前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得し、
前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する、
請求項６に記載の方法。
【請求項９】
前記第１クライアントからの、前記許可コードへの取り消し要求に応じて、前記第１許可コードを失効させるステップと、
前記第１クライアントに応答を返信することにより、前記第１クライアントがローカルの前記第１許可コードを失効させるようにさせるステップと、
をさらに含む請求項６に記載の方法。
【請求項１０】
前記第１クライアントからの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成するステップと、
前記暗号化データに対応する前記新たな許可コードを前記第１クライアントに送信するステップと、
をさらに含む請求項６に記載の方法。
【請求項１１】
前記第１クライアントからの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換えるステップと、
前記暗号化データに対応する前記新たな許可コードを前記第１クライアントに送信することにより、前記第１クライアントが元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせるステップと、
をさらに含む請求項６に記載の方法。
【請求項１２】
第１クライアントであって、
鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュールと、
前記暗号化データを、情報共有システムにおける１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュールと、
前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、
を備える第１クライアント。
【請求項１３】
アクセス許可サーバであって、
第１クライアントから第１鍵の第１部分を受信し、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、
いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュールをトリガーする検証モジュールと、
前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュールと、
前記情報共有システムにおける前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュールと、
を備えるアクセス許可サーバ。
【請求項１４】
コンピューティングデバイスであって、
１つ又は複数のプロセッサと、
メモリと、
該メモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備え、
前記１つ又は複数のプログラムには、請求項１〜１１のいずれか１項に記載の方法を実行するための命令が含まれる、
コンピューティングデバイス。
【請求項１５】
１つ又は複数のプログラムを記憶した記憶媒体であって、前記１つ又は複数のプログラムには、命令が含まれ、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、請求項１〜１１のいずれか１項に記載の方法を実行させる記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１７年１１月２日に中国特許庁に提出された、出願番号が２０１７１１０６５７８３．１であり、発明の名称が「データ共有方法、クライアント、サーバ、コンピューティングデバイス、及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は参照することにより本願に組み込まれる。
【０００２】
本願は、コンピュータ技術分野に関し、特に、データ共有方法、クライアント、サーバ、コンピューティングデバイス、及び記憶媒体に関する。
【背景技術】
【０００３】
インターネット技術の発展に伴い、情報共有システムが登場している。ユーザーは、自身の保有しているデータ（例えば、ピクチャ、文書、動画などのファイル）を情報共有システムにアップロードすることが可能になり、他のユーザーが情報共有システムを介してこれらのデータにアクセスすることを許可することも可能になる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで、これらのデータのセキュリティを確保するために、情報共有システムは、例えば、あるユーザからあるファイルへのアクセスが要求されると、このユーザから提供された情報を検証するなどの技術的手段を用いる必要がある。
【課題を解決するための手段】
【０００５】
本願の実施例では、第１クライアントにより実行されるデータ共有方法が提供されている。この方法は、鍵で平文データを暗号化することにより、暗号化データを取得するステップと、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードするステップであって、前記情報共有システムがブロックチェーンシステムである、ステップと、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードするステップと、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信するステップと、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにさせるステップであって、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含む。
【０００６】
また、本願の実施例では、データ共有方法が提供されている。この方法は、第１クライアントから第１鍵の第１部分を受信するステップであって、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである、ステップと、前記暗号化データに対応する第１許可コードを生成するステップと、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにさせるステップであって、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含み、いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得するステップと、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである、ステップと、前記情報共有システムにおける前記ブロックから、前記暗号化データを取得するステップと、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信するステップと、をさらに含む。
【０００７】
本願の実施例では、第１クライアントが提供されている。この第１クライアントは、鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュールと、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュールと、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、を備える。
【０００８】
本願の実施例では、アクセス許可サーバが提供されている。このアクセス許可サーバは、第１クライアントから第１鍵の第１部分を受信し、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュールをトリガーする検証モジュールと、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュールと、前記情報共有システムにおける前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュールと、を備える。
【０００９】
また、本願の実施例では、コンピューティングデバイスが提供されている。このコンピューティングデバイスは、１つ又は複数のプロセッサと、メモリと、該メモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備え、前記１つ又は複数のプログラムには、上記の方法を実行するための命令が含まれる。
【００１０】
また、本願の実施例では、１つ又は複数のプログラムを記憶した記憶媒体が提供されている。前記１つ又は複数のプログラムには、命令が含まれ、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに上記の方法を実行させる。
【図面の簡単な説明】
【００１１】
本願の実施例の構成をより明確に説明するために、以下、実施例の説明に必要な図面を簡単的に紹介する。明らかに、以下の説明における図面は本願のいくつかの実施例を示しているにすぎず、当業者にとって、創造的な労働をせずに、これらの図面から他の図面を得ることもできる。
【図１】本願の実例に係るシステムアーキテクチャ図である。
【図２】本願の実例の方法のフローチャートである。
【図３】本願の実例の方法のフローチャートである。
【図４】本願の実例のメッセージのやり取り図である。
【図５】本願の実例のユーザ画面図である。
【図６】本願の実例のユーザ画面図である。
【図７】本願の実例におけるクライアントの構成の模式図である。
【図８】本願の実例におけるサーバの構成の模式図である。
【図９】本願の実例におけるコンピューティングデバイスの構成の模式図である。
【発明を実施するための形態】
【００１２】
以下では、簡潔かつ直感的な説明のために、いくつかの典型的な実施例を説明することにより、本発明の構成を述べる。しかし、すべての実施形態がここに示されるわけではない。実施例における大量の細部は、本発明の構成の理解を助けるためにのみ使用される。本発明の構成の実現は、これらの細部に限定されなくてもよい。本発明の構成を不必要に曖昧にすることを回避するために、いくつかの実施形態は、細かく説明されず、フレームワークのみが与えられる。以下では、「含む」とは、「含むが、これらに限定されない」ことを意味し、「…に基づく」とは、「少なくとも…に基づくが、…のみに基づくことに限定されない」ことを意味する。明細書及び請求の範囲における「含む」とは、ある程度で少なくとも含むことを意味し、その前に言及された特徴以外に他の特徴も存在してもよいと解釈されるべきである。
【００１３】
本願の実施例では、データ共有方法が提供されている。この方法は、図１に示すシステムアーキテクチャに適用可能である。図１に示すように、このシステムアーキテクチャは、第１クライアント１０１と、第２クライアント１０２と、アクセス許可サーバ１０３と、情報共有システム１０４と、を含む。これらのエンティティは、インターネット１０５を介して通信可能である。ここで、情報共有システム１０４は、ユーザによりアップロードされる様々なデータを格納する。ユーザが情報共有システム１０４におけるデータにアクセスすることも可能である。実際のネットワークでは、多数のクライアント１０１／１０２があり得る。情報共有システム１０４にアップロードされた１つのデータは、１つの第１クライアント１０１に対応する。第１クライアント１０１は、このデータの保有者及びアップローダーが使用するクライアントであり、共有者クライアントとも呼ばれる。このデータは、１つ又は複数の第２クライアント１０２にも対応する。第２クライアント１０２は、このデータへのアクセスを要求するユーザが使用するクライアントであり、訪問者クライアント又は閲覧者クライアントとも呼ばれる。アクセス許可サーバ１０３は、直接に又はインターネット１０５を介して、情報共有システム１０４に接続可能であり、情報共有システム１０４へのアクセスサービス（具体的に閲覧許可サービスと呼ばれてもよい）を提供する。第２クライアント１０２は、そのアクセスしようとするデータを、アクセス許可サーバ１０３を介して、情報共有システム１０４から取得する。具体的には、第２クライアント１０２は、あるデータへのアクセス要求（具体的に閲覧要求と呼ばれてもよい）をアクセス許可サーバ１０３に送信する。アクセス許可サーバ１０３は、このアクセス要求を認証して、第２クライアント１０２に対応するユーザがこのデータにアクセスする権限を有するか否かを検証し（例えば、アクセス要求における許可コードを検証し）、認証を通過した場合、アクセス要求に付された鍵情報に基づいて、情報共有システム１０４から取得された暗号化データを復号化処理し、復号化された平文データの取得に成功できれば、この平文データを第２クライアント１０２に返信する。
【００１４】
ここで、第１クライアント１０１及び第２クライアント１０２は、共有データにアクセス可能な様々なＡＰＰクライアント又はブラウザであってもよい。第１クライアント１０１及び第２クライアント１０２は、ＰＣ、携帯電話、タブレットコンピュータ、パームトップコンピュータ、ウルトラブック、ウェアラブルデバイスなどを含む様々な端末機器上で実行可能である。情報共有システム１０４は、ブロックチェーンシステム（ブロックチェーンネットワークとも呼ばれる）、データベースシステム、ネットワークディスク／クラウドディスクシステムなどを含むが、これらに限定されない様々な集中型又は分散型のデータ記憶システムであってもよい。情報共有システム１０４に記憶されたデータは、デジタル資産、認証サービス、共有台帳、共有経済などのシナリオを含む様々なビジネスシナリオで生成されたデータに関わることが可能である。
【００１５】
ここで、デジタル資産（Ｄｉｇｉｔａｌ  ａｓｓｅｔｓ）とは、企業が所有または制御する、電子データの形で存在する非貨幣資産であって、販売のために日常活動で保有される非貨幣資産、又は生産プロセスにおける非貨幣資産を指す。デジタル資産は、オフィスオートメーションの恩恵を受けて生まれたものである。デジタル資産は、電子決済システムに頼って発展し、共有ポイント、クーポン、デジタル通貨、株式の登録などのシナリオに使用される。認証サービスは、著作権／所有権の保護、司法文書の保全、公益寄付、個人・企業の証明などのビジネスシナリオに使用される。共有台帳は、機関間清算、銀行ファクタリング、機関間協調融資、サプライチェーンファイナンス、海外送金などのビジネスシナリオに使用される。ブロックチェーンは、時系列に沿ってデータブロックを順につながっていくように結合するチェーンデータ構造であり、暗号学的な方式で確保される改ざん不可能で偽造不可能な分散型台帳である。ブロックチェーンシステムは、真新しいタイプの分散インフラストラクチャであり、ブロックチェーンデータ構造を使用してデータを検証・格納し、分散ノードコンセンサスアルゴリズムを使用してデータを生成・更新し、暗号学的な方式でデータの伝送・アクセスのセキュリティを確保し、自動化スクリプトコードで構成されるスマートコントラクトを使用して、プログラミングとデータの操作とを行う。
【００１６】
いくつかのビジネスシナリオでは、情報共有システム１０４にアップロードするデータを暗号化する必要があり、かつ、データアクセスの許可を行う必要がある。つまり、一部のデータが条件付きで共有され、これらのデータは、例えば、個人又は機関の実名認証情報、金融口座情報、フォトアルバム、オリジナル作品、共有認証が必要な情報などであり、ユーザのプライバシーデータと呼ばれてもよい。ユーザは、これらのデータを、内容が公にならないが特定の人々間で共有可能になるように共有したいため、データを暗号化して情報共有システム１０４に格納し、その後、特定のユーザへの閲覧許可をする。
【００１７】
本願の実施例では、端末機器の第１クライアント１０１に適用可能なデータ共有方法が提供されている。図１には、第１クライアント１０１が１つのみ示されているが、実際の応用シナリオでは、第１クライアント１０１が複数、ひいては大量あり得、第１クライアント１０１のいずれもこの方法を実現可能である。図２に示すように、この方法の手順２００は、以下のステップを含む。
【００１８】
ステップ２０１で、第１クライアント１０１は、鍵で平文データを暗号化することにより、暗号化データを取得する。
【００１９】
ステップ２０２で、第１クライアント１０１は、前記暗号化データを、情報共有システム１０４における１つのブロックにアップロードし、前記情報共有システムはブロックチェーンシステムである。
【００２０】
ここで、ユーザがデータをアップロードしたい場合、ユーザが使用する第１クライアント１０１は、予め設定された鍵でこのデータ（即ち、平文データ）を暗号化し、暗号化データを情報共有システム１０４にアップロードする。
【００２１】
ステップ２０３で、第１クライアント１０１は、前記鍵の第１部分を、情報共有システム１０４に対応するアクセス許可サーバ１０３にアップロードする。
【００２２】
ここで、情報共有システム１０４に対応するアクセス許可サーバ１０３とは、情報共有システム１０４と接続されるアクセス許可サーバ１０３を指す。
【００２３】
ここで、鍵は文字列である。鍵とされるこの文字列を２つの文字列に分割し、この２つの文字列をそれぞれ鍵の第１部分及び第２部分としてもよい。本ステップにおいて、鍵の第１部分をアクセス許可サーバ１０３にアップロードする。いくつかの実例では、鍵の前半を第１部分として、鍵の後半を第２部分としてもよい。他のいくつかの実例では、鍵の後半を第１部分として、鍵の前半を第２部分としてもよい。ここで、第１部分と第２部分との長さは、同じであっても、異なっていてもよい。いくつかの実例では、鍵を分割する際に、予め設定された、文字列の長さの値（即ち、予め設定された、文字列に含まれる文字の数）に応じた長さの文字列を鍵の第１部分として分割し、残りの文字列を鍵の第２部分としてもよい。
【００２４】
ステップ２０４で、第１クライアント１０１は、アクセス許可サーバ１０３から、前記暗号化データに対応する許可コードを受信する。
【００２５】
いくつかの実例では、アクセス許可サーバ１０３は、第１クライアント１０１からアップロードされた、ある暗号化データに対する鍵の第１部分を受信すると、この暗号化データに対して許可コードを生成し、この許可コードを第１クライアント１０１に返信する。具体的には、アクセス許可サーバ１０３は、このデータをアップロードしたユーザに対応する規則に従って、許可コードを生成してもよい。
【００２６】
ステップ２０５で、あるユーザによる前記暗号化データへのアクセスを許可する際に、第１クライアント１０１は、前記許可コードと前記鍵の第２部分とを前記ユーザのクライアント（即ち、対応の第２クライアント１０２）に送信することにより、第２クライアント１０２が、前記暗号化データへのアクセス要求をアクセス許可サーバ１０３に送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む。
【００２７】
このように、アクセス許可サーバ１０３は、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、情報共有システム１０４における前記ブロックから取得された前記暗号化データを復号化処理し、復号化によって取得された前記平文データを第２クライアント１０２に提供する。
【００２８】
いくつかの実例では、あるユーザは、この暗号化データを閲覧したい場合、該ユーザが使用する第２クライアント１０３を介して、第１クライアント１０１に許可コードを要求し、第１クライアント１０１は、このユーザによるデータへの閲覧を許可すると決定した場合、この許可コードと上記鍵の第２部分とを第２クライアント１０２に送信する。
【００２９】
いくつかの実例では、アクセス許可サーバ１０３は、鍵の第１部分及び第２部分を結合してもよい。これにより、鍵の第１部分及び第２部分を完全な前記鍵として組み合わせることができる。アクセス許可サーバ１０３は、第２クライアント１０２から取得された鍵の第２部分と、第１クライアント１０１から取得された鍵の第１部分とが、同一の鍵に属しない場合、鍵の第１部分及び鍵の第２部分を正しい鍵として結合することができず、さらに復号化に失敗することになり、第２クライアント１０２は、平文データを取得できない。アクセス許可サーバ１０３は、第２クライアント１０２に、失敗応答を返信してもよいし、又は暗号化データを返信してもよい。このように、第２クライアント１０２は、データの内容を閲覧することに成功できない。これにより、第１クライアント１０１からアップロードされたデータのセキュリティが効果的に確保される。
【００３０】
上記の実例で提供された方法によれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、第２クライアント１０２が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及び第２クライアント１０２から取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。第２クライアント１０２から提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、第２クライアント１０２及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。このように、情報共有システム１０４に格納された、ユーザが公開したくない暗号化データの場合、第１クライアント１０１は、アクセス許可サーバ１０３を介して、いくつかの第２クライアント１０２による暗号化データの平文へのアクセスを許可することができる。これにより、情報共有とプライバシー保護とのバランスがとれ、より良い情報共有メカニズムが提供される。
【００３１】
上記の実例は、ブロックチェーンのデータ共有シナリオに適用可能である。アクセス許可サーバ１０３は、プライバシーデータ閲覧許可のサービスを提供している。このサービスは、共有情報システムにおけるブロックチェーンに提供される、データプライバシー保護のためのオプションサービスに属し、情報共有ブロックチェーン、デジタル資産ブロックチェーンなどのシナリオに適用可能であり、ユーザが公開したくないデータを保護すると共に、独立した許可によって、一部の人がこれらのデータを閲覧できるようにさせることもできる。ブロックチェーンが共有を原則とするものであるため、すべてのユーザがブロックチェーンにおけるデータを自由に閲覧できる。現時点で許可されているか否かを問わず、ユーザが自由に閲覧できるが、アクセス許可サーバ１０３を介して閲覧されたデータのみが、復号化された平文データである。あるユーザーは、ブロックチェーンにおいて直接に閲覧する場合、取得されたのが暗号化データであり、平文データを取得できない。
【００３２】
いくつかの実例では、ステップ２０４において、第１クライアント１０１は、許可コードを受信した後、さらに、前記暗号化データのアクセストークン（データ閲覧トークンと呼ばれてもよい）を生成してもよい。このアクセストークンには、前記許可コードと、前記鍵の前記第２部分とが含まれる。ステップ２０５において、前記許可コードと、前記鍵の第２部分とを前記第２クライアント１０２に送信することは、具体的に、前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる、ことを含んでもよい。このように、第１クライアント１０１は、許可コードと鍵の第２部分とを第２クライアント１０２に送信した。ここで、許可コード及び鍵のそれぞれは、数字及び／又は文字で構成される文字列であってもよく、許可コードと鍵の第２部分とから構成されるアクセストークンは、数字及び／又は文字で構成される文字列であってもよい。この実例では、第１クライアント１０１は、第２クライアント１０２にトークンを発行することにより、相応のユーザが第１クライアント１０１からアップロードされた暗号化データにアクセスすることを許可することができる。また、発行されたトークンに完全な鍵がなく、完全な鍵を取得して復号化処理を行うために、アクセス許可サーバ１０３におけるさらなる検証を行わなければならない。これにより、データのセキュリティが効果的に確保される。
【００３３】
いくつかの実例では、ステップ２０２において、前記暗号化データを情報共有システム１０４にアップロードする際に、第１クライアント１０１は、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子（通常、現在第１クライアント１０１を使用しているユーザの識別子）とをさらにアップロードすることにより、情報共有システム１０４が、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、アクセス許可サーバ１０３が、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、情報共有システム１０４から前記暗号化データを取得するようにさせる。ここで、暗号化データをアップロードする際に、暗号化データのファイル識別子と、暗号化データの保有者のユーザ識別子との両方が情報共有システム１０４に伝送され、情報共有システム１０４は、この暗号化データを格納する際に、この暗号化データと、ファイル識別子、及び保有者のユーザ識別子とを関連付ける。アクセス許可サーバ１０３は、情報共有システム１０４から、ある暗号化データを検索する際に、検索要求にファイル識別子と保有者のユーザ識別子とを付する。このように、情報共有サーバ１０４は、ファイル識別子、及び保有者のユーザ識別子に関連付けられた暗号化データを決定して、この暗号化データをアクセス許可サーバ１０３に返信することができる。
【００３４】
いくつかの実例では、ステップ２０３において、前記鍵の前記第１部分をアクセス許可サーバ１０４にアップロードする際に、第１クライアント１０１は、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、アクセス許可サーバ１０３が、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるようにさせる。アクセス許可サーバ１０３は、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分と（アクセス許可サーバ１０３がローカルでメンテナンスする、前記暗号化データに対応する許可コードと鍵の第１部分とであってもよい）を取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成する。
【００３５】
いくつかの実例では、アクセス許可サーバ１０３には、各ユーザ毎に、許可コードを生成するための規則が予め設定されている。この規則では、生成する許可コードでアクセス可能なデータアドレスや失効時間などを指定してもよい。上記のデータアドレスは、例えば、ブロックチェーンにおけるブロックの高さや、ユニフォームリソースロケータ（ＵＲＬ）アドレスなどであってもよい。いくつかの実例では、ステップ２０３において、第１クライアント１０１が鍵の第１部分をアップロードすると、アクセス許可サーバ１０４は、同時にアップロードされた、暗号化データの保有者のユーザ識別子に基づいて、許可コードの生成に使用する規則を決定してもよい。その後、アクセス許可サーバ１０３は、アクセス要求を受信すると、現在アクセスが要求される暗号化データに対応する許可コード（即ち、ファイル識別子、及び保有者のユーザ識別子に関連付けられた許可コード）をローカルで検索してもよい。アクセス要求に付された許可コードと、ローカルで検索された許可コードとが一致する場合は、アクセス要求に付された許可コードが合法的であることを表す。さらに、許可コードの期限が切れているか否か（例えば、失効時間に達したか否か、又はまだ有効使用期間内にあるか否か）を検証し、及び／又は、現在アクセスが要求される暗号化データのアドレスが、許可コードに対応するアクセス可能なデータアドレスに属するか否かを検証してもよい（例えば、ブロックチェーンのシナリオでは、現在閲覧が要求されるデータのブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証する。また例えば、共有写真のシナリオでは、現在閲覧が要求されるアルバムフォルダが、許可コードでアクセス可能なフォルダであるか否かを検証する。）。検証を通過した場合、許可コードが使用可能であると決定する。ブロックチェーンシナリオでのいくつかの実例では、第２クライアント１０２から送信されたアクセス要求に、閲覧するデータのファイル識別子を付けてもよい。アクセス許可サーバ１０３は、ファイル識別子に基づいて、データが位置するブロックの高さを決定でき、さらに、決定されたこのデータのブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証できる。他のいくつかの実例では、第２クライアント１０２から送信されたアクセス要求に、データのブロックの高さを直接に付けてもよい。アクセス許可サーバ１０３は、アクセス要求に付されたブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証できる。
【００３６】
許可コードが使用可能であると決定した場合、取得された、ファイル識別子、及び保有者のユーザ識別子に関連付けられた鍵の第１部分と、アクセス要求に付された、鍵の第２部分とを、完全な鍵として組み合わせてもよい。この組み合わせの方式は、２つの部分を簡単的に結合してもよい。
【００３７】
いくつかの実例では、ステップ２０４において、第１クライアント１０１は、許可コードを受信すると、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成し、前記アクセストークンと前記ファイル識別子とを関連付けてもよい。ステップ２０５において、前記許可コードと、前記鍵の第２部分とを第２クライアント１０２に送信することは、具体的に、前記ファイル識別子に関連付けられた前記アクセストークンを第２クライアント１０２に送信することにより、第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる、ことを含んでもよい。
【００３８】
ここで、第１クライアント１０１では、１つ又は複数のアクセストークンがメンテナンスされ、第１クライアント１０１からアップロードされた各々のデータが１つのアクセストークンに対応し、即ち、各々のファイル識別子が１つのアクセストークンに関連付けられる。このように、第２クライアント１０２が第１クライアント１０１にデータアクセス許可を要求すると、第１クライアント１０１が許可を承認する場合、第１クライアント１０１は、対応のアクセストークンを決定し、このアクセストークンを第２クライアント１０２に発行してもよい。なお、第２クライアント１０２は、あるデータ、又は一定の条件に合うデータ集合、又はすべてのデータへのアクセス許可を要求する可能性があり、第１クライアント１０１は、対応する１つ又は複数のアクセストークンを第２クライアント１０２に送信してもよい。
【００３９】
いくつかの実例では、ステップ２０４の後に、上記方法は、第１クライアント１０１が、前記許可コードへの取り消し要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が前記許可コードを失効させるようにさせる、ことをさらに含んでもよい。これと同時に、第１クライアント１０１も、ローカルの前記許可コードを失効させる。ここで、ある許可コードへの取り消し要求に、この許可コードに対応するファイル識別子を付けてもよい。アクセス許可サーバ１０３は、ファイル識別子に基づいて、このファイル識別子に対応する許可コードを決定でき、さらに、例えば、この許可コードの状態を失効に設定し、又はこの許可コードを削除するなど、この許可コードを失効させることができる。アクセス許可サーバ１０３は、前記許可コードを失効させた後、第１クライアント１０１に応答を返信してもよい。第１クライアント１０１は、応答を受信すると、ローカルの許可コードを失効させる。これにより、この許可コードの取り消しのプロセス全体が完了する。
【００４０】
このように、第１クライアント１０１は、アクセス許可サーバ１０３が、アップロードされたデータに対して、許可コードを生成するようにさせることができるだけでなく、この許可コードの取り消しをアクセス許可サーバ１０３に要求することもできる。許可コードが取り消された後、第２クライアント１０２が、データアクセスを要求する際に、この許可コード、又はこの許可コードが含まれるアクセストークンを使用した場合、この許可コードが使用不可と検証され、アクセス要求が拒絶され、第２クライアント１０２が、このデータにアクセスできなく、又は、暗号化データのみを取得できるが復号化された平文データを取得できない。このように、データアクセスの動的許可方式が形成される。あるデータを共有したユーザは、必要に応じて、対応の許可コードを取り消すことができる。これにより、以前に許可コードを取得してこのデータにアクセスできたユーザは、このデータにアクセスできなくなる。
【００４１】
いくつかの実例では、ある暗号化データの許可コードを取り消した後、第１クライアント１０１は、さらに、この暗号化データへの許可コード生成要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が、この暗号化データに対応する新たな許可コードを生成するようにしてもよい。その後、第１クライアント１０１は、アクセス許可サーバ１０３から、この暗号化データに対応する新たな許可コードを受信する。このように、ユーザは、以前に許可されたユーザが暗号化データの平文にアクセスできないように、許可コードを随時取り消すことができるだけでなく、ユーザによる暗号化データの平文へのアクセスを再び許可するように、新たな許可コードの生成を要求することもでき、柔軟なデータアクセス許可が実現される。
【００４２】
いくつかの実例では、第１クライアント１０１は、許可コードを得た後、アクセス許可サーバ１０３に許可コードの更新を要求することもできる。このとき、第１クライアント１０１により取得された許可コードは、まだ削除されておらず、又は、まだ使用されていない。ここで、第１クライアント１０１は、ある暗号化データへの許可コード更新要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が、この暗号化データに対応する新たな許可コードを生成し、元の許可コードをこの新たな許可コードに置き換えるようにさせる。その後、第１クライアント１０１は、アクセス許可サーバ１０３から、この新たな許可コードを受信し、元の許可コードをこの新たな許可コードに置き換える。このように、許可コード更新プロセスによれば、第１クライアント１０１は、以前に許可を得たユーザが暗号化データの平文にアクセスできなくなるように、元の許可コードを取り消すことができると共に、新たな許可コードを取得でき、後続にいくつかのユーザへの許可をすることができる。
【００４３】
いくつかの実例では、上記の許可コード取り消し要求、許可コード生成要求、及び許可コード更新要求が共存可能であり、ユーザが、必要に応じて、許可コードの取り消し、新たな許可コードの生成、又は許可コードの更新を選択でき、より完璧な動的許可方式が実現される。
【００４４】
本願の実例では、アクセス許可サーバ１０３に適用可能なデータ共有方法が提供されている。図３に示すように、この方法の手順３００は、以下のステップを含む。
【００４５】
ステップ３０１で、第１クライアント１０１から第１鍵の第１部分を受信し、前記第１鍵が、情報共有システム１０４における１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである。
【００４６】
ステップ３０２で、前記暗号化データに対応する第１許可コードを生成する。
【００４７】
ステップ３０３で、前記第１許可コードを第１クライアント１０１に送信することにより、第１クライアント１０１が、第２クライアント１０２による前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを第２クライアント１０２に送信するよう実現させ、第２クライアント１０２が、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む。
【００４８】
ステップ３０４で、いずれか１つのクライアント（許可を得た上記第２クライアント１０２である可能性があり、許可を得ていない他のクライアントである可能性もある）からの、前記暗号化データへのアクセス要求を受信すると、下記のステップを実行する。
【００４９】
ステップ３０５で、前記アクセス要求から、第２許可コード及び不完全な鍵を取得する。
【００５０】
ステップ３０６で、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである。
【００５１】
ステップ３０７で、情報共有システム１０４における前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する。
【００５２】
上記の実例で提供された方法によれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、あるクライアント（許可を得た第２クライアント１０２である可能性があり、他のクライアントである可能性もある）が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及びこのクライアントから取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。このクライアントから提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、許可を得た第２クライアント１０２、及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。このように、情報共有システム１０４に格納された、ユーザが公開したくない暗号化データの場合、第１クライアント１０１は、アクセス許可サーバ１０３を介して、いくつかの第２クライアント１０２による暗号化データの平文へのアクセスを許可することができる。これにより、情報共有とプライバシー保護とのバランスがとれ、より良い情報共有メカニズムが提供される。
【００５３】
いくつかの実例では、ステップ３０５において、前記アクセス要求から、第２許可コード及び不完全な鍵を取得することは、具体的に、前記アクセス要求から、前記暗号化データのアクセストークンを取得し、前記アクセストークンから、前記第２許可コード及び前記不完全な鍵を取得する、ことを含んでもよい。
【００５４】
いくつかの実例では、ステップ３０１において、前記第１クライアントから前記鍵の前記第１部分を受信する際に、アクセス許可サーバ１０３は、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信する。ステップ３０２において、前記暗号化データに対応する第１許可コードを生成することは、具体的に、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と保有者のユーザ識別子とに基づいて、前記アクセス要求に付されたファイル識別子と保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得する、ことを含んでもよい。
【００５５】
いくつかの実例では、前記ブロックが、ブロックの高さに対応するものである。ステップ３０２において、生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものである。ステップ３０６において、前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得する。前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する。
【００５６】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記許可コードへの取り消し要求に応じて、前記許可コードを失効させる、ことをさらに含んでもよい。アクセス許可サーバ１０３は、前記許可コードを失効させた後、第１クライアント１０１に応答を返信してもよい。第１クライアント１０１は、応答を受信すると、ローカルの許可コードを失効させる。これにより、この許可コードの取り消しのプロセス全体が完了する。このように、ユーザは、必要に応じて、いくつかのユーザ又はデータへの共有を取り消すために、いくつかのデータに対応する許可コードを取り消すことができる。例えば、あるデータの許可コードを以前に得た第２クライアント１０２は、この許可コードが失効した場合、再びこの許可コードでこのデータへのアクセスを要求すると、この許可コードが使用不可と検証されるため、このデータにアクセスできない。
【００５７】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、前記暗号化データに対応する前記新たな許可コードを第１クライアント１０１に送信する、ことをさらに含んでもよい。このように、ユーザは、あるデータの許可コードを取り消した後、いくつかのユーザによるこのデータへのアクセスを再び許可するように、新たな許可コードを要求することもでき、柔軟なデータアクセス許可が実現される。
【００５８】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換え、前記暗号化データに対応する前記新たな許可コードを第１クライアント１０１に送信することにより、第１クライアント１０１が元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせる、ことをさらに含んでもよい。
【００５９】
図４には、本願の一実施例におけるメッセージのやり取りの手順が示されている。図４に示すように、この手順は、少なくとも、第１クライアント１０１、第２クライアント１０２、アクセス許可サーバ１０３、及び情報共有システム１０４の４つのエンティティに関わり、下記のような処理ステップを含んでもよい。
【００６０】
ステップ４０１で、第１クライアント１０１は、暗号鍵を保有し、情報共有システム１０４にアップロードしようとするデータに対して暗号化処理を行うことにより、暗号化データを取得する。
【００６１】
第１クライアント１０１は、この暗号化データを情報共有システム１０４にアップロードし、暗号化データをアップロードすると共に、この暗号化データに関連付けられた、この暗号化データの保有者のユーザ識別子、ファイル識別子を情報共有システム１０４に送信する。例えば、第１クライアント１０１は、保有者のユーザ識別子と、ファイル識別子と、暗号化データとが付されたデータアップロード要求を情報共有システム１０４に送信してもよい。ここで、前記保有者のユーザ識別子は、例えば、ＱＱ番号、クラウドディスクアカウント、ブロックチェーンシステムアカウントなど、現在第１クライアント１０１にログインしているユーザの識別子であり、ファイル識別子は、暗号化データを識別するためのものである。
【００６２】
情報共有システム１０４は、第１クライアント１０１からアップロードされた暗号化データを格納して、この暗号化データと、保有者のユーザ識別子、及びファイル識別子とを関連付けてもよい。これにより、この暗号化データを、保有者のユーザ識別子に対応するディレクトリに格納して、ファイル識別子でこの暗号化データを識別する。
【００６３】
図５のシナリオでは、第１クライアント１０１がネットワークディスククライアントであり、情報共有システム１０４がクラウド側のネットワークディスクサーバ（又は、クラウドディスクサーバと略称される）である。ユーザは、このネットワークディスククライアントを使用して、写真、動画などのファイルをアップロードできる。例えば、コントロールユニット５０１をタップすると、写真をアップロードでき、コントロールユニット５０２をタップすると、動画をアップロードできる。ユーザは、アップロードする写真及び動画のプライバシーを確保したい場合、アップロードするデータをネットワークディスククライアントが暗号化するように設定してもよい。このように、ネットワークディスククライアントは、上記ステップ４０１の暗号化処理を実行することになる。
【００６４】
ステップ４０２で、第１クライアント１０１は、ステップ４０１における暗号化に使用された鍵の前半（鍵前半と呼ばれてもよい）をアクセス許可サーバ１０３にアップロードし、この暗号化データに関連付けられた保有者のユーザ識別子もアクセス許可サーバに送信する。例えば、第１クライアント１０１は、暗号化データの保有者のユーザ識別子と鍵前半とが付された鍵アップロード要求をアクセス許可サーバ１０３に送信してもよい。
【００６５】
アクセス許可サーバ１０３は、前記保有者のユーザ識別子に対応する規則に従って、許可コードを生成し、許可コードと、鍵前半、及び前記保有者のユーザ識別子とを関連付けてから、許可コードを第１クライアント１０１に返信する。
【００６６】
ステップ４０３で、第１クライアント１０１は、ステップ４０１における暗号化に使用された鍵の後半（鍵後半と呼ばれてもよい）と、受信された許可コードとをデータ閲覧トークンとして組み合わせ、このデータ閲覧トークンと上記暗号化データのファイル識別子とを関連付ける。
【００６７】
第１クライアント１０１は、上記暗号化データの平文データを第２クライアント１０２が閲覧可能なように許可する際に、上記データ閲覧トークンを第２クライアント１０２に提供してもよい。例えば、第２クライアント１０２は、あるデータへの閲覧許可を第１クライアント１０１に要求するために、ターゲットファイル情報が付された許可要求を第１クライアント１０１に送信し、第１クライアント１０１は、ターゲットファイル情報に基づいて、第２クライアント１０２が閲覧したいデータ集合に対応するファイル識別子集合を決定できる。このターゲットファイル情報は、ファイル識別子を含んでもよいし、フォルダの識別子又はディレクトリアドレスなどであってもよい。第１クライアント１０１は、相応のファイル識別子集合を決定でき、さらに、ファイル識別子集合によって、ファイル識別子集合に関連付けられたデータ閲覧トークンを決定できる。ここで、１つのファイル識別子集合（１つ又は複数のファイル識別子）は、１つのデータ閲覧トークンに関連付けられてもよい。これは、第１クライアント１０１が１つのファイル集合を一括して第２クライアント１０２に許可することを表す。１つのファイル識別子集合は、複数のデータ閲覧トークンに関連付けられてもよい。ここで、異なるファイル識別子は、異なるデータ閲覧トーク運に関連付けられる。これは、第１クライアント１０１がファイル毎にそれぞれデータ閲覧トークンを第２クライアント１０２に提供することを表す。
【００６８】
ステップ４０４で、第２クライアント１０２は、上記データ閲覧トークンを保有すると、上記暗号化データの保有者のユーザ識別子と、ファイル識別子と、このデータ閲覧トークンとが付された閲覧要求をアクセス許可サーバ１０３に送信する。
【００６９】
図６のシナリオでは、第２クライアント１０２が、ブロックチェーンページにアクセスするブラウザであり、情報共有システム１０４がブロックチェーンシステムである。ユーザは、ブロックチェーンページにアクセスすることにより、様々な情報を閲覧できる。一部の情報がプライベートであり、ユーザは、データ閲覧トークンを持っている場合にしか、平文データを閲覧できない。例えば、ユーザがコントロールユニット６０１をタップすると、閲覧要求を送信するために、ステップ４０４が実行される。閲覧要求に付されたデータ閲覧トークンには、正しい使用可能な許可コードと正しい鍵後半とが含まれる場合、ブラウザは、「詳細」という項目に対応する平文データが含まれる第２ページを表示させることができる。
【００７０】
ステップ４０５で、アクセス許可サーバ１０３は、受信された閲覧要求から、データ閲覧トークン、上記保有者のユーザ識別子、及びファイル識別子を抽出し、データ閲覧トークンから許可コードを抽出し、この許可コードが使用可能であるか否かを決定する。ここで、アクセス許可サーバ１０３が、許可コードが使用可能であるか否かを決定することは、２つの側面を含む。一、データ閲覧トークンから抽出された許可コードが、ローカルに格納されている、この保有者のユーザ識別子に関連付けられた許可コードと同じであるか否かを決定し、データ閲覧トークンから抽出された許可コードが、ローカルで検索された許可コードと一致する場合は、データ閲覧トークンに付された許可コードが合法的であることを表す。二、この２つの許可コードが同じであると決定した場合、さらに、許可コードの期限が切れているか否か（例えば、失効時間に達したか否か、又はまだ有効使用期間内にあるか否か）を検証し、及び／又は、現在閲覧が要求される暗号化データのアドレスが、許可コードに対応するアクセス可能なデータアドレスに属するか否かを検証する。
【００７１】
この許可コードが使用可能であると決定した場合、アクセス許可サーバ１０３は、許可コードに関連付けられた鍵前半を取得し、データ閲覧トークンから鍵後半を抽出し、鍵前半と鍵後半とを完全な鍵として組み合わせる。
【００７２】
また、アクセス許可サーバ１０３は、上記保有者のユーザ識別子と、ファイル識別子とが付された検索要求を情報共有システム１０４に送信することにより、情報共有サーバ１０４が、この保有者のユーザ識別子と、ファイル識別子とに基づいて、この保有者のユーザ識別子と、ファイル識別子とに関連付けられた暗号化データを検索し、この暗号化データをアクセス許可サーバ１０３に送信するようにさせる。
【００７３】
ステップ４０６で、ステップ４０５で取得された完全な鍵で暗号化データを復号化処理する。データ閲覧トークンから抽出された鍵後半が正確である場合、ステップ４０５において正確で完全な鍵を取得することができ、本ステップにおいて復号化に成功することにより、復号化データ（即ち、平文データ）を取得すると共に、第２クライアント１０２に復号化データを返信することができる。データ閲覧トークンから抽出された鍵後半が間違った場合、ステップ４０５で取得された鍵が間違ったものであり、本ステップにおいて復号化に成功できない。この場合、第２クライアント１０２にエラーを報告してもよいし、第２クライアント１０２に暗号化データを直接に返信してもよい。要するに、第２クライアント１０２は、平文データの閲覧に成功できない。さらに、第１クライアント１０１からアップロードされたデータのセキュリティが確保される。
【００７４】
上記各ステップのいずれに処理が失敗しても、本手順を直接に終了すればよい。
【００７５】
上記の方法の実例に基づき、本願の実施例では、上記方法を実現可能なクライアント（第１クライアント１０１であってもよい）も提供されている。図７に示すように、第１クライアント７００は、
鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュール７０１と、
前記暗号化データを、情報共有システム１０４における１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システム１０４に対応するアクセス許可サーバ１０３にアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュール７０２と、
前記アクセス許可サーバ１０３から、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを第２クライアント１０２に送信することにより、前記第２クライアント１０２が、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバ１０３が、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システム１０４における前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアント１０２に前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュール７０３と、を備える。
【００７６】
いくつかの実例では、許可モジュール７０３は、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成する。ここで、前記許可モジュール７０３は、前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる。
【００７７】
いくつかの実例では、前記暗号化データを前記情報共有システム１０４にアップロードする際に、前記アップロードモジュール７０２は、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子とをさらにアップロードすることにより、前記情報共有システム１０４が、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、前記アクセス許可サーバ１０３が、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記情報共有システム１０４から前記暗号化データを取得するようにさせる。
【００７８】
いくつかの実例では、前記鍵の前記第１部分を前記アクセス許可サーバ１０３にアップロードする際に、前記アップロードモジュール７０２は、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、前記アクセス許可サーバ１０３が、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成するようにさせる。
【００７９】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成し、前記アクセストークンと前記ファイル識別子とを関連付ける。ここで、前記許可モジュール７０３は、前記ファイル識別子に関連付けられた前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる。
【００８０】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記許可コードへの取り消し要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が前記許可コードを失効させるようにさせる。また、前記許可モジュール７０３は、ローカルの前記許可コードを失効させる。
【００８１】
いくつかの実例では、前記許可モジュール７０３は、前記暗号化データへの許可コード生成要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が、前記暗号化データに対応する新たな許可コードを生成するようにさせる。また、前記許可モジュール７０３は、前記アクセス許可サーバ１０３から、前記暗号化データに対応する前記新たな許可コードを受信する。
【００８２】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記暗号化データへの許可コード更新要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が、前記暗号化データに対応する新たな許可コードを生成し、元の前記許可コードを前記新たな許可コードに置き換えるようにさせる。また、前記許可モジュール７０３は、前記アクセス許可サーバ１０３から前記新たな許可コードを受信し、元の前記許可コードを前記新たな許可コードに置き換える。
【００８３】
上記の方法の実例に基づき、本願の実施例では、上記方法を実現可能なアクセス許可サーバ（例えば、上記のアクセス許可サーバ１０３）も提供されている。図８に示すように、このサーバ８００は、
第１クライアント１０１から第１鍵の第１部分を受信し、前記第１鍵が、情報共有システム１０４における１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアント１０１に送信することにより、前記第１クライアント１０１が、第２クライアント１０２による前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアント１０２に送信するよう実現させ、前記第２クライアント１０２が、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュール８０１と、
いずれか１つのクライアント（例えば、第２クライアント１０２）からの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュール８０３をトリガーする検証モジュール８０２と、
前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュール８０３と、
前記情報共有システム１０４における前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュール８０４と、を備えてもよい。
【００８４】
いくつかの実例では、前記検証モジュール８０２は、前記アクセス要求から前記暗号化データのアクセストークンを取得し、前記アクセストークンから前記第２許可コード及び前記不完全な鍵を取得する。
【００８５】
いくつかの実例では、前記許可モジュール８０１は、前記第１クライアント１０１から前記鍵の前記第１部分を受信する際に、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信する。前記許可モジュール８０１は、前記保有者のユーザ識別子に対応する規則に従って、前記第１許可コードを生成し、前記第１許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付ける。前記検証モジュール８０２は、前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子に基づいて、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子に関連付けられた前記第１許可コードと前記鍵の前記第１部分とを取得する。
【００８６】
いくつかの実例では、前記ブロックが、ブロックの高さに対応するものであり、前記許可モジュール８０１により生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものであり、前記検証モジュール８０２は、前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得し、前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する。
【００８７】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記許可コードへの取り消し要求に応じて、前記第１許可コードを失効させ、前記第１クライアント１０１に応答を返信することにより、前記第１クライアント１０１がローカルの前記第１許可コードを失効させるようにさせる。
【００８８】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、前記暗号化データに対応する前記新たな許可コードを前記第１クライアント１０１に送信する。
【００８９】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換え、前記暗号化データに対応する前記新たな許可コードを前記第１クライアント１０１に送信することにより、前記第１クライアント１０１が元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせる。
【００９０】
上記の各モジュールの機能の実現原理は、上記に詳述されているが、ここで説明を省略する。
【００９１】
いくつかの実例では、上記のクライアント７００及びサーバ８００は、様々なコンピューティングデバイスで実行され、該コンピューティングデバイスのメモリにロードされることが可能である。本願の実施例では、コンピューティングデバイスが提供されている。このコンピューティングデバイスは、１つ又は複数のプロセッサと、メモリと、このメモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備える。前記１つ又は複数のプログラムには、上記のいずれか１つの方法の実例を実行するための命令が含まれる。
【００９２】
図９は、クライアント７００又はサーバ８００の位置するコンピューティングデバイスの構成図である。図９に示すように、このコンピューティングデバイスは、１つ又は複数のプロセッサ（ＣＰＵ）９０２と、通信モジュール９０４と、メモリ９０６と、ユーザインタフェース９１０と、これらのコンポーネントを相互に接続するための通信バス９０８と、を備える。
【００９３】
プロセッサ９０２は、ネットワーク通信及び／又はローカル通信を実現するために、通信モジュール９０４を介して、データを送受信することができる。
【００９４】
ユーザインタフェース９１０は、１つ又は複数の出力デバイス９１２を備える。１つ又は複数の出力デバイス９１２は、１つ又は複数のスピーカ、及び／又は、１つ又は複数の視覚的なディスプレイを含む。ユーザインタフェース９１０は、１つ又は複数の入力デバイス９１４も備える。入力デバイス９１４は、例えば、キーボード、マウス、音声指示入力手段又はマイク、タッチディスプレイ、タッチセンシティブ入力タブレット、モーションキャプチャカメラ、若しくは、その他の入力ボタン又はコントロールユニットなどを含む。
【００９５】
メモリ９０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又はその他のランダムアクセスソリッドステート記憶デバイスのような高速ランダムアクセスメモリ、或いは、１つ又は複数のディスク記憶デバイス、光ディスク記憶デバイス、フラッシュデバイス、又はその他の不揮発性ソリッドステート記憶デバイスのような不揮発性メモリであってもよい。
【００９６】
メモリ９０６は、プロセッサ９０２が実行可能な命令セットを記憶する。この命令セットは、
各種の基本的なシステムサービスの処理、及びハードウェアの関連タスクの実行に用いられるプログラムが含まれるオペレーティングシステム９１６と、
様々なアプリケーションプログラムを含み、上記の各実例における処理手順を実現可能なアプリケーション９１８と、を含む。アプリケーション９１８は、例えば、図７に示すクライアント７００、及び／又は、図８に示すサーバ８００を含んでもよい。いくつかの実例では、クライアント７００は、図７に示す各モジュール７０１〜７０３の一部又は全部を含んでもよく、各モジュール７０１〜７０３には、機械実行可能命令が記憶されてもよい。プロセッサ９０２は、メモリ９０６の各モジュール７０１〜７０３における機械実行可能命令を実行することにより、上記各モジュール７０１〜７０３の機能を実現できる。いくつかの実例では、サーバ８００は、図８に示す各モジュール８０１〜８０４の一部又は全部を含んでもよく、各モジュール８０１〜８０４には、機械実行可能命令が記憶されてもよい。プロセッサ９０２は、メモリ９０６の各モジュール８０１〜８０４における機械実行可能命令を実行することにより、上記各モジュール８０１〜８０４の機能を実現できる。
【００９７】
上記の実例で提供されたクライアント、サーバ、及びコンピューティングデバイスによれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、第２クライアント１０２が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及び第２クライアント１０２から取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。第２クライアント１０２から提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、第２クライアント１０２及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。
【００９８】
説明すべきものとして、上記の各手順及び各構成図では、すべてのステップ及びモジュールが必要なわけではなく、実際の必要に応じて、いくつかのステップ又はモジュールを省略してもよい。各ステップの実行順序は、固定されず、必要に応じて調整されてもよい。各モジュールの分割は、単に説明を容易にするための機能的な分割にすぎない。実際の実現では、１つのモジュールを複数のモジュールに分けて、その機能を実現してもよいが、同様に、複数のモジュールの機能を同一のモジュールによって実現してもよい。これらモジュールは、同一の機器に位置してもよく、異なる機器に位置してもよい。
【００９９】
各実施例におけるハードウェアモジュールは、ハードウェア方式で、又は、ハードウェアプラットフォーム＋ソフトウェアの方式で、実現されてもよい。上記ソフトウェアは、機械可読命令を含み、不揮発性記憶媒体に記憶される。このため、各実施例は、ソフトウェア製品として具現されてもよい。
【０１００】
各例では、ハードウェアは、専用のハードウェア、又は、機械可読命令を実行するハードウェアによって実現されてもよい。例えば、ハードウェアは、特定の動作を完成させるための、特別に設計された恒久的な回路又はロジックデバイス（例えば、ＦＰＧＡやＡＳＩＣのような専用プロセッサ）であってもよい。ハードウェアは、特定の動作を実行するための、ソフトウェアによって一時的に配置されるプログラマブルロジックデバイス又は回路（例えば、汎用プロセッサやその他のプログラマブルプロセッサを含む）を含んでもよい。
【０１０１】
また、本願の各々の実例は、データ処理機器（例えば、コンピュータ）により実行されるデータ処理プログラムによって実現されてもよい。明らかに、データ処理プログラムによって本願発明が構成されている。また、通常、記憶媒体に記憶されたデータ処理プログラムは、直接にプログラムを記憶媒体から読み出すことにより、又は、プログラムをデータ処理機器の記憶デイバイ（例えば、ハードディスク及び／又は内部メモリ）にインストール又はコピーすることにより、実行される。このため、このような記憶媒体によっても、本願発明が構成されている。本願の実施例では、本願の上記の方法の実例のいずれかを実行させることが可能なデータ処理プログラムを記憶した不揮発性記憶媒体も提供されている。
【０１０２】
図７及び図８におけるモジュールに対応する機械可読命令は、コンピュータ上で動作するオペレーティングシステムなどに、ここで説明される処理の一部又は全部を実行させることが可能である。不揮発性コンピュータ可読記憶媒体は、コンピュータに挿入された拡張ボードに設けられたメモリ、又はコンピュータに接続された拡張ユニットに設けられたメモリであってもよい。拡張ボード又は拡張ユニットに搭載されているＣＰＵなどは、命令に従って、実際の処理の一部又は全部を実行できる。
【０１０３】
不揮発性コンピュータ可読記憶媒体は、フロッピーディスク、ハードディスク、光磁気ディスク、光ディスク（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ）、磁気テープ、不揮発性メモリカード、及びＲＯＭを含む。任意選択的に、通信ネットワークによって、サーバコンピュータからプログラムコードをダウンロードしてもよい。
【０１０４】
上記のように、特許請求の範囲は、上記に説明された実例の実施形態に限定されるべきではなく、明細書を全体として最も広い解釈が与えられるべきである。
【符号の説明】
【０１０５】
１０１  第１クライアント
１０２  第２クライアント
１０３  アクセス許可サーバ
１０４  情報共有システム
１０５  インターネット
５０１、５０２、６０１  コントロールユニット
７００  クライアント
７０１  暗号化モジュール
７０２  アップロードモジュール
７０３  許可モジュール
８００  サーバ
８０１  許可モジュール
８０２  検証モジュール
８０３  鍵モジュール
８０４  復号化モジュール
９０２  プロセッサ
９０４  通信モジュール
９０６  メモリ
９０８  通信バス
９１０  ユーザインタフェース
９１２  出力デバイス
９１４  入力デバイス
９１６  オペレーティングシステム
９１８  アプリケーション
【図１】
2021502023.tif 000003
【図２】
2021502023.tif 000004
【図３】
2021502023.tif 000005
【図４】
2021502023.tif 000006
【図５】
2021502023.tif 000007
【図６】
2021502023.tif 000008
【図７】
2021502023.tif 000009
【図８】
2021502023.tif 000010
【図９】
2021502023.tif 000011
【手続補正書】
【提出日】令和2年5月12日(2020.5.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１クライアントにより実行されるデータ共有方法であって、
前記第１クライアントが、鍵で平文データを暗号化することにより、暗号化データを取得するステップと、
前記第１クライアントが、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードするステップであって、前記情報共有システムがブロックチェーンシステムである、ステップと、
前記第１クライアントが、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードするステップと、
前記第１クライアントが、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信するステップと、
前記第１クライアントが、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにさせるステップであって、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む、ステップと、
を含む方法。
【請求項２】
前記第１クライアントが、前記暗号化データを前記情報共有システムにおける前記ブロックにアップロードする際に、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子とをさらにアップロードすることにより、前記情報共有システムが、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、前記アクセス許可サーバが、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記情報共有システムにおける前記ブロックから前記暗号化データを取得するようにさせる、
請求項１に記載の方法。
【請求項３】
前記第１クライアントが、前記鍵の前記第１部分を前記アクセス許可サーバにアップロードする際に、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、前記アクセス許可サーバが、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成するようにさせる、
請求項２に記載の方法。
【請求項４】
前記第１クライアントが、前記許可コードへの取り消し要求を前記アクセス許可サーバに送信することにより、前記アクセス許可サーバが前記許可コードを失効させるようにさせるステップと、
前記第１クライアントが、ローカルの前記許可コードを失効させるステップと、
をさらに含む請求項１に記載の方法。
【請求項５】
前記第１クライアントが、前記暗号化データへの許可コード更新要求を前記アクセス許可サーバに送信することにより、前記アクセス許可サーバが、前記暗号化データに対応する新たな許可コードを生成し、元の前記許可コードを前記新たな許可コードに置き換えるようにさせるステップと、
前記第１クライアントが、前記アクセス許可サーバから前記新たな許可コードを受信し、元の前記許可コードを前記新たな許可コードに置き換えるステップと、
をさらに含む請求項１に記載の方法。
【請求項６】
アクセス許可サーバにより実行されるデータ共有方法であって、
前記アクセス許可サーバが、第１クライアントから第１鍵の第１部分を受信するステップであって、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである、ステップと、
前記アクセス許可サーバが、前記暗号化データに対応する第１許可コードを生成するステップと、
前記アクセス許可サーバが、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにさせるステップであって、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含み、
前記アクセス許可サーバが、いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、
前記アクセス許可サーバが、前記アクセス要求から、第２許可コード及び不完全な鍵を取得するステップと、
前記アクセス許可サーバが、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである、ステップと、
前記アクセス許可サーバが、前記情報共有システムにおける前記ブロックから、前記暗号化データを取得するステップと、
前記アクセス許可サーバが、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信するステップと、
をさらに含む方法。
【請求項７】
前記アクセス許可サーバが、前記第１クライアントから前記鍵の前記第１部分を受信する際に、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信し、
前記アクセス許可サーバが、前記暗号化データに対応する第１許可コードを生成するステップは、
前記アクセス許可サーバが、前記保有者のユーザ識別子に対応する規則に従って、前記第１許可コードを生成し、前記第１許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるステップと、
前記アクセス許可サーバが、前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記第１許可コードと前記鍵の前記第１部分とを取得するステップと、を含む、
請求項６に記載の方法。
【請求項８】
前記ブロックが、ブロックの高さに対応するものであり、
生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものであり、
前記アクセス許可サーバが、前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得し、
前記アクセス許可サーバが、前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する、
請求項６に記載の方法。
【請求項９】
前記アクセス許可サーバが、前記第１クライアントからの、前記第１許可コードへの取り消し要求に応じて、前記第１許可コードを失効させるステップと、
前記アクセス許可サーバが、前記第１クライアントに応答を返信することにより、前記第１クライアントがローカルの前記第１許可コードを失効させるようにさせるステップと、
をさらに含む請求項６に記載の方法。
【請求項１０】
前記アクセス許可サーバが、前記第１クライアントからの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成するステップと、
前記アクセス許可サーバが、前記暗号化データに対応する前記新たな許可コードを前記第１クライアントに送信するステップと、
をさらに含む請求項６に記載の方法。
【請求項１１】
前記アクセス許可サーバが、前記第１クライアントからの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換えるステップと、
前記アクセス許可サーバが、前記暗号化データに対応する前記新たな許可コードを前記第１クライアントに送信することにより、前記第１クライアントが元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせるステップと、
をさらに含む請求項６に記載の方法。
【請求項１２】
第１クライアントであって、
鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュールと、
前記暗号化データを、情報共有システムにおける１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュールと、
前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、
を備える第１クライアント。
【請求項１３】
アクセス許可サーバであって、
第１クライアントから第１鍵の第１部分を受信し、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、
いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュールをトリガーする検証モジュールと、
前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュールと、
前記情報共有システムにおける前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュールと、
を備えるアクセス許可サーバ。
【請求項１４】
コンピューティングデバイスであって、
１つ又は複数のプロセッサと、
メモリと、
該メモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備え、
前記１つ又は複数のプログラムには、請求項１〜１１のいずれか１項に記載の方法を実行するための命令が含まれる、
コンピューティングデバイス。
【請求項１５】
１つ又は複数のプログラムを記憶した記憶媒体であって、前記１つ又は複数のプログラムには、命令が含まれ、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、請求項１〜１１のいずれか１項に記載の方法を実行させる記憶媒体。
【請求項１６】
請求項１〜５のいずれか１項に記載の方法を第１クライアントのコンピュータに実行させるコンピュータ・プログラム。
【請求項１７】
請求項６〜１１のいずれか１項に記載の方法をアクセス許可サーバのコンピュータに実行させるコンピュータ・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１７年１１月２日に中国特許庁に提出された、出願番号が２０１７１１０６５７８３．１であり、発明の名称が「データ共有方法、クライアント、サーバ、コンピューティングデバイス、及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は参照することにより本願に組み込まれる。
【０００２】
本願は、コンピュータ技術分野に関し、特に、データ共有方法、クライアント、サーバ、コンピューティングデバイス、及び記憶媒体に関する。
【背景技術】
【０００３】
インターネット技術の発展に伴い、情報共有システムが登場している。ユーザーは、自身の保有しているデータ（例えば、ピクチャ、文書、動画などのファイル）を情報共有システムにアップロードすることが可能になり、他のユーザーが情報共有システムを介してこれらのデータにアクセスすることを許可することも可能になる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そこで、これらのデータのセキュリティを確保するために、情報共有システムは、例えば、あるユーザからあるファイルへのアクセスが要求されると、このユーザから提供された情報を検証するなどの技術的手段を用いる必要がある。
【課題を解決するための手段】
【０００５】
本願の実施例では、第１クライアントにより実行されるデータ共有方法が提供されている。この方法は、前記第１クライアントが、鍵で平文データを暗号化することにより、暗号化データを取得するステップと、前記第１クライアントが、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードするステップであって、前記情報共有システムがブロックチェーンシステムである、ステップと、前記第１クライアントが、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードするステップと、前記第１クライアントが、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信するステップと、前記第１クライアントが、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにさせるステップであって、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含む。
【０００６】
また、本願の実施例では、アクセス許可サーバにより実行されるデータ共有方法が提供されている。この方法は、前記アクセス許可サーバが、第１クライアントから第１鍵の第１部分を受信するステップであって、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである、ステップと、前記アクセス許可サーバが、前記暗号化データに対応する第１許可コードを生成するステップと、前記アクセス許可サーバが、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにさせるステップであって、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む、ステップと、を含み、前記アクセス許可サーバが、いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス許可サーバが、前記アクセス要求から、第２許可コード及び不完全な鍵を取得するステップと、前記アクセス許可サーバが、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである、ステップと、前記アクセス許可サーバが、前記情報共有システムにおける前記ブロックから、前記暗号化データを取得するステップと、前記アクセス許可サーバが、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信するステップと、をさらに含む。
【０００７】
本願の実施例では、第１クライアントが提供されている。この第１クライアントは、鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュールと、前記暗号化データを、情報共有システムにおける１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システムに対応するアクセス許可サーバにアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュールと、前記アクセス許可サーバから、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを前記ユーザの第２クライアントに送信することにより、前記第２クライアントが、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバが、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システムにおける前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアントに前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、を備える。
【０００８】
本願の実施例では、アクセス許可サーバが提供されている。このアクセス許可サーバは、第１クライアントから第１鍵の第１部分を受信し、前記第１鍵が、情報共有システムにおける１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアントに送信することにより、前記第１クライアントが、第２クライアントによる前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアントに送信するよう実現させ、前記第２クライアントが、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュールと、いずれか１つのクライアントからの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュールをトリガーする検証モジュールと、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュールと、前記情報共有システムにおける前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュールと、を備える。
【０００９】
また、本願の実施例では、コンピューティングデバイスが提供されている。このコンピューティングデバイスは、１つ又は複数のプロセッサと、メモリと、該メモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備え、前記１つ又は複数のプログラムには、上記の方法を実行するための命令が含まれる。
【００１０】
また、本願の実施例では、１つ又は複数のプログラムを記憶した記憶媒体が提供されている。前記１つ又は複数のプログラムには、命令が含まれ、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに上記の方法を実行させる。
【図面の簡単な説明】
【００１１】
本願の実施例の構成をより明確に説明するために、以下、実施例の説明に必要な図面を簡単的に紹介する。明らかに、以下の説明における図面は本願のいくつかの実施例を示しているにすぎず、当業者にとって、創造的な労働をせずに、これらの図面から他の図面を得ることもできる。
【図１】本願の実例に係るシステムアーキテクチャ図である。
【図２】本願の実例の方法のフローチャートである。
【図３】本願の実例の方法のフローチャートである。
【図４】本願の実例のメッセージのやり取り図である。
【図５】本願の実例のユーザ画面図である。
【図６】本願の実例のユーザ画面図である。
【図７】本願の実例におけるクライアントの構成の模式図である。
【図８】本願の実例におけるサーバの構成の模式図である。
【図９】本願の実例におけるコンピューティングデバイスの構成の模式図である。
【発明を実施するための形態】
【００１２】
以下では、簡潔かつ直感的な説明のために、いくつかの典型的な実施例を説明することにより、本発明の構成を述べる。しかし、すべての実施形態がここに示されるわけではない。実施例における大量の細部は、本発明の構成の理解を助けるためにのみ使用される。本発明の構成の実現は、これらの細部に限定されなくてもよい。本発明の構成を不必要に曖昧にすることを回避するために、いくつかの実施形態は、細かく説明されず、フレームワークのみが与えられる。以下では、「含む」とは、「含むが、これらに限定されない」ことを意味し、「…に基づく」とは、「少なくとも…に基づくが、…のみに基づくことに限定されない」ことを意味する。明細書及び請求の範囲における「含む」とは、ある程度で少なくとも含むことを意味し、その前に言及された特徴以外に他の特徴も存在してもよいと解釈されるべきである。
【００１３】
本願の実施例では、データ共有方法が提供されている。この方法は、図１に示すシステムアーキテクチャに適用可能である。図１に示すように、このシステムアーキテクチャは、第１クライアント１０１と、第２クライアント１０２と、アクセス許可サーバ１０３と、情報共有システム１０４と、を含む。これらのエンティティは、インターネット１０５を介して通信可能である。ここで、情報共有システム１０４は、ユーザによりアップロードされる様々なデータを格納する。ユーザが情報共有システム１０４におけるデータにアクセスすることも可能である。実際のネットワークでは、多数のクライアント１０１／１０２があり得る。情報共有システム１０４にアップロードされた１つのデータは、１つの第１クライアント１０１に対応する。第１クライアント１０１は、このデータの保有者及びアップローダーが使用するクライアントであり、共有者クライアントとも呼ばれる。このデータは、１つ又は複数の第２クライアント１０２にも対応する。第２クライアント１０２は、このデータへのアクセスを要求するユーザが使用するクライアントであり、訪問者クライアント又は閲覧者クライアントとも呼ばれる。アクセス許可サーバ１０３は、直接に又はインターネット１０５を介して、情報共有システム１０４に接続可能であり、情報共有システム１０４へのアクセスサービス（具体的に閲覧許可サービスと呼ばれてもよい）を提供する。第２クライアント１０２は、そのアクセスしようとするデータを、アクセス許可サーバ１０３を介して、情報共有システム１０４から取得する。具体的には、第２クライアント１０２は、あるデータへのアクセス要求（具体的に閲覧要求と呼ばれてもよい）をアクセス許可サーバ１０３に送信する。アクセス許可サーバ１０３は、このアクセス要求を認証して、第２クライアント１０２に対応するユーザがこのデータにアクセスする権限を有するか否かを検証し（例えば、アクセス要求における許可コードを検証し）、認証を通過した場合、アクセス要求に付された鍵情報に基づいて、情報共有システム１０４から取得された暗号化データを復号化処理し、復号化された平文データの取得に成功できれば、この平文データを第２クライアント１０２に返信する。
【００１４】
ここで、第１クライアント１０１及び第２クライアント１０２は、共有データにアクセス可能な様々なＡＰＰクライアント又はブラウザであってもよい。第１クライアント１０１及び第２クライアント１０２は、ＰＣ、携帯電話、タブレットコンピュータ、パームトップコンピュータ、ウルトラブック、ウェアラブルデバイスなどを含む様々な端末機器上で実行可能である。情報共有システム１０４は、ブロックチェーンシステム（ブロックチェーンネットワークとも呼ばれる）、データベースシステム、ネットワークディスク／クラウドディスクシステムなどを含むが、これらに限定されない様々な集中型又は分散型のデータ記憶システムであってもよい。情報共有システム１０４に記憶されたデータは、デジタル資産、認証サービス、共有台帳、共有経済などのシナリオを含む様々なビジネスシナリオで生成されたデータに関わることが可能である。
【００１５】
ここで、デジタル資産（Ｄｉｇｉｔａｌ  ａｓｓｅｔｓ）とは、企業が所有または制御する、電子データの形で存在する非貨幣資産であって、販売のために日常活動で保有される非貨幣資産、又は生産プロセスにおける非貨幣資産を指す。デジタル資産は、オフィスオートメーションの恩恵を受けて生まれたものである。デジタル資産は、電子決済システムに頼って発展し、共有ポイント、クーポン、デジタル通貨、株式の登録などのシナリオに使用される。認証サービスは、著作権／所有権の保護、司法文書の保全、公益寄付、個人・企業の証明などのビジネスシナリオに使用される。共有台帳は、機関間清算、銀行ファクタリング、機関間協調融資、サプライチェーンファイナンス、海外送金などのビジネスシナリオに使用される。ブロックチェーンは、時系列に沿ってデータブロックを順につながっていくように結合するチェーンデータ構造であり、暗号学的な方式で確保される改ざん不可能で偽造不可能な分散型台帳である。ブロックチェーンシステムは、真新しいタイプの分散インフラストラクチャであり、ブロックチェーンデータ構造を使用してデータを検証・格納し、分散ノードコンセンサスアルゴリズムを使用してデータを生成・更新し、暗号学的な方式でデータの伝送・アクセスのセキュリティを確保し、自動化スクリプトコードで構成されるスマートコントラクトを使用して、プログラミングとデータの操作とを行う。
【００１６】
いくつかのビジネスシナリオでは、情報共有システム１０４にアップロードするデータを暗号化する必要があり、かつ、データアクセスの許可を行う必要がある。つまり、一部のデータが条件付きで共有され、これらのデータは、例えば、個人又は機関の実名認証情報、金融口座情報、フォトアルバム、オリジナル作品、共有認証が必要な情報などであり、ユーザのプライバシーデータと呼ばれてもよい。ユーザは、これらのデータを、内容が公にならないが特定の人々間で共有可能になるように共有したいため、データを暗号化して情報共有システム１０４に格納し、その後、特定のユーザへの閲覧許可をする。
【００１７】
本願の実施例では、端末機器の第１クライアント１０１に適用可能なデータ共有方法が提供されている。図１には、第１クライアント１０１が１つのみ示されているが、実際の応用シナリオでは、第１クライアント１０１が複数、ひいては大量あり得、第１クライアント１０１のいずれもこの方法を実現可能である。図２に示すように、この方法の手順２００は、以下のステップを含む。
【００１８】
ステップ２０１で、第１クライアント１０１は、鍵で平文データを暗号化することにより、暗号化データを取得する。
【００１９】
ステップ２０２で、第１クライアント１０１は、前記暗号化データを、情報共有システム１０４における１つのブロックにアップロードし、前記情報共有システムはブロックチェーンシステムである。
【００２０】
ここで、ユーザがデータをアップロードしたい場合、ユーザが使用する第１クライアント１０１は、予め設定された鍵でこのデータ（即ち、平文データ）を暗号化し、暗号化データを情報共有システム１０４にアップロードする。
【００２１】
ステップ２０３で、第１クライアント１０１は、前記鍵の第１部分を、情報共有システム１０４に対応するアクセス許可サーバ１０３にアップロードする。
【００２２】
ここで、情報共有システム１０４に対応するアクセス許可サーバ１０３とは、情報共有システム１０４と接続されるアクセス許可サーバ１０３を指す。
【００２３】
ここで、鍵は文字列である。鍵とされるこの文字列を２つの文字列に分割し、この２つの文字列をそれぞれ鍵の第１部分及び第２部分としてもよい。本ステップにおいて、鍵の第１部分をアクセス許可サーバ１０３にアップロードする。いくつかの実例では、鍵の前半を第１部分として、鍵の後半を第２部分としてもよい。他のいくつかの実例では、鍵の後半を第１部分として、鍵の前半を第２部分としてもよい。ここで、第１部分と第２部分との長さは、同じであっても、異なっていてもよい。いくつかの実例では、鍵を分割する際に、予め設定された、文字列の長さの値（即ち、予め設定された、文字列に含まれる文字の数）に応じた長さの文字列を鍵の第１部分として分割し、残りの文字列を鍵の第２部分としてもよい。
【００２４】
ステップ２０４で、第１クライアント１０１は、アクセス許可サーバ１０３から、前記暗号化データに対応する許可コードを受信する。
【００２５】
いくつかの実例では、アクセス許可サーバ１０３は、第１クライアント１０１からアップロードされた、ある暗号化データに対する鍵の第１部分を受信すると、この暗号化データに対して許可コードを生成し、この許可コードを第１クライアント１０１に返信する。具体的には、アクセス許可サーバ１０３は、このデータをアップロードしたユーザに対応する規則に従って、許可コードを生成してもよい。
【００２６】
ステップ２０５で、あるユーザによる前記暗号化データへのアクセスを許可する際に、第１クライアント１０１は、前記許可コードと前記鍵の第２部分とを前記ユーザのクライアント（即ち、対応の第２クライアント１０２）に送信することにより、第２クライアント１０２が、前記暗号化データへのアクセス要求をアクセス許可サーバ１０３に送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む。
【００２７】
このように、アクセス許可サーバ１０３は、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、情報共有システム１０４における前記ブロックから取得された前記暗号化データを復号化処理し、復号化によって取得された前記平文データを第２クライアント１０２に提供する。
【００２８】
いくつかの実例では、あるユーザは、この暗号化データを閲覧したい場合、該ユーザが使用する第２クライアント１０２を介して、第１クライアント１０１に許可コードを要求し、第１クライアント１０１は、このユーザによるデータへの閲覧を許可すると決定した場合、この許可コードと上記鍵の第２部分とを第２クライアント１０２に送信する。
【００２９】
いくつかの実例では、アクセス許可サーバ１０３は、鍵の第１部分及び第２部分を結合してもよい。これにより、鍵の第１部分及び第２部分を完全な前記鍵として組み合わせることができる。アクセス許可サーバ１０３は、第２クライアント１０２から取得された鍵の第２部分と、第１クライアント１０１から取得された鍵の第１部分とが、同一の鍵に属しない場合、鍵の第１部分及び鍵の第２部分を正しい鍵として結合することができず、さらに復号化に失敗することになり、第２クライアント１０２は、平文データを取得できない。アクセス許可サーバ１０３は、第２クライアント１０２に、失敗応答を返信してもよいし、又は暗号化データを返信してもよい。このように、第２クライアント１０２は、データの内容を閲覧することに成功できない。これにより、第１クライアント１０１からアップロードされたデータのセキュリティが効果的に確保される。
【００３０】
上記の実例で提供された方法によれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、第２クライアント１０２が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及び第２クライアント１０２から取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。第２クライアント１０２から提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、第２クライアント１０２及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。このように、情報共有システム１０４に格納された、ユーザが公開したくない暗号化データの場合、第１クライアント１０１は、アクセス許可サーバ１０３を介して、いくつかの第２クライアント１０２による暗号化データの平文へのアクセスを許可することができる。これにより、情報共有とプライバシー保護とのバランスがとれ、より良い情報共有メカニズムが提供される。
【００３１】
上記の実例は、ブロックチェーンのデータ共有シナリオに適用可能である。アクセス許可サーバ１０３は、プライバシーデータ閲覧許可のサービスを提供している。このサービスは、共有情報システムにおけるブロックチェーンに提供される、データプライバシー保護のためのオプションサービスに属し、情報共有ブロックチェーン、デジタル資産ブロックチェーンなどのシナリオに適用可能であり、ユーザが公開したくないデータを保護すると共に、独立した許可によって、一部の人がこれらのデータを閲覧できるようにさせることもできる。ブロックチェーンが共有を原則とするものであるため、すべてのユーザがブロックチェーンにおけるデータを自由に閲覧できる。現時点で許可されているか否かを問わず、ユーザが自由に閲覧できるが、アクセス許可サーバ１０３を介して閲覧されたデータのみが、復号化された平文データである。あるユーザーは、ブロックチェーンにおいて直接に閲覧する場合、取得されたのが暗号化データであり、平文データを取得できない。
【００３２】
いくつかの実例では、ステップ２０４において、第１クライアント１０１は、許可コードを受信した後、さらに、前記暗号化データのアクセストークン（データ閲覧トークンと呼ばれてもよい）を生成してもよい。このアクセストークンには、前記許可コードと、前記鍵の前記第２部分とが含まれる。ステップ２０５において、前記許可コードと、前記鍵の第２部分とを前記第２クライアント１０２に送信することは、具体的に、前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる、ことを含んでもよい。このように、第１クライアント１０１は、許可コードと鍵の第２部分とを第２クライアント１０２に送信した。ここで、許可コード及び鍵のそれぞれは、数字及び／又は文字で構成される文字列であってもよく、許可コードと鍵の第２部分とから構成されるアクセストークンは、数字及び／又は文字で構成される文字列であってもよい。この実例では、第１クライアント１０１は、第２クライアント１０２にトークンを発行することにより、相応のユーザが第１クライアント１０１からアップロードされた暗号化データにアクセスすることを許可することができる。また、発行されたトークンに完全な鍵がなく、完全な鍵を取得して復号化処理を行うために、アクセス許可サーバ１０３におけるさらなる検証を行わなければならない。これにより、データのセキュリティが効果的に確保される。
【００３３】
いくつかの実例では、ステップ２０２において、前記暗号化データを情報共有システム１０４にアップロードする際に、第１クライアント１０１は、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子（通常、現在第１クライアント１０１を使用しているユーザの識別子）とをさらにアップロードすることにより、情報共有システム１０４が、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、アクセス許可サーバ１０３が、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、情報共有システム１０４から前記暗号化データを取得するようにさせる。ここで、暗号化データをアップロードする際に、暗号化データのファイル識別子と、暗号化データの保有者のユーザ識別子との両方が情報共有システム１０４に伝送され、情報共有システム１０４は、この暗号化データを格納する際に、この暗号化データと、ファイル識別子、及び保有者のユーザ識別子とを関連付ける。アクセス許可サーバ１０３は、情報共有システム１０４から、ある暗号化データを検索する際に、検索要求にファイル識別子と保有者のユーザ識別子とを付する。このように、情報共有システム１０４は、ファイル識別子、及び保有者のユーザ識別子に関連付けられた暗号化データを決定して、この暗号化データをアクセス許可サーバ１０３に返信することができる。
【００３４】
いくつかの実例では、ステップ２０３において、前記鍵の前記第１部分をアクセス許可サーバ１０３にアップロードする際に、第１クライアント１０１は、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、アクセス許可サーバ１０３が、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるようにさせる。アクセス許可サーバ１０３は、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分と（アクセス許可サーバ１０３がローカルでメンテナンスする、前記暗号化データに対応する許可コードと鍵の第１部分とであってもよい）を取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成する。
【００３５】
いくつかの実例では、アクセス許可サーバ１０３には、各ユーザ毎に、許可コードを生成するための規則が予め設定されている。この規則では、生成する許可コードでアクセス可能なデータアドレスや失効時間などを指定してもよい。上記のデータアドレスは、例えば、ブロックチェーンにおけるブロックの高さや、ユニフォームリソースロケータ（ＵＲＬ）アドレスなどであってもよい。いくつかの実例では、ステップ２０３において、第１クライアント１０１が鍵の第１部分をアップロードすると、アクセス許可サーバ１０３は、同時にアップロードされた、暗号化データの保有者のユーザ識別子に基づいて、許可コードの生成に使用する規則を決定してもよい。その後、アクセス許可サーバ１０３は、アクセス要求を受信すると、現在アクセスが要求される暗号化データに対応する許可コード（即ち、ファイル識別子、及び保有者のユーザ識別子に関連付けられた許可コード）をローカルで検索してもよい。アクセス要求に付された許可コードと、ローカルで検索された許可コードとが一致する場合は、アクセス要求に付された許可コードが合法的であることを表す。さらに、許可コードの期限が切れているか否か（例えば、失効時間に達したか否か、又はまだ有効使用期間内にあるか否か）を検証し、及び／又は、現在アクセスが要求される暗号化データのアドレスが、許可コードに対応するアクセス可能なデータアドレスに属するか否かを検証してもよい（例えば、ブロックチェーンのシナリオでは、現在閲覧が要求されるデータのブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証する。また例えば、共有写真のシナリオでは、現在閲覧が要求されるアルバムフォルダが、許可コードでアクセス可能なフォルダであるか否かを検証する。）。検証を通過した場合、許可コードが使用可能であると決定する。ブロックチェーンシナリオでのいくつかの実例では、第２クライアント１０２から送信されたアクセス要求に、閲覧するデータのファイル識別子を付けてもよい。アクセス許可サーバ１０３は、ファイル識別子に基づいて、データが位置するブロックの高さを決定でき、さらに、決定されたこのデータのブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証できる。他のいくつかの実例では、第２クライアント１０２から送信されたアクセス要求に、データのブロックの高さを直接に付けてもよい。アクセス許可サーバ１０３は、アクセス要求に付されたブロックの高さが、許可コードに対応するアクセス可能なブロックの高さであるか否かを検証できる。
【００３６】
許可コードが使用可能であると決定した場合、取得された、ファイル識別子、及び保有者のユーザ識別子に関連付けられた鍵の第１部分と、アクセス要求に付された、鍵の第２部分とを、完全な鍵として組み合わせてもよい。この組み合わせの方式は、２つの部分を簡単的に結合してもよい。
【００３７】
いくつかの実例では、ステップ２０４において、第１クライアント１０１は、許可コードを受信すると、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成し、前記アクセストークンと前記ファイル識別子とを関連付けてもよい。ステップ２０５において、前記許可コードと、前記鍵の第２部分とを第２クライアント１０２に送信することは、具体的に、前記ファイル識別子に関連付けられた前記アクセストークンを第２クライアント１０２に送信することにより、第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる、ことを含んでもよい。
【００３８】
ここで、第１クライアント１０１では、１つ又は複数のアクセストークンがメンテナンスされ、第１クライアント１０１からアップロードされた各々のデータが１つのアクセストークンに対応し、即ち、各々のファイル識別子が１つのアクセストークンに関連付けられる。このように、第２クライアント１０２が第１クライアント１０１にデータアクセス許可を要求すると、第１クライアント１０１が許可を承認する場合、第１クライアント１０１は、対応のアクセストークンを決定し、このアクセストークンを第２クライアント１０２に発行してもよい。なお、第２クライアント１０２は、あるデータ、又は一定の条件に合うデータ集合、又はすべてのデータへのアクセス許可を要求する可能性があり、第１クライアント１０１は、対応する１つ又は複数のアクセストークンを第２クライアント１０２に送信してもよい。
【００３９】
いくつかの実例では、ステップ２０４の後に、上記方法は、第１クライアント１０１が、前記許可コードへの取り消し要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が前記許可コードを失効させるようにさせる、ことをさらに含んでもよい。これと同時に、第１クライアント１０１も、ローカルの前記許可コードを失効させる。ここで、ある許可コードへの取り消し要求に、この許可コードに対応するファイル識別子を付けてもよい。アクセス許可サーバ１０３は、ファイル識別子に基づいて、このファイル識別子に対応する許可コードを決定でき、さらに、例えば、この許可コードの状態を失効に設定し、又はこの許可コードを削除するなど、この許可コードを失効させることができる。アクセス許可サーバ１０３は、前記許可コードを失効させた後、第１クライアント１０１に応答を返信してもよい。第１クライアント１０１は、応答を受信すると、ローカルの許可コードを失効させる。これにより、この許可コードの取り消しのプロセス全体が完了する。
【００４０】
このように、第１クライアント１０１は、アクセス許可サーバ１０３が、アップロードされたデータに対して、許可コードを生成するようにさせることができるだけでなく、この許可コードの取り消しをアクセス許可サーバ１０３に要求することもできる。許可コードが取り消された後、第２クライアント１０２が、データアクセスを要求する際に、この許可コード、又はこの許可コードが含まれるアクセストークンを使用した場合、この許可コードが使用不可と検証され、アクセス要求が拒絶され、第２クライアント１０２が、このデータにアクセスできなく、又は、暗号化データのみを取得できるが復号化された平文データを取得できない。このように、データアクセスの動的許可方式が形成される。あるデータを共有したユーザは、必要に応じて、対応の許可コードを取り消すことができる。これにより、以前に許可コードを取得してこのデータにアクセスできたユーザは、このデータにアクセスできなくなる。
【００４１】
いくつかの実例では、ある暗号化データの許可コードを取り消した後、第１クライアント１０１は、さらに、この暗号化データへの許可コード生成要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が、この暗号化データに対応する新たな許可コードを生成するようにしてもよい。その後、第１クライアント１０１は、アクセス許可サーバ１０３から、この暗号化データに対応する新たな許可コードを受信する。このように、ユーザは、以前に許可されたユーザが暗号化データの平文にアクセスできないように、許可コードを随時取り消すことができるだけでなく、ユーザによる暗号化データの平文へのアクセスを再び許可するように、新たな許可コードの生成を要求することもでき、柔軟なデータアクセス許可が実現される。
【００４２】
いくつかの実例では、第１クライアント１０１は、許可コードを得た後、アクセス許可サーバ１０３に許可コードの更新を要求することもできる。このとき、第１クライアント１０１により取得された許可コードは、まだ削除されておらず、又は、まだ使用されていない。ここで、第１クライアント１０１は、ある暗号化データへの許可コード更新要求をアクセス許可サーバ１０３に送信することにより、アクセス許可サーバ１０３が、この暗号化データに対応する新たな許可コードを生成し、元の許可コードをこの新たな許可コードに置き換えるようにさせる。その後、第１クライアント１０１は、アクセス許可サーバ１０３から、この新たな許可コードを受信し、元の許可コードをこの新たな許可コードに置き換える。このように、許可コード更新プロセスによれば、第１クライアント１０１は、以前に許可を得たユーザが暗号化データの平文にアクセスできなくなるように、元の許可コードを取り消すことができると共に、新たな許可コードを取得でき、後続にいくつかのユーザへの許可をすることができる。
【００４３】
いくつかの実例では、上記の許可コード取り消し要求、許可コード生成要求、及び許可コード更新要求が共存可能であり、ユーザが、必要に応じて、許可コードの取り消し、新たな許可コードの生成、又は許可コードの更新を選択でき、より完璧な動的許可方式が実現される。
【００４４】
本願の実例では、アクセス許可サーバ１０３に適用可能なデータ共有方法が提供されている。図３に示すように、この方法の手順３００は、以下のステップを含む。
【００４５】
ステップ３０１で、第１クライアント１０１から第１鍵の第１部分を受信し、前記第１鍵が、情報共有システム１０４における１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムである。
【００４６】
ステップ３０２で、前記暗号化データに対応する第１許可コードを生成する。
【００４７】
ステップ３０３で、前記第１許可コードを第１クライアント１０１に送信することにより、第１クライアント１０１が、第２クライアント１０２による前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを第２クライアント１０２に送信するよう実現させ、第２クライアント１０２が、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む。
【００４８】
ステップ３０４で、いずれか１つのクライアント（許可を得た上記第２クライアント１０２である可能性があり、許可を得ていない他のクライアントである可能性もある）からの、前記暗号化データへのアクセス要求を受信すると、下記のステップを実行する。
【００４９】
ステップ３０５で、前記アクセス要求から、第２許可コード及び不完全な鍵を取得する。
【００５０】
ステップ３０６で、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである。
【００５１】
ステップ３０７で、情報共有システム１０４における前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する。
【００５２】
上記の実例で提供された方法によれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、あるクライアント（許可を得た第２クライアント１０２である可能性があり、他のクライアントである可能性もある）が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及びこのクライアントから取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。このクライアントから提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、許可を得た第２クライアント１０２、及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。このように、情報共有システム１０４に格納された、ユーザが公開したくない暗号化データの場合、第１クライアント１０１は、アクセス許可サーバ１０３を介して、いくつかの第２クライアント１０２による暗号化データの平文へのアクセスを許可することができる。これにより、情報共有とプライバシー保護とのバランスがとれ、より良い情報共有メカニズムが提供される。
【００５３】
いくつかの実例では、ステップ３０５において、前記アクセス要求から、第２許可コード及び不完全な鍵を取得することは、具体的に、前記アクセス要求から、前記暗号化データのアクセストークンを取得し、前記アクセストークンから、前記第２許可コード及び前記不完全な鍵を取得する、ことを含んでもよい。
【００５４】
いくつかの実例では、ステップ３０１において、前記第１クライアントから前記鍵の前記第１部分を受信する際に、アクセス許可サーバ１０３は、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信する。ステップ３０２において、前記暗号化データに対応する第１許可コードを生成することは、具体的に、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と保有者のユーザ識別子とに基づいて、前記アクセス要求に付されたファイル識別子と保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得する、ことを含んでもよい。
【００５５】
いくつかの実例では、前記ブロックが、ブロックの高さに対応するものである。ステップ３０２において、生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものである。ステップ３０６において、前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得する。前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する。
【００５６】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記許可コードへの取り消し要求に応じて、前記許可コードを失効させる、ことをさらに含んでもよい。アクセス許可サーバ１０３は、前記許可コードを失効させた後、第１クライアント１０１に応答を返信してもよい。第１クライアント１０１は、応答を受信すると、ローカルの許可コードを失効させる。これにより、この許可コードの取り消しのプロセス全体が完了する。このように、ユーザは、必要に応じて、いくつかのユーザ又はデータへの共有を取り消すために、いくつかのデータに対応する許可コードを取り消すことができる。例えば、あるデータの許可コードを以前に得た第２クライアント１０２は、この許可コードが失効した場合、再びこの許可コードでこのデータへのアクセスを要求すると、この許可コードが使用不可と検証されるため、このデータにアクセスできない。
【００５７】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、前記暗号化データに対応する前記新たな許可コードを第１クライアント１０１に送信する、ことをさらに含んでもよい。このように、ユーザは、あるデータの許可コードを取り消した後、いくつかのユーザによるこのデータへのアクセスを再び許可するように、新たな許可コードを要求することもでき、柔軟なデータアクセス許可が実現される。
【００５８】
いくつかの実例では、上記方法は、第１クライアント１０１からの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換え、前記暗号化データに対応する前記新たな許可コードを第１クライアント１０１に送信することにより、第１クライアント１０１が元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせる、ことをさらに含んでもよい。
【００５９】
図４には、本願の一実施例におけるメッセージのやり取りの手順が示されている。図４に示すように、この手順は、少なくとも、第１クライアント１０１、第２クライアント１０２、アクセス許可サーバ１０３、及び情報共有システム１０４の４つのエンティティに関わり、下記のような処理ステップを含んでもよい。
【００６０】
ステップ４０１で、第１クライアント１０１は、暗号鍵を保有し、情報共有システム１０４にアップロードしようとするデータに対して暗号化処理を行うことにより、暗号化データを取得する。
【００６１】
第１クライアント１０１は、この暗号化データを情報共有システム１０４にアップロードし、暗号化データをアップロードすると共に、この暗号化データに関連付けられた、この暗号化データの保有者のユーザ識別子、ファイル識別子を情報共有システム１０４に送信する。例えば、第１クライアント１０１は、保有者のユーザ識別子と、ファイル識別子と、暗号化データとが付されたデータアップロード要求を情報共有システム１０４に送信してもよい。ここで、前記保有者のユーザ識別子は、例えば、ＱＱ番号、クラウドディスクアカウント、ブロックチェーンシステムアカウントなど、現在第１クライアント１０１にログインしているユーザの識別子であり、ファイル識別子は、暗号化データを識別するためのものである。
【００６２】
情報共有システム１０４は、第１クライアント１０１からアップロードされた暗号化データを格納して、この暗号化データと、保有者のユーザ識別子、及びファイル識別子とを関連付けてもよい。これにより、この暗号化データを、保有者のユーザ識別子に対応するディレクトリに格納して、ファイル識別子でこの暗号化データを識別する。
【００６３】
図５のシナリオでは、第１クライアント１０１がネットワークディスククライアントであり、情報共有システム１０４がクラウド側のネットワークディスクサーバ（又は、クラウドディスクサーバと略称される）である。ユーザは、このネットワークディスククライアントを使用して、写真、動画などのファイルをアップロードできる。例えば、コントロールユニット５０１をタップすると、写真をアップロードでき、コントロールユニット５０２をタップすると、動画をアップロードできる。ユーザは、アップロードする写真及び動画のプライバシーを確保したい場合、アップロードするデータをネットワークディスククライアントが暗号化するように設定してもよい。このように、ネットワークディスククライアントは、上記ステップ４０１の暗号化処理を実行することになる。
【００６４】
ステップ４０２で、第１クライアント１０１は、ステップ４０１における暗号化に使用された鍵の前半（鍵前半と呼ばれてもよい）をアクセス許可サーバ１０３にアップロードし、この暗号化データに関連付けられた保有者のユーザ識別子もアクセス許可サーバに送信する。例えば、第１クライアント１０１は、暗号化データの保有者のユーザ識別子と鍵前半とが付された鍵アップロード要求をアクセス許可サーバ１０３に送信してもよい。
【００６５】
アクセス許可サーバ１０３は、前記保有者のユーザ識別子に対応する規則に従って、許可コードを生成し、許可コードと、鍵前半、及び前記保有者のユーザ識別子とを関連付けてから、許可コードを第１クライアント１０１に返信する。
【００６６】
ステップ４０３で、第１クライアント１０１は、ステップ４０１における暗号化に使用された鍵の後半（鍵後半と呼ばれてもよい）と、受信された許可コードとをデータ閲覧トークンとして組み合わせ、このデータ閲覧トークンと上記暗号化データのファイル識別子とを関連付ける。
【００６７】
第１クライアント１０１は、上記暗号化データの平文データを第２クライアント１０２が閲覧可能なように許可する際に、上記データ閲覧トークンを第２クライアント１０２に提供してもよい。例えば、第２クライアント１０２は、あるデータへの閲覧許可を第１クライアント１０１に要求するために、ターゲットファイル情報が付された許可要求を第１クライアント１０１に送信し、第１クライアント１０１は、ターゲットファイル情報に基づいて、第２クライアント１０２が閲覧したいデータ集合に対応するファイル識別子集合を決定できる。このターゲットファイル情報は、ファイル識別子を含んでもよいし、フォルダの識別子又はディレクトリアドレスなどであってもよい。第１クライアント１０１は、相応のファイル識別子集合を決定でき、さらに、ファイル識別子集合によって、ファイル識別子集合に関連付けられたデータ閲覧トークンを決定できる。ここで、１つのファイル識別子集合（１つ又は複数のファイル識別子）は、１つのデータ閲覧トークンに関連付けられてもよい。これは、第１クライアント１０１が１つのファイル集合を一括して第２クライアント１０２に許可することを表す。１つのファイル識別子集合は、複数のデータ閲覧トークンに関連付けられてもよい。ここで、異なるファイル識別子は、異なるデータ閲覧トーク運に関連付けられる。これは、第１クライアント１０１がファイル毎にそれぞれデータ閲覧トークンを第２クライアント１０２に提供することを表す。
【００６８】
ステップ４０４で、第２クライアント１０２は、上記データ閲覧トークンを保有すると、上記暗号化データの保有者のユーザ識別子と、ファイル識別子と、このデータ閲覧トークンとが付された閲覧要求をアクセス許可サーバ１０３に送信する。
【００６９】
図６のシナリオでは、第２クライアント１０２が、ブロックチェーンページにアクセスするブラウザであり、情報共有システム１０４がブロックチェーンシステムである。ユーザは、ブロックチェーンページにアクセスすることにより、様々な情報を閲覧できる。一部の情報がプライベートであり、ユーザは、データ閲覧トークンを持っている場合にしか、平文データを閲覧できない。例えば、ユーザがコントロールユニット６０１をタップすると、閲覧要求を送信するために、ステップ４０４が実行される。閲覧要求に付されたデータ閲覧トークンには、正しい使用可能な許可コードと正しい鍵後半とが含まれる場合、ブラウザは、「詳細」という項目に対応する平文データが含まれる第２ページを表示させることができる。
【００７０】
ステップ４０５で、アクセス許可サーバ１０３は、受信された閲覧要求から、データ閲覧トークン、上記保有者のユーザ識別子、及びファイル識別子を抽出し、データ閲覧トークンから許可コードを抽出し、この許可コードが使用可能であるか否かを決定する。ここで、アクセス許可サーバ１０３が、許可コードが使用可能であるか否かを決定することは、２つの側面を含む。一、データ閲覧トークンから抽出された許可コードが、ローカルに格納されている、この保有者のユーザ識別子に関連付けられた許可コードと同じであるか否かを決定し、データ閲覧トークンから抽出された許可コードが、ローカルで検索された許可コードと一致する場合は、データ閲覧トークンに付された許可コードが合法的であることを表す。二、この２つの許可コードが同じであると決定した場合、さらに、許可コードの期限が切れているか否か（例えば、失効時間に達したか否か、又はまだ有効使用期間内にあるか否か）を検証し、及び／又は、現在閲覧が要求される暗号化データのアドレスが、許可コードに対応するアクセス可能なデータアドレスに属するか否かを検証する。
【００７１】
この許可コードが使用可能であると決定した場合、アクセス許可サーバ１０３は、許可コードに関連付けられた鍵前半を取得し、データ閲覧トークンから鍵後半を抽出し、鍵前半と鍵後半とを完全な鍵として組み合わせる。
【００７２】
また、アクセス許可サーバ１０３は、上記保有者のユーザ識別子と、ファイル識別子とが付された検索要求を情報共有システム１０４に送信することにより、情報共有システム１０４が、この保有者のユーザ識別子と、ファイル識別子とに基づいて、この保有者のユーザ識別子と、ファイル識別子とに関連付けられた暗号化データを検索し、この暗号化データをアクセス許可サーバ１０３に送信するようにさせる。
【００７３】
ステップ４０６で、ステップ４０５で取得された完全な鍵で暗号化データを復号化処理する。データ閲覧トークンから抽出された鍵後半が正確である場合、ステップ４０５において正確で完全な鍵を取得することができ、本ステップにおいて復号化に成功することにより、復号化データ（即ち、平文データ）を取得すると共に、第２クライアント１０２に復号化データを返信することができる。データ閲覧トークンから抽出された鍵後半が間違った場合、ステップ４０５で取得された鍵が間違ったものであり、本ステップにおいて復号化に成功できない。この場合、第２クライアント１０２にエラーを報告してもよいし、第２クライアント１０２に暗号化データを直接に返信してもよい。要するに、第２クライアント１０２は、平文データの閲覧に成功できない。さらに、第１クライアント１０１からアップロードされたデータのセキュリティが確保される。
【００７４】
上記各ステップのいずれに処理が失敗しても、本手順を直接に終了すればよい。
【００７５】
上記の方法の実例に基づき、本願の実施例では、上記方法を実現可能なクライアント（第１クライアント１０１であってもよい）も提供されている。図７に示すように、第１クライアント７００は、
鍵で平文データを暗号化することにより、暗号化データを取得する暗号化モジュール７０１と、
前記暗号化データを、情報共有システム１０４における１つのブロックにアップロードし、前記鍵の第１部分を、前記情報共有システム１０４に対応するアクセス許可サーバ１０３にアップロードし、前記情報共有システムがブロックチェーンシステムであるアップロードモジュール７０２と、
前記アクセス許可サーバ１０３から、前記暗号化データに対応する許可コードを受信し、あるユーザによる前記暗号化データへのアクセスを許可する際に、前記許可コードと前記鍵の第２部分とを第２クライアント１０２に送信することにより、前記第２クライアント１０２が、前記暗号化データへのアクセス要求を前記アクセス許可サーバに送信する際に、前記アクセス要求に前記許可コードと前記鍵の前記第２部分とを付するよう実現させ、前記アクセス許可サーバ１０３が、前記許可コードが使用可能であると決定した場合、前記鍵の前記第１部分及び前記第２部分に基づき前記鍵を生成し、生成された前記鍵で、前記情報共有システム１０４における前記ブロックから取得された前記暗号化データを復号化することにより、前記平文データを取得すると共に、前記第２クライアント１０２に前記平文データを返信するようにし、前記鍵の第２部分は前記鍵の前記第１部分を除いた残りの部分を含む許可モジュール７０３と、を備える。
【００７６】
いくつかの実例では、許可モジュール７０３は、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成する。ここで、前記許可モジュール７０３は、前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる。
【００７７】
いくつかの実例では、前記暗号化データを前記情報共有システム１０４にアップロードする際に、前記アップロードモジュール７０２は、前記暗号化データのファイル識別子と、前記暗号化データの保有者のユーザ識別子とをさらにアップロードすることにより、前記情報共有システム１０４が、前記暗号化データと、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付けるよう実現させ、前記アクセス許可サーバ１０３が、前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記情報共有システム１０４から前記暗号化データを取得するようにさせる。
【００７８】
いくつかの実例では、前記鍵の前記第１部分を前記アクセス許可サーバ１０３にアップロードする際に、前記アップロードモジュール７０２は、前記ファイル識別子と前記保有者のユーザ識別子とをさらにアップロードすることにより、前記アクセス許可サーバ１０３が、前記保有者のユーザ識別子に対応する規則に従って、前記許可コードを生成し、前記許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付け、前記アクセス要求を受信すると、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに基づいて、前記アクセス要求に付された前記ファイル識別子と前記保有者のユーザ識別子とに関連付けられた前記許可コードと前記鍵の前記第１部分とを取得し、取得された前記許可コードに基づいて、前記アクセス要求に付された前記許可コードが使用可能であるか否かを決定し、取得された前記鍵の前記第１部分と、前記アクセス要求に付された前記第２部分とに基づき、前記鍵を生成するようにさせる。
【００７９】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記許可コードと前記鍵の前記第２部分とが含まれる、前記暗号化データのアクセストークンを生成し、前記アクセストークンと前記ファイル識別子とを関連付ける。ここで、前記許可モジュール７０３は、前記ファイル識別子に関連付けられた前記アクセストークンを前記第２クライアント１０２に送信することにより、前記第２クライアント１０２が前記アクセス要求に前記アクセストークンを付するようにさせる。
【００８０】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記許可コードへの取り消し要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が前記許可コードを失効させるようにさせる。また、前記許可モジュール７０３は、ローカルの前記許可コードを失効させる。
【００８１】
いくつかの実例では、前記許可モジュール７０３は、前記暗号化データへの許可コード生成要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が、前記暗号化データに対応する新たな許可コードを生成するようにさせる。また、前記許可モジュール７０３は、前記アクセス許可サーバ１０３から、前記暗号化データに対応する前記新たな許可コードを受信する。
【００８２】
いくつかの実例では、前記許可モジュール７０３は、さらに、前記暗号化データへの許可コード更新要求を前記アクセス許可サーバ１０３に送信することにより、前記アクセス許可サーバ１０３が、前記暗号化データに対応する新たな許可コードを生成し、元の前記許可コードを前記新たな許可コードに置き換えるようにさせる。また、前記許可モジュール７０３は、前記アクセス許可サーバ１０３から前記新たな許可コードを受信し、元の前記許可コードを前記新たな許可コードに置き換える。
【００８３】
上記の方法の実例に基づき、本願の実施例では、上記方法を実現可能なアクセス許可サーバ（例えば、上記のアクセス許可サーバ１０３）も提供されている。図８に示すように、このサーバ８００は、
第１クライアント１０１から第１鍵の第１部分を受信し、前記第１鍵が、情報共有システム１０４における１つのブロックにアップロードされた暗号化データに対応するものであり、前記暗号化データが、前記第１鍵で平文データに対して暗号化処理を行うことにより取得されたものであり、前記情報共有システムがブロックチェーンシステムであり、前記暗号化データに対応する第１許可コードを生成し、前記第１許可コードを前記第１クライアント１０１に送信することにより、前記第１クライアント１０１が、第２クライアント１０２による前記暗号化データへのアクセスを許可する際に、前記第１許可コードと前記第１鍵の第２部分とを前記第２クライアント１０２に送信するよう実現させ、前記第２クライアント１０２が、前記暗号化データにアクセスする際に、前記第１許可コードと前記第１鍵の前記第２部分とをアクセス要求に付するようにし、前記第１鍵の第２部分は前記第１鍵の前記第１部分を除いた残りの部分を含む許可モジュール８０１と、
いずれか１つのクライアント（例えば、第２クライアント１０２）からの、前記暗号化データへのアクセス要求を受信すると、前記アクセス要求から、第２許可コード及び不完全な鍵を取得し、前記第２許可コードが前記第１許可コードと同じであって、かつ前記第２許可コードが使用可能である場合、鍵モジュール８０３をトリガーする検証モジュール８０２と、
前記不完全な鍵と、前記暗号化データに対応する前記第１鍵の第１部分とに基づき、第２鍵を生成し、前記不完全な鍵が前記第１鍵の第２部分と同じである場合、生成された前記第２鍵が前記第１鍵と同じである前記鍵モジュール８０３と、
前記情報共有システム１０４における前記ブロックから、前記暗号化データを取得し、前記第２鍵で前記暗号化データを復号化処理し、前記第２鍵が前記第１鍵と同じである場合、復号化によって前記平文データを取得すると共に、前記アクセス要求の送信元である前記クライアントに前記平文データを送信する復号化モジュール８０４と、を備えてもよい。
【００８４】
いくつかの実例では、前記検証モジュール８０２は、前記アクセス要求から前記暗号化データのアクセストークンを取得し、前記アクセストークンから前記第２許可コード及び前記不完全な鍵を取得する。
【００８５】
いくつかの実例では、前記許可モジュール８０１は、前記第１クライアント１０１から前記鍵の前記第１部分を受信する際に、ファイル識別子と前記暗号化データの保有者のユーザ識別子とをさらに受信する。前記許可モジュール８０１は、前記保有者のユーザ識別子に対応する規則に従って、前記第１許可コードを生成し、前記第１許可コードと、前記鍵の前記第１部分、前記ファイル識別子、及び前記保有者のユーザ識別子とを関連付ける。前記検証モジュール８０２は、前記アクセス要求を受信すると、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子に基づいて、前記アクセス要求に付されたファイル識別子と前記保有者のユーザ識別子に関連付けられた前記第１許可コードと前記鍵の前記第１部分とを取得する。
【００８６】
いくつかの実例では、前記ブロックが、ブロックの高さに対応するものであり、前記許可モジュール８０１により生成された前記第１許可コードが、アクセス可能なブロックの高さ、及び／又は、期限に対応するものであり、前記検証モジュール８０２は、前記第２許可コードが前記第１許可コードと同じである場合、前記第２許可コードに対応するアクセス可能なブロックの高さ、及び／又は、期限を取得し、前記アクセス要求の対象となる前記暗号化データのブロックの高さが、前記第２許可コードに対応する前記アクセス可能なブロックの高さとマッチし、及び／又は、前記第２許可コードが前記期限に達していない場合、前記第２許可コードが使用可能であると決定する。
【００８７】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記第１許可コードへの取り消し要求に応じて、前記第１許可コードを失効させ、前記第１クライアント１０１に応答を返信することにより、前記第１クライアント１０１がローカルの前記第１許可コードを失効させるようにさせる。
【００８８】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記暗号化データへの許可コード生成要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、前記暗号化データに対応する前記新たな許可コードを前記第１クライアント１０１に送信する。
【００８９】
いくつかの実例では、前記許可モジュール８０１は、さらに、前記第１クライアント１０１からの、前記暗号化データへの許可コード更新要求に応じて、前記暗号化データに対応する新たな許可コードを生成し、元の前記第１許可コードを前記新たな許可コードに置き換え、前記暗号化データに対応する前記新たな許可コードを前記第１クライアント１０１に送信することにより、前記第１クライアント１０１が元の前記第１許可コードを前記新たな許可コードに置き換えるようにさせる。
【００９０】
上記の各モジュールの機能の実現原理は、上記に詳述されているが、ここで説明を省略する。
【００９１】
いくつかの実例では、上記のクライアント７００及びサーバ８００は、様々なコンピューティングデバイスで実行され、該コンピューティングデバイスのメモリにロードされることが可能である。本願の実施例では、コンピューティングデバイスが提供されている。このコンピューティングデバイスは、１つ又は複数のプロセッサと、メモリと、このメモリに記憶され、前記１つ又は複数のプロセッサによって実行されるように構成される１つ又は複数のプログラムと、を備える。前記１つ又は複数のプログラムには、上記のいずれか１つの方法の実例を実行するための命令が含まれる。
【００９２】
図９は、クライアント７００又はサーバ８００の位置するコンピューティングデバイスの構成図である。図９に示すように、このコンピューティングデバイスは、１つ又は複数のプロセッサ（ＣＰＵ）９０２と、通信モジュール９０４と、メモリ９０６と、ユーザインタフェース９１０と、これらのコンポーネントを相互に接続するための通信バス９０８と、を備える。
【００９３】
プロセッサ９０２は、ネットワーク通信及び／又はローカル通信を実現するために、通信モジュール９０４を介して、データを送受信することができる。
【００９４】
ユーザインタフェース９１０は、１つ又は複数の出力デバイス９１２を備える。１つ又は複数の出力デバイス９１２は、１つ又は複数のスピーカ、及び／又は、１つ又は複数の視覚的なディスプレイを含む。ユーザインタフェース９１０は、１つ又は複数の入力デバイス９１４も備える。入力デバイス９１４は、例えば、キーボード、マウス、音声指示入力手段又はマイク、タッチディスプレイ、タッチセンシティブ入力タブレット、モーションキャプチャカメラ、若しくは、その他の入力ボタン又はコントロールユニットなどを含む。
【００９５】
メモリ９０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又はその他のランダムアクセスソリッドステート記憶デバイスのような高速ランダムアクセスメモリ、或いは、１つ又は複数のディスク記憶デバイス、光ディスク記憶デバイス、フラッシュデバイス、又はその他の不揮発性ソリッドステート記憶デバイスのような不揮発性メモリであってもよい。
【００９６】
メモリ９０６は、プロセッサ９０２が実行可能な命令セットを記憶する。この命令セットは、
各種の基本的なシステムサービスの処理、及びハードウェアの関連タスクの実行に用いられるプログラムが含まれるオペレーティングシステム９１６と、
様々なアプリケーションプログラムを含み、上記の各実例における処理手順を実現可能なアプリケーション９１８と、を含む。アプリケーション９１８は、例えば、図７に示すクライアント７００、及び／又は、図８に示すサーバ８００を含んでもよい。いくつかの実例では、クライアント７００は、図７に示す各モジュール７０１〜７０３の一部又は全部を含んでもよく、各モジュール７０１〜７０３には、機械実行可能命令が記憶されてもよい。プロセッサ９０２は、メモリ９０６の各モジュール７０１〜７０３における機械実行可能命令を実行することにより、上記各モジュール７０１〜７０３の機能を実現できる。いくつかの実例では、サーバ８００は、図８に示す各モジュール８０１〜８０４の一部又は全部を含んでもよく、各モジュール８０１〜８０４には、機械実行可能命令が記憶されてもよい。プロセッサ９０２は、メモリ９０６の各モジュール８０１〜８０４における機械実行可能命令を実行することにより、上記各モジュール８０１〜８０４の機能を実現できる。
【００９７】
上記の実例で提供されたクライアント、サーバ、及びコンピューティングデバイスによれば、第１クライアント１０１が鍵及び許可コードを保有し、アクセス許可サーバ１０３が許可コードと鍵の第１部分とを保有し、第２クライアント１０２が、許可を得た場合、鍵の第２部分と、許可コードとを保有可能である。このように、第２クライアント１０２が、アクセス許可サーバ１０３を介して、相応のデータへのアクセスを要求すると、アクセス許可サーバ１０３は、まず、許可コードが使用可能であるか否かを検証し、許可コードが使用可能である場合、それぞれ第１クライアント１０１及び第２クライアント１０２から取得された不完全な鍵（鍵の第１部分及び第２部分）を使用して、完全な鍵を取得してもよい。第２クライアント１０２から提供された不完全な鍵に問題がある場合、正しい完全な鍵を取得できず、暗号化データの復号化に成功できないため、データのセキュリティが確保される。この構成では、第２クライアント１０２及びアクセス許可サーバ１０３が、それぞれ鍵の一部を保有し、両方とも暗号化データへのアクセス権限を有しなく、両者の保有する鍵情報を合わせた場合以外に完全な鍵を取得できないため、データのセキュリティ及びユーザのプライバシーが効果的に確保される。
【００９８】
説明すべきものとして、上記の各手順及び各構成図では、すべてのステップ及びモジュールが必要なわけではなく、実際の必要に応じて、いくつかのステップ又はモジュールを省略してもよい。各ステップの実行順序は、固定されず、必要に応じて調整されてもよい。各モジュールの分割は、単に説明を容易にするための機能的な分割にすぎない。実際の実現では、１つのモジュールを複数のモジュールに分けて、その機能を実現してもよいが、同様に、複数のモジュールの機能を同一のモジュールによって実現してもよい。これらモジュールは、同一の機器に位置してもよく、異なる機器に位置してもよい。
【００９９】
各実施例におけるハードウェアモジュールは、ハードウェア方式で、又は、ハードウェアプラットフォーム＋ソフトウェアの方式で、実現されてもよい。上記ソフトウェアは、機械可読命令を含み、不揮発性記憶媒体に記憶される。このため、各実施例は、ソフトウェア製品として具現されてもよい。
【０１００】
各例では、ハードウェアは、専用のハードウェア、又は、機械可読命令を実行するハードウェアによって実現されてもよい。例えば、ハードウェアは、特定の動作を完成させるための、特別に設計された恒久的な回路又はロジックデバイス（例えば、ＦＰＧＡやＡＳＩＣのような専用プロセッサ）であってもよい。ハードウェアは、特定の動作を実行するための、ソフトウェアによって一時的に配置されるプログラマブルロジックデバイス又は回路（例えば、汎用プロセッサやその他のプログラマブルプロセッサを含む）を含んでもよい。
【０１０１】
また、本願の各々の実例は、データ処理機器（例えば、コンピュータ）により実行されるデータ処理プログラムによって実現されてもよい。明らかに、データ処理プログラムによって本願発明が構成されている。また、通常、記憶媒体に記憶されたデータ処理プログラムは、直接にプログラムを記憶媒体から読み出すことにより、又は、プログラムをデータ処理機器の記憶デイバイ（例えば、ハードディスク及び／又は内部メモリ）にインストール又はコピーすることにより、実行される。このため、このような記憶媒体によっても、本願発明が構成されている。本願の実施例では、本願の上記の方法の実例のいずれかを実行させることが可能なデータ処理プログラムを記憶した不揮発性記憶媒体も提供されている。
【０１０２】
図７及び図８におけるモジュールに対応する機械可読命令は、コンピュータ上で動作するオペレーティングシステムなどに、ここで説明される処理の一部又は全部を実行させることが可能である。不揮発性コンピュータ可読記憶媒体は、コンピュータに挿入された拡張ボードに設けられたメモリ、又はコンピュータに接続された拡張ユニットに設けられたメモリであってもよい。拡張ボード又は拡張ユニットに搭載されているＣＰＵなどは、命令に従って、実際の処理の一部又は全部を実行できる。
【０１０３】
不揮発性コンピュータ可読記憶媒体は、フロッピーディスク、ハードディスク、光磁気ディスク、光ディスク（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ）、磁気テープ、不揮発性メモリカード、及びＲＯＭを含む。任意選択的に、通信ネットワークによって、サーバコンピュータからプログラムコードをダウンロードしてもよい。
【０１０４】
上記のように、特許請求の範囲は、上記に説明された実例の実施形態に限定されるべきではなく、明細書を全体として最も広い解釈が与えられるべきである。
【符号の説明】
【０１０５】
１０１  第１クライアント
１０２  第２クライアント
１０３  アクセス許可サーバ
１０４  情報共有システム
１０５  インターネット
５０１、５０２、６０１  コントロールユニット
７００  クライアント
７０１  暗号化モジュール
７０２  アップロードモジュール
７０３  許可モジュール
８００  サーバ
８０１  許可モジュール
８０２  検証モジュール
８０３  鍵モジュール
８０４  復号化モジュール
９０２  プロセッサ
９０４  通信モジュール
９０６  メモリ
９０８  通信バス
９１０  ユーザインタフェース
９１２  出力デバイス
９１４  入力デバイス
９１６  オペレーティングシステム
９１８  アプリケーション
【国際調査報告】
2021502023.tif 000012
2021502023.tif 000013
2021502023.tif 000014
2021502023.tif 000015