can any one of youll write a code in microsoft Visual basics for secure Hash algorithm please see additional information below (this is for my final year project)
ALGORITHM
Append padding bits : The message length should be congruent to 448 mod 512.Padding is always added even if the msg is already of the desired length.Padding consists of a single 1bit followed by the necessary number of 0bits.
Append length : A block of 64bits is appended to the message. This block is an unsigned 64bit integer (most significant byte first) and contains the length of the original message before padding.
Initialize MD buffer : A 160bit buffer is used to hold intermediate and final results of the hash function.The buffer is represented as five 32bit registers(A,B,C,D,E).These registers are initialized to the following 32bit hexadecimal values.
A=67452301
B=EFCDAB8
C=98BADCFE
D=10325476
E=C3D2E1F0
In SHA1 these values are stored in big endian format which is the most significant byte of the word in the low address byte position.
Process message in 512bit blocks : The heart of the algorithm is a module that consists of 4 rounds of processing of 20 steps each,i.e. a total of 80 steps.The 4 rounds have similar structure but use different logical functions(f1,f2,f3,f4).Each round takes as input the current 512bit block being processed (Yq) and 160bit buffer value (A,B,C,D,E) and updates the contents of the buffer.Each round also makes use of an additive constant Kt, where 0<=t<=79.
kt =5A827999
kt =6ED9EBA1
kt =8F1BBCDC
kt =CA62C1D6
Processing of a single 512bit block
SHA1 Compression Function
ft =>takes 3words(B,C,D) of 32bit each and performs bitwise logical operations. The output is a 32bit word.
Step function name function value
0<=t<=19 f1 =f(t,B,C,D) (B/\C)\/(B’/\D)
20<=t<=39 f2=f(t,B,C,D) B xor C xor D
40<=t<=59 f3 =f(t,B,C,D) (B/\C)\/(B/\D)\/(C/\D)
60<=t<=79 f4 =f(t,B,C,D) B xor C xor D
Output : After all 512bit blocks have been processed ,the output from the last stage is the 160bit message digest.
