11
商 大 論 集
1 はじめに
分散ストレージ方式とは重要な情報であ
るオリジナル情報を
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable) ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
個のノードに分散さ
せて保管し,必要なときに
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable) ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
個
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
の
ノードの分散情報からオリジナル情報が復
元できる方式である.よって,故障等によっ
て一部のノードの分散情報が利用できなく
なった場合でも,正常なノードが k 個以上
存在していれば,それらのノードの分散情
報からオリジナル情報が復元できるため信
頼性が確保できる.このような方式は,リー
ド・ソロモン符号のような最大距離分離
(MDS:Maximmum Distance Separable)
符号 [1] を利用することで実現できる.具
体 的 に は, 情 報 長
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
, 符 号 長
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
と し た
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable) ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
MDS 符号によってオリジナル情報を
長さ
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
の符号語に符号化し,その符号語の
各シンボルを各ノードの分散情報とするこ
とで,任意の
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
個の分散情報からオリジナ
ル情報を復元可能な分散ストレージ方式が
実現できる.
また,信頼性の観点から故障ノードを修
復できる方がより望ましいため,分散スト
レージ方式における故障ノードの修復に関
する研究が近年盛んに行われている.修復
可能な分散ストレージ方式の自明な構成法
として,故障していない任意の
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable) ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
個のノー
ドの分散情報からオリジナル情報を復元
し,故障ノードが記憶していた分散情報を
再生成することが考えられるが,再生成し
たい分散情報の
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
倍の大きさの情報を利用
するため効率的ではない.この問題に対し
て,
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
を満たす任意の
จ
ؔͷอଘΛతͱͨ͠ނোϊʔυम෮ՄೳͳࢄετϨʔδํࣜʹ͓͚Δ
म෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜූ߸ͷҰߏ๏
٢ɹాɹོɹ߂
1
͡Ίʹ
ࢄετϨʔδํࣜͱॏཁͳใͰ͋ΔΦϦδφ
ϧใΛ n ݸͷϊʔυʹࢄͤͯ͞อ͠ɼඞཁͳ
ͱ͖ʹ k ݸ (k ≤ n) ͷϊʔυͷࢄใ͔ΒΦϦδ
φϧใ͕෮ݩͰ͖ΔํࣜͰ͋ΔɽΑͬͯɼނোʹ
ΑͬͯҰ෦ͷϊʔυͷࢄใ͕ར༻Ͱ͖ͳ͘ͳͬͨ
߹Ͱɼਖ਼ৗͳϊʔυ͕ k ݸҎ্ଘࡏ͍ͯ͠Εɼ
ͦΕΒͷϊʔυͷࢄใ͔ΒΦϦδφϧใ͕෮ݩ
Ͱ͖ΔͨΊ৴པੑ͕֬อͰ͖Δɽ͜ͷΑ͏ͳํࣜɼ
ϦʔυɾιϩϞϯූ߸ͷΑ͏ͳ࠷େڑ (MDS:
Maximmum Distance Separable)ූ߸ [1] Λར༻͢
Δ͜ͱͰ࣮ݱͰ͖Δɽ۩ମతʹɼใ kɼූ߸
nͱͨ͠ [n, k] MDS ූ߸ʹΑͬͯΦϦδφϧใΛ
͞ n ͷූ߸ޠʹූ߸Խ͠ɼͦͷූ߸ޠͷ֤γϯϘϧ
Λ֤ϊʔυͷࢄใͱ͢Δ͜ͱͰɼҙͷ k ݸͷ
ࢄใ͔ΒΦϦδφϧใΛ෮ݩՄೳͳࢄετϨʔ
δํ͕࣮ࣜݱͰ͖Δɽ
·ͨɼ৴པੑͷ؍͔ΒނোϊʔυΛम෮Ͱ͖Δํ
͕ΑΓ·͍ͨ͠ΊɼࢄετϨʔδํࣜʹ͓͚Δނ
োϊʔυͷम෮ʹؔ͢Δݚڀ͕ۙΜʹߦΘΕ͍ͯ
Δɽम෮ՄೳͳࢄετϨʔδํࣜͷࣗ໌ͳߏ๏ͱ
ͯ͠ɼނো͍ͯ͠ͳ͍ҙͷ k ݸͷϊʔυͷࢄใ
͔ΒΦϦδφϧใΛ෮ݩ͠ɼނোϊʔυ͕هԱͯ͠
͍ͨࢄใΛ࠶ੜ͢Δ͜ͱ͕ߟ͑ΒΕΔ͕ɼ࠶ੜ
͍ͨ͠ࢄใͷ k ഒͷେ͖͞ͷใΛར༻͢Δͨ
ΊޮతͰͳ͍ɽ͜ͷʹରͯ͠ɼk ≤ d Λຬͨ
͢ҙͷ d ݸͷނো͍ͯ͠ͳ͍ϊʔυ͕ੜ͢Δނো
ϊʔυम෮༻ͷใΛूΊΔ͜ͱͰޮతʹނোϊʔ
υͷࢄใΛ࠶ੜͰ͖Δ࠶ੜූ߸ͷ֓೦͕ࣔ͞
Εͨ [2]ɽߋʹɼ֤ϊʔυ͕هԱ͢ΔࢄใͷهԱ
༰ྔʢҎԼͰɼ୯ʹهԱ༰ྔͱݺͿʣͱނোϊʔυ
Λम෮͢ΔͨΊʹඞཁͳ࠶ੜใͷେ͖͞ʢҎԼͰ
ɼम෮ଳҬ෯ͱݺͿʣʹτϨʔυΦϑ͕͋Δ͜ͱ
ࣔ͞Ε͍ͯΔ [2]ɽ͜ͷτϨʔυΦϑʹ͓͍ͯɼهԱ༰
ྔ͕࠷খͱͳΔͱ͖ʹम෮ଳҬ෯Λ࠷খͱ͢Δ࠶ੜ
ූ߸ɼٴͼम෮ଳҬ෯͕࠷খͱͳΔͱ͖ʹهԱ༰ྔΛ
࠷খͱ͢Δ࠶ੜූ߸͕ఏҊ͞Ε͍ͯΔ [3, 4, 5, 6]ɽ
ҰํɼؔΛൿີใͱͯ͠ࢄ͢Δൿີؔࢄ
๏͕ఏҊ͞Ε͍ͯΔ [7, 8, 9]ɽ͜ͷํ͖͍ࣜ͠ൿ
ີࢄ๏ [10] ʹ͓͚ΔൿີใΛؔʹ֦ுͨ͠ํࣜ
Ͱɼ·ͣؔ φ(·) Λ n ݸͷࢄใʹූ߸Խ͠ɼͦ
ΕΒΛ֤ϊʔυ͕هԱ͢Δɽೖྗ x ʹର͢Δؔ
φ(x)ΛΓ͍ͨར༻ऀɼೖྗ x Λҙͷ k ݸͷ
ϊʔυૹ৴͠ɼ֤ϊʔυ x ͱ͕ࣗهԱ͍ͯ͠Δ
ࢄใ͔Β φ(x) ʹର͢Δؔ෮ݩใΛੜ͠
ͯར༻ऀૹ৴͢Δɽར༻ऀ k ݸͷؔ෮ݩใ
͔Βɼؔ φ(x) Λ෮ݩ͢Δ͜ͱ͕Ͱ͖Δɽ͜ͷΑ
͏ͳؔͷൿີࢄ๏Λར༻͢Δ͜ͱͰ Kerberos
ͷݤૹํࣜʹ͓͚ΔݤૹηϯλʔͷػೳΛࢄ͠ɼ
Ұ෦ͷݤૹηϯλʔͷػೳఀࢭෆਖ਼ʹର͢ΔϦε
ΫΛܰݮͰ͖Δ [9]ɽ͔͠͠ɼϊʔυͷނোʹΑͬͯ
ഁଛɾফࣦͨ͠ࢄใΛޮతʹ࠶ੜ͢Δํࣜʹ
͍ͭͯߟ͑ΒΕ͍ͯͳ͍ɽ
ͦ͜ͰຊจͰɼൿີؔࢄ๏ͱಉ༷ʹɼؔ
ͷอଘΛతͱ͢Δނোϊʔυ͕म෮Մೳͳࢄετ
ϨʔδํࣜΛ৽ͨʹఆٛ͢Δɽ࣍ʹɼఏҊͨ͠ํࣜΛ
࣮ݱ͢Δ࠶ੜූ߸ΛఏҊ͠ɼͦͷ࠶ੜූ߸ͷੑ࣭
Λࣔ͢ɽ
ຊจͷߏҎԼͷͱ͓ΓͰ͋Δɽ2 ষͰैདྷ
ͷम෮ՄೳͳࢄετϨʔδํࣜͱ࠶ੜූ߸Λઆ໌
͢Δɽ3 ষͰɼؔͷอଘΛతͱ͢Δम෮Մೳͳ
ࢄετϨʔδํࣜͱ࠶ੜූ߸Λ৽ͨʹఆٛ͠ɼ4
ষͰؔͷอଘΛతͱ͢Δ࠶ੜූ߸ͷ۩ମతߏ
๏ΛఏҊ͢Δɽ࠷ޙʹ 5 ষͰ·ͱΊΔɽ
2
ैདྷݚڀ
2.1 म෮ՄೳͳࢄετϨʔδํࣜ
म෮ՄೳͳࢄετϨʔδํࣜɼn ݸͷϊʔυ
ψ1
, ψ2
, . . . , ψn ͱσʔλίϨΫλʔ DC ʹΑͬͯߏ
個の故障して
いないノードが生成する故障ノード修復用
の情報を集めることで効率的に故障ノード
の分散情報を再生成できる再生成符号の概
念が示された [2].更に,各ノードが記憶
する分散情報の記憶容量(以下では,単に
記憶容量と呼ぶ)と故障ノードを修復する
ために必要な再生成情報の大きさ(以下で
は,修復帯域幅と呼ぶ)にトレードオフが
あることも示されている [2].このトレー
ドオフにおいて,記憶容量が最小となると
きに修復帯域幅を最小とする再生成符号,
及び修復帯域幅が最小となるときに記憶容
量を最小とする再生成符号が提案されてい
る [3, 4, 5, 6].
関数の保存を目的とした故障ノード修復可能な
分散ストレージ方式における
修復帯域幅を最小とする再生成符号の一構成法
吉 田 隆 弘