"Nは2以上の整数、nは1以上N以下の整数とし、乱数rを生成する乱数生成部と、メッセージMと前記乱数rとを結合し、データSとする乱数結合部と、データSを秘密分散して分割データS1,...,SNを生成する秘密分散部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備える暗号化装置。Nは2以上の整数、nは1以上N以下の整数とし、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散部と、乱数rを生成する乱数生成部と、前記分割メッセージM1,...,MNそれぞれに前記乱数rを結合し、分割データS1,...,SNとする乱数結合部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備える暗号化装置。Nは2以上の整数、nは1以上N以下の整数とし、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散部と、乱数r1,...,rNを生成する乱数生成部と、前記分割メッセージM1,...,MNそれぞれに対応する前記乱数r1,...,rNを結合し、分割データS1,...,SNとする乱数結合部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備える暗号化装置。請求項1から3のいずれかに記載の暗号化装置であって、前記ハッシュ関数Hnは、分割データSnを暗号化する関数から、分割データSnごとに特定したハッシュ関数であることを特徴とする暗号化装置。請求項1から3のいずれかに記載の暗号化装置であって、前記ハッシュ関数Hnは、あらかじめ分割データSnごとに定めたハッシュ関数であることを特徴とする暗号化装置。請求項1から5のいずれかに記載の暗号化装置であって、∥はビット列同士を結合する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnSn∥pknのように求めることを特徴とする暗号化装置。請求項1から5のいずれかに記載の暗号化装置であって、∥はビット列同士を結合する記号、ΣNi1はi=1,...,Nについてビット列を連結することを意味する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnΣNi1Si∥pkiまたはhn←HnΣNi1pki∥Siのように求めることを特徴とする暗号化装置。請求項1から7のいずれかに記載の暗号化装置であって、前記秘密分散部は、AONTまたは閾値秘密分散法によって秘密分散することを特徴とする暗号化装置。Nは2以上の整数、nは1以上N以下の整数とし、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する暗号部と、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認部と、秘密分散されたデータである分割データS1,...,SNから、元のデータSを復元する復元部と、前記データSから、あらかじめ定めた条件にしたがってメッセージMを切り出す取得部とを備える復号装置。Nは2以上の整数、nは1以上N以下の整数とし、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnと乱数rnを切り出す取得部と、すべての乱数r1,...,rNが一致することを確認する確認部と、秘密分散されたデータである分割メッセージM1,...,MNから、元のメッセージMを復元する復元部とを備える復号装置。Nは2以上の整数、nは1以上N以下の整数とし、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する暗号部と、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認部と、前記分割データS1,...,SNから、あらかじめ定めた条件にしたがって分割メッセージM1,...,MNを切り出す取得部と、前記分割メッセージM1,...,MNから、元のメッセージMを復元する復元部と、を備える復号装置。請求項9または11記載の復号装置であって、前記ハッシュ関数Hnは、分割データSnを暗号化する関数から、分割データSnごとに特定したハッシュ関数であることを特徴とする復号装置。請求項9または11記載の復号装置であって、前記ハッシュ関数Hnは、あらかじめ分割データSnごとに定めたハッシュ関数であることを特徴とする復号装置。請求項9、11、12、13のいずれかに記載の復号装置であって、∥はビット列同士を結合する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnSn∥pknのように求めることを特徴とする復号装置。請求項9、11、12、13のいずれかに記載の復号装置であって、∥はビット列同士を結合する記号、ΣNi1はi=1,...,Nについてビット列を連結することを意味する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnΣNi1Si∥pkiまたはhn←HnΣNi1pki∥Siのように求めることを特徴とする復号装置。請求項9から15のいずれかに記載の復号装置であって、前記復元部は、AONTまたは閾値秘密分散法によって秘密分散されたデータを復元することを特徴とする復号装置。暗号化装置と復号装置を有する暗号化システムであって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置は、乱数rを生成する乱数生成部と、メッセージMと前記乱数rとを結合し、データSとする乱数結合部と、データSを秘密分散して分割データS1,...,SNを生成する秘密分散部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備え、前記復号装置は、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する暗号部と、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認部と、秘密分散されたデータである分割データS1,...,SNから、元のデータSを復元する復元部と、前記データSから、あらかじめ定めた条件にしたがってメッセージMを切り出す取得部とを備える暗号化システム。暗号化装置と復号装置を有する暗号化システムであって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置は、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散部と、乱数rを生成する乱数生成部と、前記分割メッセージM1,...,MNそれぞれに前記乱数rを結合し、分割データS1,...,SNとする乱数結合部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備え、前記復号装置は、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnと乱数rnを切り出す取得部と、すべての乱数r1,...,rNが一致することを確認する確認部と、秘密分散されたデータである分割メッセージM1,...,MNから、元のメッセージMを復元する復元部とを備える暗号化システム。暗号化装置と復号装置を有する暗号化システムであって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置は、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散部と、乱数r1,...,rNを生成する乱数生成部と、前記分割メッセージM1,...,MNそれぞれに対応する前記乱数r1,...,rNを結合し、分割データS1,...,SNとする乱数結合部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号部とを備え、前記復号装置は、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号部と、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュ部と、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する暗号部と、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認部と、前記分割データS1,...,SNから、あらかじめ定めた条件にしたがって分割メッセージM1,...,MNを切り出す取得部と、前記分割メッセージM1,...,MNから、元のメッセージMを復元する復元部と、を備える暗号化システム。請求項17から19のいずれかに記載の暗号化システムであって、前記ハッシュ関数Hnは、分割データSnを暗号化する関数から、分割データSnごとに特定したハッシュ関数であることを特徴とする暗号化システム。請求項17から19のいずれかに記載の暗号化システムであって、前記ハッシュ関数Hnは、あらかじめ分割データSnごとに定めたハッシュ関数であることを特徴とする暗号化システム。請求項17から21のいずれかに記載の暗号化システムであって、∥はビット列同士を結合する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnSn∥pknのように求めることを特徴とする暗号化システム。請求項17から21のいずれかに記載の暗号化システムであって、∥はビット列同士を結合する記号、ΣNi1はi=1,...,Nについてビット列を連結することを意味する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnΣNi1Si∥pkiのように求めることを特徴とする暗号化システム。請求項17から23のいずれかに記載の暗号化システムであって、前記秘密分散部は、AONTまたは閾値秘密分散法によって秘密分散し、前記復元部は、AONTまたは閾値秘密分散法によって秘密分散されたデータを復元することを特徴とする暗号化システム。暗号化装置と復号装置を有する暗号化システムを用いた暗号化方法であって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置で、乱数生成部が、乱数rを生成する乱数生成ステップと、乱数結合部が、メッセージMと前記乱数rとを結合し、データSとする乱数結合ステップと、秘密分散部が、データSを秘密分散して分割データS1,...,SNを生成する秘密分散ステップと、ハッシュ部が、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュステップと、暗号部が、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号ステップと、前記復号装置で、復号部が、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号ステップと、受信ハッシュ部が、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求める受信ハッシュステップと、受信暗号部が、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する受信暗号ステップと、確認部が、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認ステップと、復元部が、秘密分散されたデータである分割データS1,...,SNから、元のデータSを復元する復元ステップと、取得部が、前記データSから、あらかじめ定めた条件にしたがってメッセージMを切り出す取得ステップとを有する暗号化方法。暗号化装置と復号装置を有する暗号化システムを用いた暗号化方法であって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置で、秘密分散部が、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散ステップと、乱数生成部が、乱数rを生成する乱数生成ステップと、乱数結合部が、前記分割メッセージM1,...,MNそれぞれに前記乱数rを結合し、分割データS1,...,SNとする乱数結合ステップと、ハッシュ部が、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュステップと、暗号部が、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号ステップと、前記復号装置で、復号部が、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号ステップと、取得部が、前記分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnと乱数rnを切り出す取得ステップと、確認部が、すべての乱数r1,...,rNが一致することを確認する確認ステップと、復元部が、秘密分散されたデータである分割メッセージM1,...,MNから、元のメッセージMを復元する復元ステップとを有する暗号化方法。暗号化装置と復号装置を有する暗号化システムを用いた暗号化方法であって、Nは2以上の整数、nは1以上N以下の整数とし、前記暗号化装置で、乱数生成部が、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する秘密分散ステップと、乱数生成部が、乱数r1,...,rNを生成する乱数生成ステップと、乱数結合部が、前記分割メッセージM1,...,MNそれぞれに対応する前記乱数r1,...,rNを結合し、分割データS1,...,SNとする乱数結合ステップと、ハッシュ部が、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるハッシュステップと、暗号部が、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する暗号ステップと、前記復号装置で、復号部が、分割暗号文C1,...,CNを分割データS1,...,SNに復号する復号ステップと、受信ハッシュ部が、前記分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求める受信ハッシュステップと、受信暗号部が、前記ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する受信暗号ステップと、確認部が、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する確認ステップと、取得部が、前記分割データS1,...,SNから、あらかじめ定めた条件にしたがって分割メッセージM1,...,MNを切り出す取得ステップと、復元部が、前記分割メッセージM1,...,MNから、元のメッセージMを復元する復元ステップと、を有する暗号化方法。請求項25から27のいずれかに記載の暗号化方法であって、前記ハッシュ関数Hnは、分割データSnを暗号化する関数から、分割データSnごとに特定したハッシュ関数であることを特徴とする暗号化方法。請求項25から27のいずれかに記載の暗号化方法であって、前記ハッシュ関数Hnは、あらかじめ分割データSnごとに定めたハッシュ関数であることを特徴とする暗号化方法。請求項25から29のいずれかに記載の暗号化方法であって、∥はビット列同士を結合する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnSn∥pknのように求めることを特徴とする暗号化方法。請求項25から29のいずれかに記載の暗号化方法であって、∥はビット列同士を結合する記号、ΣNi1はi=1,...,Nについてビット列を連結することを意味する記号、pknは暗号化装置と復号装置で共有できるn番目の情報とし、前記の分割データSnに対応するハッシュ値hnは、hn←HnΣNi1Si∥pkiまたはhn←HnΣNi1pki∥Siのように求めることを特徴とする暗号化方法。請求項25から31のいずれかに記載の暗号化方法であって、前記秘密分散ステップは、AONTまたは閾値秘密分散法によって秘密分散し、前記復元ステップは、AONTまたは閾値秘密分散法によって秘密分散されたデータを復元することを特徴とする暗号化方法。請求項1から8のいずれかに記載の暗号化装置、もしくは請求項9から16のいずれかに記載の復号装置としてコンピュータを機能させるプログラム。しかしながら、従来技術はワンタイム署名を付加しなければならない。そして、ワンタイム署名は、署名長とラベル長が長くなるなどの問題を持つ電子署名方式であり、ワンタイム署名を用いることで暗号文が長くなってしまうという課題がある。例えば、Merkelのワンタイム署名では、128ビットのメッセージに対して、8704ビットのワンタイム署名が必要である。また、RSA-OAEPのラベルは120ビットである。そこで本発明は、ワンタイム署名とラベルを付加する必要のない複数の条件で暗号化する暗号化装置、復号装置を提供することを目的とする。Nは2以上の整数、nは1以上N以下の整数とする。本発明の第1の暗号化装置は、乱数生成部、乱数結合部、秘密分散部、ハッシュ部、暗号部を備える。乱数生成部は、乱数rを生成する。乱数結合部は、メッセージMと乱数rとを結合し、データSとする。秘密分散部は、データSを秘密分散して分割データS1,...,SNを生成する。ハッシュ部は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求める。暗号部はハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する。本発明の第1の復号装置は、復号部、ハッシュ部、暗号部、確認部、復元部、取得部を備える。復号部は、分割暗号文C1,...,CNを分割データS1,...,SNに復号する。ハッシュ部は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求める。暗号部は、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成する。確認部は、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認する。復元部は、秘密分散されたデータである分割データS1,...,SNから、元のデータSを復元する。取得部は、データSから、あらかじめ定めた条件にしたがってメッセージMを切り出す。本発明の第2の暗号化装置は、秘密分散部、乱数生成部、乱数結合部、ハッシュ部、暗号部を備える。秘密分散部は、メッセージMを秘密分散して分割メッセージM1,...,MNを生成する。乱数生成部は、乱数rを生成する。乱数結合部は、分割メッセージM1,...,MNそれぞれに乱数rを結合し、分割データS1,...,SNとする。ハッシュ部は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求める。暗号部は、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成する。本発明の第2の復号装置は、復号部、取得部、確認部、復元部を備える。復号部は、分割暗号文C1,...,CNを分割データS1,...,SNに復号する。取得部は、分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnと乱数rnを切り出す。確認部は、すべての乱数r1,...,rNが一致することを確認する。復元部は、秘密分散されたデータである分割メッセージM1,...,MNから、元のメッセージMを復元する。本発明の暗号化装置と復号装置によれば、分割データSnを暗号化するときに使用する乱数として、分割データSnに対応するハッシュ値hnを使用する。このハッシュ値hnは分割データSnに依存しているので、複数の条件で暗号化しても、暗号文にワンタイム署名とラベルを付加する必要がない。したがって、暗号文の長さを短くできる。以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。以下の説明では、Nは2以上の整数、nは1以上N以下の整数、∥はビット列同士を結合する記号、pknはn番目の条件に対する公開鍵、sknはn番目の条件に対する秘密鍵とする。図2に実施例1の暗号システムの構成例を示す。また、図3は実施例1の暗号化装置の処理フローを示す図、図4は実施例1の復号装置の処理フローを示す図である。実施例1の暗号化装置100は、N個の条件でメッセージを暗号化する暗号化装置である。暗号化装置100は、乱数生成部110、乱数結合部120、秘密分散部130、ハッシュ部140、暗号部150、入出力部180、記録部190を備える。暗号化装置100の入出力部180がメッセージMを受け取ると記録部190に記録し、乱数生成部110が乱数rを生成するS110。乱数結合部120は、メッセージMと乱数rとを結合し、データSとし、記録部190に記録するS120。例えば、S←M∥rとすればよい。また、乱数rのビット数をあらかじめ定めておいてもよいし、メッセージMの最後の数ビットを、メッセージの終了が判別できるビット列としておいてもよい。このように、あらかじめ定めた条件でメッセージMと乱数rとを結合しておく。秘密分散部130は、データSを秘密分散して分割データS1,...,SNを生成し、記録部190に記録するS130。秘密分散の方法としては、AONTAllorNothingTransformもしくは閾値秘密分散法SSS:SecretSharingSchemesを用いればよい。ハッシュ部140は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるS140。ハッシュ関数Hnは、暗号化の条件分割データSnを暗号化する関数などから、分割データSnごとに選定したハッシュ関数でもよいし、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数でもよい。分割データSnごとに選定したハッシュ関数を用いる場合には、記録部190は選定されたハッシュ関数を特定するインデックスindexnを記録しておく。また、分割データSnに対応するハッシュ値hnとは、ハッシュ関数に分割データSnを入力した結果でもよいし、分割データSnに他のビット列を付加したビット列を入力した結果でもよい。例えば、hn←HnSnとしてもよいし、hn←HnSn∥pknのように、公開鍵pknを付加して入力してもよい。なお、このとき付加した公開鍵pknはnを正しく認証できる情報暗号化装置と復号装置で共有できる情報であれば、他の情報に置き換えることもできる。また、hn←HnΣNi1Si∥pkiのように、全てを連結したものを入力してもよい。ここで、ΣNi1はi=1,...,Nについて、ビット列を連結することを意味する。例えば、ΣNi1Si∥pkiはS1∥pk1∥S2∥pk2∥∥SN∥pkNを意味する。なお、上記の例は、hn←HnΣNi1pki∥Siとしてもよい。暗号部150は、n=1,...,Nについて、ハッシュ値hnを乱数として用いて、n番目の暗号化の条件で分割データSnを暗号化し、分割暗号文Cnを生成し、記録部190に記録するS150。具体的には、ハッシュ部140が、分割データSnごとに選定したハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hn,indexnのように分割暗号文Cnを生成する。また、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hnのように分割暗号文Cnを生成する。そして、入出力部180が、分割暗号文C1,...,CNを暗号文として復号装置200に送信する。なお、ハッシュ値hnとしてHnSnを用いると、Cn’←EncnSn,pkn’,hnただし、pkn’≠pknのように求めた分割暗号文Cn’が分割暗号文Cnと一致してしまう可能性が残る。一方、ハッシュ値hnとしてHnSn∥pknを用いると、異なる公開鍵pkn’の場合にはEncnへ入力されるハッシュ値乱数も異なるので、Cn←EncnSn,pkn’,hn’ただし、pkn’≠pkn,hn’≠hnのように求めた分割暗号文Cnは、分割暗号文Cnとは必ず異なる。一方、ハッシュ値hnとしてHnΣNi1Si∥pkiを用いると、全てのSiを入手しないと復号することができないため、一部のSiを所持している場合の悪意のある復号を防ぐことができる。復号装置200は、復号部210、ハッシュ部220、暗号部230、確認部240、復元部250、取得部260、入出力部280、記録部290を備える。復号装置200の入出力部280が暗号文を受け取ると、復号装置200は暗号文を分割暗号文C1,...,CNに分けて記録部290に記録する。復号部210は、複数の条件に適合した復号方法で分割暗号文C1,...,CNを分割データS1,...,SNに復号するS210。具体的には、n=1,...,Nについて、Sn←DecnEncnSn,pkn,hn,sknのように分割データSnを求める。ハッシュ部220は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるS220。なお、ハッシュ部220は、暗号化装置100のハッシュ部140と同じ方法でハッシュ値hnを求める。つまり、ハッシュ部140が分割データSnごとに選定したハッシュ関数を用いたのであれば、ハッシュ関数を特定するインデックスindexnを用いて同じハッシュ関数を求める。また、ハッシュ部140が、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数を用いるのであれば、同じように定めたハッシュ関数を用いる。さらに、ハッシュ部220は、ハッシュ関数への入力もハッシュ部140と同じにする。例えば、ハッシュ部140が、hn←HnSnのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。hn←HnSn∥pknのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。hn←HnΣNi1Si∥pkiのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。暗号部230は、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成するS230。つまり、Cn’←EncnSn,pkn,hnのように分割暗号文Cn’を求める。確認部240は、すべてのnについて、分割暗号文Cnと分割暗号文Cn’とが一致することを確認するS240。いずれかの分割暗号文Cnと分割暗号文Cn’とが一致しなかった場合には、処理を中止する。すべての分割暗号文Cnと分割暗号文Cn’とが一致した場合には、復元部250は、秘密分散されたデータである分割データS1,...,SNから、元のデータSを復元し、記録部290に記録するS250。なお、具体的な復元の方法は、暗号化装置100の秘密分散部130と対応した方法を用いればよい。取得部260は、データSから、あらかじめ定めた条件にしたがってメッセージMを切り出し、記録部290に記録するS260。例えば、データSは、M∥rのような構造となっており、乱数rのビット数が決まっているのであれば、乱数のビット数分のビット列を削除することで切り出すことができる。メッセージの終了が判別できるビット列があるのであれば、そのビット列を探して切り出せばよい。実施例1の暗号化装置と復号装置によれば、分割データSnを暗号化するときに使用する乱数として、分割データSnに対応するハッシュ値hnを使用する。このハッシュ値hnは分割データSnに依存しているので、暗号文にワンタイム署名とラベルを付加する必要がない。したがって、暗号文の長さを短くできる。例えば、Merkelのワンタイム署名では、128ビットのメッセージに対して、8704ビットのワンタイム署名が必要であったが、このワンタイム署名が不要となる。また、RSA-OAEPのラベルは120ビットであったが、これも不要となる。さらに、暗号時にハッシュ関数を利用することで、復号時に乱数が必要なくなる。これにより、資源の乏しい計算機でも複数の条件で暗号化する多重暗号を実行できるようになる。図5に実施例2の暗号システムの構成例を示す。また、図6は実施例2の暗号化装置の処理フローを示す図、図7は実施例2の復号装置の処理フローを示す図である。実施例2の暗号化装置300も、N個の条件でメッセージを暗号化する暗号化装置である。暗号化装置300は、秘密分散部310、乱数生成部320、乱数結合部330、ハッシュ部340、暗号部350、入出力部380、記録部390を備える。暗号化装置300の入出力部380がメッセージMを受け取ると記録部390に記録する。秘密分散部310は、メッセージMを秘密分散して分割メッセージM1,...,MNを生成し、記録部390に記録するS310。秘密分散の方法としては、AONTAllorNothingTransformもしくは閾値秘密分散法SSS:SecretSharingSchemesを用いればよい。乱数生成部320は、乱数rを生成するS320。乱数結合部330は、分割メッセージM1,...,MNそれぞれに乱数rを結合し、分割データS1,...,SNとし、記録部390に記録するS330。例えば、乱数rのビット数をあらかじめ定めておいてSn←Mn∥rとすればよい。このように、あらかじめ定めた条件で分割メッセージMnと乱数rとを結合しておく。ハッシュ部340は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるS340。ハッシュ関数Hnは、暗号化の条件分割データSnを暗号化する関数などから、分割データSnごとに特定したハッシュ関数でもよいし、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数でもよい。分割データSnごとに選定したハッシュ関数を用いる場合には、記録部390は選定されたハッシュ関数を特定するインデックスindexnを記録しておく。また、分割データSnに対応するハッシュ値hnとは、ハッシュ関数に分割データSnを入力した結果でもよいし、分割データSnに他のビット列を付加したビット列を入力した結果でもよい。例えば、hn←HnSnとしてもよいし、hn←HnSn∥pknのように、公開鍵pknを付加して入力してもよい。なお、このとき付加した公開鍵pknはnを正しく認証できる情報暗号化装置と復号装置で共有できる情報であれば、他の情報に置き換えることもできる。また、hn←HnΣNi1Si∥pkiのように、全てを連結したものを入力してもよい。ここで、ΣNi1はi=1,...,Nについて、ビット列を連結することを意味する。例えば、ΣNi1Si∥pkiはS1∥pk1∥S2∥pk2∥∥SN∥pkNを意味する。なお、上記の例はhn←HnΣNi1pki∥Siとしてもよい。なお、公開鍵pknを付加する理由は、実施例1と同じである。暗号部350は、n=1,...,Nについて、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成し、記録部390に記録するS350。具体的には、ハッシュ部340が、分割データSnごとに選定したハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hn,indexnのように分割暗号文Cnを生成する。また、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hnのように分割暗号文Cnを生成する。そして、入出力部380が、分割暗号文C1,...,CNを暗号文として復号装置400に送信する。復号装置400は、復号部410、取得部420、確認部430、復元部440、入出力部480、記録部490を備える。復号装置400の入出力部480が暗号文を受け取ると、復号装置400は暗号文を分割暗号文C1,...,CNに分けて記録部490に記録する。復号部410は、複数の条件に適合した復号方法で分割暗号文C1,...,CNを分割データS1,...,SNに復号するS410。具体的には、n=1,...,Nについて、Sn←DecnEncnSn,pkn,hn,sknのように分割データSnを求める。取得部420は、分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnと乱数rnを切り出すS420。例えば、乱数のビット数をあらかじめ定めておき、分割データSnの後ろのそのビット数分を乱数rnとし、残りを分割メッセージMnとすればよい。確認部430は、すべての乱数r1,...,rNが一致することを確認するS430。いずれかの乱数rnが一致しなかった場合には、処理を中止する。すべての乱数r1,...,rNが一致した場合には、復元部440は、秘密分散されたデータである分割メッセージM1,...,MNから、元のメッセージMを復元し、記録部490に記録するS440。なお、具体的な復元の方法は、暗号化装置300の秘密分散部310と対応した方法を用いればよい。実施例2の暗号化装置と復号装置によれば、分割データSnを暗号化するときに使用する乱数として、分割データSnに対応するハッシュ値hnを使用する。このハッシュ値hnは分割データSnに依存しているので、実施例1と同じように暗号文にワンタイム署名とラベルを付加する必要がない。さらに、暗号時にハッシュ関数を利用することで、復号時に乱数が必要なくなる。これにより、資源の乏しい計算機でも複数の条件で暗号化する多重暗号を実行できるようになる。図8に実施例3の暗号システムの構成例を示す。また、図9は実施例3の鍵生成装置の処理フローを示す図、図6は実施例3の暗号化装置の処理フローを示す図、図7は実施例3の復号装置の処理フローを示す図である。実施例3ではメッセージを暗号化する条件が、時刻と受信者の2つの場合を説明する。この2つの条件での暗号化では、復号時刻と復号者を限定でき、新作映画の封切りや試験問題の配布などでの利用が考えられる。なお、条件は2つに限定する必要はなく、実施例1や実施例2で説明したように3個以上の条件としてもかまわない。以下の説明では条件が2つの場合について説明しながら、3個以上の条件の場合を含む一般的な場合も補足的に説明する。実施例1と実施例2では、鍵は与えられた状態生成され、記録されるべき装置が記録した状態から説明したが、実施例3の暗号システムでは鍵生成装置についても簡単に説明する。実施例3の鍵生成装置800は、時刻鍵生成部810、受信鍵生成部820、リリース鍵生成部830を備える。時刻鍵生成部810は、時刻に関する秘密鍵tskと公開鍵tpkを生成するS810。受信鍵生成部820は、受信者用の秘密鍵uskと公開鍵upkを生成し、秘密鍵uskを何らかの安全な方法で復号装置600に送り、公開鍵upkを公開するS820。リリース鍵生成部830は、指定された時刻Tに対する秘密鍵sTを生成し、秘密鍵sTを何らかの安全な方法で復号装置600に送るS830。なお、時刻Tは暗号文が復号できる時刻を示す公開情報である。本実施例では、時刻Tが公開鍵pk1に、秘密鍵sTが秘密鍵sk1に、公開鍵upkが公開鍵pk2に、秘密鍵uskが秘密鍵sk2に相当する。実施例3の暗号化装置500は、秘密分散部510、乱数生成部520、乱数結合部530、ハッシュ部540、暗号部550、入出力部580、記録部590を備える。暗号化装置500の入出力部580がメッセージMを受け取ると記録部590に記録する。秘密分散部510は、メッセージMを秘密分散して分割メッセージM1,M2を生成し、記録部590に記録するS510。具体的には、乱数rmを生成し、M1=rm、M2=Mrmのように分割メッセージM1,M2を生成すればよい。ただし、は排他的論理和を示す記号である。なお、3個以上を含むN個に分割する場合は、AONTAllorNothingTransformもしくは閾値秘密分散法SSS:SecretSharingSchemesを用いて秘密分散すればよい。乱数生成部520は、乱数r1,r2を生成するS520。なお、暗号化の条件がN個あるのであれば、乱数r1,...,rNを生成すればよい。乱数結合部530は、分割メッセージM1に乱数r1を結合し、分割メッセージM2に乱数r2を結合し、分割データS1,S2とし、記録部590に記録するS530。例えば、乱数r1,r2のビット数をあらかじめ定めておいてSn←Mn∥rnとすればよい。このように、あらかじめ定めた条件で分割メッセージMnと乱数rnとを結合しておく。ハッシュ部540は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるS540。ハッシュ関数Hnは、暗号化の条件分割データSnを暗号化する関数などから、分割データSnごとに特定したハッシュ関数でもよいし、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数でもよい。分割データSnごとに選定したハッシュ関数を用いる場合には、記録部590は選定されたハッシュ関数を特定するインデックスindexnを記録しておく。また、分割データSnに対応するハッシュ値hnとは、ハッシュ関数に分割データSnを入力した結果でもよいし、分割データSnに他のビット列を付加したビット列を入力した結果でもよい。例えば、hn←HnSnとしてもよいし、hn←HnSn∥pknのように、公開鍵pknを付加して入力してもよい。なお、このとき付加した公開鍵pknはnを正しく認証できる情報暗号化装置と復号装置で共有できる情報であれば、他の情報に置き換えることもできる。また、hn←HnΣNi1Si∥pkiまたはhn←HnΣNi1pki∥Siのように、全てを連結したものを入力してもよい。実施例3の場合であれば、hn←Hnpk1∥S1∥pk2∥S2とすればよい。また、乱数結合部530とハッシュ部540の処理を一度に行うのであれば、hn←Hnpk1∥M1∥r1∥pk2∥M2∥r2のように処理してもよい。なお、公開鍵pknを付加する理由は、実施例1と同じである。暗号部550は、n=1,2について、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cnを生成し、記録部590に記録するS550。一般的に表現すると、ハッシュ部540が、分割データSnごとに選定したハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hn,indexnのように分割暗号文Cnを生成する。また、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数を用いる場合には、n=1,...,Nについて、Cn←EncnSn,pkn,hnのように分割暗号文Cnを生成する。そして、入出力部580が、分割暗号文C1,...,CNを暗号文として復号装置600に送信する。復号装置600は、復号部610、ハッシュ部620、暗号部630、確認部640、取得部650、復元部660、入出力部680、記録部690を備える。復号装置600の入出力部680が暗号文を受け取ると、復号装置600は暗号文を分割暗号文C1,C2に分けて記録部690に記録する。復号部610は、複数の条件に適合した復号方法で分割暗号文C1,C2を分割データS1,S2に復号するS610。一般的に表現すると、n=1,...,Nについて、Sn←DecnEncnSn,pkn,hn,sknのように分割データSnを求める。ハッシュ部620は、分割データSnごとに、対応するハッシュ関数Hnを用いて分割データSnに対応するハッシュ値hnを求めるS620。なお、ハッシュ部620は、暗号化装置500のハッシュ部540と同じ方法でハッシュ値hnを求める。つまり、ハッシュ部540が分割データSnごとに選定したハッシュ関数を用いたのであれば、ハッシュ関数を特定するインデックスindexnを用いて同じハッシュ関数を求める。また、ハッシュ部540が、暗号化の条件ごと分割データSnごとにあらかじめ定めたハッシュ関数を用いるのであれば、同じように定めたハッシュ関数を用いる。さらに、ハッシュ部620は、ハッシュ関数への入力もハッシュ部540と同じにする。例えば、ハッシュ部540が、hn←HnSnのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。hn←HnSn∥pknのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。hn←HnΣNi1Si∥pkiのようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。また、上述した例のようにhn←Hnpk1∥S1∥pk2∥S2のようにハッシュ値hnを求めるのであれば、同じようにハッシュ値hnを求める。暗号部630は、n=1,2について、ハッシュ値hnを用いて分割データSnを暗号化し、分割暗号文Cn’を生成するS630。一般的に表現すると、Cn’←EncnSn,pkn,hnのように分割暗号文Cn’を求めればよい。確認部640は、n=1,2について、分割暗号文C1と分割暗号文C1’、分割暗号文C2と分割暗号文C2’とが一致することを確認するS640。一般的に表現すると、いずれかの分割暗号文Cnと分割暗号文Cn’とが一致しなかった場合には、処理を中止する。すべての分割暗号文Cnと分割暗号文Cn’とが一致した場合には、取得部650は、分割データSnから、あらかじめ定めた条件にしたがって分割メッセージMnを切り出し、記録部690に記録するS650。例えば、分割データSnは、Mn∥rnのような構造となっており、乱数rnのビット数が決まっているのであれば、乱数のビット数分のビット列を削除することで切り出すことができる。分割メッセージの終了が判別できるビット列があるのであれば、そのビット列を探して切り出せばよい。復元部660は、分割メッセージM1,M2から、元のメッセージMを復元し、記録部690に記録するS250。なお、具体的な復元の方法は、暗号化装置500の秘密分散部510と対応した方法を用いればよい。例えば、M1=rm、M2=Mrmのように分割メッセージM1,M2を生成したのであれば、メッセージMをM=M1M2のように計算し、復元すればよい。そして、入出力部680がメッセージMを出力する。実施例3の暗号化装置と復号装置でも、実施例1や実施例2と同様の効果が得られる。また、多重化する暗号の中に時刻を条件として含めることもできる。[プログラム、記録媒体]上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASPApplicationServiceProvider型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるものコンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等を含むものとする。また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。"