📄 pgpdes3_68k.c
字号:
DC.L 0x01000004,0x08000200,0x02080100,0x00200000
DC.L 0x00000400,0x08000008,0x40080100,0x04200800
DC.L 0x00000004,0x00000200,0x00000100,0x00000802
DC.L 0x01000404,0x00000000,0x02000000,0x00200802
DC.L 0x00010404,0x08020008,0x42080000,0x04200800
DC.L 0x01010404,0x08000208,0x42080100,0x00000802
DC.L 0x00010004,0x00020000,0x00080100,0x04000002
DC.L 0x01010000,0x08000000,0x42000000,0x04200802
DC.L 0x01000404,0x08020208,0x42080100,0x04200000
DC.L 0x01000004,0x00000008,0x02080000,0x00200800
DC.L 0x00000404,0x00020208,0x00000000,0x00000000
DC.L 0x00010404,0x00020200,0x40080000,0x00000002
DC.L 0x01010400,0x08000008,0x42000000,0x04200802
DC.L 0x00000404,0x08020000,0x00080100,0x00000000
DC.L 0x01000400,0x08000208,0x02000100,0x00200802
DC.L 0x01000400,0x00000208,0x40000100,0x04200000
DC.L 0x00000000,0x08020000,0x00080000,0x00000800
DC.L 0x00010004,0x00020208,0x00000000,0x04000002
DC.L 0x00010400,0x00000008,0x40080000,0x04000800
DC.L 0x00000000,0x08020008,0x02080100,0x00000800
DC.L 0x01010004,0x00020200,0x40000100,0x00200002
@SP1:
DC.L 0x80108020,0x00802001,0x20000010,0x10001040
DC.L 0x80008000,0x00002081,0x20400000,0x00001000
DC.L 0x00008000,0x00002081,0x00004000,0x00040000
DC.L 0x00108020,0x00000080,0x20404010,0x10041040
DC.L 0x00100000,0x00802080,0x20400000,0x10000000
DC.L 0x00000020,0x00800081,0x00000010,0x10001040
DC.L 0x80100020,0x00800001,0x20404010,0x00000040
DC.L 0x80008020,0x00002001,0x00400000,0x10000000
DC.L 0x80000020,0x00000000,0x20004000,0x00040040
DC.L 0x80108020,0x00802000,0x00404010,0x10040000
DC.L 0x80108000,0x00802000,0x00400000,0x10041040
DC.L 0x80000000,0x00802081,0x20000010,0x00041000
DC.L 0x80008000,0x00000081,0x00400010,0x10041000
DC.L 0x00100000,0x00000000,0x20004000,0x00041040
DC.L 0x00000020,0x00800080,0x20000000,0x00001000
DC.L 0x80100020,0x00800001,0x00004010,0x00000040
DC.L 0x00108000,0x00000001,0x00000000,0x10040000
DC.L 0x00100020,0x00002000,0x00400010,0x10000040
DC.L 0x80008020,0x00800000,0x20004010,0x10001000
DC.L 0x00000000,0x00802001,0x00004000,0x00001040
DC.L 0x80000000,0x00000080,0x00404000,0x00041000
DC.L 0x00008000,0x00800000,0x20004010,0x00040040
DC.L 0x00108020,0x00002001,0x00000010,0x10040040
DC.L 0x80100000,0x00002080,0x20400010,0x10041000
DC.L 0x00100020,0x00800081,0x20400010,0x00001040
DC.L 0x80000020,0x00000001,0x00000000,0x00000000
DC.L 0x00000000,0x00002080,0x00404010,0x00000000
DC.L 0x00108000,0x00800080,0x20404000,0x10040040
DC.L 0x00008020,0x00002000,0x00004010,0x10000040
DC.L 0x80108000,0x00802080,0x00404000,0x10001000
DC.L 0x80100000,0x00802081,0x20404000,0x00041040
DC.L 0x00008020,0x00000081,0x20000000,0x00040000
DC.L 0x00000000,0x00800080,0x20004000,0x00041040
DC.L 0x00108020,0x00800001,0x00000010,0x00040000
DC.L 0x80100020,0x00802000,0x20400010,0x10041000
DC.L 0x00100000,0x00802081,0x00404000,0x00001000
DC.L 0x80008020,0x00000081,0x20404010,0x00000040
DC.L 0x80100000,0x00000000,0x00400000,0x10040040
DC.L 0x80108000,0x00000000,0x00004010,0x00001000
DC.L 0x00008000,0x00802000,0x20000010,0x00041040
DC.L 0x80100000,0x00002080,0x00400000,0x10001000
DC.L 0x80008000,0x00800080,0x20004000,0x00000040
DC.L 0x00000020,0x00800081,0x20000000,0x10000040
DC.L 0x80108020,0x00000001,0x00004010,0x10040000
DC.L 0x00108020,0x00802001,0x20000010,0x10040040
DC.L 0x00000020,0x00002081,0x20404010,0x10000000
DC.L 0x00008000,0x00002081,0x00404000,0x00040000
DC.L 0x80000000,0x00000080,0x20400000,0x10001040
DC.L 0x00008020,0x00802081,0x00404010,0x00000000
DC.L 0x80108000,0x00000081,0x20404000,0x10041040
DC.L 0x00100000,0x00000001,0x00000000,0x00040040
DC.L 0x80000020,0x00002000,0x20400010,0x10000040
DC.L 0x00100020,0x00800001,0x00000010,0x10040000
DC.L 0x80008020,0x00002001,0x00004000,0x10001000
DC.L 0x80000020,0x00802080,0x20400000,0x10001040
DC.L 0x00100020,0x00800081,0x00404010,0x00000000
DC.L 0x00108000,0x00002001,0x00004000,0x10041040
DC.L 0x00000000,0x00002080,0x00400010,0x00041000
DC.L 0x80008000,0x00800000,0x20004010,0x00041000
DC.L 0x00008020,0x00802001,0x00000000,0x00001040
DC.L 0x80000000,0x00000080,0x20404000,0x00001040
DC.L 0x80100020,0x00800000,0x20000000,0x00040040
DC.L 0x80108020,0x00002000,0x00400010,0x10000000
DC.L 0x00108000,0x00802080,0x20004010,0x10041000
@desIter:
exg d5,d3
@des0:
moveq #7,d1
@desLoop:
move.l (a2)+,d0
eor.l d5,d0
move.l d0,d6
and.l d2,d0
move.l 12(a0,d0.w),d4 /* S6 */
swap d0
or.l 4(a0,d0.w),d4 /* S2 */
ror.l #8,d6
and.l d2,d6
or.l 8(a0,d6.w),d4 /* S4 */
swap d6
or.l 0(a0,d6.w),d4 /* S0 */
move.l (a2)+,d0
eor.l d5,d0
move.l d0,d6
lsl.l #4,d0
and.l d2,d0
or.l 12(a1,d0.w),d4 /* S7 */
swap d0
or.l 4(a1,d0.w),d4 /* S3 */
lsr.l #4,d6
and.l d2,d6
or.l 8(a1,d6.w),d4 /* S5 */
swap d6
or.l 0(a1,d6.w),d4 /* S1 */
eor.l d4,d3
move.l (a2)+,d0
eor.l d3,d0
move.l d0,d6
and.l d2,d0
move.l 12(a0,d0.w),d4 /* S6 */
swap d0
or.l 4(a0,d0.w),d4 /* S2 */
ror.l #8,d6
and.l d2,d6
or.l 8(a0,d6.w),d4 /* S4 */
swap d6
or.l 0(a0,d6.w),d4 /* S0 */
move.l (a2)+,d0
eor.l d3,d0
move.l d0,d6
lsl.l #4,d0
and.l d2,d0
or.l 12(a1,d0.w),d4 /* S7 */
swap d0
or.l 4(a1,d0.w),d4 /* S3 */
lsr.l #4,d6
and.l d2,d6
or.l 8(a1,d6.w),d4 /* S5 */
swap d6
or.l 0(a1,d6.w),d4 /* S1 */
eor.l d4,d5
dbf d1,@desLoop /* 53 */
dbf d7,@desIter
ror.l #1,d5 /* EXSHMSK(R,0x55555555,L,1,tmp) */
move.l d5,d2
eor.l d3,d2
andi.l #0xaaaaaaaa,d2
eor.l d2,d3
eor.l d2,d5
ror.l #1,d3
move.l d3,d2 /* EXSHMSK(L,0x00ff00ff,R,8,tmp) */
lsr.l #8,d2
eor.l d5,d2
andi.l #0x00ff00ff,d2
eor.l d2,d5
lsl.l #8,d2
eor.l d2,d3
move.l d3,d2 /* EXSHMSK(L,0x33333333,R,2,tmp) */
lsr.l #2,d2
eor.l d5,d2
andi.l #0x33333333,d2
eor.l d2,d5
lsl.l #2,d2
eor.l d2,d3
swap d5 /* EXSHMSK(R,0x0000ffff,L,16,tmp) */
move.w d5,d2
move.w d3,d5
move.w d2,d3
swap d5
move.l d5,d2 /* EXSHMSK(R,0x0f0f0f0f,L,4,tmp) */
lsr.l #4,d2
eor.l d3,d2
andi.l #0x0f0f0f0f,d2
eor.l d2,d3
lsl.l #4,d2
eor.l d2,d5
movea.l out,a0
move.l d5,(a0)+
move.l d3,(a0)
movem.l (a7)+,a2/d3-d7
frfree
rts
}
/* Validation triples -
*
* Double-length key, single-length plaintext -
* Key : 0123 4567 89ab cdef fedc ba98 7654 3210
* Plain : 0123 4567 89ab cde7
* Cipher : 7f1d 0a77 826b 8aff
*
* Triple-length key, single-length plaintext -
* Key : 0123 4567 89ab cdef fedc ba98 7654 3210 89ab cdef 0123 4567
* Plain : 0123 4567 89ab cde7
* Cipher : de0b 7c06 ae5e 0ed5
*
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -