"The rally was organised by Jamaat-e-Islamiya an extreme right-wing religious group, and some of its workers may have been killed during the attack," he said.

A number of the protesters were believed to be among the dead.

"We were burning tyres after the protest. We had set one tyre on fire when a deafening blast rocked the whole area," Saifullah, a party worker, told the AFP news agency.

Taliban blamed

Shafqat Malik, the chief of the bomb disposal squad, told reporters that the blast was caused by a bomber wearing a suicide vest packed with steel pellets, ball-bearings and six to eight kilogrammes of explosives.

"We have recovered the head and legs of the attacker," he said.

"There are many groups and agencies involved in the acts of terrorism but this is the failure of government who are responsible for the protection of citizens"

Siraj ul-Haq, deputy head of Jamat-e-Islamiya

Police and government officials blamed the Taliban for the bombing.

"The terrorists are beasts, Their aim is just to shed blood," Mian Iftikhar Hussain, the provincial information minister, said.

But Siraj ul-Haq, the deputy head of Jamat-e-Islamiya, instead declined to accuse Taliban fighters of staging the attack.

"There are many groups and agencies involved in the acts of terrorism but this is the failure of government who are responsible for the protection of citizens," he said.

The government declared three days of mourning in the province after the blast. 

The attack came hours after an eight-year-old boy was killed and at least 10 other people were wounded in a bombing outside a high school in Peshawar, which struck as students were wrapping up the school day.

"It was an improvised explosive device planted near a shop. It was a timed device. School children were the target," Mohammad Karim Khan, a senior police official told AFP news agency.

Taliban and al-Qaeda fighters have been blamed for scores of suicide and bomb blast in northwest Pakistan that have killed hundreds of people over the past year.

Peshawar, which lies close to the border with Afghanistan, has been one of the hardest-hit cities.