Let's say Peer A sends a transaction to contract.How peer B and peer C will be able to see this.Does they require to do encryption.If so then how?Does each and every peers should have the public key of every account?
... how the signing process happens. Can I have a little deep explanation on it.
If you want the deep explanation, then see Appendix F of the Yellow Paper, where the transaction signing and verification process is described in detail.
In short, a transaction you send is more-or-less in plain text; it is not encrypted. However, it is accompanied by a signature over the transaction data. This signature is created from the transaction data and your private key.
When a node receives your transaction, it can process the signature using a technique called
ECDSARECOVER. The output of this is your public key, and your account address is generated directly from your public key (it's not a secret). If the address generated from the recovered public key matches the "from" address in your transaction, then we know that the whole transaction was signed with a correct private key for your account.
Contracts don't have private keys, and therefore they can't send transactions. Instead there are other mechanisms for contracts to call each other or send value internally within the EVM.