I'm thinking to store around half a dozen private keys on a smart contract. The function to read private keys is restricted to owner (deployer) of the smart contract.
Do miners have access to the restricted data? If yes - Is there any way to protect our data on ethereum blockchain?
private
variables are still accessible to anyone, they just don't produce a getter. Anything you want to keep private needs to be encrypted before placing on the blockchain and then decrypted after you read it from the blockchain. TLDR - DON'T place raw private keys on the blockchain.