@startuml md2_function
hide empty description
left to right direction
state "字节 t" as A
state "一次处理" as B {
state "S盒变换" as B1
state "异或" as B2
state "第 1 个字节" as B3
state "第 1 个字节" as B4
note left of B3: 处理前的缓冲区
note left of B4: 处理后的缓冲区
}
state "一次处理" as C {
state "S盒变换" as C1
state "异或" as C2
state "第 2 个字节" as C3
state "第 2 个字节" as C4
}
state "……" as D
state "一次处理" as E {
state "S盒变换" as E1
state "异或" as E2
state "第 48 个字节" as E3
state "第 48 个字节" as E4
}
state "t = (t+已进行处理轮数-1) mod 256" as F
A --> B1
B1 --> B2
B3 -left-> B2
B4 -right-> B2
B2 --> C1
C1 --> C2
C3 -left-> C2
C4 -right-> C2
C2 --> D
D --> E1
E1 --> E2
E3 -left-> E2
E4 -right-> E2
E2 -down-> F
F -left-> A
@enduml