private static byte[] decryptBloc(byte[] input){
		byte[] tmp = new byte[input.length];
		int t,u;
		int aux;
		int[] data = new int[input.length/4];
		for(int i =0;i<data.length;i++)
			data[i] = 0;
		int off = 0;
		for(int i=0;i<data.length;i++){
			data[i] = 	((input[off++]&0xff))|
						((input[off++]&0xff) << 8) |
						((input[off++]&0xff) << 16) |
						((input[off++]&0xff) << 24);
		}
		
		
		int A = data[0],B = data[1],C = data[2],D = data[3];
		
		C = C - S[2*r+3];
		A = A - S[2*r+2];
		for(int i = r;i>=1;i--){
			aux = D;
			D = C;
			C = B;
			B = A;
			A = aux;
			
			u = rotl(D*(2*D+1),5);
			t = rotl(B*(2*B + 1),5);
			C = rotr(C-S[2*i + 1],t) ^ u;
			A = rotr(A-S[2*i],u) ^ t;
		}
		D = D - S[1];
		B = B - S[0];
		
		data[0] = A;data[1] = B;data[2] = C;data[3] = D;
		
		
		for(int i = 0;i<tmp.length;i++){
			tmp[i] = (byte)((data[i/4] >>> (i%4)*8) & 0xff);
		}
		
		return tmp;
	}