Plik kontrolny odtwarzający utracone pliki

Załóżmy, że mam zestaw plików danych o identycznej długości.

Jeżeli wygeneruje się plik kontrolny (tej samej długości, jak plik danych), w któym poszczególne bity są wynikiem XOR odpowiadających bitów danych, to po utracie jednejgo z plików danych można go odtworzyć tworząc plik o zawartości będącej XOR plików danych z plikiem kontrolnym.

Algorytm prosty, jedną z zalet jest to, że nie jest potrzebny jednoczesny dostęp do wszystkich plików danych przy generowaniu pliku kontrolnego. Z tego, co wiem, ten algorytm jest wykorzystywany w RAID5 w segmentach danych kontrolnych.

Jednak wadą jest to, że przy utracie więcej niż jednego pliku, nie da się ich odtworzyć.

Szukam algorytmu zdolnego odtworzyć dwa utracone pliki z zestawu pod warunkiem, że są dwa pliki kontrolne.
Uogólniając, założenie jest takie, że dla danego zestawu danych można wygenerować dowolną liczbę plików kontrolnych, przy czym liczba plików kontrolnych jest nie większa niż liczba plików danych.
Posiadając zestaw plików danych i plików kontrolnych, po utracie plików danych w liczbie nie większej niż liczba plików kontrolnych, można w 100% odtworzyć utracone pliki wykorzystując pliki kontrolne i zachowane pliki danych.

Taki mniej więcej mechanizm jest zaimplementowany w WinRar (woluminy naprawcze), co jest dowodem na to, że da się coś takiego zrobić. Nie udało mi się znaleźć algorytmu używanego w WinRarze ani żadnego służącego do tego celu.

XOR, ani MOD2 nie nadają się, bo pozwalają stracić tylko jeden plik.
CRC i kod Hamminga też nie bardzo, bo te dwie rzeczy pozwalają sprawdzić poprawność danych, ale nie sprawdzają się w odtwarzaniu utraconych danych.

Jaki algorytm może odpowiadać powyższym potrzebom?