computationally difficult definition
computationally difficult means that the complexity of an algorithm to break any of these properties is not less than that of the generic attack required to break that property. For an n-bit hash function, we have a generic collision attack with complexity 2n/2, while brute force preimage or second preimage attacks have complexity 2n. In case of collision attack, birthday attack is popularly used exhaustive search. The term „computational easiness‟ might mean polynomial time and space; or more practically, within a certain number of machine operations or time units. Unkeyed hash function is further classified into oneway hash function (OWHF) and collision resistant hash function (CRHF) [3]. The construction of CRHF is hard than OWHF. CRHF usually deals with longer length hash values. Keyed hash functions are preferred to be used in authentication schemes and to verify data integrity whereas unkeyed hash function deals only with data integrity. MAC [4] does not provide non-repudiation.