Solve $3^x \equiv 43 \pmod {97}$ using Pohlig-Hellman Problem: Solve $3^x \equiv 43 \pmod {97}$ using the Pohlig-Hellman algorithm.
Here is my solution, but the problem is that I don't get it right at the end.
First of all, I calculate $\phi(97) = 96 = 2^5 \cdot 3$.
Now, let $x=a_0 + 2^5a_1=a_0+32a_1$. Then
$$ {3^{(a_0+32a_1)}}^3 \equiv 43^3 \pmod{97}$$
$$27^{a_0} \equiv 64 \pmod {97}.$$
Trial and error yields $a_0 = 6$. So now we have $x = 6 + 32a_1$, meaning $x \equiv 6 \pmod {32}$.
Now, let $x=b_0 + 3b_1$. Then
$$ {3^{(b_0 + 3b_1)}}^{32} \equiv 43^{32} \pmod{97}$$
$$35^{b_0} \equiv 35\pmod {97}.$$
Obviously, $b_0=1$. So now we get $x = 1 + 3b_1$, meaning $x \equiv 1 \pmod {3}$.
Using CRT, we can now solve:
$$x \equiv 6 \pmod {32}$$
$$x \equiv 1 \pmod {3}.$$
Solving the first equivalence:
$$3x_1 \equiv 6 \pmod {32}.$$
The multiplicative inverse of $3$ modulo $32$ is $11$.
$$11 \cdot 3x_1 \equiv 11 \cdot 6 \pmod {32}$$
$$x_1 \equiv 11 \cdot 6 \equiv 2 \pmod {32}.$$
Now for the second one:
$$32x_2 \equiv 1 \pmod {3}$$
$$2x_2 \equiv 1 \pmod {3}$$
$$x_2 \equiv 2 \pmod 3.$$
And at last:
$$x_0 = 3 \cdot 2 + 32 \cdot 2 = 70 \equiv 70 \pmod {96}.$$
Now $3^{70} \pmod {97}$ is not $43$, and I cannot find where is my error.
But, if I got $a_0=22$, then I would get $x_1 \equiv 18 \pmod {32}$ and $x_0 \equiv 22 \pmod {96}$, and that would be correct answer.

$3^{70} \mod 97$ IS 43, and your solution is fine. The only problem is that it's not unique - because the order of $3 \mod 97$ is 48 instead of 96. 
So morally speaking, you should look at $x \mod 48$ instead. Using Chinese remainder theorem, you would split that up into $x \mod 16$ and $x \mod 3$. Your calculations were correct - the answer would be $x \equiv 6 \mod 16$ and $x \equiv 1 \mod 3$, and from there you see that the solution is $x \equiv 22 \mod 48$. In particular, 70 IS also a correct solution - it just doesn't exhaust everything.
