4-3-3 PDFファイルの暗号化について

Adobe PDFの暗号化リビジョン

PDF機種の[セキュリティ]で指定できる暗号化のレベルは、Adobe PDFの暗号化仕様のリビジョン(Revision2~5)に対応します。

暗号化リビジョン [セキュリティ]の暗号化レベル
Revision2 40bit RC4(Acrobat 3.x,4.x)
Revision3 128bit RC4(Acrobat 5.x)
Revision4 128bit RC4(Acrobat 6.x)
128bit AES(Acrobat 7.x)
Revision5 256bit AES(Acrobat 9.x)

暗号化の仕様はPDF 1.7に準拠しています。

暗号化レベルと権限値

いずれの暗号化レベルにおいても、アクセス制限(許可される操作)を数値で設定します。その数値が権限値です。
[セキュリティ]での権限値の設定方法は次のとおりです。

  • 「40bit RC4(Acrobat 3.x,4.x)」を指定した場合
    [印刷]、[文書の変更]、[テキストとグラフィックの選択]、および[注釈とフォームフィールドの追加]でアクセス制限を指定します。[権限の設定]には入力できません。
  • 「40bit RC4(Acrobat 3.x,4.x)」以外を指定した場合
    [権限の設定]に権限値を入力します。[印刷]、[文書の変更]、[テキストとグラフィックの選択]、および[注釈とフォームフィールドの追加]は指定できません。
    権限値の計算方法は「PDF暗号化計算機による権限値の計算」を参照してください。

PDF暗号化計算機による権限値の計算

権限値の計算は、PDF暗号化計算機を使用します。PDF暗号化計算機では、アクセス制限の内容から権限値を計算できます。
ここでは「256bit AES(Acrobat 9.x)」の権限値を計算する場合について説明します。


  1. SVF環境設定のメニューバーから、[オプション]-[PDF暗号化計算機]を選択し、[PDF Permission Calculator]ダイアログを開きます。


  2. 「暗号化レベル」で「128bit RC4 or AES, 256bit AES(Acrobat 5,6,7,9 or later)」を選択し、PDFファイルに対して必要な権限を指定します。
    指定した権限を基に計算された権限値が、[現在のパーミッション値]に表示されます。

API関数で暗号化を設定する場合の設定方法

印刷用ユーザープログラム内でAPI関数を使用して暗号化を設定する場合は、次の順序でAPI関数を使用します。

  1. 暗号化リビジョンの指定
  2. 禁止項目の指定
  3. ユーザーパスワードの指定
  4. セキュリティパスワードの指定
注意

SVF環境設定での指定とAPI関数による指定とを併用する場合、API関数による指定が有効になります。

 

  1. 暗号化リビジョンの指定

    VrComout()を用いて以下のように記述します。

    VrComout("/{SECU <設定値>}/")

    設定値には、以下のいずれかを指定します。

    設定値暗号化レベル
    140bit RC4(Acrobat 3.x,4.x)
    2128bit RC4(Acrobat 5.x)
    3128bit RC4(Acrobat 6.x)
    4128bit AES(Acrobat 7.x)
    5256bit AES(Acrobat 9.x)

    256bit AES(Acrobat 9.x)を指定する場合の入力例

    VrComout("/{SECU 5}/")
  2. 権限値の設定

    VrComout()を用いて以下のように記述します。

    VrComout("/{PERM <設定値>}/")

    設定値には、PDF暗号化計算機で計算した権限値を指定します。
    「40bit RC4(Acrobat 3.x,4.x)」の場合も、PDF暗号化計算機で権限値を計算して指定します。

    「256bit AES(Acrobat 9.x)」を指定した上で、設定可能なすべての操作を禁止する場合の入力例

    VrComout("/{PERM -3904}/")
  3. ユーザーパスワードの指定

    出力したPDFファイルを開く際のパスワードを設定したい場合に指定します。
    パスワードを設定しない場合は、このAPI関数は使用しません。
    VrComout()を用いて以下のように記述します。

    VrComout("/{PSWD <設定文字列>}/")

    設定文字列には、パスワード文字列を指定します。

    ユーザーパスワードに「userlock」を指定する場合の入力例

    VrComout("/{PSWD userlock }/")
  4. セキュリティパスワードの指定

    暗号化するためのパスワードを指定します。
    VrComout()を用いて以下のように記述します。

    VrComout("/{SECUPSWD <設定文字列>}/")

    設定文字列には、パスワード文字列を指定します。

    セキュリティパスワードに「seculock」を指定する場合の入力例

    VrComout("/{SECUPSWD seculock}/")

    上記API関数の詳細は、「SVF Java PRODUCTS API関数リファレンス・マニュアル」を参照してください。

注意

使用するビューアーによって、暗号化PDFを開くときの挙動が異なります。使用するビューアーであらかじめ動作を確認してください。Adobe Reader Ver9.xを使用した場合は、次のとおりです。

  • セキュリティパスワードのみ指定
    パスワード入力ダイアログは表示されません。指定した[権限]が有効となります。
  • ユーザーパスワードのみ指定
    パスワード入力ダイアログが表示されます。指定した[権限]は有効となりません。
  • セキュリティパスワード、ユーザーパスワードに同じ値を指定
    ユーザーパスワードのみ指定したときと同じ挙動となります。
  • セキュリティパスワード、ユーザーパスワードに異なる値を指定
    パスワード入力ダイアログが表示されます。ユーザーパスワードを入力した場合のみ、指定した権限が有効となります。