spreading vs scrambling
This page on spreading vs scrambling describes difference between spreading and scrambling. Both are basically used to spread energy over the band. This helps in preventing unathorized access of the signal by intruders. This is because signal goes below noise power level. User having known spreading code(PN code or channelization code) can despread the spreaded signal. User having known scrambling code can descramble the scrambled signal. If one see below figures, it is imperative that both spreading and scrambling have ex-or circuit.
Spreading

As shown in the spreading block diagram, binary data stream is EX-ORed with high bit rate PN codes(channelization code or spreading code), resulting in sequence having same bit rate as of PN codes. This pattern will have data spread across larger band and below noise power level. At the receiver user with correct PN code as one used in the transmitter can be able to despread the signal.
Scrambling

As shown in the scrambling diagram, binary data is input the scrambler composed of shift register and EX-OR gates. This scrambler removes long stream of 1's and makes the data randomize. This lower the energy within the channel and help overcome effect known as adjacent channel interference.
What is Difference between
difference between FDM and OFDM
Difference between SC-FDMA and OFDM
Difference between SISO and MIMO
Difference between TDD and FDD
Difference between 802.11 standards viz.11-a,11-b,11-g and 11-n
OFDM vs OFDMA
CDMA vs GSM
Bluetooth vs zigbee
Fixed wimax vs mobile