All,
Please could someone explain how to implement the ATM Cell Payload scrambler / descrambler defined in ITU-T I.432.1 (Section 7.3.4.1)
The standard / recommendation suggests a self-synchronising scrambler with the polynomial X^43+1.
My current understanding is as shown below. However, I believe it to be incorrect as I cannot recover my original data from my scrambled data. Please advise.
Regards
Simon
Note: XOR Function ( 0 XOR 0 = 0, 1 XOR 1 = 0, 1 XOR 0 = 1, 0 XOR 1 = 1 ) Unscrambled "data in" becomes Scrambled "data out" Scrambled "data in" becomes Unscrambled "data out"
************************************************************************Transmission
------------
data out ^ -------------------------------------------------| | | | ---->[X^0, X^1, X^2 ...... X^40,X^41,X^42]---> XOR {43 bit shift register) ^ | | data in
1# Each bit of "data in" is XOR'ed with the MSB (Most Significant Bit) of the "43 bit shift register"2# The result of 1# is "data out" and becomes the LSB (Least Significant Bit) of the "43 bit shift register"
3# The process is repeated for all the "data in" bits************************************************************************
Reception
---------
data out ^ | |
------>[X^0, X^1, X^2 ...... X^40,X^41,X^42]---> XOR | {43 bit shift register) ^ |-------------------------------------------------| | data in
1# Each bit of "data in" is XOR'ed with the MSB (Most Significant Bit) of the "43 bit shift register" and becomes the LSB (Least Significant Bit) of the "43 bit shift register"2# The result of 1# is "data out" and becomes the
3# The process is repeated for all the "data in" bits************************************************************************