The simplest is to use is an RC network and (just to be safe) a Schmitt trigger.
simulate this circuit – Schematic created using CircuitLab
This will have a few problems. The biggest is that, for an arbitrary fixed trigger level, it will provide different phase shifts for rising and falling edges. This can be fixed by taking the natural hysteresis found in simple Schitt triggers and setting the rising trigger level at about 63% of the input logic swing, and the falling trigger level at about 37%. If you do this, the delay (ignoring the propagation delay of the trigger) will be equal to the product of R and C. If R is ohms and C is in Farads, the delay will be expressed in seconds.
However, as long as the two trigger levels are symmetric around the average of the high and low logic levels the delays will be equal, just a bit harder to calculate.