In this paper, we suggest a block image encryption algorithm which can give us an efficient scheme to hide and encrypt image data. Only the diffusion function, instead of classical permutation plus diffusion operations, is adopted. The plain-image is firstly divided into two equal parts randomly by vertical, horizontal, or diagonal directions. Then encryption of one part depends on the other part, in which the keystream is generated by the plain-image, i.e., one of the two parts. An error concept is added in the initial conditions in every round. It means that the keystreams are different in the process of encryption steps. The error may be positive or negative decided by a rule of sign function. Experiment results show that the proposed method can provide a high security of cryptosystem, and can reduce the computation redundancy compared with that of the traditional architectures such as Arnold map based method, and totally shuffling based method.