Criptografia Rail Fence

Galera, tenho um trabalho da faculdade onde tenho que desenvolver um código que faça criptografia de dois métodos diferentes: Cifra de César e Rail Fence (http://en.wikipedia.org/wiki/Rail_Fence_Cipher).

A Cifra de César e a criptografia de Rail Fence, já que, mas estou com dúvidas em como descriptografar. Estou fazendo com 3 trilhas. Não precisa ser dinâmico (passando o número de trilhas por parâmetro), pois é para fazer com 3 trilhas mesmo.

[code]public String criptografar(String texto) {
String _result = "";

    for (int i = 0; i < texto.length(); i = i + 4)
        _result += Character.toString(texto.charAt(i));
    for (int i = 1; i < texto.length(); i = i + 2)
        _result += Character.toString(texto.charAt(i));
    for (int i = 2; i < texto.length(); i = i + 4)
        _result += Character.toString(texto.charAt(i));
    
    return _result;
}[/code]

[quote]Palavra: Notícias, artigos e o maior fórum brasileiro sobre Java
Criptografado: Nc,tsoifmae raoíis rio ao óu rsliosbeJvtaagemrrbiro a[/quote]

Se ir, mas não sei voltar!

Não quero o código pronto, mas quero uma ajuda sobre como fazer essa "volta". Estou com dúvidas na lógica.